Software Development Methodologies. CSC 440: Software Engineering Slide #1

Similar documents
Introduction of RUP - The Rational Unified Process

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Software Process. Overview

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

The good news. 34% of software projects succeed. Standish Group, CHAOS Report, 2003

RIGHTNOW A C E

The Systems Development Lifecycle

Ingegneria del Software Corso di Laurea in Informatica per il Management

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software development activities

Sistemi ICT per il Business Networking

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Software development processes: from the waterfall to the Unified Process

Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Development Process and Analysis. LTOOD/OOAD - Verified Software Systems 1

Software Engineering and Software Engineers

Note 10: Software Process

2009 Spring. Software Modeling & Analysis. - Software Process Model. Lecturer: JUNBEOM YOO

Requirements Engineering and Agile Methodology

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Requirements Engineering

Software development processes: from the waterfall to the Unified Process

Requirements Analysis

Processes and Life- Cycles. Kristian Sandahl

Chapter 3 Prescriptive Process Models

The Software Life Cycle

Requirements Analysis. Overview

Software Engineering

Rational Unified Process (RUP) in e-business Development

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Software Engineering QUESTION BANK

Processes and Life- Cycles. Kristian Sandahl

Requirements Engineering and Software Architecture Project Description

7. Model based software architecture

Software Engineering Modern Approaches

Rational Unified Process

Tuesday, October 25. Announcements

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

[Name] [ ID] [Contact Number]

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Development Process Bennett, McRobb and Farmer 1

Lecture 1: Processes, Requirements, and Use Cases

Software Development Methodologies

Requirements Architecture - Agility

Information Systems Development

Software Life Cycle. Main Topics. Introduction

Object-Oriented Analysis and Design PART1: ANALYSIS

MIS Systems & Infrastructure Lifecycle Management 1. Week 10 March 24, 2016

CSE 435 Software Engineering. Sept 14, 2015

Unified Process. Peter Dolog dolog [at] cs [dot] aau [dot] dk Information Systems March 3, 2008

Requirements Engineering and Software Architecture Project Description

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Inception. Describe the vision and business case for this project. Determine if the enterprise should build or buy the necessary system.

An Overview of Software Process

AGILE methodology- Scrum

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Oracle Unified Method (OUM) The OUM Implement Core Workflow The Key to Understanding and Applying OUM. An Oracle White Paper April 2012

Comp435 Object-Oriented Design. Requirements and Use Cases. Requirements Analysis. Outline. Requirements Analysis. Requirements change

Software Development Methodologies

Software Life Cycles and Configuration Management

COMP 6481 Fall 2006 System Requirement Specifications

Chapter 1 Systems Development in an Organization Context

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

The Unified Software Development Process

Modern Systems Analysis and Design Seventh Edition

Getting Started. Chapter 1

The Software Life Cycle

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Enterprise Portal Modeling Methodologies and Processes

Essentials of IBM Rational Requirements Composer, v3. Module 4: Creating a use-case model

Software Engineering Part 2

An Oracle White Paper February Oracle Unified Method (OUM) Oracle s Full Lifecycle Method for Deploying Oracle-Based Business Solutions

Unified Process and Testing with EasyAccept. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 22, 2007

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Software Engineering. M Umair.

Agile Projects 7. Agile Project Management 21

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

2009 Spring. Software Modeling & Analysis. Introduction to OSP. Lecturer: JUNBEOM YOO

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Building Information Systems

Program Lifecycle Methodology Version 1.7

Rational Software White Paper TP 174

Other Agile Approaches & Methodologies

Software Development

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Authors: M. Raveendran M. Paramesh Honeywell Technology Solutions

MTAT Software Engineering Management

Requirements Use Cases

Chapter 01 - The Process The Process Application Process ACP Qualifications Scheduling Your Exam Rescheduling/Cancelling Fees

Succeed with Agile at Scale

Requirements Engineering. Andreas Zeller Saarland University

