Top Banner
CS 5150 1 CS 5150 Software Engineering Lecture 2 Software Processes
41

CS 5150 Software Engineering

Mar 19, 2016

Download

Documents

jeneil

CS 5150 Software Engineering. Lecture 2 Software Processes. Administration. Project teams •Any announcement to class? •People who would like to form teams?. Administration. Project teams When you have formed your team and reached agreement with your client, please send a message to: - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS 5150  Software Engineering

CS 5150 1

CS 5150 Software Engineering

Lecture 2

Software Processes

Page 2: CS 5150  Software Engineering

CS 5150 2

Administration

Project teams

• Any announcement to class?

• People who would like to form teams?

Page 3: CS 5150  Software Engineering

CS 5150 3

Administration

Project teams

When you have formed your team and reached agreement with your client, please send a message to:

[email protected] and afix.cs.cornell.edu

with the names of the team, the client's name, and the topic of the project.

Page 4: CS 5150  Software Engineering

CS 5150 4

A Classic Book

Frederick P. Brooks, Jr. The Mythical Man Month. Addison-Wesley, 1972.

Page 5: CS 5150  Software Engineering

CS 5150 5

Software Process

Fundamental Assumption:

Good processes lead to good software

Good processes reduce risk

Good processes enhance visibility

Page 6: CS 5150  Software Engineering

CS 5150 6

Variety of Software Processes

Software products are very varied...

Therefore, there is no standard process for all software engineering projects

BUT successful software development projects all need to address similar issues.

This creates a number of process steps that must be part of all software projects

Page 7: CS 5150  Software Engineering

CS 5150 7

Basic Process Steps in all Software Development

• Feasibility and planning

• Requirements

• System and program design

• Implementation and testing

• Acceptance testing and release

• Operation and maintenance

It is essential to distinguish among these process steps and to be clear which you are are doing at any given moment.

Do not confuse requirements and design

Page 8: CS 5150  Software Engineering

CS 5150 8

Process Step: Feasibility and Planning

A feasibility study precedes the decision to begin a project.

• What is the scope of the proposed project?

• Is the project technically feasible?

• What are the projected benefits?

• What are the costs, timetable?

A feasibility study leads to a decision: go or no-go.

Page 9: CS 5150  Software Engineering

CS 5150 9

Process Step: Requirements

Requirements define the function of the system from the client's viewpoint.

The requirements establish the system's functionality, constraints and goals by consultation with the client and users.

They are specified in a manner that is understandable by both the client and the development staff.

Page 10: CS 5150  Software Engineering

CS 5150 10

Process Step: System and Program Design

Design describes the system from the software developers' viewpoint

System design: Match the requirements to hardware or software systems. Establishes an overall system architecture

Program design: Represent the software system functions in a form that can be transformed into one or more executable programs

Page 11: CS 5150  Software Engineering

CS 5150 11

Process Step: Implementation and Testing

Implementation (coding)

The software design is realized as a set of programs or program units. (The software components may be written specifically, acquired from elsewhere, or modified.)

Testing

Individual components are tested against specifications.

The components are integrated and tested against the design by the development staff as a complete system.

Page 12: CS 5150  Software Engineering

CS 5150 12

Process Step: Acceptance Testing and Release

Acceptance testing

The system is tested against the requirements by the client.

Delivery and release

The system is delivered to the client and released into production.

Page 13: CS 5150  Software Engineering

CS 5150 13

Process Step: Operation and Maintenance

Operation: The system is put into practical use.

Maintenance: Errors and problems are identified and fixed.

Evolution: The system evolves over time as requirements change, to add new functions or adapt the technical environment.

Phase out: The system is withdrawn from service.

This is sometimes called the Software Life Cycle

Page 14: CS 5150  Software Engineering

CS 5150 14

Sequence of Processes

Every software project will include these basic processes, in some shape or form, but:

• They may be formal or informal

• They may be carried out in various sequences

Page 15: CS 5150  Software Engineering

CS 5150 15

Sequence of Processes

Major alternatives

• Iterative: Go quickly through all process steps to create a rough system, then repeat them to improve the system. Iterative refinement.

• Sequential: As far as possible, complete each process step before beginning the next. Waterfall model.

• Phased: Divide the project into a number of phases. Implement each phase in turn and put it in production immediately.

Page 16: CS 5150  Software Engineering

CS 5150 16

Iterative Refinement

Requirements

DesignImplementation

Evaluation

Page 17: CS 5150  Software Engineering

CS 5150 17

Iterative Development: Iterative Refinement (Evolutionary Development)

Concept: Initial implementation for client and user evaluation, followed by refinement until system is complete.

• Vaporware: user interface mock-up

• Throw-away software components

• Dummy modules

• Rapid prototyping

• Successive refinement

Page 18: CS 5150  Software Engineering

CS 5150 18

Iterative Processes: Requirements and Risk

Mistakes in the requirements are the most expensive to correct.

Requirements are hard to understand until there is an operational system, particularly with user interfaces

Create an outline system quickly, review it with clients, test it with users, improve the understanding of the requirements

Example: Integration of browser into operational system

Page 19: CS 5150  Software Engineering

CS 5150 19

Sequential Development:The Waterfall Model

Requirements

System design

Testing

Operation & maintenance

Program design

Implementation (coding)

Acceptance & release

Requirements

Design

Implementation

Feasibility study

Page 20: CS 5150  Software Engineering

CS 5150 20

Discussion of the Waterfall Model

Advantages:

• Process visibility• Separation of tasks• Quality control at each step• Cost monitoring at each step

Disadvantages:

Each stage in the process reveals new understanding of the previous stages, which often requires the earlier stages to be revised.

The Waterfall Model is not enough!

Page 21: CS 5150  Software Engineering

