Title: CS 361 Software Engineering Chapter 2: Modeling the Process and Life Cycle
1CS 361 Software EngineeringChapter 2
Modeling the Process and Life Cycle
2Elements of Software Engineering
- Methods
- Technical how tos to support software
- development tasks
- Languages
- Notations to support methods
- Tools
- (Semi-) automated support for (the usage
of) - methods and languages
- Processes
3What is a Process?
- Coordination and management of software
development tasks supported by methods,
languages, and tools - A series of steps involving activities,
constraints, resources
4Development Process and Product Lifecycle
5Process
- Process Characteristics
- -The process describes the major activities
- - Each process activity has input, output
and - exit criteria
- The activities are organized in sequences
6Process and Roles
7System Development process - Basic activities
- Requirements analysis and definition
- System design (overall design)
- Program design (detailed design)
- Program implementation (writing the programs)
- System Integration
- Testing
- System delivery
- (Maintenance)
- (Disposal)
8Software Development Models
- Waterfall model
- Iterative models
- Spiral model
- RUP model
- Agile model
- Extreme Programming (XP)
- Others
9Waterfall model (70)
10Waterfall model - characteristics
11Waterfall model documents (SE - Ian Sommerville)
12Waterfall Model -features
- Legacy model
- has been in use since the 1970s
- Characterized by completely finishing a step
before proceeding to the next step. - - once a step is finished, it is not revisited
- (when this model is rigidly followed).
- Large government agencies still use forms of this
model - - prefer to spend large amounts of effort on
- analysis and requirements before awarding
- contracts.
13Waterfall Model - Pros
- Very well distinguished process (easy to
understand) - Every steps in the model completes with a
MILESTONE - A milestone is defined as a completion of set of
documents - Well defined inputs and outputs of the activities
- Precisely define different roles of developers
14Waterfall Model - Cons
- Software engineers cannot predict the future and
anticipate every requirement and problem - This model is not flexible enough to allow
requirements to evolve. - Software is usually developed with a great deal
of iteration
15The software process in reality
16Where the waterfall model works fine?
- Established procedures and technologies
- Not too much requirements changes
- Well organized projects with precisely defined
roles - Repeatable projects
- Big projects not time and budget critical
- What are characteristics of today's development?
- How does Waterfall model fit for them?
17Requirements on the development process today
- Requirements
- -Time-to market
- - User Interfaces
- - Possibility for integration with other
products - - Using standard and de-facto standard
solutions - - Using already existing components
18Requirements on the development process today
- Permanent change of technologies
- - Development tools, development and
- target platforms, hardware, etc.
- Requirements changes during the entire
development process
19Waterfall model fitness
20The waterfall model with prototyping
21V Model
22How to reduce cycle time?
23The incremental and iterative models
24Evolutionary development - characteristics
- Problems
- - Lack of process visibility
- - Systems are often poorly structured
- Applicability
- - For small or medium-size interactive systems
- - For parts of large systems (e.g. the user
interface) - - For short-lifetime systems
25The Spiral Model (88)