27
Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level SE470 Overview Excellence in Software Engineering Repeatable Level Defined Level Managed Level Initial Level Optimized Level Larry Dribin, Ph.D. - DePaul University Phone: (847)807-7390 - Fax: (847)459-1650 Email: [email protected] Copyright 2001 - Larry Dribin, Ph.D. - v1 09-09-01

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

SE470 Overview

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Larry Dribin, Ph.D. - DePaul University

Phone: (847)807-7390 - Fax: (847)459-1650

Email: [email protected]

Copyright 2001 - Larry Dribin, Ph.D. - v1 09-09-01

Page 2: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 2

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

SE 470 Objective

The objective of this course is to introduce students to Software Engineering processes. These processes provide an engineering approach to software development that:

Improves quality Improves software development cost estimates and reduce cost overruns Improves software development schedule estimates and reduce schedule

overruns Improves the fit between user’s requirements and software products

The class will focus on Extreme Process (XP), the Rational Unified Process (RUP) and the Software Engineering Institute’s Capability Maturity Model for Software (CMMSW)

Page 3: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 3

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized LevelThink to yourself how many of the projects you have

worked were are:

On Time? On Budget?

High Quality?

The typical answers are: Late Over Budget Low Quality

The Bottom Line: Our Customers are upset with us.The Bottom Line: Our Customers are upset with us.

Page 4: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 4

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

The Result is Often Referred to as the Software Crisis

Schedule Overruns Cost Estimate Overruns Software Quality Problems Software does not meet User Expectations Productivity of Software Developers has not been keeping up with

demand Especially since the rise of the Internet until the internet bubble exploded in the Spring of 2000

Page 5: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 5

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Why is This?

Software is Dynamic versus Static Software is Complex Software is difficult to Conceptualize Software is difficult to Represent Software is difficult to Communicate Software is difficult to Evaluate and Measure Software Developers have trouble learning what users want:

Users do not know what they want Software developers misunderstand the problem

There is a tremendous demand for software

Page 6: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 6

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Symptoms and Root Causes

Some Symptoms: Requirements in flux Users needs not met Poor quality Schedule slips Projects cancelled Cost over runs Difficulty in maintaining software Software that work in pilot does not

work in production Business changes faster than

systems can keep up Staff turnover

Some Root Causes: Insufficient and misunderstood

requirement Ambiguous communication Lack of good software architectures Undetected inconsistencies Poor testing Overwhelming complexity Uncontrolled changes Manual practices Exponentially increasing cost of

change

Page 7: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 7

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

What can we do about it?

Use

Good Software Engineering Practices (GSEP)

to minimize these problems!

That is why you are here!

Page 8: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 8

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

What is Software Engineering?

Definition of Software Engineering:

“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.”

Fritz Bauer -1969

Page 9: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 9

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Engineering Framework

Processes - Procedures and Life Cycles Techniques - or Methods Practices - Repeated performances of activities Tools - to support Processes, Techniques and Practices

Page 10: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 10

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Processes Definitions

IEEE - A process is a sequence of steps performed for a given purpose SEI - A set of activities, methods, practices, and transformations that

people use to develop and maintain software and the associated products (CMM)

Rational Unified Process - The total set of activities needed to produce a result of perceived and measurable value to an individual customer of a business

A Mature Process is: Defined Managed Measured Controlled Effective

Page 11: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 11

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Generic Process Model

performancemeasurement

performancemeasurement

processprocess

roles &skills

roles &skills

customercustomer

ITIT

suppliersupplier

Page 12: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 12

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Engineering Institute’s Process Model: Capability Maturity Model for Software

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimizing Level

Page 13: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 13

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Each level of the Capability Maturity Model is made up of a number of Key Process Areas

Level 1Initial

- Requirements Management. - Software Quality Assurance.

- Software Project Planning. - Configuration Management.

- Software Project Tracking. - Subcontractor Management.

- Process Definition. - Peer Reviews.

- Process Group. - Integrated Management.

- Training Program. - Inter-group Coordination.

- Software Product Engineering. Level 2 Repeatable

- Process Measurement and Analysis.

- Quality Management. Level 3Defined

Level 4 Managed

- Technology Innovation

- Defect Prevention. - Process Change Management.

Level 5 Optimized

Organizations operating at CMM Level 2 use professional

software engineering practices to manage software

projects.

Organizations operating at CMM Level 2 use professional

software engineering practices to manage software

projects.

Page 14: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 14

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

SEI’s CMM is Based on Basic Principles for Software Process Improvement

