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



Similar documents
What is a life cycle model?

How To Design An Information System

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

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

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

Software Development Life Cycle

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

Chapter 11: Integration- and System Testing

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

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

General Problem Solving Model. Software Development Methodology. Chapter 2A

IT3205: Fundamentals of Software Engineering (Compulsory)

CS4507 Advanced Software Engineering

(Refer Slide Time: 01:52)

Overview. System Definition Webster s Dictionary. System Engineering Hierarchy. System Engineering. Computer-Based Systems [PRE2005]

Process Models and Metrics

3C05: Unified Software Development Process

2. Analysis, Design and Implementation

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

IV. Software Lifecycles

How To Model Software Development Life Cycle Models

Software Development Processes. Software Life-Cycle Models

Foundations for Systems Development

2. Analysis, Design and Implementation

Introduction to Software Engineering: Overview and Methodologies

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

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Life-Cycle. Series of steps through which software product progresses. A life-cycle is selected during requirement Phase

Software Project Models

Engineering Process Software Qualities Software Architectural Design

System development lifecycle waterfall model

Software Life Cycle Processes

The Software Lifecycle. Software Lifecycles

Software Engineering Question Bank

Introduction to Software Engineering

Component Based Development in Software Engineering

Elite: A New Component-Based Software Development Model

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Software Process and Models

Software Life Cycle. Management of what to do in what order

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Unit 1 Learning Objectives

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

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

Software Design Document (SDD) Template

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

Software Engineering Reference Framework

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

How To Understand The Business Analysis Lifecycle

6 Contracts and Scenarios in the Software Development Process

Chapter 11: Integrationand System Testing

A Comparison between Five Models of Software Engineering

11 Tips to make the requirements definition process more effective and results more usable

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

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Chapter 11, Testing, Part 2: Integration and System Testing

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Chapter 1 System Development Environment

Information Systems Development Process (Software Development Life Cycle)

Classical Software Life Cycle Models

Requirements Engineering: A Roadmap

Software Design Models, Tools & Processes *

Software Development Methodologies

Story Card Based Agile Software Development

Evolving a Ultra-Flow Software Development Life Cycle Model

Increasing Development Knowledge with EPFC

Software Lifecycles Models

Software Engineering. What is a system?

n Assignment 4 n Due Thursday 2/19 n Business paper draft n Due Tuesday 2/24 n Database Assignment 2 posted n Due Thursday 2/26

Requirements Traceability. Mirka Palo

Algorithms, Flowcharts & Program Design. ComPro

How To Develop Software

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

Model-Based Conceptual Design through to system implementation Lessons from a structured yet agile approach

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

CSE 435 Software Engineering. Sept 16, 2015

Software Project Management Part 2: Work Breakdown Structures

Karunya University Dept. of Information Technology

Software Engineering. Software Engineering. Software Costs

VAIL-Plant Asset Integrity Management System. Software Development Process

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

IT2404 Systems Analysis and Design (Compulsory)

Aerospace Software Engineering

Assuming the Role of Systems Analyst & Analysis Alternatives

SOFTWARE DESIGN TECHNIQUES. Nagalaxmi Telkar CSCI 5828 Presentation Slides

Requirements Engineering Process

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD)

LECTURE 1. SYSTEMS DEVELOPMENT

3SL. Requirements Definition and Management Using Cradle

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Chapter 23 Software Cost Estimation

Transcription:

Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation) Analysis (of the problem) Design (of the solution) Implementation (of the design in code) Testing (the code & design) Maintenance? Analysis Design Implementation Testing - according to the Waterfall software development model - several different models exist - we will adopt an Object-oriented Software Development perspective. Maintenance 2 In this phase, we are concerned with what the client wants us to produce. Not trivial and critical: Identify and interact with the different stakeholders. Different background, different "language". Often the client will not know exactly what they want. Discussing the problem with them often reveals new requirements - assumed to be delivered but not in the specification document - new features not imagined initially. The managers who place the contract for a system are often not the end users of that system, different stakeholders. In this phase, we are concerned with what the client wants us to produce. Not trivial and critical: Different kinds of requirements, e.g. architectural, structural, behavioural, functional, non-functional. One of your roles is to ensure that the client is getting what they actually want and that you are designing what they want, rather than what you think they want! Errors in this phases will impact on all the other phases - especially if discovered late (especially under the waterfall model). Basis for legally binding contract! 3 4

