Скачать презентацию Excellence in Software Engineering Optimized Level Manage d Скачать презентацию Excellence in Software Engineering Optimized Level Manage d

b6d15223247180146f2f5e10c5b38ab3.ppt

  • Количество слайдов: 27

Excellence in Software Engineering Optimized Level Manage d Level Defined Level SE 470 Overview Excellence in Software Engineering Optimized Level Manage d Level Defined Level SE 470 Overview Repeatable Level Initial Level Excellence in Software Engineering Optimized Level Managed Level Defined Level Repeatable Level Initial Level Larry Dribin, Ph. D. - De. Paul University Phone: (847)807 -7390 - Fax: (847)459 -1650 Email: dribin@cs. depaul. edu Copyright Ó 2001 - Larry Dribin, Ph. D. - v 1 09 -09 -01 Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 1

Excellence in Software Engineering Optimized Level Manage d Level Defined Level SE 470 Objective Excellence in Software Engineering Optimized Level Manage d Level Defined Level SE 470 Objective Repeatable Level Initial Level · 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. SE 470_Overview_v 1. ppt SE 470 OV - 2

Excellence in Think to yourself how many of the projects you have worked were Excellence in Think to yourself how many of the projects you have worked were are: Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level On Time? On Budget? High Quality? Þ The typical answers are: Þ Late Þ Over Budget Þ Low Quality The Bottom Line: Our Customers are upset with us. Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 3

Excellence in The Result is Often Referred to as the Software Crisis · · Excellence in The Result is Often Referred to as the Software Crisis · · · Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level 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. SE 470_Overview_v 1. ppt SE 470 OV - 4

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Why is This? Excellence in Software Engineering Optimized Level Manage d Level Defined Level Why is This? · · · · Repeatable Level Initial Level 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. SE 470_Overview_v 1. ppt SE 470 OV - 5

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Symptoms and Root Excellence in Software Engineering Optimized Level Manage d Level Defined 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 Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt Repeatable Level Initial Level 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 SE 470 OV - 6

Excellence in Software Engineering Optimized Level Manage d Level Defined Level What can we Excellence in Software Engineering Optimized Level Manage d Level Defined Level What can we do about it? Repeatable Level Initial Level Use Good Software Engineering Practices (GSEP) to minimize these problems! That is why you are here! Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 7

Excellence in Software Engineering Optimized Level Manage d Level Defined Level What is Software Excellence in Software Engineering Optimized Level Manage d Level Defined Level What is Software Engineering? Repeatable Level Initial Level 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. SE 470_Overview_v 1. ppt SE 470 OV - 8

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Framework Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Framework · · Repeatable Level Initial Level 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. SE 470_Overview_v 1. ppt SE 470 OV - 9

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Processes Definitions Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Processes Definitions Repeatable Level Initial Level · 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. SE 470_Overview_v 1. ppt SE 470 OV - 10

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Generic Process Model Excellence in Software Engineering Optimized Level Manage d Level Defined Level Generic Process Model Repeatable Level Initial Level performance measurement customer process supplier roles & skills Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt IT SE 470 OV - 11

Software Engineering Institute’s Process Model: Capability Maturity Model for Software Excellence in Software Engineering Software Engineering Institute’s Process Model: Capability Maturity Model for Software Excellence in Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level Software Engineering Optimizing Level Managed Level Defined Level Repeatable Level Initial Level Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 12

Each level of the Capability Maturity Model is made up of a number of Each level of the Capability Maturity Model is made up of a number of Key Process Areas Organizations operating at CMM Level 2 use professional software engineering practices to manage software projects. Level 3 Defined Level 2 Repeatable Level 1 Initial Copyright Level 5 Optimized Excellence in Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level - Technology Innovation - Defect Prevention. - Process Change Management. Level 4 Managed - Process Measurement and Analysis. - Quality Management. - Process Definition. - Process Group. - Training Program. - Peer Reviews. - Integrated Management. - Inter-group Coordination. - Software Product Engineering. - Requirements Management. - Software Quality Assurance. - Software Project Planning. - Configuration Management. - Software Project Tracking. - Subcontractor Management. Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 13

