Software Development Processes

Slides:



Advertisements
Similar presentations
Ch 3: Unified Process CSCI 4320: Software Engineering.
Advertisements

Systems Analysis and Design in a Changing World, 6th Edition
CS487 Software Engineering Omar Aldawud
Ch 3 System Development Environment
Requirements Analysis SDM b518.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Systems Development.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
03/12/2001 © Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Requirements Analysis Classes & Associations b510.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis.
COMP1007 Intro to Systems Requirements © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to Systems Requirements Lecture 4 Identifying.
Rational Worldwide Software Symposium
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
03/12/2001 © Bennett, McRobb and Farmer Development Process Based on Chapter 5 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
Iterative development and The Unified process
Systems Analysis and Design in a Changing World, Fifth Edition
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
1 © Bennett, McRobb and Farmer 2002, and De Montfort University 2002 Systems Development Methodologies Based on Chapter 22 of Bennett, McRobb and Farmer:
Object Oriented Analysis and Design Using the UML
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Principles of Object Technology Module 1: Principles of Modeling.
Refining the Requirements Model
Chapter 2: Approaches to System Development
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML - Development Process 1 Software Development Process Using UML (2)
IS0514 Lecture - Week 2 Best Practice Development Methodology.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM.
RUP Implementation and Testing
Chapter 1: Introduction to Systems Analysis and Design
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Unified Modeling Language, Version 2.0
Systems Analysis and Design in a Changing World, 3rd Edition
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
03/12/2001 © Bennett, McRobb and Farmer 2005 Refining the Requirements Model Based on Chapter 8 of Bennett, McRobb and Farmer: Object Oriented Systems.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
© 2010 Bennett, McRobb and Farmer1 Development Process Based on Chapter 5 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
The principles of an object oriented software development process Week 04 1.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
1 Unified Modeling Language, Version 2.0 Chapter 2.
© Bennett, McRobb and Farmer 2005
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
28 June 2000P. Mato, CERN1 Software Checklist Proposal for controlling and documenting all the steps in developing software Program of Work Meeting, June.
Basic Characteristics of Object-Oriented Systems
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Development Process Based on Chapter 5 Bennett, McRobb and Farmer
Chapter 1: Introduction to Systems Analysis and Design
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Modelling Concepts Based on Chapter 5 Bennett, McRobb and Farmer
Systems Analysis and Design With UML 2
Object Oriented Analysis and Design
Introduction to UML.
Software engineering -1
Refining the Requirements Model
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design Using UML, (4th Edition), McGraw Hill, 2010. © 2010 Bennett, McRobb and Farmer

In This Lecture You Will Learn: What a software development process is, and how this relates to method and methodology Why methodologies are used Some characteristics of the Unified Software Development Process Some issues in choosing a methodology For reasons of time and space, this presentation does not cover some later parts of Chapter 22. In particular: Participative Design Hard and Soft Methodologies Issues in choosing a methodology …are not discussed. © 2010 Bennett, McRobb and Farmer

Process, Method and Methodology Process or method refers to the tasks carried out during a project Methodology refers to the general framework and principles used to organise the tasks Some authors use method to mean methodology Some authors use process for both! © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Why Methodology? Techniques of system development must be organized if they are to work together Analyst has drawn collaboration diagrams for main use cases Should she now convert these to sequence diagrams and write operation specifications? Or concentrate on class diagram, inheritance and composition structures? UML itself contains nothing that helps to make this decision © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Why Methodology? Organization of tasks is not contained within the techniques Must be described at a higher level of abstraction Method or process of a project is the particular way that tasks in that project are organized Methodology is more abstract still: a meta-process that can be applied to many projects A methodology is instantiated on a project © 2010 Bennett, McRobb and Farmer

Process, Method or Methodology? Often confused, as if they were all the same thing, but actually these terms differ Method/Process = step-by-step description of the steps involved in doing a particular job No two projects are ever identical, so method is specific to one project Methodology = set of general principles that guide the choice of a method suited to a specific task or project © 2010 Bennett, McRobb and Farmer

Method/Process vs. Methodology Level of abstraction Typical product Task Specific version of a class diagram Technique Any UML class diagram Method/Process A product costing system Methodology Example of application Developing a first-cut class diagram Description of how to carry out a technique, e.g. UML class modelling Specific techniques used on a particular project that lead to a specific software product General selection and sequence of techniques capable of producing a range of software products A range of business software applications © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer What Is a Methodology? Avison and Fitzgerald (2002): a collection of Procedures Techniques Tools Documentation aids Organised within a lifecycle structure (or process) Usually also an underlying philosophy that captures a particular view of the meaning and purpose of IS development © 2010 Bennett, McRobb and Farmer

Elements of a Methodology Technique: the UML class diagram Tool: Rational Rose (CASE software) Procedure: Find classes by inspecting use case descriptions Structure: Operation specifications should not be written until class model is stable (also the stages) Stages: Inception, Elaboration, Construction… Activities: Requirements, Analysis, Design… Philosophy: OO development promotes software which is robust and resilient to change © 2010 Bennett, McRobb and Farmer

