Lecture 2 Revision of Models of a Software Process

Slides:



Advertisements
Similar presentations
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Advertisements

SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
SDLC – Beyond the Waterfall
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
CS487 Software Engineering Omar Aldawud
The Software Process ECE 417/617: Elements of Software Engineering
CHAPTER TWO Object Oriented System Analysis and Design 1.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Life Cycles ECE 417/617: Elements of Software Engineering
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
COMP 350: Object Oriented Analysis and Design Lecture 2
CHAPTER 17 Building Software to Support an Agile Organization
An Agile View of Process
Software engineering Process models Pavel Agejkin.
Software Development Process
1 CMPT 275 Software Engineering Software life cycle.
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
CPSC 371 John D. McGregor Session 22 Process. Specification and design problem solution specification implementation specification.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Successful IT Projects By Darren Dalcher & Lindsey Brodie
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Software Engineering cosc 4359 Spring 2017.
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Development - Methodologies
TK2023 Object-Oriented Software Engineering
Software Development.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Development methodologies
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Life Cycle “What happens in the ‘life’ of software”
CS 425/625 Software Engineering Software Processes
Software Process Models
Approaches to Systems Development
Software Processes.
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 Software Processes
Chapter 2 – Software Processes
Agile Process: Overview
Chapt 2 Iterative Evolutionary Agile.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Software Processes.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Project Lifecycle and IT Product Life Cycle
Topic 1: Introduction to the Module and an Overview of Agile
Chapter 5: New and Emerging Process Methodologies
System Development Methods
Presentation transcript:

Lecture 2 Revision of Models of a Software Process The University of Western Australia School of Computer Science and Software Engineering CITS5502 Software Processes Lecture 2 Revision of Models of a Software Process

Key concepts Types of Software Processes Significant shifts in Software Development Use of Paradigms, Models, Methods/Methodologies Twelve activities in every software project Life Cycle Paradigm, Cascade, Waterfall or phased model Phased approach with specific entry/exit criteria Prototyping Paradigm with advantages and problems RAD and Stepwise Refinement models Barry Boehm’s Model for Prototype Development Object Oriented Approaches Rational Unified Process (RUP) Development as a Maintenance Process – Incremental methods Agile Paradigm and Manifesto Tom Gilb’s Evolutionary Paradigm UWA, School of CSSE

Levels of Abstraction Estimates Models Methodologies Paradigms Plans Controls (Provides framework of concepts) e.g., Life Cycle, Prototyping A & B, Evolutionary (Provides activities and decision points) e.g., Waterfall, Spiral, Increment (Provides organization specific details) e.g., in-house or purchased (Provides project specifics) (Theoretical) (Practical) You can interpret 𝐴→𝐵 as “A derives B” or “B is derived from A”. e.g., Models are derived from Paradigms. Plans requires Estimates (e.g., estimates on the budget). It is impossible to get Estimates unless you have Methodologies. Certain organizations have ethos & this would reflect in their Methodologies. UWA, School of CSSE

The 12 Activities in every software project Feasibility and Initial Planning A Analysis of Requirements E Education and Tool Assembly U User Training I Integration of Modules and Implementation D Design (Detailed) C Code and Test Individual Modules S Support for Customer in Initial Use M Manuals and First Prototype with Screen Mockups T Testing to Appropriate Level T. Woodnings – 1 October 1988 P Promotion of Product R Review after short Period of Use UWA, School of CSSE

Waterfall or phased model Question: Can you think of any suitable entry and exit criteria for each phase of the waterfall model? UWA, School of CSSE

Prototyping Paradigm A prototype typically simulates only a few aspects of, and may be completely different from, the final product In this paradigm, the emphasis is on creating prototypes to get valuable feedback from the user earlier in the project let the client compare if the software matches the specification UWA, School of CSSE

Spiral Model of the Software Process In the Spiral model, emphasis is on building prototypes and risk analysis. Checkpoints to decide “go” or “not go” UWA, School of CSSE

Rapid Application Development (RAD) model Use minimal planning in favour of rapid prototyping. UWA, School of CSSE

Rational Unified Process (RUP) Model This is an iterative software development process framework created by Rational Software Corporation (part of IBM) in 2003. It is intended to help software teams to select elements of the process that are appropriate to their needs. RUP is based on a set of building blocks and content elements, describing what is to be produced, the skills required, and explanation about how specific development goals are to be achieved. UWA, School of CSSE

Incremental Methods This is a software development method where the product is designed, implemented, and tested incrementally. There are some variants of incremental development, including: The methods may involve a series of mini-waterfalls being performed. The initial software concept, requirements analysis, and design of architecture and system core may be defined using the waterfall model, but the implementation and product delivery are done incrementally. UWA, School of CSSE

The Agile Paradigm and Manifesto Individual and Interactions over Processes and Tools Working Product Comprehensive Documentation Customer Contract Negotiation Responding to change Following a plan That is, while there is value in the items on the right, under the Agile paradigm, items on the left are valued more. UWA, School of CSSE

Some Agile Software Development Models Scrum Extreme programming (XP) Feature-driven development (FDD) Test-driven development (TDD) Kanban Adaptive software development (ASD) Lean software development Rapid application development (RAD) Exercises: Research for more detail on some of these models yourself. UWA, School of CSSE

Gilb’s Evolutionary Paradigm The 10 basic principles of the Evolutionary Project Management method are: E1: Decompose by performance results and stakeholders E2: Do high-risk steps early, learn how ‘unknowns’ really perform; E3: focus on improving your most valuable performance objectives first; E4: Base your early evolution on existing frameworks and stakeholders; E5: design to cost dynamically; UWA, School of CSSE

Gilb’s Evolutionary Paradigm The 10 basic principles of the Evolutionary Project Management method are: E6: design to performances dynamically; E7: invest in an open-ended architecture early on; E8: Motivate your team by rewarding results; E9: Prioritize changes by value, not place in queue; E10: Learn fast, change fast, adapt to reality fast. UWA, School of CSSE

Recommended Reading Royce: Chapter 5 “Life-Cycle Phases” Wysocki: Chapter 2 “SDPM Roadmap” Pressman: Sections on “The Linear Sequential Model” and “The Prototype Modell” Sommerville: Sections on “Boehm’s Spiral Model”, “Process Iteration” Evolutionary paradigm: http://concepts.gilb.com/dl59 Agile software development: https://en.wikipedia.org/wiki/Agile_software_developm ent UWA, School of CSSE