SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Prescriptive Process models
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life-Cycle Models
Lecture # 2 : Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
CS487 Software Engineering Omar Aldawud
Software Process Models
Slide 1 INTRODUCTION Chapter 1. Slide 2 Key Ideas The primarily goal of a system is to create value for the organization. Many failed systems were abandoned.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
PRO2 - 1 Introduction to the Personal Software Process SWENET PRO2 Module Developed with support from the National Science Foundation.
Software Life Cycles ECE 417/617: Elements of Software Engineering
 The Rise of Computer Science ◦ Machine Language (1 st Gen) ◦ Assembly Language (2 nd Gen) ◦ Third Generation Languages (FORTRAN, BASIC, Java, C++, etc.)
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Chapter 6 Prototyping, RAD, and Extreme Programming
Slide 1 INTRODUCTION Chapter 1. Slide 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
COMP 350: Object Oriented Analysis and Design Lecture 2
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
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.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 2 The process Process, Methods, and Tools
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Current Trends in Systems Develpment
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.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Lecture 1 Introduction to Software Engineering
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 4 프로세스 모델 Process Models
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Lecture 3 – Agile Approach
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Teaching slides Chapter 2. Chapter 2 Software Engineering Methodologies Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified.
2 Systems Analysis – ITEC 3155 Systems Analysis Tasks.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
Systems Development Life Cycle
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Advanced Software Engineering Dr. Cheng
Software Development - Methodologies
Software Development.
School of Business Administration
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Chapter 2 Process Models
Topic 1: Introduction to the Module and an Overview of Agile
Presentation transcript:

SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation

SWENET SEP1 - 2 Overview Software Development Models Software Processes CMM-type Processes Agile Processes Process Exercise References

SWENET SEP1 - 3 Software Development Models Over the years, various models have emerged to support the development of software products. The models address the following life-cycle activities: –requirements analysis and specification –design –construction –testing –operation and maintenance

SWENET SEP1 - 4 Waterfall Development Model - 1 The Waterfall life cycle model emphasizes that software is developed in sequential phases (e.g., analysis, design, code, etc.) with established milestones, documents, and reviews at the end of each phase. In the pure waterfall there is no overlap of phases; however, in refinement of the model, “feedback loops” are introduced to allow return to previous phases (e.g., design analysis leads back to modification of the requirements)

SWENET SEP1 - 5 Waterfall Development Model - 2 requirements analysis & design construction testing operation & maintenance specification

SWENET SEP1 - 6 Spiral Development Model -1 The Spiral Lifecycle (diagrammed on the next slide as a sequence of cycles) combines elements of the waterfall lifecycle model, along with an emphasis on the use of risk management techniques. Each cycle includes the following phases: Determine goals, alternatives,constraints; risk analysis; prototype development; product development and verification; and planning for next phase.

SWENET SEP1 - 7 Spiral Development Model - 2 Need Statement Risk Analysis Prototype Software Requirements Development Plan Budget Risk Analysis Budget Prototype Software Design Verified Requirements System Test Plan Verified Design Integration Plan Budget Alternatives Constraints Risk Analysis Prototype Unit Construction Integration System Test Alternatives Constraints Alternatives Constraints Alternatives Constraints

SWENET SEP1 - 8 Incremental Development Model - 1 For the Incremental Model an overall architecture of the total system is developed first and the detailed increments and releases are planned. Each increment has its own complete lifecycle. The increments may be built serially or in parallel depending on the nature of the dependencies among releases and on availability of resources. Each increment adds additional or improved functionality to the system.

SWENET SEP1 - 9 Incremental Development Model - 2 1st increment 2nd increment 3rd increment

SWENET SEP Software Processes - 1 A process is a series of steps involving activities, constraints and resources that produce an intended output of some kind. A software process (or a software engineering process) guides and supports the development of a software product. In the last decade there has been a great of deal of resources devoted to the definition, implementation, and improvement of software development processes. The list of references at the end of this presentation refer to papers that provide background and discussion for further study of software process features and issues.

