Software processes are adapted to meet the needs of software engineers and managers as the undertake the development of a software product. Software process provides a framework for managing activities that can very easily get out of control.
Process Model
1. Prescriptive Models are originally proposed to bring order to the chaos of software development. Why called Prescriptive? Because prescribe a set of process elements such as activities, actions, tasks, etc.
a. The Waterfall Model
Old fashioned but reasonable approach when requirements are well understood.
The waterfall model problem are :
- Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.
- The waterfall model only appropriate when the requirements are well-understood and changes will be fairly limited during the design process.
- The waterfall model is mostly used for large systems engineering projects where a system is developed a several sites.
b. Incremental Models
Delivers software in small but usable pieces, each piece builds on pieces already delivered.
c. Rapid Application and Development (RAD) Model
Makes heavy use of reusable software components with an extremely short development cycle
d. Evolutionary Process Models
- Prototyping Model
Good first step when customer has a legitimate need, but is clueless about the details, developer needs to resist pressure to extend a rough prototype into a production product.
- Spiral Model
Couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential mode.
- Concurrent Development Model
Similar to spiral model often used in development of client/server applications.
2. Specialized Process Models
- Component Based Development
Spiral model variation in which applications are built from prepackaged software components called classes.
- Formal Methods Model
Rigorous mathematical notation used to specify, design, and verify computer-based systems.
- Aspect-Oriented Programming
Provides a process for defining, specifying, designing, and constructing software aspects like user interfaces, security, and memory management that impact many parts of the system being developed.
3. The Unified Process
- Use-case driven, architecture centric, iterative, and incremental software process
- Phases :
a. Inception phase : Customer communication and planning (Vision document, prototypes, business model, etc)
b. Elaboration phase : Communication and modeling (use-case model, analysis model, functional and non-functional requirements)
c. Construction phase (design model, test plan, test cases, software components, etc)
d. Transition phase : Customer delivery and feedback (delivery software increament, user feedback, beta test reports)
e. Production phase : Software monitoring and support
No comments:
Post a Comment