Excellence in SEI’s CMM is Based on Basic Principles for Software Process Improvement · Excellence in SEI’s CMM is Based on Basic Principles for Software Process Improvement · · · Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level 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. SE 470_Overview_v 1. ppt SE 470 OV - 14

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Processes Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Processes (Based on CMMSW) Repeatable Level Initial Level IT Value Chain Needs • Project Evaluation & Prioritization (Work Request) Analysis • Requirements Management • Software Product Engineering Design • Software Product Engineering Build • Software Product Engineering Operate • Systems Management • Call Management • Tech. Support & Maintenance Organization Process Function Performance Measurement Configuration Management & Documentation Standards Quality Assurance Subcontractor Management Project Planning Project Tracking & Oversight Technology Organization Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt Technology Strategy SE 470 OV - 15

Excellence in Rational’s Key Software Workflows (Processes) Copyright Ó 2001 - Larry Dribin, Ph. Excellence in Rational’s Key Software Workflows (Processes) Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level SE 470 OV - 16

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Development Life Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Development Life Cycles Repeatable Level Initial Level · 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. SE 470_Overview_v 1. ppt SE 470 OV - 17

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Waterfall model Copyright Excellence in Software Engineering Optimized Level Manage d Level Defined Level Waterfall model Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt Repeatable Level Initial Level SE 470 OV - 18

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Issues with the Excellence in Software Engineering Optimized Level Manage d Level Defined Level Issues with the Waterfall Life Cycle Repeatable Level Initial Level · 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 Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 19

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iterative - Evolutionary Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iterative - Evolutionary Life Cycle Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt Repeatable Level Initial Level SE 470 OV - 20

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iterative Life Cycles Excellence in Software Engineering Optimized Level Manage d Level Defined Level Iterative Life Cycles Also Have Issues Repeatable Level Initial Level · 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. Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 21

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Techniques Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Techniques Planning Analysis • Individual & Group Interviews • Structured Design • Facilitated Workshops (Brainstorms) • OO Design • Conceptual Design • JAD - Joint Application Develop • Prototyping • Risk Analysis • Structured Analysis • WBS & Scheduling • OO Analysis • Estimation V & V • Inspections & Walkthroughs Design • Architectural Design: • Module & API Design • User Interface Design Repeatable Level Initial Level Code/Test • Languages • Code Generators • Report Writers System Test • Automatic Test Management • Regression Test Management • Screen Generators • Structured Programming • Reuse Library • Automated Debuggers • Inspections & Walkthroughs • Formal Methods • Inspections & Walkthroughs Project Management Issue: Change Control, Management Reviews, Conflict Management, Coaching and Motivation Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 22

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Practices Excellence in Software Engineering Optimized Level Manage d Level Defined Level Software Engineering Practices Repeatable Level Initial Level · 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. SE 470_Overview_v 1. ppt SE 470 OV - 23

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Best Practices Repeatable Excellence in Software Engineering Optimized Level Manage d Level Defined Level Best Practices Repeatable Level Initial Level “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 v 2. 0” Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 24

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Rational’s View of Excellence in Software Engineering Optimized Level Manage d Level Defined Level Rational’s View of Best Practices Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt Repeatable Level Initial Level SE 470 OV - 25

Excellence in Unified Development Process Evolved into Rational Unified Process Software Engineering Optimized Level Excellence in Unified Development Process Evolved into Rational Unified Process Software Engineering Optimized Level Manage d Level Defined Level Repeatable Level Initial Level · Features Þ Þ Þ Based on the Unified Modeling Language Iterative Architecture-centric Use-case driven Risk driven · Basic phases Þ Þ Inception Elaboration Construction Transition · Core workflows Þ Þ Þ Copyright Requirements Capture Analysis Design Implementation Test Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 26

Excellence in Software Engineering Optimized Level Manage d Level Defined Level Extreme Programming - Excellence in Software Engineering Optimized Level Manage d Level Defined Level Extreme Programming - Practices Repeatable Level Initial Level 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 Copyright Ó 2001 - Larry Dribin, Ph. D. SE 470_Overview_v 1. ppt SE 470 OV - 27