Software Engineering. Software development: Process vs agile. with material by Marco Piccioni

Software Modeling & Analysis

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Development Methodologies

Quality Management of Software and Systems

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

Transcription:

Software Development Methodologies CSC 440: Software Engineering Slide #1

Topics 1. The Waterfall Model 2. Agile Software Development 3. The Unified Process 4. Object-Oriented Analysis and Design 5. The Inception Phase CSC 440: Software Engineering Slide #2

Software Life Cycles Waterfall Model Early model of software engineering derived from hardware manufacturing Each stage produces a product, which is consumed by next stage No going backwards CSC 440: Software Engineering Slide #3

Waterfall Model Requirements Design Implementation Testing Maintenance CSC 440: Software Engineering Slide #4

The Waterfall Model, cont d Make sure each phase is 100% complete and absolutely correct before proceeding to the next phase. Big Design Up Front (BDUF) Set requirements in stone before starting the design. Otherwise, you might waste design work on incorrect requirements. Spend extra time at the beginning to make sure that the requirements and design are absolutely correct. Source: Wikipedia article on Waterfall Model 5

Waterfall Model Problems Faulty Assumptions Requirements can be fairly accurate Requirements are stable Design can be done before coding Large steps No feedback Heavy process Many artifacts created to rigidly predict and control software development in a bureaucratic environment CSC 440: Software Engineering Slide #6

Agile Manifesto for Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Source: http://agilemanifesto.org/ 7

Agile Software Development Iterative and incremental development. Each iteration is a mini waterfall : plan (with new requirements) refine design add new code unit and integration testing Requirements Design Iterations are short: weeks rather than months. Iterations are sometimes called sprints. We do sprints, not marathons! Implementation Testing 8

Agile Software Development The initial iteration produces a conceptual design and a prototype. Subsequent iterations refine the design and incrementally build the actual product. Each subsequent iteration may also include a prototype that is quickly produced (rapid prototyping). 9

Agile Software Development, cont d The initial iteration Prototyping and iterative development are the foundation for Rapid Application Development (RAD) tools. Is Ruby on Rails RAD? Agile methodologies range from Extreme Programming (XP) to the Rational Unified Process (RUP). 10

Project Phases, cont d 11

Project Phases, cont d Development is a series of iterations. Each iteration is a mini waterfall consisting of design, code (implementation), and test. Extreme programmers say: design, test, code 12

The Unified Process Iterative and incremental development process Each iteration includes requirements, design, implementation, and test activities Each iteration produces a working partial system Customer feedback on partial system alter requirements, so final system meets customer needs Iterations are timeboxed: 2-8 weeks Address high risk aspects in early iterations Created by Rational Software (now IBM) CSC 440: Software Engineering Slide #13

UP Iterations Requirements Design Implementation & Test & Integration & More Design Time Requirements Design Implementation & Test & Integration & More Design Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1. Final Integration & System Test Final Integration & System Test 4 weeks (for example) Iterations are fixed in length, or timeboxed. The system grows incrementally. CSC 440: Software Engineering Slide #14

UP Schedule and Phases Schedule organized into 4 phases Each phase consists of one or more iterations Phases different from Waterfall Model Phases UP Phases Inception Elaboration Construction Transition CSC 440: Software Engineering Slide #15

UP Schedule development cycle iteration phase inc. elaboration construction transition milestone An iteration endpoint when some significant decision or evaluation occurs. release A stable executable subset of the final product. The end of each iteration is a minor release. increment The difference (delta) between the releases of 2 subsequent iterations. final production release At this point, the system is released for production use. CSC 440: Software Engineering Slide #16

Inception Phase Entry Criteria Need for project: original vision, legacy system, mock-up Activities Formulate scope of project Develop risk mitigation strategy Develop initial project plan with cost/schedule tradeoffs Prepare project environment Exit Criteria Product vision, containing core requirements Success criteria Initial risk assessment Estimate of required resources for elaboration phase CSC 440: Software Engineering Slide #17

