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

Slides:



Advertisements
Similar presentations
Lecture # 2 : Process Models
Advertisements

CS487 Software Engineering Omar Aldawud
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
CS3773 Software Engineering Lecture 01 Introduction.
Ch 3 System Development Environment
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Chapter 2 The Software Process
Alternate Software Development Methodologies
Software Life Cycles ECE 417/617: Elements of Software Engineering
Software Development Process Models. The Waterfall Development Model.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Copyright  Larry Dribin, Ph.D. SE470_OtherSEProc_v1_1.pp SE470 Other SE Processes - 1 Excellence in Software Engineering Repeatable Level Defined.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Capability Maturity Model (CMM) in SW design
Copyright  Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
SE470 - Rational Unified Process Overview
Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1 Excellence in Software Engineering Repeatable Level Defined.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapter 1 The Systems Development Environment
Capability Maturity Model
Chapter 1 The Systems Development Environment
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
CIS 321—IS Analysis & Design
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Chapter 1 The Systems Development Environment
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
N By: Md Rezaul Huda Reza n
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
CS Process Improvement CMM Hans Van Vliet, Software Engineering, Principles and Practice, 3 rd edition, John Wiley & Sons, Chapter 6. W. Humphrey,
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapter 4 프로세스 모델 Process Models
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The principles of an object oriented software development process Week 04 1.
The Systems Development Environment Systems Analysis and Design II.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Model Process
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Advanced Software Engineering Dr. Cheng
Software Development.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
School of Business Administration
CS4311 Spring 2011 Process Improvement Dr
Software Engineering and Best Practices
Information Technology Project Management – Fifth Edition
Introduction to Software Engineering
Software Engineering I
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Copyright  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) Fax: (847) Copyright  Larry Dribin, Ph.D. - v

Copyright  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)

Copyright  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.

Copyright  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

Copyright  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

Copyright  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

Copyright  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!

Copyright  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

Copyright  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

Copyright  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

Copyright  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

Copyright  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

Copyright  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.

Copyright  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,  Ron Radice, A Programming Process Study, IBM,  W. Edwards Deming, Out of Crisis,  Joseph Juran, Juran on Planning for Quality, 1988.

Copyright  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

Copyright  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)

Copyright  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

Copyright  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

Copyright  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

Copyright  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

Copyright  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.

Copyright  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

Copyright  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

Copyright  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”

Copyright  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

Copyright  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

Copyright  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 hour Work week - no than 40 per week 11. On-site customer - on the team 12. Coding standards - rules to emphasize communication