Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:

Similar presentations


Presentation on theme: "Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:"— Presentation transcript:

1 Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities: Throughout lifecycle

2 Dillon: CSE470: SE, Process2 Definition l Requirements definition and analysis »Developer must understand –Application domain –Required functionality –Required performance –User interface

3 Dillon: CSE470: SE, Process3 Definition (cont.) l Project planning »Allocate resources »Estimate costs »Define work tasks »Define schedule l System analysis »Allocate system resources to –Hardware –Software –Users

4 Dillon: CSE470: SE, Process4 Development l Software design »User interface design »High-level design –Define modular components –Define major data structures »Detailed design –Define algorithms and procedural detail

5 Dillon: CSE470: SE, Process5 Development (cont.) l Coding »Develop code for each module »Unit testing l Integration »Combine modules »System testing

6 Dillon: CSE470: SE, Process6 Maintenance l Correction - Fix software defects l Adaptation - Accommodate changes »New hardware »New company policies l Enhancement - Add functionality l Prevention - make more maintainable

7 Dillon: CSE470: SE, Process7 Umbrella Activities l Reviews - assure quality l Documentation - improve maintainability l Version control - track changes l Configuration management - integrity of collection of components

8 Dillon: CSE470: SE, Process8 Software Engineering Costs

9 Dillon: CSE470: SE, Process9 Software Engineering Costs

10 Dillon: CSE470: SE, Process10 Relative Costs to Fix Errors

11 Dillon: CSE470: SE, Process11 Waterfall Process Model Requirements Design Maintenance Coding Testing

12 Dillon: CSE470: SE, Process12 Prototyping Process Model Requirements Quick Design Prototype Evaluate Design

13 Dillon: CSE470: SE, Process13 When to use prototyping? l Help the customer pin down the requirements »Concrete model to “test out” »Often done via the user interface l Explore alternative solutions to a troublesome component »e.g., determine if an approach gives acceptable performance l Improve morale »Partially running system provides visibility into a project

14 Dillon: CSE470: SE, Process14 Spiral Process Model Planning Risk Analysis Engineering Customer Evaluation

15 Dillon: CSE470: SE, Process15 Process Models l Idealized views of the process l Different models are often used for different subprocesses »may use spiral model for overall development –prototyping for a particularly complex component –waterfall model for other components

16 Dillon: CSE470: SE, Process16 Capability Maturity Model l Level 1: Initial »success depends on people l Level 2: Repeatable »track cost, schedule, functionality l Level 3: Defined »use standardized processes l Level 4: Managed »collect detailed metrics l Level 5: Optimizing »continuous process improvement »“built-in” process improvement

17 Dillon: CSE470: SE, Process17 Why is software development so difficult ? l Communication »Between customer and developer –Poor problem definition is largest cause of failed software projects »Within development team –More people = more communication –New programmers need training l Project characteristics »Novelty »Changing requirements –5 x cost during development –up to 100 x cost during maintenance »Hardware/software configuration »Security requirements »Real time requirements »Reliability requirements

18 Dillon: CSE470: SE, Process18 Why is software development difficult ? (cont.) l Personnel characteristics »Ability »Prior experience »Communication skills »Team cooperation »Training l Facilities and resources »Identification »Acquisition l Management issues »Realistic goals »Cost estimation »Scheduling »Resource allocation »Quality assurance »Version control »Contracts

19 Dillon: CSE470: SE, Process19 Summary l Software lifecycle consist of »Definition (what) »Development (how) »Maintenance (change) l Different process models concentrate on different aspects »Waterfall model: maintainability »Prototype model: clarifying requirements »Spiral model: identifying risk l Maintenance costs much more than development

20 Dillon: CSE470: SE, Process20 Bottom Line l U.S. software is a major part of our societal infrastructure »Costs upwards of $200 billion/year l Need to »Improve software quality »Reduce software costs/risks


Download ppt "Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:"

Similar presentations


Ads by Google