Title: Software Process Modeling and Simulation
1Software Process Modeling and Simulation
- Sadaf Mustafiz
- School of Computer Science
- McGill University
- Winter 2003
2Outline
- Software Process Entities
- Example EPM
- Process Model (re-modeled)
- Unconstrained Process Model
- Scheduling Considerations
- Simulation
- Results
3Software Process Entities
- Some obvious entities are
- Deliverable code
- Users installation and operation manuals
- Requirements documents
- Design
- Test cases and procedures
4Example EPM (1)
- Modeled using a commercially available software
system called STATEMATE. - Focuses on behavioural modeling perspective
- Approach to behavioural modeling utilizes
statecharts
5Example EPM (2)
- Considering the activities occurring between the
- time when
- detailed design for the module has been
developed, and - the module has successfully passed unit testing.
- Three entities of interest
- Module code
- Unit tests for the module
- Test execution and analysis results
6Basic EPM Example (3)
7Example EPM (4)
Module Code Entity
8Example EPM (5)
Module Unit Tests Entity
9Example EPM (6)
Test Execution and Analysis Results Entity
10Example EPM (7)
- Example Time Line for Module Code Entity
- Entities remain for a non-zero time in each
state. - Transitions take negligible time.
- In the life span of an entity, it must always be
in some state.
11Process ModelRe-modeled (1)
INITIAL
TRUE
SET_INITIAL_TO_FALSE
FALSE
12Process ModelRe-modeled (2)
REWORK_CODE
FALSE
in (MODULE_CODE.CODE_DEVELOPED)
SET_REWORK_CODE_TO_FALSE
TRUE
13Process ModelRe-modeled (3)
REWORK_TESTS
FALSE
in (MODULE_CODE.TESTS_DEVELOPED)
SET_REWORK_TESTS_TO_FALSE
TRUE
14Process ModelRe-modeled (4)
CLEAN
FALSE
in (MODULE_CODE.DEVELOPING_CODE)
in (MODULE_CODE.DEVELOPING_CODE)
TRUE
15Process ModelRe-modeled (5)
PASSED
FALSE
in (TEST_EXEC_REPORT.RUNNING_TESTS)
TRUE
16Process ModelRe-modeled (6)
PERSONNEL
TWO
DECREASE_1
INCREASE_1
ONE
DECREASE_1
INCREASE_1
ZERO
17Process ModelRe-modeled (7)
MODULE_CODE
NONE
DETL_DES_RDY in (INITIAL.TRUE) and not in
(PERSONNEL.ZERO) / DECREASE_1
DEVELOPING _CODE
COMPILED in (CLEAN.TRUE) / SET_REWORK_CODE_TO_FA
LSE
CHECK_PRE_CODE
IN_ DEVELOPING _CODE
after dc/round hr / print (dc/round), INCREASE_1
PRE_CODE_CHECKED
ON_HOLD
CODE_ DEVELOPED
TESTS_COMPLETED in (PASSED.TRUE)
TESTED_N _PASSED
ANALYZED in (REWORK_CODE.TRUE) and not in
(PERSONNEL.ZERO) / DECREASE_1
18Process ModelRe-modeled (8)
MODULE_TESTS
NONE
DETL_DES_RDY in (INITIAL.TRUE) and not in
(PERSONNEL.ZERO) / SET_INITIAL_TO_FALSE,
DECREASE_1
DEVELOPING _TESTS
TESTS_DEVELOPED / SET_REWORK_TESTS_TO_FALSE
CHECK_PRE_CODE
IN_ DEVELOPING _TESTS
after dt/round hr /print (dt/round), INCREASE_1
PRE_CODE_CHECKED
ON_HOLD
TESTS_ DEVELOPED
TESTS_COMPLETED in (PASSED.TRUE)
RUN_N _PASSED
ANALYZED in (REWORK_TESTS.TRUE) and not in
(PERSONNEL.ZERO) / DECREASE_1
19Process ModelRe-modeled (9)
TEST_EXEC_REPORT
NEW
in (MODULE_CODE.CODE_DEVELOPED) and in
(MODULE_TESTS.TESTS_DEVELOPED) and not in
(PERSONNEL.ZERO) / DECREASE_1
RUNNING _TESTS
after dc/round hr
after rt hr / print (rt)
WAIT
TESTS_COMPLETED in (PASSED.TRUE) / INCREASE_1,
END_FINAL_ROUND
IN_ RUN_TESTS
after ap hr / print (ap), INCREASE_1, END_ROUND
TESTS_ABORTED or TESTS_COMPLETED not in
(PASSED.TRUE)
ANALYZING _PROBS
IN_ ANALYZING
PASSED_ TESTING
ANALYZED
20Process ModelRe-modeled (10)
TIME
ROUND
ONE
ACTIVE
END_ROUND / round 2
After 1 s/ ttime ttime1
TWO
END_ROUND / round 3
THREE
END_FINAL_ROUND
PASSED
21The Unconstrained Process Model (UPM)
- These tasks correspond to the active states in
the statechart model. - The basic plan forecasts that after initial
development of code and tests, test execution
will uncover errors calling for the rework of
both code and tests at half their initial effort
level. - The second round of testing will uncover more
errors, but only in the code, requiring
one-quarter the initial effort to correct. - The tests will then be passed on the third round.
It has been assumed that each of these tasks is a
one-person task that cannot be distributed among
multiple workers.
22Scheduling Considerations
- In the first round, development of code will take
12 hours, development of tests will take 8 hours,
running the tests will take 1 hour, and analyzing
problems in testing will take another 3 hours. - The second round takes half the time of the first
round and the third takes one-third the time. - Exception Running the tests will always take 1
hour
23Process Simulation
- Statechart Virtual Machine (SVM) has been used to
simulate the software process. - SVM has been developed by Thomas H. Feng (SOCS,
McGill University) and was released in Feb 2003. - SIMULATOR CODE
- SIMULATE
24Simulation Results
- Currently, no interface has been defined to
generate the graphs automatically in SVM. - The output of the simulation is printed in text
files which have been imported into Excel.
25Simulation Results (1)
26Simulation Results (2)
27Simulation Results (3)
28Simulation Results (4)
29 Comparison of the Results
30Example UPM
31Example CPM
32References
- Watts S. Humphrey , Marc I. Kellner, Software
process modeling principles of entity process
models, Proceedings of the 11th international
conference on Software engineering, p.331-342,
May 1989, Pittsburgh, Pennsylvania, United States
http//portal.acm.org/citation.cfm?doid74587.7463
1