Download presentation
Presentation is loading. Please wait.
Published byKarley Delacy Modified over 10 years ago
1
CPSC4175 Intro to Software Engineering Neal Rogers Common Processes Elements
2
Lesson: Common Process Elements Strategic Objective: To understand components common to all software processes Tactical Objectives: –to understand what a life cycle is –know the common types of life cycles –know how the common lifecycles affect the software production process –be able to select a lifecycle for a sample problem Immediate-use skills: –life cycles Support material: –Readings: The Spiral Model as a Tool for Evolutionary Acquisition
3
Further information: –Boehm, B. 1989. A spiral model of software development and enhancement. Computer, 21, 5. pp 61-72. –Royce, W. 1970. Managing the development of large software systems. Proceedings of IEEE WESCON. IEEE. –Thayer, R. 1990. Software engineering management: A top-down view. Software Engineering Management. IEEE Press. pp. 15- 54 –Pressman, R. 2001. Software Engineering: A Practitioner’s ApproachI, 5 th ed. McGraw Hill.
4
Software engineering raison d’être Process foundations Common process elements Conceptual design Size estimation Task decomposition Scheduling Measurements Reviews Technical templates Scaling up Misc processes Process descriptions Infrastructure Retrospective Syllabus Process commonality Lifecycle models foundation engineering activities lifecycle definition models ad hoc linear prototype evolutionary component-based transform
5
Process Commonalities NeedSolution Identify Synthesize Articulate Interpret Roles Lifecycle model Product model Property model Success model Infrastructure model w/ known characteristics
6
Process Commonalities NeedSolution Identify Synthesize Articulate Interpret Roles Lifecycle model Product model Property model Success model Infrastructure model w/ known characteristics
7
Process Commonalities Lifecycle model –tasks needed to produce a solution –purpose: to identify how the pieces of the development puzzle fit together –more about this in a minute …
8
Process Commonalities Product model –mechanisms to produce an artifact in a specific form –purpose: to ensure that the product contains what it should (and doesn’t contain what it shouldn’t) –examples configuration management –configuration identification –configuration control –configuration status accounting –configuration auditing system/software architecture language-specific logistics
9
Process Commonalities Property model –mechanisms to attain a solution with desired characteristics –purpose: to ensure that the product is “engineered” –examples planning, scheduling, costing security interoperability reuse methodology employment
10
Process Commonalities Success model –mechanism to assure and assess “correctness” –purpose: V&V verification: “are we building the product right” validation: “are we building the right product” –examples proof of correctness formal review walkthrough audit certification testing (unit, integration, system, etc) process integrity
11
Process Commonalities Success model (con’t) SystemReqDesignCodeTest Deploy PMRSRRSSRPDRCDRTRRFCAPCAFQT
12
Process Commonalities Infrastructure model –fundamental mechanisms needed to carry out a project –purpose: to permit all engineers to engineer –examples tools training administration quality assurance
13
Process Commonalities NeedSolution Identify Synthesize Articulate Interpret Roles Lifecycle model Product model Property model Success model Infrastructure model w/ known characteristics
14
Lifecycle Models Foundation –a process strategy is required when a system is too large to be built in one piece it must then be partitioned into elements these elements must then be developed the developed elements are then integrated into the finished system –the strategy: define the smaller elements establish the order in which they are developed establish the way in which they are integrated
15
Lifecycle Models Foundation (con’t) –software engineering activities to be managed: identification synthesis articulation interpretation –software engineering models... determine the order in which the activities are performed a.k.a. lifecycle (hopefully) give engineering discipline to production process
16
Lifecycle Models Foundation (con’t) –models (con’t) characteristics: –pros »organized »management visibility –cons »no unified theory »rigidifies thinking (changes difficult to handle) »assumes users know what they want
17
Point of Discussion ad hoc –code-and-fix linear –waterfall prototype –prototype evolutionary –incremental –synchronize and stabilize –spiral component-based –OO fountain transform –transform
18
Ad hoc Concept: quickly get code on the road Example: Code-and-fix Pattern –repeat code fix –until working Can you say “Level 1”?
19
Ad hoc … code-and-Fix Characteristics –advantages no overhead requires little expertise –disadvantages no management visibility errors seldom detected in advance Used for –small throwaway programs –fluid systems (where may not be cost effective to formally engineer or document)
20
Linear Concept: step-by-step construction Pattern –analyze then –design then –code then –test then –maintain Example: Waterfall –History Royce 1970 –what he said: phased development –what we heard: phase after phase development used widely in procurement
21
Linear … Waterfall Characteristics –pros simple –cons specification vs aspiration unrepresentative of real life assumes specs frozen guidelines for swimming upstream vague
22
upfront knowledge certain »req. »methods »arch »resource avail stableexperiencedtraditional hierarchy guidelines on: »next phase »backup »stopping »req creep »stds technology: stable ethics: audits Success criteria PlanningOrganizingStaffingDirectingControllingMisc Linear … Waterfall
23
Prototype Concept: development process defines requirements Pattern –analyze –repeat design (rapidly) code(rapidly) test(with user) –until system adequate –complete and release Example: Prototype –Assumption user can not specify all requirements development process will reveal requirements
24
Prototype Used for –HCI –research –software structure ill-defined –requirements ill-defined
25
Prototype Characteristics –Pros gaps in client-developer understanding discovered difficult-to-understand-services refined limited working system at each iteration specs for quality system –Cons early iteration may be used as real system users may not use in same way as real system may lead to unrealistic delivery expectations questionable legal contractual vehicle validation demonstrates adequacy, not conformance to spec possible inefficiencies and maintenance difficulties
26
Prototype flexibility in scope, schedule, cost User involvement flexibleuser-friendly disciplined non- traditional hierarchy stringent cost monitoring stopping criteria available requirements creep containment strong configuration management technology: architecture stable ethics: user willing to assume risk Success criteria PlanningOrganizingStaffingDirectingControllingMisc
27
Iterative Concept: build solution in parts General pattern –analyze (to desired level of abstraction) –design (to desired level) –code (to desired level) –test –deliver –repeat until complete Example 1: Incremental waterfall –overlapping waterfall –subproject waterfall –staged waterfall
28
Iterative … synchronize and stabilize Example 2: Synchronize and stabilize Pattern –analyze –specify as “feature sets”, sort sets by criticality –for the each feature set loop diurnal loop –build feature set –synchronize »integrate »fix –exit when feature set built to satisfaction end loop stabilize (baseline) –end loop
29
Iterative … synchronize and stabilize Characteristics –Pros repeated synchronization yields piece-wise integration early insight into inter-component interaction working software early –Cons working software early delicate team dynamics
30
Iterative … synchronize and stabilize flexibility in scope, schedule, cost User involvement flexibledisciplined dedicated non- traditional hierarchy stringent cost monitoring stopping criteria available strong configuration management technology: architecture unstable ethics: early delivery Success criteria PlanningOrganizingStaffingDirectingControllingMisc
31
Iterative … spiral Example 3: Spiral Pattern Process (Win-win spiral) –repeat identify next-level stakeholders identify stakeholders’ win conditions reconcile win conditions; establish objectives, constraints, alternatives evaluate product and process alternatives; resolve risks define next level of product and process validate product and process –until (review decision = stop) or (project = complete)
32
Iterative … spiral 1. identify stakeholders 2. identify win conditions 3. reconcile win conditions; establish objectives, constraints, alternatives 4. evaluate alternatives 5. define next level 6. validate 7. review, commit
33
Iterative … spiral concurrent determination of key artifacts each cycle includes objectives, constrains, alternatives, risks, review, and commitment to proceed level of effort driven by risk considerations degree of detail driven by risk considerations use of anchor point milestones: –life cycle objectives –life cycle architecture –initial operational capability emphasis on system and life-cycle activities and artifacts
34
Iterative … spiral Characteristics –Pros flexibility “systems” approach provides termination condition objectives vs requirements answers “what should we do next” addresses risk –Cons contract acquisition nightmare relies on project team educated in risk management
35
Iterative … spiral previous experience flexibility in schedule and cost stable for duration of spiral sweep flexibility to vary task nature between spiral sweeps risk conscious non- traditional or traditional guidelines on number of spirals technology: need not be stable Success criteria PlanningOrganizingStaffingDirectingControllingMisc
36
Component-based Concept: reuse General pattern –identify candidate components –look up components in library –extract components if available –build components if not available –put new components in library Example: Fountain OO
37
Component-based … OO fountain relies on depth and breadth of software pool flexibleknowledge of software pool non- traditional or traditional guidelines for fit-for- reuse heavy reliance on previously developed technology Success criteria PlanningOrganizingStaffingDirectingControllingMisc
38
Transform Concept: automation General pattern –analyze –repeat specification translate to code validate –until system adequate
39
Transform … RAD Example 3: Rapid Application Development Pattern: Business modeling Data modeling Process modeling Application generation Testing & Turnover 60-90 days … …
40
Transform Characteristics –Pros modify upstream artifact (such as specs or models), not code no design time –Cons tracking costs difficult cost estimation difficult auto transform not always available
41
Problem domain well defined Previous experience in costing, scheduling stabletheoretical experienced non- traditional or traditional risk abatement if transform not possible technology: must be available Transform Success criteria PlanningOrganizingStaffingDirectingControllingMisc
42
Summary Key Points A product with integrity requires integrity-based processes Software engineers are faced with projects of multiple levels of complexity: lifecycle modeling is a way of dealing with complexity Lifecycles determine sequence of activities Common lifecycle patterns are ad hoc, linear, prototype, iterative, component-based, transform Topics Process commonality Lifecycle models foundation engineering activities lifecycle definition models ad hoc linear prototype iterative component-based transform
43
View of software engineering NeedSolution Roles Lifecycle model Product model Property model Success model Infrastructure model w/ known characteristics Identify Synthesize Articulate Interpret temporal ordering form characteristics goodness support
44
Software process model processes definition –Prescriptive descriptions of tasks required to develop a software solution examples –IEEE 1074 –MIL-STD-2167A –MIL-STD-498 –Extreme Programming –Crystal –Cleanroom process models definition –Descriptive characteristics of an effective development effort examples –ISO 9001 –CMM –CMMI –SPICE –Bootstrap SOFTWARE PROCESS instantiate as
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.