Lecture 15: Demonstrational Tools Brad Myers 05-830 Advanced User Interface Software 1.
Advanced Software Engineering Lecture 2: The Software Process.
-
Upload
jasper-morris -
Category
Documents
-
view
240 -
download
0
Transcript of Advanced Software Engineering Lecture 2: The Software Process.
![Page 1: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/1.jpg)
Advanced Software Engineering
Lecture 2: The Software Process
![Page 2: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/2.jpg)
Today’s Topics The role of process in SE Typical process elements Evolution of processes (CMM) Specific life-cycle models Associated Reading:
Chapter 4 in SEPA 5/e
![Page 3: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/3.jpg)
Fundamental Questions
What is the problem to be solved? What are the characteristics of a possible
solution? How will the solution be designed? How will the solution be built? How will we test the design and implementation? How will we maintain over time?
![Page 4: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/4.jpg)
3 Conceptual Phases Definition
• What is to be constructed?
Development• How shall we construct it?
Support• How will we maintain it over time?
![Page 5: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/5.jpg)
Who are the Players? Roles
• Client: person(s) requesting the SW
• Developer: person(s) building the SW
• User: person(s) using the SW
User and client may be different! Internal SW development vs.
contract SW development
![Page 6: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/6.jpg)
Typical Activities (Phases)
Requirements Elicitation (Phase) Specification Phase Design Phase Implementation Phase Integration Phase Maintenance Phase Retirement Phase
![Page 7: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/7.jpg)
Requirements Elicitation (Phase)
What’s the problem? What are the constraints?
• Cost, deadlines, performance, platform, …
Elicitation of requirements Successive refinement
• Technical feasibility
• Financial justification
![Page 8: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/8.jpg)
Requirements [2] Challenges:
• “I know this is what I asked for, but it’s not what I needed”
• Software is complex
• The customer doesn’t understand the problem well
Possible Solution: rapid prototyping
![Page 9: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/9.jpg)
Specification Phase Specification Document
• Explicit description of functionality
• Explicit list of constraints
• List of inputs and outputs
Specification is a Contract• Includes acceptance criteria
• Should be written as precisely as possible!
![Page 10: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/10.jpg)
Specification Phase [2]
Challenges• Ambiguous: a specification has more than one interpretation
• Incomplete: an important specification is omitted
• Contradictory: two statements about the same situation which don’t agree
Possible Solution:formal specification review
![Page 11: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/11.jpg)
Design Phase
Specification=“what” to build Design=“how” to build it Data flow Modular decomposition Algorithms and data structures Two components:
• Architectural Design (global level)• Detailed Design (module level)
![Page 12: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/12.jpg)
Design Phase [2]
Challenges:• Generality vs. Complexity
• Planning for future enhancements
• Design for reusability, maintainability
Approach:• Be explicit about your goals
• Conduct formal design reviews
![Page 13: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/13.jpg)
Implementation Phase
Coding up the data structures, algorithms, and modules Commenting the code Separate written documentation Testing document, test cases Unit (module) Testing Evaluation:
formal code walk-throughs
![Page 14: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/14.jpg)
Integration Phase
Combine all the modules Realistic operational tests Methods
• Bottom-up integration
• Top-down integration
Challenges• Both methods have drawbacks
• Best to integrate while implementing
![Page 15: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/15.jpg)
Integration Phase [2]
Product Testing• Developer vs. SQA group
• Installation testing
• Documentation testing
• Performance testing
• Robustness testing
Acceptance Testing• Client tests specified functionality
![Page 16: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/16.jpg)
Maintenance Phase Activities
• Correction
• Adaptation
• Enhancement
• Prevention
Integration• Regression testing
![Page 17: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/17.jpg)
Retirement Phase
Good software is maintained Sometimes software is rewritten from scratch
• Software is now unmaintainable because• A drastic change in design has occurred• The product must be implemented on a totally new
hardware/operating system• Documentation is missing or inaccurate• Hardware is to be changed—it may be cheaper to rewrite the software
from scratch than to modify it
True retirement is a rare event
![Page 18: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/18.jpg)
Process-Specific Difficulties
Does the product meets the user’s real needs? Is the specification document free of ambiguities,
contradictions, and omissions?
![Page 19: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/19.jpg)
Umbrella Activities
Project tracking, formal reviews Formal technical reviews Quality assurance Configuration management Documentation preparation and production Reusability management Measurement / testing Risk management
![Page 20: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/20.jpg)
Common process framework Tasks Milestones, deliverables SQA points
![Page 21: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/21.jpg)
Process Evolution How can we measure the effectiveness of our SE
processes? Reflective practice involves a cycle of
measurement, analysis, and adjustment(“learning from experience”)
Capability Maturity Model (CMM)
![Page 22: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/22.jpg)
Improving the Software Process
U.S. Department of Defense initiative Software Engineering Institute (SEI) The fundamental problem with software
• The software process is badly managed
![Page 23: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/23.jpg)
Improving the Software Process (contd)
Software process improvement initiatives• Capability maturity model (CMM)
• ISO 9000-series
• ISO/IEC 15504
![Page 24: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/24.jpg)
Capability Maturity Model
Not a life-cycle model A set of strategies for improving the software process
• SW–CMM for software• P–CMM for human resources (“people”)• SE–CMM for systems engineering• IPD–CMM for integrated product development• SA–for software acquisition
These strategies are being unified into CMMI (capability maturity model integration)
![Page 25: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/25.jpg)
SW–CMM
A strategy for improving the software process Put forward in 1986 by the SEI Fundamental ideas:
• Improving the software process leads to• Improved software quality• Delivery on time, within budget
• Improved management leads to• Improved techniques
Five levels of “maturity” are defined Organization advances stepwise from level to level
![Page 26: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/26.jpg)
Level 1. Initial Level
Ad hoc approach• Entire process is unpredictable
• Management consists of responses to crises
Most organizations world-wide are at level 1
![Page 27: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/27.jpg)
Level 2. Repeatable Level
Basic software management• Management decisions should be made on the basis of
previous experience with similar products• Measurements (“metrics”) are made• These can be used for making cost and duration predictions in
the next project• Problems are identified, immediate corrective action is taken
![Page 28: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/28.jpg)
Level 3. Defined Level
The software process is fully documented• Managerial and technical aspects are clearly defined
• Continual efforts are made to improve quality, productivity
• Reviews are performed to improve software quality
• CASE tools are applicable now (and not at levels 1 or 2)
![Page 29: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/29.jpg)
Level 4. Managed Level
Quality and productivity goals are set for each project• Quality, productivity are continually monitored
• Statistical quality controls are in place
![Page 30: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/30.jpg)
Level 5. Optimizing Level
Continuous process improvement• Statistical quality and process controls
• Feedback of knowledge from each project to the next
![Page 31: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/31.jpg)
Summary
![Page 32: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/32.jpg)
Key Process Areas
There are key process areas (KPAs) for each level Level 2 KPAs include:
• Requirements management• Project planning• Project tracking• Configuration management• Quality assurance
Compare• Level 2: Detection and correction of faults• Level 5: Prevention of faults
![Page 33: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/33.jpg)
Experience
It takes:• 3 to 5 years to get from level 1 to level 2
• 1.5 to 3 years from level 2 to level 3
• SEI questionnaires highlight shortcomings, suggest ways to improve the process
Original idea:• Defense contracts would be awarded only to capable
firms
![Page 34: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/34.jpg)
Experience (contd)
Profitability• Hughes Aircraft (Fullerton, CA) spent $500K (1987–90)
• Savings: $2M per year, moving from level 2 to level 3
• Raytheon moved from level 1 in 1988 to level 3 in 1993• Productivity doubled
• Return of $7.70 per dollar invested in process improvement
![Page 35: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/35.jpg)
Other SPI Initiatives Other software process improvement (SPI) initiatives:
• ISO 9000-series
• ISO/IEC 15504
![Page 36: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/36.jpg)
ISO 9000
Set of five standards for industrial activities• ISO 9001 for quality systems
• ISO 9000-3, guidelines to apply ISO 9001 to software
• There is an overlap with CMM, but they are not identical
• Not process improvement
• Stress on documenting the process
• Emphasis on measurement and metrics
• ISO 9000 is required to do business with the E.U.
• Also by many U.S. businesses, for example, GE
• More and more U.S. businesses are ISO 9000 certified
![Page 37: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/37.jpg)
ISO/IEC 15504
Original name: Software Process Improvement Capability dEtermination (SPICE)• International process improvement initiative
• Started by British Ministry of Defence (MOD)
• Includes process improvement, software procurement
• Extends and improves CMM, ISO 9000
• Framework, not a method• CMM, ISO 9000 conform to this framework
• Now referred to as ISO/IEC 15504
• Or just 15504 for short
![Page 38: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/38.jpg)
Process Improvement Data
SEI report on 13 organizations in the original study They used a variety of process improvement techniques, not
just SW–CMM
![Page 39: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/39.jpg)
Process Improvement Data (contd)
Results of 34 Motorola projects
![Page 40: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/40.jpg)
Software Process Models
Strategies encompassing process, methods, tools and generic steps
Choice based on nature of the application Cycle: from status quo, to new problem
definition, to new technical development, to solution integration (Figure 2.3a, SEPA 5/e)
![Page 41: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/41.jpg)
The Basic Process Loop
[from SEPA 5/e]
![Page 42: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/42.jpg)
Steps:• System engineering
• Requirements analysis
• Design
• Code generation
• Testing
• Maintenance
Linear Sequential Model
![Page 43: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/43.jpg)
Linear Sequential Model
[From SEPA 5/e]
![Page 44: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/44.jpg)
Linear Sequential Model
Challenges:• Real projects rarely follow sequential flow (changes cause
confusion)
• Difficult for customer to state requirements explicitly
• Customer must have patience
• Developers sometimes delayed unnecessarily (‘blocking states’)
![Page 45: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/45.jpg)
Prototyping Model
Steps: • Listen to customer
• Build prototype
• Customer “test drives” prototype
Challenges:• “Throw-away” phenomenon
• Demos can set unrealistic expectations
• Compromises that solidify
![Page 46: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/46.jpg)
Prototyping Model
[From SEPA 5/e]
![Page 47: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/47.jpg)
RAD Model
Rapid Application Development Linear sequential, short cycle
(60-90 days) Steps:
• Business modeling• Data modeling• Process modeling• Application generation• Testing and turnover
![Page 48: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/48.jpg)
Rapid ApplicationDevelopment (RAD)
[From SEPA 5/e]
![Page 49: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/49.jpg)
RAD Model
Challenges:• For large projects, sufficient resources are needed for rapid
cycle
• Strong commitment from developers and customers
• Presupposes modular solution
• Reusability sometimes implies loss of performance
![Page 50: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/50.jpg)
The Incremental Model
Linear sequential, with iterative prototyping “Core product” vs. incremental enhancements Each increment operational Useful when human/machine resources are
limited
![Page 51: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/51.jpg)
Incremental Model[From SEPA 5/e]
![Page 52: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/52.jpg)
The Spiral Model
Iterative prototyping, with framework activities For example:
• First circuit: specification
• Second circuit: prototype
• Third circuit: product release
Includes development and maintenance
![Page 53: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/53.jpg)
Spiral Model
[From SEPA 5/e]
![Page 54: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/54.jpg)
The Spiral Model (2)
Challenges:• Hard to show controllability
(size and timing of each circuit)
• Risk assessment is fundamental
• Model fairly new (less experience)
![Page 55: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/55.jpg)
WINWIN Spiral
A variation of the standard Spiral Model Identify key “stakeholders” Determine stakeholder win conditions Reconcile win conditions into a set of win-win
conditions for the whole project
![Page 56: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/56.jpg)
WINWIN Spiral
[From SEPA 5/e]
![Page 57: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/57.jpg)
Component Assembly Model
Spiral Model, plus object-oriented reusability Challenges:
• Reusability requires careful planning
• Most existing programs are not reusable
• More suitable for particular application domains(with significant patterns of reuse)
![Page 58: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/58.jpg)
Component Assembly[From SEPA 5/e]
![Page 59: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/59.jpg)
Concurrent Development
State charts for each activity Events trigger state transitions Useful for interorganizational development Useful where there is a high degree of
interdependence between different modules (e.g., client-server apps)
![Page 60: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/60.jpg)
Concurrent DevelopmentModel
[From SEPA 5/e]
![Page 61: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/61.jpg)
Other Models
Formal Methods• Rigorous mathematical (logical) specification of software
• Formal models are time-consuming
• Requires developer, customer skill
Fourth Generation Techniques• High-level definition language
• E.g., UML -> Java code generation
• Benefits small/midsize projects most
![Page 62: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/62.jpg)
Product and Process
Advances in one area trigger advances in another “Pendulum” phenomenon “The process should be as enjoyable as the
product”
![Page 63: Advanced Software Engineering Lecture 2: The Software Process.](https://reader035.fdocuments.net/reader035/viewer/2022062217/5697bfc01a28abf838ca3792/html5/thumbnails/63.jpg)
Questions?