SWENET SEP Software Processes - 2 A “defined” software process would have a documented description of its features which would typically include the following: –scripts that define the process steps –standards and procedures for carrying our process steps –forms and templates for collecting process data and documenting process outcomes

SWENET SEP A Process Framework In the late 1980s, the Software Engineering Institute (SEI), Carnegie Mellon University, developed the SW- CMM (Software Capability Maturity Model) to help organizations build effective software engineering processes [6]. It has been widely adopted in industry, primarily by large software development organizations. The next slide describes the five-level model encompassing good engineering and management practices. Many software development organizations have been assessed using the SW-CMM framework. Results of such assessments are shown in a later slide.

SWENET SEP SW-CMM Level Description

SWENET SEP SW-CMM Assessment % of Organizations Based on most recent CMM assessments of 1158 organizations – March % 39.9% 23.8% 6.0%5.5% 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% ML1ML2ML3ML4ML5

SWENET SEP A Simple Software Process The Personal Software Process (PSP SM ) is software process developed at the SEI to address some of the SW-CMM practices at the level of the individual programmer [3]. PSP0 is the simplest version of PSP. –It has three phases: planning, development and postmortem. –The development phase has four sub-phases: design, code, compile, and test. –There are process scripts that describe what happens in each phase. –There are logs and a summary sheet for collecting and analyzing data. –The next two slides provide a graphic that depicts the PSP0 process elements and an example of a process script. What kind of software development model does the PSP use? SM Perosnal Software Process and PSP are service marks of Carnegie Mellon University.

SWENET SEP The PSP0 Process Flow PSP0 Process Finished product Development Planning Postmortem Design Code Compile Test Requirements Plan summary Process scripts Time and defect logs

SWENET SEP PSP0 Process Script

SWENET SEP A Team Software Process The SEI also developed a Team Software Process (TSP) that includes most of the key process areas of the SW-CMM [7]. Software is developed in multiple cycles with each cycle made of multiple phases. An academic version of the TSP consist of three cycles with teams consisting of five members, each with a well defined role: a team leader, a development manager, a planning manager, a quality/process manager and a support manager.

SWENET SEP TSP Structure

SWENET SEP Agile Processes Some have criticized highly-structured processes (such as those based on a CMM framework) as unresponsive to change during a development cycle (e.g., change in requirements or change in technology). So-called “agile methods” have been developed to address this criticism and reduce the cost of change throughout a project. Agile developers advocate the following [5]: –individual and interactions over processes and tools –working software over comprehensive software documentation –customer collaboration over contract negotiation –responding to change over following a plan One of the most widely practiced agile methodologies is Extreme Programming (XP).

SWENET SEP Extreme Programming XP is designed for work in small to medium teams (less than 10 members), building software with vague or rapidly changing requirements. The XP life cycle has four basic activities [6]: –continual communication with the customer and within the team –simplicity, achieved by a constant focus on minimalist solutions –rapid feedback through unit and functional testing –emphasis on dealing with problems proactively

SWENET SEP XP Practices XP typically consists of 12 practices [6]. Here are a few: –Small Releases: Put s simple system into production quickly. Release new version on a very short (2 week) cycle. –Simple Design: Design as simply as possible at any given moment. –Testing: Developers continually write unit tests that must run flawlessly. –Pair Programming: All production code is written by two programmers at one machine. –40-hour weeks: Work no more than 40 hours per week whenever possible. –On-site Customer: Have a customer on the team full-time to answer questions. –Coding Standards: Have rules that emphasize communication throughout the code.

SWENET SEP Process Exercise The exercise booklet for this module includes reading and discussion about software processes. The exercise also includes a problem where you define a process for carrying out some familiar activity. After you complete the exercise, we will discuss it in class.

SWENET SEP References