Methodology Metamodel The OMG has defined a metamodel for software development methodologies Software Process Engineering Metamodel (SPEM) uses UML notation for: Roles (e.g. class designer) Activities (e.g. design) Products (e.g. design class model) Phases (e.g. construction) The ultimate aim is to define a process with sufficient rigour that much of it can be automated © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Why Use a Methodology? Many advantages claimed Helps produce better quality product Better documented software More acceptable to user More maintainable software More consistent software Helps ensure user requirements are met Helps project manager control the project Reduces development costs Promotes communication among all parties © 2010 Bennett, McRobb and Farmer

Unified Software Development Process (USDP) Public domain methodology for Object-Oriented software development Originally produced by Rational team Now largely superseded by Rational Unified Process (similar in their main aspects) Main principles: Use-case driven Architecture-centric Iterative development Incremental development © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Use-Case Driven In USDP the basic element is a single interaction between user and system Use cases are the start of modelling Unit from which later models are derived Each use case is a thread that links requirements to implementation Has practical significance for users Constant reminder to systems developers that only users’ requirements really matter © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Use Case-Driven 1 Accountant Add new staff © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Use Case-Driven 2 :AddNewStaffUI :AddNewStaff :Staff createStaff ( ) Staff ( ) Accountant © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Use Case-Driven 3 staffName staffNo staffStartDate assignNewStaffGrade() assignStaffContact() Staff Member © 2010 Bennett, McRobb and Farmer

Architecture-Centric In USDP, software architecture is a theme from the earliest stages of a project Reflected most obviously in: Stereotyping of boundary, control and entity classes Use of packages to organize both models and development activity © 2010 Bennett, McRobb and Farmer

Architecture-centric Control Analysis Package User Interface Management Campaign Staff © 2010 Bennett, McRobb and Farmer

Iterative Development The USDP lifecycle is cyclic: Analyse a bit Design that bit Code the design Test the code Refine the analysis and repeat © 2010 Bennett, McRobb and Farmer

Incremental Development USDP aims to deliver working, free-standing, useful ‘chunks’ of software, one at a time (Corresponds to DSDM in this respect) In its simplest form, each use case may represent one increment of delivered software © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Activities and Phases Activity has meaning for developers Phase matters to project manager Phases are sequential, delineated by milestones Each milestone is a decision point: Begin next phase or stop now? Manager’s focus shifts from one phase to the next Within each phase, activities iterate © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Phases (and time) Inception Elaboration Construction Transition Iterations 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 Workflows Requirements Analysis Design Implementation Test © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Phases and Iterations No set rule for number of iterations Within a phase, workflows are the same All 4 phases run from requirements to testing, but emphasis changes At first, main effort is on capture, modelling, analysis of requirements Later phases emphasize implementation and testing © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Inception Phase Essentially a feasibility stage: do potential risks outweigh potential benefits Decision based partly on CBA Viability of project judged on delivery of a small subset of requirements as working software © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Inception Phase Main activities: Requirements capture Analysis Small amount of design, implementation and testing Even at this early stage, iteration is likely OO approach makes this possible © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Elaboration Phase Produce design for a suitable system Aim is to reduce cost uncertainties Demonstrate how system can be built within acceptable timescale and budget Proportion of time spent on design activities increases Small increase in time on implementation and testing (still small in relation to analysis and design) © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Construction phase Build, through several iterations, a system capable of satisfactory operation in target environment Implementation and testing rapidly become core activities Each iteration moves away from design and towards testing © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Transition phase Achieve the intended full capability of the system Deal with any defects or problems that have emerged Includes system conversion, if older system is being replaced © 2010 Bennett, McRobb and Farmer

Workers and Activities USDP differentiates between real people and the more abstract worker A Worker is a project role, e.g. use-case specifier system architect component engineer integration tester No direct one-to-one mapping between people and workers © 2010 Bennett, McRobb and Farmer

Inputs and Outputs of an Activity © 2010 Bennett, McRobb and Farmer

The Analysis Workflow in USDP Analyse architecture Analyse Architecture Architect Analyse Analyse Analyse Analyse Analyse Architecture architecture architecture architecture architecture Analyse a Use Case Analyse a Use Case Use Case Engineer Analyse a Analyse a Analyse a Analyse a Analyse a Use Case Use Case Use Case Use Case Use Case Analyse a Class Analyse a Package Analyse a Class Analyse a Package Component Engineer Analyse a Analyse a Analyse a Analyse a Analyse a Analyse a Analyse a Analyse a Analyse a Analyse a Class Class Class Class Class Package Package Package Package Package adapted from Jacobson et al., 1999 © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer USDP: Summary Rooted in: Booch method (good at design and implementation) OMT (good at analysis) Objectory (strong at requirements engineering and system architecture) USDP brought these together Also large and complex: significant learning curve involved, or tailor to fit Led to RUP – the most mature OO methodology to date © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer Summary In this lecture you have learned about: The role of a methodology in IS development The main principles, phases and activities of USDP © 2010 Bennett, McRobb and Farmer

© 2010 Bennett, McRobb and Farmer References Avison and Fitzgerald (2006) Kruchten (2004) Jacobson et al. (1999) (For full bibliographic details, see Bennett, McRobb and Farmer) © 2010 Bennett, McRobb and Farmer