Software Design Models, Tools & Processes *

Similar documents
3C05: Unified Software Development Process

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

CS4507 Advanced Software Engineering

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

Chap 1. Introduction to Software Architecture

The Unified Software Development Process

How To Understand The Software Process

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

SOFTWARE PROCESS MODELS

Software Project Management using an Iterative Lifecycle Model

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Title: Topic 3 Software process models (Topic03 Slide 1).

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

The most suitable system methodology for the proposed system is drawn out.

Masters of Science in Software & Information Systems

Software Lifecycles Models

Information systems modelling UML and service description languages

2. Analysis, Design and Implementation

Classical Software Life Cycle Models

Development Methodologies

An Introduction to the UML and the Unified Process

I219 Software Design Methodology

Basic Unified Process: A Process for Small and Agile Projects

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Software Development Methodologies

Unit 1 Learning Objectives

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Software Process and Models

Agile Unified Process

Supporting Workflow Overview. CSC532 Fall06

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Towards an Integration of Business Process Modeling and Object-Oriented Software Development

The Rap on RUP : An Introduction to the Rational Unified Process

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

What CMMI Cannot Give You: Good Software

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Increasing Development Knowledge with EPFC

Abstract. 1 Introduction

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

2. Analysis, Design and Implementation

To introduce software process models To describe three generic process models and when they may be used

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Plan-Driven Methodologies

How To Design An Information System

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Menouer Boubekeur, Gregory Provan

Research on Risk Analysis and Management in the Software Development Process. Quanzhou Huang

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Ob j ect-oriented Project Management with UML

Introduction to Software Engineering (ESE : Einführung in SE)

Umbrella: A New Component-Based Software Development Model

UML SUPPORTED SOFTWARE DESIGN

How To Model Software Development Life Cycle Models

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Requirements Specification of A University Class Scheduler

Software Process for QA

Application of UML in Real-Time Embedded Systems

Chapter 8 Approaches to System Development

TOGAF usage in outsourcing of software development

TDDC88 Lab 2 Unified Modeling Language (UML)

6 Contracts and Scenarios in the Software Development Process

Chapter 3 Technology adapted

COMP 354 Introduction to Software Engineering

(Refer Slide Time: 01:52)

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

CMMI and IBM Rational Unified Process

IT3205: Fundamentals of Software Engineering (Compulsory)

A UML Introduction Tutorial

A Rapid Development Process with UML

Software Engineering

Designing Real-Time and Embedded Systems with the COMET/UML method

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Redesigned Framework and Approach for IT Project Management

Introduction to OpenUP (Open Unified Process)

A Methodology for the Development of New Telecommunications Services

Introduction to Software Engineering

Test Cases Design for Software Database Provisioning Development

A Rational Development Process

Software Engineering Reference Framework

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

How To Develop Software

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Business Analysis From Yes-M Systems LLC Length: Approx 7 weeks/55 hours Audience: Students with or without IT experience or knowledge Student

Software Engineering. What is a system?

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Iterative Software Development -

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

CHAPTER. Software Process Models

Transcription:

Software Design Models, Tools & Processes * Lecture 1: Software Design and Software Development Process Cecilia Mascolo * Thanks to Alan Blackwell and Jim Arlow for le7ng me use some of their slides.

About Me Reader in Mobile Systems Systems Research Group Research on Mobile, Social and Sensor Systems More specifically, mobility modelling Instrumentation (sensing and mobile sensing) Analysis (social and complex networks) Exploitation (eg, recommender systems)

Software Design Software Design is about modelling software systems A system is an organised or complex whole: an assemblage or combination of things or parts forming a complex or unitary whole. (Kast & Rosenzweig) A system is a set of interrelated elements (Ackoff) Library System BooksDB UsersDB UserInterface

Everyday Words it is in the system, the system failed, rage against the system, you can t buck the system, the system is down, the economic system, in-car stereo system, biological system, paperwork system, the financial environment, closed system, open system, dynamic system, in equilibrium We use these system words a lot. What do they mean

Organisation The predominant mode of organisation is hierarchical. Systems are composed of subsystems, sub-systems are composed of sub-subsystems and so on. In very complex cases we talk of systems of systems Example: Robot and its components

State The state of a system at a moment in time is the set of values of relevant properties which that system has at that time. Any system has an unlimited set of properties - only some of which are relevant for any particular set of purposes. Examples: mass=10g, colour=red