Elaboration Phase Entry Criteria Exit criteria artifacts from last iteration Plan approved by project management and funding authority Required resources allocated Activities Define the core architecture Validate the architecture Baseline the architecture, addressing high risk items Refine requirements Exit Criteria Construction Phase plan, with number and contents of each iteration Development environment and tools Domain analysis model Executable architecture baseline CSC 440: Software Engineering Slide #18

Construction Phase Entry Criteria Exit criteria artifacts and products from last iteration Risks being mitigated during this iteration Defects being fixed during this iteration Activities Develop and test software components to satisfy use cases and nonfunctional requirements Manage resources and control process Assess the iteration Exit Criteria Updated versions of artifacts Iterative implementation of remaining lower risk elements Test cases and test results for iteration s products Iteration plan for next iteration Measurable evaluation criteria for assessing next iteration s results CSC 440: Software Engineering Slide #19

Transition Phase Entry Criteria Exit criteria artifacts from last iteration A software product mature enough to beta test Activities Test software product in customer environment Fine tune product based on customer feedback Deliver final product to customer Finalize end-user support documents Exit Criteria Update of previous documents as necessary Post-mortem analysis of project relative to original and revised success criteria CSC 440: Software Engineering Slide #20

UP Disciplines Discipline: set of activities and artifacts in one subject area Requirements: requirements analysis, including writing use cases and identifying non-functional requirements Design: software architecture, responsibility assignment to objects, database design, etc. Implementation: programming and building the system Test: unit tests for individual classes, integration tests for putting classes together, and acceptance tests by customers Environment: setting up tool and process environment for software development CSC 440: Software Engineering Slide #21

Disciplines across Iterations Focus of this book Sample UP Disciplines Business Modeling Requirements Design A four-week iteration (for example). A mini-project that includes work in most disciplines, ending in a stable executable. Note that although an iteration includes work in most disciplines, the relative effort and emphasis change over time. This example is suggestive, not literal. Implementation Test Deployment Configuration & Change Management Project Management Environment Iterations CSC 440: Software Engineering Slide #22

UP Variants Agile Unified Process (AUP) Lightweight variant Succeeded by Disciplined Agile Delivery (DAD) Open Unified Process (OpenUP) Used to develop Eclipse Framework Oracle Unified Method (OUM) Oracle development process Rational Unified Process (RUP) IBM/Rational software development process CSC 440: Software Engineering Slide #23

Object-Oriented Analysis & Design Analysis Investigation of the problem and requirements, with an emphasis on finding and describing the objects (or concepts) in the problem domain ex: a library information system would include domain objects like Book, Library, or Patron Design Creating a conceptual solution that fulfills the requirements by defining software objects and how they collaborate to fulfill the requirements ex: the Book object may have a title attribute and getchapter method CSC 440: Software Engineering Slide #24

Object-Oriented Analysis & Design Requirements Analysis Before OOA/D, write use cases to capture requirements Assigning Responsibilities The most important skill in OOA/D is assigning responsibilities to objects Design Patterns Named problem-solution formulas that codify best practices for object-oriented design UML Standard diagramming notation used to visually represent objects and their interactions CSC 440: Software Engineering Slide #25

OOA/D Example: Dice Game Dice Game Example Player rolls two dice If total is 7, player wins Otherwise, player loses CSC 440: Software Engineering Slide #26

Use Cases Use Case: Play a Dice Game A player picks up and rolls two dice. If the dice face value total is 7, player wins. Otherwise, player loses. CSC 440: Software Engineering Slide #27

Domain Model OO Analysis Create description of problem domain in terms of classifications of objects Identify important concepts, attributes, and associations P la y e r n a m e 1 P la y s 1 D ic e G a m e 1 1 R o lls 2 D ie fa c e V a lu e 2 In c lu d e s CSC 440: Software Engineering Slide #28

