View
216
Download
0
Tags:
Embed Size (px)
Citation preview
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
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)
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.
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
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
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
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!
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
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
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
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
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
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.
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.
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
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)
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
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
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
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
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.
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
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
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”
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
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
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