CS 5150 21

Sequence of Processes

A pure sequential model is impossible

Examples:

• A feasibility study cannot create a proposed budget and schedule without a preliminary study of the requirements and a tentative design.

• Detailed design or implementation usually reveals gaps in the requirements specification.

The plan must allow for some form of iteration.

Page 22: CS 5150  Software Engineering

CS 5150 22

Modified Waterfall Model

Requirements

System design

Testing

Operation & maintenance

Program design

Implementation (coding)

Acceptance & release

Waterfall model with feedback

This is better

Feasibility study

Page 23: CS 5150  Software Engineering

CS 5150 23

Phased Development

A simple system with basic functionality is brought quickly into production (Phase 1).

Subsequent phases are based on experience gained from users of each previous phase.

Advantages

• Pay-back on investment begins soon.

• Requirement are more clearly understood in developing subsequent phases.

• User feedback can be incorporated in later phases.

Page 24: CS 5150  Software Engineering

CS 5150 24

Phased Development Online

When software is released online it is possible to divide it into small phases that are developed and released in quick succession.

Example: Amazon.com divides most software development into phases of about four weeks elapsed time.

This approach is excellent for continual enhancement of a system within an established architecture.

It is not possible for shrink wrapped software, embedded systems, or similar environments.

Page 25: CS 5150  Software Engineering

CS 5150 25

Mixed Processes: User Interface Development

User interfaces have to be tested with users. This forces iterative development, even within an underlying sequential process.

A common model is to combine iterative refinement of user interfaces within an overall sequential process.

(Iteration within the steps of a sequential process is sometimes called a spiral development process.)

Page 26: CS 5150  Software Engineering

CS 5150 26

Examples of Mixed Processes:Iterative Refinement + Waterfall Model:

Problem: Add graphics package to a programming environment

Phase 1: Iterative refinement

Extend current environment with a preprocessor and run-time support package. Test with users. Make several new versions until users are pleased with function. Throw the code away.

Phase 2: Modified waterfall

Use the results of Phase 1 as the basis for a formal set of requirements. Write new compiler and run-time system incorporating graphics elements. Make minor adjustments to requirements as needed.

Page 27: CS 5150  Software Engineering

CS 5150 27

Modern Developments in Software Processes

Changes during the software development process are expensive.

• If the requirements are poorly understood, or expected to change, select a process that keeps flexibility. Iterative refinement, phased implementation.

• For big software systems with many inter-related components, avoid major changes to the design of a system during development. Sequential process, such as the modified waterfall model.

Page 28: CS 5150  Software Engineering

CS 5150 28

Modern Developments in Software Processes

Agile software development is a variant of iterative refinement that stresses rapid iterations with a flexible approach to requirement and design.

Extreme programming is an approach that concentrates on selected techniques of software development, e.g., coding by teams, design and code reviews, and typically releases software in a sequence of small phases.

Page 29: CS 5150  Software Engineering

CS 5150 29

Observations about Software Processes

Completed projects should have the basic process stepsbut ... the development process is always partly evolutionary.

Risk is lowered by:

• Prototyping key components

• Dividing into phases

• Following a visible software process

• Making use of reusable components

Conclusion

It is not possible to complete each step and throw it over the wall.

Page 30: CS 5150  Software Engineering

CS 5150 30

CS 5150 Project Presentations: Iterative Option

Requirements

DesignImplementation

Evaluation

first presentation

second presentation

third presentation

Page 31: CS 5150  Software Engineering

CS 5150 31

CS 5150 Project Presentations: Sequential Option

Requirements

System design

Testing

Operation & maintenance

Program design

Implementation (coding)

Acceptance & release

1. Requirements

2. Design

3. Implementation

Feasibility study

If you follow a sequential process the three presentations should be as shown.

Page 32: CS 5150  Software Engineering

CS 5150 32

CS 5150 Software Engineering

Project Suggestions

Page 33: CS 5150  Software Engineering

CS 5150 33

Project Suggestion: eCommons

Harvesting from Web sites for the Cornell academic repository

John Saylor, Cornell University Library

Page 34: CS 5150  Software Engineering

CS 5150 34

Project Suggestion: iPhone Application for Pet Nutrition

Stephanie Specchio, College of Veterinary Medicine

Ron DiNapoli, Cornell Information Technologies

Page 35: CS 5150  Software Engineering

CS 5150 35

Project Suggestion: Field of Mars

Social networking and e-commerce site for athletics and fitness

Jonathan and Aleda SchafferJohnson School, Cornell University

Page 36: CS 5150  Software Engineering

CS 5150 36

Project Concept: Legal Information Institute

• Spaeth database of Supreme Court statistics

• User contributed queries

Tom Bruce, Director Legal Information Institute

Page 37: CS 5150  Software Engineering

CS 5150 37

Project Concept: FSAE Race Car

Controller area network for FSAE race car

Cangming LiuFSAE Race Team

Page 38: CS 5150  Software Engineering

CS 5150 38

Project Concept: Risk Management and Public Safety

Personal Protection Equipment & Training Assessment Tool

Curtis Baker, Risk Management and Public Safety Information Services [former CS 5150 student]

Page 39: CS 5150  Software Engineering

CS 5150 39

Project Suggestion: Civitas electronic voting system

Civitas electronic voting system

Michael ClarksonComputer Science Department

Page 40: CS 5150  Software Engineering

CS 5150 40

Project Suggestions from Electrical and Computer Engineering

GPS Sensor Array ManagementBrady O'Hanlon

Aerobic Exercise MonitorJohn Belina

Page 41: CS 5150  Software Engineering

CS 5150 41

Project Suggestion: SNAP

Social Network Applied Perception (SNAP) Search Engine

Stephen Purpura, Cornell Information Science