Interaction Diagram OO Design Defining software objects and their collaborations Note that while in the real world a Player rolls the dice, in the design, the DiceGame object rolls the dice by sending messages to Die objects Object design is not generally a direct model of the real world :D ic e G a m e d ie 1 : D ie p la y () ro ll( ) fv 1 := g e tf a c e V a lu e () ro ll( ) fv 2 := g e tf a c e V a lu e () d ie 2 : D ie CSC 440: Software Engineering Slide #29

Design Class Diagram Interaction diagram provides a dynamic view of collaborating objects D ic e G a m e D ie Design class diagram provides a static view d ie 1 : D ie d ie 2 : D ie p la y () 1 2 fa c e V a lu e : in t g e tf a c e V a lu e () : in t ro ll() Attributes Methods Containment CSC 440: Software Engineering Slide #30

Architectural Layers Interface minor focus explore how to connect to other layers application logic and domain object layer Sale Payment primary focus of case study explore how to design objects technical services layer Log PersistenceFacade secondary focus explore how to design objects CSC 440: Software Engineering Slide #31

Iterative Learning & Development Book organized in three iterations. Each iteration delivers a product to the customer. First iteration has core features. Second and third elaborate. Each iteration of book introduces analysis and design skills relevant to current iteration of software product CSC 440: Software Engineering Slide #32

Inception Phase Problem: Do the stakeholders have basic agreement on the vision of the project, and is it worth investing in serious investigation? Envision product scope, vision, and business case. CSC 440: Software Engineering Slide #33

Inception Phase Brief: few weeks at most High level: order of magnitude estimates Artifacts Vision Use Case Model Supplementary Specification Glossary Risk Plan Prototypes Iteration Plan CSC 440: Software Engineering Slide #34

Vision Describes the high level goals and constraints from stakeholder s point of view, focusing on key stakeholder needs. Describe the problem to be solved. Identify stakeholders and what they need. Describe what the system does. Describe major features. Note major non-functional requirements. State any design constraints. CSC 440: Software Engineering Slide #35

Use Case Model Describes the functional requirements Functional requirements provide features to user Inception Phase To Do Preliminary Use Case Model consisting of: Names of use cases Names of actors ~10% of named use cases are detailed CSC 440: Software Engineering Slide #36

Supplementary Specification Describes non-functional requirements that do not appear in the Use Case model Non-functional requirements don t provide features Examples: performance, reliability, security Inception Phase To Do High level supplementary specification CSC 440: Software Engineering Slide #37

Glossary Defines key domain terms Aliases Descriptions or definitions Relationships to other terms Units, data type, or other format information Range of values Validation rules Inception Phase To Do Define key terms, like UPC for POS example CSC 440: Software Engineering Slide #38

Risk Plan List of known and expected risks Business Technical Resource Schedule Ideas for mitigation or response to each risk CSC 440: Software Engineering Slide #39

Prototypes Develop prototypes to clarify vision User-interface prototypes Technical tests to assess risks Inception Phase: TBD CSC 440: Software Engineering Slide #40

Iteration Plan Plan activities for first iteration of Elaboration Phase. CSC 440: Software Engineering Slide #41

UP Requirement Artifacts Functional Vision Use Cases Non-functional Supplementary Specification Glossary CSC 440: Software Engineering Slide #42

Key Points 1. Software development methodologies: waterfall vs agile. 2. The RUP is an agile, iterative process for developing software products. 3. Write use cases to capture requirements. 4. The most important skill in OOA/D is assigning responsibilities to objects 5. Design patterns are named problem-solution formulas that codify best practices for object-oriented design 6. UML is the standard visual notation for object modeling. 7. Inception Phase activities for your project. CSC 440: Software Engineering Slide #43

Acknowledgements Some slides in this presentation are adapted from slides created by Professor Ron Mak at SJSU. CSC 440: Software Engineering Slide #44