Environment The environment of a system is the set of elements (and their relevant properties) which are NOT part of the system - but a change in any of which can produce a change in the state of the system Environment Boundary System

Environment The choice of the boundary is subjective. Different people may divide a domain of discourse into different systems and environments. An architect views a house as the system comprised of mechanical, electrical, heaong and water sub- systems. The electrical supply system is in the environment. The electrician may view the electrical sub- system together with the electrical supply system as the system with the house as its environment.

Environment Setting boundaries is very important when analysing and designing a system. It limits your investigation and problem solving space. Example: Imagine you are designing a new electrical car. Are the repair shops, refuelling staoons and parts supply part of the system you are designing or not? How much Do they affect the design of the car? Can you change them? How much would changes in them affect your design (robustness)?

Closed and Open Systems can be considered closed or open. Closed systems do not interact with their environment. Open systems have a dynamic relationship with their environment, receiving inputs, transforming these inputs and exporting outputs.

Inputs and Outputs A general view of a system Input(s) TransformaOon Output(s)

Modelling Modelling a system means identifying its main characteristics, states and behaviour using a notation You modelled the Library System using Java a very detailed model There are better techniques to build models

Model A model is a description from which detail has been removed in a systematic manner and for a particular purpose. A simplification of reality intended to promote understanding. Models are the most important engineering tool, they allow us to understand and analyse large and complex problems. Examples: an architectural plan, a chemical plant diagram

Model

Model propylene and air feed Acrolein Plant gas purge acrolein product liquid purge hot water & steam

Model propylene and air feed Reactor gas recycle reactor feed acrolein plus other gases gas purge AbsorpOon Column water recycle Heat Interchanger acrolein product DisOllaOon Column Waste Heat Removal System hot water steam acrolein plus remainder of other gases water recycle liquid purge

Language Models are built in a language appropriate to the expression and analysis of properties of particular interest. scale projecoon geometry Architectural Plan process System Block Diagram flow (material, energy, informaoon)

Abstraction Abstraction is the process of removing detail from a model, of making the model more abstract. Reification is the opposite of abstraction, it is the process of adding detail to a model, of making the model more concrete.

Model Building Building a system can be seen as a process of reification. In other words moving from a very abstract statement of what is wanted to a concrete implementation. In doing this you move through a sequence of intermediate descriptions which become more and more concrete. These intermediate descriptions are models. The process of building a system can be seen as the process of building a series of progressively more detailed models.

Exercise Build a system block diagram model of central heating system First do a high level diagram with a single block showing inputs and outputs Then break down the system into subsystems and look at the flows between them Next select one of these sub-systems and break it down into sub-sub-systems

Some Questions to Ask Yourself Do you understand how central heating systems work? Has building the model helped? If given the model by somebody else would you understand what a central heating system was and how it operated? Have you set the right boundary? Have you used the block diagram language correctly?

Modelling to experiment to clarify to understand to analyse to evaluate Reason for modelling What to model structure transformaoons inputs and outputs state How to model textual graphical mathemaocal

Design and process Design is a process, not a set of known facts process of learning about a problem process of describing a solution at first with many gaps eventually in sufficient detail to build the solution

Older terminology: the waterfall Requirements Specification Implementation & unit testing Integration & system testing Operations & maintenance

Modern alternative: the spiral Prototype 2 Evaluate alternatives and resolve risks Initial plan Prototype 1 Development plan Plan next phases Requirements Integrate Implement Test Code Develop and verify next level product

Incremental Model concepoon architecture structure deliver 1st increment analysis design code test feedback deliver 2nd increment analysis design code test feedback analysis design code test

Unified Software Development Process (USDP) USDP is the development process associated to UML (Unified Modelling Language described later) USDP is based on Incremental Process Each iteration is like a mini-project that delivers a part of the system It is use case driven Architecture centric Iterative and incremental

USDP basics Iterative & incremental Iterations & baselines Phases & milestones Workflows Architecture-centric Use-case driven & risk confronting

