Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level."— Presentation transcript:

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 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: dribin@cs.depaul.edu Copyright  2001 - Larry Dribin, Ph.D. - v1 09-09-01

2 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 2 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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)

3 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 3 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Think 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.

4 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 4 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

5 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 5 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

6 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 6 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

7 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 7 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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!

8 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 8 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

9 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 9 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

10 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 10 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

11 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 11 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Generic Process Model performance measurement performance measurement process roles & skills roles & skills customer IT supplier

12 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 12 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

13 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 13 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Each level of the Capability Maturity Model is made up of a number of Key Process Areas Level 1 Initial - 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 3 Defined 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.

14 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 14 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.

15 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 15 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Software Engineering Processes (Based on CMM SW ) 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 Project Evaluation & Prioritization (Work Request) Technology Organization Technology Strategy Organization Process Function IT Value Chain

16 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 16 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s Key Software Workflows (Processes)

17 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 17 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

18 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 18 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Waterfall model

19 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 19 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

20 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 20 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative - Evolutionary Life Cycle

21 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 21 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.

22 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 22 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

23 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 23 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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

24 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 24 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.” Source: Rational - “Principles of Managing Iterative Development v2.0”

25 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 25 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices

26 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 26 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Unified 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

27 Copyright  2001 - Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 27 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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


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

Similar presentations


Ads by Google