02 - Generic Process Model
02 - Generic Process Model
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
References
[Pressman, 2010] Pressman, Roger S. Software Engineering: A Practitioners Approach. New York:McGraw-Hill Higher Education, 2010. Print [Sommerville, 2007] Sommerville, Ian, Software Engineering, 8 th Edition, PearsonAddison Wesley, England, 2007. [Dennis, 2010] Dennis, Alan, et al, System Analysis and Design, 4th Edition, John Wiley & Sons, New Jersey, 2010. [Pfleeger & Atlee, 2010] Pfleeger, Shari Lawrence., and Joanne M. Atlee. Software Engineering: Theory and Practice. 4th ed. Upper Saddle River [N.J.: Prentice Hall, 2010. Print.
3
Outline
Software Development Process Five Generic Framework Activities Software Development Process Flows Generic Software Development Process
Models
Prologue
[Sommerville, 2007]
9
11
Characteristics of a process
uses resources, subject to a set of constraints, and produces intermediate and final products
may be composed of subprocesses linked together
In software engineering, a process is not a rigid prescription for how to build computer software.
It is an adaptable approach that enables the people doing the work to pick and choose the appropriate work actions and tasks. The end goal is always to deliver software in timely manner and with sufficient quality to satisfy those who have sponsored its creation and those who will use it.
14
A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. Process should be:
Visible: Activities should provide clear indications of progress (deadlines/milestones)
Understandable: Activities and their order of execution are well-defined Supportable: Automated support for activities is available Usable: Process is acceptable to and usable by developers
15
16
Process Flow?
17
1
commence
Communication
Planning
Planning activity creates a map that helps guide the team as it makes the journey. The map is called software project plan (defines software engineering work)
technical tasks to be conducted risks that are likely the resource required, the work product to be produced, and work schedule
19
Modeling
Construction
Code generation (either manual or automated) Testing that is required to uncover errors in the
code
21
Deployment
22
23
24
25
26
28
[Pressman, 2010]
29
Its variants:
V-shaped model: relationship between types of tests and phases before testing Prototyping variant: requirements and design prototypes
31
The problems [Pressman, 2010] [Sommerville, 2007] [Pfleeger & Atlee, 2010]: Inflexible partitioning of the project into distinct stages makes (difficult to respond to changing customer requirements). Requirements must be well-understood up front (difficult to customers). Few business systems have stable requirements. This model is mostly used for large systems engineering projects where a system is developed at several sites.
35
The system as specified in the requirements documents is partitioned into subsystems by functionality. The releases are defined by beginning with one small, functional subsystem and then adding functionality with each new release. Thus, there are usually two systems functioning in parallel:
The production system
The development system
36
38
40
41
Prototyping:
Assists you and other stakeholders to better understand what is to be built when requirements are fuzzy. Users get a feel for the actual system and developers get to build something immediately.
42
Customer sees prototype, then wants a few fixes quick and delivery
Implementation compromises made to get prototype done quickly/forgets compromises and become part of the system
44
46
47
48
Example:
The first circuit around the spiral might result in the development of a product specification Subsequent passes might be used to develop a prototype Then, progressively more sophisticated versions of the software Each pass through the planning region result in adjustments to the project plan
50
51
Unified Process
Ivar Jacobson, Grady Booch, James Rumbaugh UP recognizes the importance of customer
communication and streamlined methods for describing the customers view of a system (the use case) --> use-case driven
Unified Process
Ela b o r a t io n In c e p t io n
c o n st r u c t io n
Releas e
s oft w are inc rem ent
t r a n sit io n
p r o d u c t io n
53
Unified Process
54
Workflows Requirements
Analysis
Design
Implem entation
55
Planning activity
Plan for iterative, incremental project is developed
Identify resources, assesses major risks, define a schedule, establishes a basis for the phases that are to be applied
56
Planning activity
Plans are carefully reviewed to ensure scope, risks and delivery dates remain reasonable
Modeling activity
Refines and expands preliminary use-cases and architectural representation
5 different views of systems (see next slide) Executable architectural baseline -->first cut executable systems
57
58
Construction activity Code generation (Architectural model --> operational usecases) Requirement and design models are completed; final version of the software increment Necessary and required functions and features (i.e., the release) are implemented in source code Testing Unit test is designed and executed Integration activites are conducted Use-case are used to derive a suite of acceptance test and executed
59
Testing
Beta testing
Deployment
Create necessary support information (e.g., user manuals, troubleshooting guides, installation procedures)
Deployment activity
Ongoing use of the software is monitored, support for the operating environment is provided, defect reports and requests for changes are submitted and evaluated
61
Unified Process
Five UP phases do not occur in a sequence, but rather with staggered concurrency A software engineering workflow is distributed across all UP phases
Workflow is analogous to a task set
62
Workflows Requirements
Analysis
Design
Implem entation
63
Use -case m o d e l Su p p le m e n t ary re q u ire m e n t s in clu d in g n o n -f u n ct io n al A n aly sis m o d e l So f t w are arch it e ct u re D e scrip t io n . Exe cu t ab le arch it e ct u ral p ro t o t y p e . Pre lim in ary d e sig n m o d e l Re v ise d risk list Pro je ct p lan in clu d in g it e rat io n p lan ad ap t e d w o rkf lo w s m ile st o n e s t e ch n ical w o rk p ro d u ct s Pre lim in ary u se r m an u al
Tr an sit io n p h ase
64
Q&A