Overall structure of the USDP lifecycle Process Workflows Incep5on Elabora5on Phases Construc5on Transi5on Business Modeling Requirements Analysis & Design Implementa5on Test Deployment Suppor5ng Workflows Configura5on Mgmt Management Environment Preliminary IteraOon(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Itera5ons Iter. #n+2 Iter. #m Iter. #m+1 Adapted from [Jacobson 1999]

Lifecycle phases & milestones IncepOon ElaboraOon ConstrucOon TransiOon 7me Life- cycle objec7ves Life- cycle architecture Ini7al opera7onal capability Product Release Incep5on Elabora5on architecture Construc5on Transi5on Define scope of project & develop business case Plan project, specify features & baseline Build product TransiOon product to its users Adapted from [Booch 1999]

Milestone acceptance criteria Lifecycle objectives - system scope, key requirements, outline architecture, risk assessment, business case, feasibility, agreed project objectives with stakeholders Lifecycle architecture - executable architectural baseline, updated risk assessment, project plan to support bidding process, business case verified against plan, continued stakeholder agreement Initial operational capability - product ready for beta test in user environment Product release - completed beta & acceptance tests, defects fixed & in the user community

Phases & iterations IncepOon ElaboraOon ConstrucOon TransiOon Prelim IteraOon... Arch IteraOon... Dev IteraOon Dev IteraOon... Trans IteraOon... Release Release Release Release Release Release Release Release An iteraoon is a sequence of acovioes with an established plan & evaluaoon criteria, resulong in an executable release Adapted from [Booch 1999]

Iterations Iteration is key to USDP Each iteration is like a mini-project Planning; analysis & design; integration & test; release Results in an increment 5 core workflows during each iteration Requirements; analysis; design; implementation; test Final product release may follow a sequence of iterations (which may even overlap!)

Increments Each iteration results in the release of various artefacts - this is called a baseline Baselines assist with review & approvals procedures An increment is actually the difference between 2 successive baselines

Phases, iteraoons & workflows C o r e W o r k f l o w s I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n Phases Requirements Analysis A n i t e r a t i o n i n t h e e l a b o r a t i o n p h a s e Design Implementa5on Test P r e l i m i n a r y I t e r a t i o n ( s ) i t e r. # 1 i t e r. # 2 i t e r. # n i t e r. # n + 1 i t e r. # n + 2 i t e r. # m i t e r. # m + 1 Itera5ons Adopted from [Jacobson 1999]

Learning by building models The software design process involves gaining knowledge about a problem, and about its technical solution. We describe both the problem and the solution in a series of design models. Testing, manipulating and transforming those models helps us gather more knowledge. One of the most detailed models is written in a programming language. Getting a working program is almost a side-effect of describing it!

Outline for the rest of the course Roughly follows stages of the (UML-related) Rational Unified Process Inception structured description of what system must do Elaboration defining classes, data and system structure Construction object interaction, behaviour and state Transition testing and optimisation Plus allowance for iteration at every stage, and through all stages

Unified Modeling Language Use Case diagrams - interactions with / interfaces to the system. Class diagrams - type structure of the system. Collaboration diagrams - interaction between instances Sequence diagrams - temporal structure of interaction Activity diagrams - ordering of operations Statechart diagrams - behaviour of individual objects Component and Deployment diagrams - system organisation

Books UML Distilled: A brief guide to the standard object modeling language Martin Fowler, Addison-Wesley 2003 (3 rd edition) Some concepts from here: UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design. Jim Arlow, Ila Neustadt. Addison-Wesley. 2005.

Exam questions This syllabus appeared under this name for the first time in 2006 See relevant questions 2006-2009 But syllabus was previously introduced as: Software Engineering II 2005, Paper 2, Q8 Some components had previously been taught elsewhere in the Tripos: Programming in Java 2004, Paper 1, Q10 Software Engineering and Design 2003 Paper 10, Q12 and 2004 Paper 11, Q11 Additional Topics 2000, Paper 7, Q13

Supervision exercises Use design briefs from Part 1b Group Design Projects http://www.cl.cam.ac.uk/teaching/ group-projects/design-briefs.html Choose a specific project to work on Carry out initial design phases, up to the point where you could start writing source code Supervision 1: Inception phase + early elaboration Supervision 2: Iterate and refine elaboration phase

Summary Systems provides a framework of concepts for thinking and talking about complex technical and social phenomena. Software is an important part of many large and complex real-world systems. Modelling requires disciplined simplification and the careful application of a modelling language. It is not enough to think about what you want to model you need to think about how you are going to use that model. Development Processes help structuring the activity of building software systems.