Based on traditional quality principles: Walter Shewart, Statistical Process Control, AT&T, 1930’s. Phil Crosby, Quality is Free, 1979. Ron Radice, A Programming Process Study, IBM, 1985. W. Edwards Deming, Out of Crisis, 1986. Joseph Juran, Juran on Planning for Quality, 1988.

Page 15: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 15

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Engineering Processes (Based on CMMSW)

Needs Analysis Design Build Operate

Project Tracking & Oversight

Project Planning

Subcontractor Management

Quality Assurance

Configuration Management & Documentation Standards

Performance Measurement

• Systems Management

• Call Management• Tech. Support &

Maintenance

• Requirements Management• Software Product

Engineering

• Software Product Engineering

• Software Product Engineering

• Project Evaluation & Prioritization (Work Request)

Technology OrganizationTechnology Organization Technology StrategyTechnology Strategy

Organization Process Function

IT Value Chain

Page 16: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 16

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s Key Software Workflows (Processes)

Page 17: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 17

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Development Life Cycles

The Software Development Life Cycle is the Mega-process that defines how all other processes are used

Two Basic Types: Waterfall Iterative

– Spiral– Evolutionary– Rational Unified Process - RUP– Extreme

Provides the framework for the other software process Often described at as a Methodology

Page 18: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 18

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Waterfall model

Requirementsdefinition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Page 19: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 19

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Issues with the Waterfall Life Cycle

Real projects do not appear to follow the Waterfall life cycle - they appear to iterate.

Requirements must be defined up front which causes problems due to: Users often do not know what they want. Most Analysis and Design Techniques do not provide a good clear

representation of the solution for the user.

The customer must wait a long time for the first deliverable. The “Large Specifications” produced are hard to use and hard to

validate.

The biggest drawback of the waterfall model is the difficulty of accommodating change after the process is underway

The biggest drawback of the waterfall model is the difficulty of accommodating change after the process is underway

Page 20: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 20

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Iterative - Evolutionary Life Cycle

Page 21: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 21

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Iterative Life Cycles Also Have Issues

Waterfall life cycle is more familiar since it is similar to hardware life cycle

Iterative Life Cycles difficult to estimate and manage. Only recently used on real projects - therefore little track record

Iterative life cycle best used for problems that are not well understood. Iterative life cycle best used for problems that are not well understood.

Page 22: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 22

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Engineering Techniques

Design

• Structured Design

• OO Design

• Architectural Design:

• Module & API Design

• User Interface Design

• Reuse Library

• Inspections & Walkthroughs

Code/Test

• Languages

• Code Generators

• Report Writers

• Screen Generators

• Structured Programming

• Automated Debuggers

• Inspections & Walkthroughs

System Test

• Automatic Test Management

• Regression Test Management

• Inspections & Walkthroughs

Project Management Issue: Change Control, Management Reviews, Conflict Management, Coaching and Motivation

Analysis

• Individual & Group Interviews

• Facilitated Workshops (Brainstorms)

• JAD - Joint Application Develop

• Structured Analysis

• OO Analysis

• Formal Methods

• Inspections & Walkthroughs

Planning

• Individual & Group Interviews

• Facilitated Workshops (Brainstorms)

• Conceptual Design

• Prototyping

• Risk Analysis

• WBS & Scheduling

• Estimation

• Inspections & Walkthroughs

V & V

Page 23: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 23

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Engineering Practices

Number 1 Practice - Follow the defined software processes Examples of practices:

Weekly Time Reporting Weekly Status Reporting In-process Defect Tracking Post Production Defect Tracking

Page 24: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 24

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Best Practices

“An organized and documented set of principles, methods and processes that increase quality and productivity of software development.”

“An organized and documented set of principles, methods and processes that increase quality and productivity of software development.”

Source: Rational - “Principles of Managing Iterative Development v2.0”

Page 25: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 25

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

Page 26: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 26

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized LevelUnified Development Process Evolved into Rational

Unified Process

Features Based on the Unified Modeling Language Iterative Architecture-centric Use-case driven Risk driven

Basic phases Inception Elaboration Construction Transition

Core workflows Requirements Capture Analysis Design Implementation Test

Page 27: Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level

Copyright 2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 27

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Extreme Programming - Practices

1. The Planning Game - to determine scope

2. Small releases - put into production quickly

3. Metaphor - guides development

4. Simple design - removes extra complexity

5. Testing - continually by programmers and customers

6. Refractoring - to improve the system

7. Pair \programming - to produce all code (artifacts)

8. Collective ownership - anyone can change any code anywhere

9. Continuous integration - build the system many times a day

10. 40-hour Work week - no than 40 per week

11. On-site customer - on the team

12. Coding standards - rules to emphasize communication