cs 561 – software engineering review carlos jensen
TRANSCRIPT
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?
• Requirements definition
• System design
• Sub-system development
• System integration
• System installation
• System evolution
• System decommissioning From Sommerville, p25+28+29
Software Engineering Process
Life-cycle modelsWaterfall Model
Royce 1970
System & SW Design
Requirements Definition
Implementation& Unit Testing
Integration &System Testing
Operation &Maintenance
What about mistakes?refinement?
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.
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.
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.
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.?
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. Inherent scheduling flaw
2. Requirements inflation
3. Employee turnover
4. Specifications breakdown
5. Poor productivity
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
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
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
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
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…?