Software Process is a particular method, generally involving a number of steps along with ordering constraints on execution, to produce software with desired outcome
2 Major processes : Development, Project Management.
Methodologies for Software Development - ETVX
ETVX model
(l.w. = ex , tv...entry, exit; task validation)
Quality in the process
A quality process has the right inputs and performs the right actions to produce outputs that meet the needs of customer processes.
Definitions of quality thus include:
- Fitness for purpose
- Right output, right time, right place
- Customer satisfaction
ETVX Points
There are four places where the quality can be specified and checked:
- Entry criteria define what inputs are required and what quality these must be to achieve the exit criteria. Entry criteria should be communicated to supplier processes, to become their exit criteria. If supplier processes are sufficiently well controlled, then there is no need to check inputs.
- Task definitions specify the actions within the process.
- Validation definitions identify test points within the process and define the tests and criteria for checking at these points. This enables problems to be caught close to their cause, reducing rework and scrap costs, and enabling problem causes to be addressed.
- Exit criteria define what outputs are required and what quality these must be to meet the needs of customer processes. Exit criteria may be derived from the entry criteria of customer processes.
Common Process models - , Waterfall model, Prototype, spiral
SDLC - software development life cycleWaterfall model
Feasibility report / Requirement Analysis,
System Design, Implementation/Coding, Testing , Deployment, Maintenance
FDC TDM
(Fools Dont cost, Tools Dont make)
nLinear ordering implies each phase should have some output
nThe output must be validated/certified
nOutputs of earlier phases: work products
nCommon outputs of a waterfall: SRS, project plan, design docs, test plan and reports, final code, supporting docs
Prototyping Model
Prototyping - Software prototyping, an activity during certain software development, is the creation of prototypes, i.e., incomplete versions of the software program being developed.
A prototype typically simulates only a few aspects of the features of the eventual program, and may be completely different from the eventual implementation.
Software management process
Capability Maturity Model
(H A R D M O DEL
- Level 1 - Ad hoc (Chaotic)
- It is characteristic of processes at this level that they are (typically) undocumented and in a state of dynamic change, tending to be driven in an ad hoc, uncontrolled and reactive manner by users or events. This provides a chaotic or unstable environment for the processes.
- Level 2 - Repeatable
- It is characteristic of processes at this level that some processes are repeatable, possibly with consistent results. Process discipline is unlikely to be rigorous, but where it exists it may help to ensure that existing processes are maintained during times of stress.
- Level 3 - Defined
- It is characteristic of processes at this level that there are sets of defined and documented standard processes established and subject to some degree of improvement over time. These standard processes are in place (i.e., they are the AS-IS processes) and used to establish consistency of process performance across the organization.
- Level 4 - Managed
- It is characteristic of processes at this level that, using process metrics, management can effectively control the AS-IS process (e.g., for software development ). In particular, management can identify ways to adjust and adapt the process to particular projects without measurable losses of quality or deviations from specifications. Process Capability is established from this level.
- Level 5 - Optimized
- It is a characteristic of processes at this level that the focus is on continually improving process performance through both incremental and innovative technological changes/improvements.
0 comments:
Post a Comment