Professional Documents
Culture Documents
SWE311_Ch03 (071)
Slide 1
Overview
Prescriptive process models prescribe a distinct set of activities, actions, tasks, milestones, and work products required to engineer high quality software. Prescriptive software process models are adapted to meet the needs of software engineers and managers for a specific project. Prescriptive software models provide stability, control, and organization to a process that if not managed can easily get out of control. Framework activities for a particular process model may be organized into a process flow that may be linear, incremental, or evolutionary.
Software & Software Engineering
Slide 2
SWE311_Ch03 (071)
Overview (cont)
The software engineer's work products (programs, documentation, data) are produced as a consequence of the activities defined by the software process. The best indicators of how well a software process has worked are the quality, timeliness, and long-term viability of the resulting software product.
SWE311_Ch03 (071)
Slide 3
Objectives
Introduce process models and the roles they play in a software engineering environment Give examples of some of the most common process models Provide means of comparing process model
SWE311_Ch03 (071)
Slide 4
Software Process
Aimed to control the activities of software development and as such improve quality... A structured set of activities for
SWE311_Ch03 (071)
Slide 5
Software process models are general approaches for organizing a project into activities
The models should be seen as aids to thinking, not rigid prescriptions of the way to do things Each project ends up with its own unique plan because Projects differs in the nature of the project, people doing the work, and the work environment
SWE311_Ch03 (071)
Slide 6
Prescriptive Models
Communication Planning Modeling Construction Deployment Emphasis of these activities Manners in which the framework is invoked and its relationship with other activities
Differ in
SWE311_Ch03 (071)
Slide 7
Prescriptive Models
That leads to a few questions If prescriptive process models strive for structure and order, are they inappropriate for a software world that thrives on change? Yet, if we reject traditional process models (and the order they imply) and replace them with something less structured, do we make it impossible to achieve coordination and coherence in software work?
SWE311_Ch03 (071)
Slide 8
Software Processes
Every software engineering organization needs to describe a set of framework activities for the processes it adopts
Each framework activity needs to be populated with software engineering actions Each engineering action needs to be defined in terms of a task set that defines the work and work products needed to meet the development goals The resulting process model should be adapted to accommodate the nature of the specific project, people doing the work, and the work environment
SWE311_Ch03 (071)
Slide 9
Regardless of the process model selected, software engineers will chose a generic process framework that includes these activities: communication, planning, modeling, construction, and deployment Each process model will prescribe a set of process elements (framework activities, software engineering actions, tasks, work products, quality assurance, and change control mechanisms) and a workflow (the manner in which the process elements are interrelated) All software process models discussed in this chapter can accommodate the generic framework activities described previously
Software & Software Engineering
Slide 10
SWE311_Ch03 (071)
Planning
es timating sc heduling tra cking
Mode ling
analysis design
Const r uc t ion
code t est
De ploy m e nt
de liv e ry s upport f e e dba c k
Old fashioned but reasonable approach when requirements are well understood
SWE311_Ch03 (071)
Slide 11
The model implies that you should attempt to complete a given stage before moving on to the next stage
Does not account for the fact that requirements constantly change. It also means that customers can not use anything until the entire system is complete.
The model makes no allowances for prototyping. Assumes understanding of problem and full requirements early on It implies that you can get the requirements right by simply writing them down and reviewing them.
Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.
Software & Software Engineering
Slide 12
SWE311_Ch03 (071)
continued
Followed systematic approach to development The model implies that once the product is finished, everything else is maintenance. Assumes patience from customer Surprises at the end are very expensive Some teams sit ideal for other teams to finish
Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process.
Software & Software Engineering
SWE311_Ch03 (071)
Slide 13
Co n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fe e dba c k
increment # 2
Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign
Co n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fe e dba c k
increment # 1
Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign Co n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fe e dba c k
Delivers software in small but usable pieces, each piece builds on pieces already delivered
SWE311_Ch03 (071) Software & Software Engineering
Slide 14
Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. First Increment is often core product
Includes basic requirement Many supplementary features (known & unknown) remain undelivered
It is particularly useful when enough staffing is not available for the whole project Increment can be planned to manage technical risks
SWE311_Ch03 (071)
Slide 15
User requirements are prioritised and the highest priority requirements are included in early increments.
Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve. Customer value can be delivered with each increment so system functionality is available earlier.
Early increments act as a prototype to help elicit requirements for later increments.
SWE311_Ch03 (071)
Slide 16
C o n s t r u c t io n
Team # 2
Mo d eling
b u si n e ss m o d e l i n g dat a m odeling p ro ce ss m o d e l i n g
Planning
Co nst r uct io n
De ploym e nt
int egrat ion deliv ery feedback
co m p o n e n t re u se a u t o m a t i c co d e g e n e ra t i o n t e st i n g
6 0 - 9 0 days
Makes heavy use of reusable software components with an extremely short development cycle
SWE311_Ch03 (071) Software & Software Engineering
Slide 17
Critique of RAD
Construction emphasizes the reuse and the automatic code generation For large but scalable projects
Projects fail if developers and customers are not committed in a much abbreviated time-frame Problematic if system can not be modularized Not appropriate when technical risks are high
Software & Software Engineering
Slide 18
SWE311_Ch03 (071)
of prototype
SWE311_Ch03 (071)
Slide 19
communication modeling
analysis design start
deployment
delivery feedback
construction
code test
Couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model
SWE311_Ch03 (071) Software & Software Engineering
Slide 20
SWE311_Ch03 (071)
Slide 21
Under
development
Done
SWE311_Ch03 (071)
Slide 22
which applications are built from prepackaged software components called classes Formal methodsemphasizes the mathematical specification of requirements. Rigorous mathematical notation used to specify, design, and verify computer-based systems Aspect-Oriented Software Development (AOSD)provides a process and methodological approach for defining, specifying, designing, and constructing aspects like user interfaces, security, and memory management that impact many parts of the system being developed
Software & Software Engineering
SWE311_Ch03 (071)
Slide 23
Unified Process
Use-case driven, architecture centric, iterative, and incremental software process closely aligned with the Unified Modeling Language (UML)
Attempts to draw on best features of traditional software process models and implements many features of agile software development Phases
Inception phase (customer communication and planning) Elaboration phase (communication and modeling) Construction phase Transition phase (customer delivery and feedback) Production phase (software monitoring and support)
SWE311_Ch03 (071)
Slide 24
inception
co nst r uct io n
Release
soft ware increment
t r ansit io n
p r o d uct io n
SWE311_Ch03 (071)
Slide 25
UP Phases
UP Phase s
Incept ion Elaborat ion Const ruct ion Transit ion Product ion
SWE311_Ch03 (071)
Slide 26
UP Work Products
Incept ion phase
Vision document Init ial use-case model Init ial project glossary Init ial business case Init ial risk assessment . Project plan, phases and it erat ions. Business model, if necessary . One or more prot ot y pes
I nc e pt i o n
SWE311_Ch03 (071)
Slide 27
Overall flow and level of interdependencies among tasks Degree to which work tasks are defined within each framework activity Degree to which work products are identified and required Manner in which quality assurance activities are applied
SWE311_Ch03 (071)
Slide 28
Manner in which project tracking and control activities are applied Overall degree of detail and rigor of process description Degree to which stakeholders are involved in the project Level of autonomy given to project team Degree to which team organization and roles are prescribed
Software & Software Engineering
Slide 29
SWE311_Ch03 (071)