Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.