cs 561 – software engineering review carlos jensen

24
CS 561 – Software Engineering Review Carlos Jensen

Upload: ralf-maxwell

Post on 31-Dec-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CS 561 – Software Engineering Review Carlos Jensen

CS 561 – Software Engineering Review

Carlos Jensen

Page 2: 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

Page 3: CS 561 – Software Engineering Review Carlos Jensen

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Requirements

Page 21: CS 561 – Software Engineering Review Carlos Jensen

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

Requirements analysis

• Scenarios• Use-cases• “Profiles”• IEEE requirements specification

documents

• Goal-oriented analysis• Prototypes

Page 23: CS 561 – Software Engineering Review Carlos Jensen

Modeling requirements

• Data-flow model

• Composition model

• Architectural model

• Classification model

• State transition model

Page 24: CS 561 – Software Engineering Review Carlos Jensen

Problems with requirements?

• Consistency problem

• Completeness problem

• Ambiguity/lack of clarity problem

• ….

• Solution?– Formal specifications…?