- Example Early Prototyping allows Elicitation Building a simple model (even a sketch of the main components) is often a useful method of checking that your understanding and the client s understanding are the same. A simple model allows you to run through scenarios and check that all the major parts are there (even if you have no idea - at the moment - about how to make each part work). Design a virtual resource management system where resources are held in staff offices but are made available via a web based interface. Resources will be booked out via the on-line management system which will also send reminders when items are due for return. Identify any obvious requirements. Within an Object-oriented perspective, let us start from the "entities" (objects) in our Real Word (let us start drafting a model abstracting from non-relevant - at this stage - details): Web Based Booking System Users Resources? 5 6 - Example Analysis Expanded» Web Based Web Server - Platform? structural/architectural [?] Web Client - Browser / Applet structural/architectural [?]» Booking System Flow Control behavioural/functional [?] Event Manager... Data Base» Users Staff Students Administrators» Resources Books Journals Rooms? CDs? Once we have a set of requirements, the next step is the analysis of the problem, i.e. checking the requirement consistency,making them unambiguous,... This involves understanding the scope of the problem. Identifying the parts in the requirements that will be part of the eventual solution, e.g., is the web server component part of our solution? Connect them together in an appropriate manner. This phase may still involve the client. 7 8

Design Design involves (continued) Design Analysis of the problem indicates what the major components in the system are, it will not tell us how these components work. Design involves (non exhaustive list): Identification of major component boundaries. Decomposition of the major components into smaller semi-independent sub-systems. Design of the interfaces between these major components & sub-systems. Identification of new components necessary to bridge the gap between objects in the problem domain and the solution domain. Identifying if any of these components are potentially re-usable or are available off the shelf. Flow of control within the system. Flow of data within the system. Data management (e.g. central repository or distributed information). Possibly, hardware design issues. 9 10 Implementation Testing & Maintenance Implementation - The translation of the Design into Source Code. Testing - An objective evaluation of the Software System functioning For each identified component and interface in the design phase, create the source code that will implement it. Integration of code components such that they perform as one system. Code documentation. Check that each element / sub-system / component does what it is required to do by the design. Check system meets the requirements specification Check system meets the clients expectations Check system meets the users expectations Can possibly be automated. Maintenance - Modification of the Software System after Delivery (itself a phase of the lifecycle itself) Functionality enhancements/ corrections / updates. 11 12

Software Development Models Following the steps in the order listed here is called the waterfall method of software engineering. Analysis Software Development Models Many different Software Development Models exist, several trying to accommodate for flexibility / adaptability to changes during development, for example Boehm s Spiral Model [see Sommerville; Bruegge & Dutoit,2004 - C. 12], according to which development is organised in incremental phases: Design Implementation Testing Determine objectives, alternatives & constraints Evaluate alternatives, identify & resolve risks Maintenance With this approach, each step presumes that the previous step has successfully been completed, however this is rarely the case. For example, user testing can reveal major design flaws - it would be better to discover this early in the design process. Plan next phase or the Agile/Extreme programming approaches. Develop & verify next level of product 13 14 Software Engineering Methods We would like a method that allowed us to model our problem and solution at an abstract level Abstract model allows early prototyping. Test various scenarios. The method should support the concept of components, sub-systems and interfaces between components. It would be useful if the approach we adopt was supported by the programming language(s) we will use to implement the solution The abstract model could then be more easily converted to a lower level implementation whilst maintaining the core design features, possibly by means of some form of (semi-)automated procedure. Object Modelling What has all this got to do with object modelling? Object modelling is one method of approaching the software development process. analysis remains the same. Emphasis is on the Analysis and Design phases of the software development life cycle.?» Analysis & Design are concerned with modelling the problem and modelling the solution. Supports the principle of early prototyping to improve the and Problem Analysis phases. Objects identified in the design phase may have a close correspondence with / be readily implemented via an OO language. 15 16

Object Modelling - Analysis EXAMPLE: Analysis of the Problem Decomposition of elements in the requirements into objects. We build a diagram of the objects identified in the problem and how they interact: User Resource Object Modelling - Design Solution(s) Design of the Solution Further decomposition and creation of new objects to facilitate communication or purely software related features. There is a transition from our diagram of the problem to our diagram of the solution. We may initially develop a number of alternative solutions. Web Server Booking System This phase is iterative, with continual refinement. 17 18 Object Modelling - Design Solution(s) Object Modelling - Implementation User Staff Students Administrator Resource Book Journal CD Turn each object identified in the design into a class (a template for an object) [general principle!] The class encapsulates the data and operations that define the behaviour of an object, for example:» user objects, staff objects, resource objects» a resource object would contain a borrow operation and data on when it was due back Controller Event Manager Database Booking System The class may contain references to other classes - allowing a hierarchy to be built. We use programming languages that support object oriented concepts e.g. Java, C++, Ada or C#.» Implementation process is more automated.» It is easier to take the high-level design structure and convert it into the equivalent low-level code due to a direct parallel with the OO programming language structure. 19 20

Outline 1. Software Engineering: a general introduction. 2. Software Development life cycle Analysis Design Implementation Testing Maintenance the Waterfall model (and other models). 3. Object Oriented Modelling. 21