– Software CS 561 Engineering Review Carlos Jensen

advertisement
CS 561 – Software
Engineering Review
Carlos Jensen
Introduction
• What is Software Engineering?
• How is Software Engineering different from
Programming/development?
• What do Software Engineers do?
• Ethical considerations as Software Engineers
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?
Software Engineering Process
• Requirements definition
• System design
• Sub-system development
• System integration
• System installation
• System evolution
• System decommissioning
From Sommerville, p25+28+29
Life-cycle models
Requirements
Definition
Waterfall Model
Royce 1970
System &
SW Design
Implementation
& Unit Testing
What about mistakes?
refinement?
Integration &
System Testing
Operation &
Maintenance
Life-cycle models
Requirements
Definition
Waterfall Model
Royce 1970
System &
SW Design
Product:class
models +
Product: requirements
specifications
Implementation
& Unit Testing
What about mistakes?
refinement?
Step n+1:
Design
Integration &
System Testing
Operation &
Maintenance
complete
targeted
requirements
Step n+2:
Implement
Product: code +
Step n:
Analyze
requirements
Step n+3:
Test
Product: test results +
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Life-cycle models
Requirements
Definition
Waterfall Model
Royce 1970
Product:class
models +
Product: requirements
specifications
System &
SW Design
Step n+1:
Design
Implementation
& Unit Testing
What about mistakes?
refinement?
complete
targeted
requirements
Step n+2:
Implement
Integration &
System Testing
Operation &
Maintenance
Product: code +
Step n:
Analyze
requirements
Step n+3:
Test
Product: test results +
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Life-cycle models
Requirements
Definition
Waterfall Model
Royce 1970
Product:class
models +
Product: requirements
specifications
System &
SW Design
Step n+1:
Design
Implementation
& Unit Testing
What about mistakes?
refinement?
complete
targeted
requirements
Step n+2:
Implement
Integration &
System Testing
Operation &
Maintenance
Product: code +
Step n:
Analyze
requirements
Step n+3:
Test
Product: test results +
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Life-cycle models
Requirements
Definition
Product:class
models +
Waterfall Model
Royce 1970
Product: requirements
specifications
System &
SW Design
Step n+1:
Design
Implementation
& Unit Testing
What about mistakes?
refinement?
Integration &
System Testing
complete
targeted
requirements
Step n+2:
Implement
?
Operation &
Maintenance
Product: code +
Step n:
Analyze
requirements
Step n+3:
Test
Product: test results +
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
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?
Project & Risk management
Sources of uncertainty
• Requirements
• Match (UI/interface)
• Changing Environment
• Resources
• Management (support & talent)
• Supply Chain
• Politics
• Conflict
• Innovation
• Scale
What is risk management?
• Risk discovery
• Exposure analysis (probability * cost/damages)
• Contingency planning
• Mitigation
• Ongoing transition monitoring
Core Risks
1.
2.
3.
4.
5.
Inherent scheduling flaw
Requirements inflation
Employee turnover
Specifications breakdown
Poor productivity
Project & Risk Management
• Managing expectations & Trade-offs
• Planning for the unforeseen
Target:
100%
cost
capability
Target :
4 defects/Kloc
Target :
$70K
duration
defect
density
Target :
30 wks
Project & Risk Management
• Managing expectations & Trade-offs
• Planning for the unforeseen
Target:
100%
cost
Target :
$70K
Target:
100%
Actual:
100%
capability
duration
capability
cost
this
project
defect
density
Target :
30 wks
Actual:
1 defect/Kloc
Actual:
$90K
duration
Target :
30 wks
Target :
4 defects/Kloc
Target :
4 defects/Kloc
Target :
$70K
defect
density
Actual:
20 wks
Work breakdown & scheduling
•
•
•
•
•
Activities, milestones & deliverables
Task dependencies & scheduling
Activity networks
Gantt charts
Margins for error (slack in the schedule)
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
Optimal Size for Interaction
Effectiveness
per developer
Approximate
optimal range
Developer communicates
regularly with no one.
No communication time
lost, but developer is too
isolated and has no help.
3
7
Number of people with whom
developer must frequently interact
Developer
communicates
regularly with eleven
people.
Communication time
outweighs benefits of
interaction
Key:
= engineer
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
Requirements
Requirements gathering
•
•
•
•
•
•
•
•
•
Ethnographic methods
Interviewing
Questionnaires
Focus groups
Studying documentation and artifacts
Participatory design
Prototyping
Goal-oriented analysis
…etc
Requirements analysis
•
•
•
•
Scenarios
Use-cases
“Profiles”
IEEE requirements specification
documents
• Goal-oriented analysis
• Prototypes
Modeling requirements
•
•
•
•
•
Data-flow model
Composition model
Architectural model
Classification model
State transition model
Problems with requirements?
•
•
•
•
Consistency problem
Completeness problem
Ambiguity/lack of clarity problem
….
• Solution?
– Formal specifications…?
Download