Beruflich Dokumente
Kultur Dokumente
Process Models
SDLC
What is SDLC ?
9/4/2018
Prescriptive Process Models
9/4/2018
Generic Process Framework
• Communication
– Involves communication among the customer and other stake holders;
encompasses requirements gathering
• Planning
– Establishes a plan for software engineering work; addresses technical
tasks, resources, work products, and work schedule
• Modeling (Analyze, Design)
– Encompasses the creation of models to better under the requirements and
the design
• Construction (Code, Test)
– Combines code generation and testing to uncover errors
• Deployment
– Involves delivery of software to the customer for evaluation and feedback
9/4/2018 4
Modeling: Software Requirements Analysis
9/4/2018 5
Modeling: Software Design
• Brings together customer requirements, business needs, and technical
considerations to form the “blueprint” for a product
• Creates a model that that provides detail about software data structures,
software architecture, interfaces, and components that are necessary to
implement the system
• Architectural design
– Represents the structure of data and program components that are required
to build the software
– Considers the architectural style, the structure and properties of components
that constitute the system, and interrelationships that occur among all
architectural components
• User Interface Design
– Creates an effective communication medium between a human and a
computer
– Identifies interface objects and actions and then creates a screen layout that
forms the basis for a user interface prototype
• Component-level Design
– Defines the data structures, algorithms, interface characteristics, and
communication mechanisms allocated to each software component
9/4/2018 6
Prescriptive Process Model
9/4/2018 7
Waterfall Model (Diagram)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
9/4/2018 8
Waterfall Model (Description)
9/4/2018 9
Waterfall Model (Problems)
9/4/2018 10
Waterfall Model with Feedback
(Diagram)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
9/4/2018 11
Incremental Process Model
Incremental Model (Diagram)
Increment #1
Communication
Planning
Modeling
Construction
Deployment
Increment #2
Communication
Planning
Modeling
Construction
Deployment
Increment #3
Communication
Planning
Modeling
Construction
Deployment
9/4/2018 12
Incremental Model (Description)
9/4/2018 13
Rapid Application Development (RAD)
9/4/2018
Evolutionary Process Model
Prototyping Model (Diagram)
Quick
Planning
Communication
Start
Modeling
Quick Design
Deployment,
Delivery,
and Feedback
Construction
Of Prototype
9/4/2018 15
Prototyping Model (Description)
9/4/2018 16
Prototyping Model (Potential Problems)
9/4/2018 17
Spiral Model (Diagram)
Planning
Communication
Start Modeling
Start
Deployment Construction
9/4/2018 18
Spiral Model (Description)
9/4/2018
• The concurrent model is often more appropriate for system
engineering projects where different engineering teams are involved.
• All activities exist concurrently but reside in different states.
• For example, early in the project the communication activity has
completed its first iteration and exists in the awaiting changes
state. The modeling activity which existed in the none state while
initial communication was completed now makes a transition into
underdevelopment state.
• If, however, the customer indicates the changes in requirements
must be made, the modeling activity moves from the under
development state into the awaiting changes state.
• The concurrent process model defines a series of events that will
trigger transitions from state to state for each of the Software
engineering activities, actions, or tasks.
9/4/2018
General Weaknesses of
Evolutionary Process Models
1) Prototyping poses a problem to project planning because of
the uncertain number of iterations required to construct the
product
2) Evolutionary software processes do not establish the
maximum speed of the evolution
• If too fast, the process will fall into chaos
• If too slow, productivity could be affected
3) Software processes should focus first on flexibility and
extensibility, and second on high quality
• We should prioritize the speed of the development over
zero defects
• Extending the development in order to reach higher
quality could result in late delivery
9/4/2018 22
Specialized Process Models
Component-based Development Model
• Consists of the following process steps
– Available component-based products are
researched and evaluated for the application
domain in question
– Component integration issues are considered
– A software architecture is designed to
accommodate the components
– Components are integrated into the architecture
– Comprehensive testing is conducted to ensure
proper functionality
• Relies on a robust component library
• Capitalizes on software reuse, which leads to
documented savings in project cost and time
9/4/2018 23
Formal Methods Model (Description)
9/4/2018 24
Formal Methods Model (Challenges)
9/4/2018 25
Unified Process Model (Background)
Inception Elaboration
planning
modeling
communication
construction
Construction
deployment
Production Transition 28
9/4/2018
Inception Phase
9/4/2018 29
Elaboration Phase
• Encompasses both the planning and modeling activities of
the generic process
• Refines and expands the preliminary use cases
• Expands the architectural representation to include five
views
– Use-case model
– Analysis model
– Design model
– Implementation model
– Deployment model
• Often results in an executable architectural baseline that
represents a first cut executable system
• The baseline demonstrates the viability of the architecture
but does not provide all features and functions required to
use the system
9/4/2018 30
Construction Phase
9/4/2018 31
Transition Phase
9/4/2018 32
Production Phase
9/4/2018 33
Unified Process Work Products
9/4/2018 34
Agile Development
Common Fears for Developers
• The project will produce the wrong product.
Yielding …
37
An Agile Process
38
Principles of Agility
Agile Alliiance [AGI03] defines 12 principles for those,
who want to achieve agility:ur
1. Our highest priority is to satisfy the customer through
early and continuous delivery of valuable software.
41
Extreme Programming (XP)
42
Extreme Programming (XP) cont..
• XP Design
– Follows the KIS principle
– Encourage the use of CRC cards (see Chapter 8)
– For difficult design problems, suggests the creation of
spike solutions — a design prototype
– Encourages refactoring — an iterative refinement of the
internal program design
• XP Coding
– Recommends the construction of a unit test for a store
before coding commences
– Encourages pair programming
• XP Testing
– All unit tests are executed daily
– Acceptance tests are defined by the customer and
executed to assess customer visible functionality
43
Extreme Programming (XP)
44
Other Agile Processes
• Scrum
• Crystal