cs 561 – software engineering review carlos jensen
TRANSCRIPT
![Page 1: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/1.jpg)
CS 561 – Software Engineering Review
Carlos Jensen
![Page 2: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/2.jpg)
Introduction
• What is Software Engineering?
• How is Software Engineering different from Programming/development?
• What do Software Engineers do?
• Ethical considerations as Software Engineers
![Page 3: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/3.jpg)
What Do Software Engineers Do?
• Requirements– Gathering– Analysis
• Design• Project management
– Staffing– Progress– Development methods
• Risk management• Evaluation• Documentation• Support
• Missing Anything?
• Which parts have you been involved in?
• Which parts have you not been involved in?
![Page 4: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/4.jpg)
• Requirements definition
• System design
• Sub-system development
• System integration
• System installation
• System evolution
• System decommissioning From Sommerville, p25+28+29
Software Engineering Process
![Page 5: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/5.jpg)
Life-cycle modelsWaterfall Model
Royce 1970
System & SW Design
Requirements Definition
Implementation& Unit Testing
Integration &System Testing
Operation &Maintenance
What about mistakes?refinement?
![Page 6: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/6.jpg)
Life-cycle modelsWaterfall Model
Royce 1970
System & SW Design
Requirements Definition
Implementation& Unit Testing
Integration &System Testing
Operation &Maintenance
What about mistakes?refinement?
completetargeted
requirements
Step n:Analyzerequirements
Step n+3:Test
Step n+2:Implement
Step n+1:Design
Product:classmodels +
Product: requirementsspecifications
Product: code + Product: test results +Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
![Page 7: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/7.jpg)
Life-cycle modelsWaterfall Model
Royce 1970
System & SW Design
Requirements Definition
Implementation& Unit Testing
Integration &System Testing
Operation &Maintenance
What about mistakes?refinement?
completetargeted
requirements
Step n:Analyzerequirements
Step n+3:Test
Step n+2:Implement
Step n+1:Design
Product:classmodels +
Product: requirementsspecifications
Product: code + Product: test results +Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
![Page 8: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/8.jpg)
Life-cycle modelsWaterfall Model
Royce 1970
System & SW Design
Requirements Definition
Implementation& Unit Testing
Integration &System Testing
Operation &Maintenance
What about mistakes?refinement?
completetargeted
requirements
Step n:Analyzerequirements
Step n+3:Test
Step n+2:Implement
Step n+1:Design
Product:classmodels +
Product: requirementsspecifications
Product: code + Product: test results +Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
![Page 9: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/9.jpg)
Life-cycle modelsWaterfall Model
Royce 1970
System & SW Design
Requirements Definition
Implementation& Unit Testing
Integration &System Testing
Operation &Maintenance
What about mistakes?refinement?
completetargeted
requirements
Step n:Analyzerequirements
Step n+3:Test
Step n+2:Implement
Step n+1:Design
Product:classmodels +
Product: requirementsspecifications
Product: code + Product: test results +Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.?
![Page 10: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/10.jpg)
Agile/Extreme Programming?
• What is Agile/XP?– Key techniques & practices of XP
• Iterative development cycle• Test-first mentality• Pair-programming• Prototyping
• Why is Agile/XP popular/interesting?– How is Agile/XP different?– How is Agile/XP the same?
![Page 11: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/11.jpg)
Project & Risk management
Sources of uncertainty• Requirements• Match (UI/interface)• Changing Environment• Resources• Management (support & talent)• Supply Chain• Politics• Conflict• Innovation• Scale
![Page 12: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/12.jpg)
What is risk management?
• Risk discovery
• Exposure analysis (probability * cost/damages)
• Contingency planning
• Mitigation
• Ongoing transition monitoring
![Page 13: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/13.jpg)
Core Risks
1. Inherent scheduling flaw
2. Requirements inflation
3. Employee turnover
4. Specifications breakdown
5. Poor productivity
![Page 14: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/14.jpg)
Project & Risk Management
cost
capability duration
defectdensity
Target :$70K
Target : 30 wks
Target : 4 defects/Kloc
Target:100%
• Managing expectations & Trade-offs• Planning for the unforeseen
![Page 15: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/15.jpg)
Project & Risk Management
cost
capability duration
defectdensity
Target :$70K
Target : 30 wks
Target : 4 defects/Kloc
Target:100%
cost
capability duration
defectdensity
Target :$70K
Actual: 100%
Target : 30 wksTarget :
4 defects/Kloc
thisproject
Actual:1 defect/Kloc
Actual:20 wks
Actual:$90K
Target:100%
• Managing expectations & Trade-offs• Planning for the unforeseen
![Page 16: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/16.jpg)
Work breakdown & scheduling
• Activities, milestones & deliverables
• Task dependencies & scheduling
• Activity networks
• Gantt charts
• Margins for error (slack in the schedule)
![Page 17: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/17.jpg)
Managing team
• Costs/problems of adding new programmers to existing project
• Diminishing returns on programmer productivity
• Problems to be overcome in adding new people to a project
![Page 18: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/18.jpg)
Optimal Size for Interaction
Number of people with whom developer must frequently interact
Developer communicates regularly with eleven people. Communication time outweighs benefits of interaction
Developer communicates regularly with no one. No communication time lost, but developer is too isolated and has no help.
Key: = engineer
Approximateoptimal range
3 7
Effectiveness per developer
![Page 19: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/19.jpg)
Cost estimation
• Types of costs– Hardware Costs– Travel & Training costs– Effort costs
• KLOC• Function points• Object points
• Magnitude, overhead, margins
• General approaches to cost estimation
![Page 20: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/20.jpg)
Requirements
![Page 21: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/21.jpg)
Requirements gathering
• Ethnographic methods• Interviewing• Questionnaires• Focus groups• Studying documentation and artifacts• Participatory design• Prototyping• Goal-oriented analysis• …etc
![Page 22: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/22.jpg)
Requirements analysis
• Scenarios• Use-cases• “Profiles”• IEEE requirements specification
documents
• Goal-oriented analysis• Prototypes
![Page 23: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/23.jpg)
Modeling requirements
• Data-flow model
• Composition model
• Architectural model
• Classification model
• State transition model
![Page 24: CS 561 – Software Engineering Review Carlos Jensen](https://reader038.vdocuments.net/reader038/viewer/2022110404/56649eba5503460f94bc278a/html5/thumbnails/24.jpg)
Problems with requirements?
• Consistency problem
• Completeness problem
• Ambiguity/lack of clarity problem
• ….
• Solution?– Formal specifications…?