• No results found

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Engineering - II

ITNP92 - Object Oriented Software Design

Dr Andrea Bracciali

Module Co-ordinator 4B86 abb@cs.stir.ac.uk

Spring – 2014

Dept. of Computing Science & Mathematics

University of Stirling 2

Software development life cycle

Software life cycle:

•  Requirements (elicitation)

•  Analysis (of the problem)

•  Design (of the solution)

•  Implementation (of the design in code)

•  Testing (the code & design)

•  Maintenance

- according to the Waterfall software development model - several different models exist

- we will adopt an Object-oriented Software Development perspective.

?

Requirements Analysis

Design

Implementation Testing

Maintenance

Dept. of Computing Science & Mathematics 3

Requirements

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.

Dept. of Computing Science & Mathematics 4

Requirements

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!

(2)

Dept. of Computing Science & Mathematics

University of Stirling 5

Requirements

Early Prototyping allows Requirements 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).

Dept. of Computing Science & Mathematics

University of Stirling 6

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

Requirements - Example

?

Requirements - Example

Expanded Requirements

»  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?

Analysis

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.

(3)

Dept. of Computing Science & Mathematics

University of Stirling 9

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.

Dept. of Computing Science & Mathematics

University of Stirling 10

Design

Design involves (continued)

•  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.

Dept. of Computing Science & Mathematics 11

Implementation

Implementation - The translation of the Design into Source Code.

•  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.

Dept. of Computing Science & Mathematics 12

Testing & Maintenance

Testing - An objective evaluation of the Software System functioning

•  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.

(4)

Dept. of Computing Science & Mathematics

University of Stirling 13

Software Development Models

Following the steps in the order listed here is called the waterfall method of software engineering.

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.

Requirements Analysis

Design

Implementation Testing

Maintenance

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:

or the Agile/Extreme programming approaches.

Dept. of Computing Science & Mathematics

University of Stirling 14

Software Development Models

Determine objectives,

alternatives & constraints Evaluate alternatives, identify & resolve risks

Develop & verify next level of product Plan next phase

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.

•  Requirements 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 Requirements and Problem Analysis phases.

•  Objects identified in the design phase may have a close correspondence with / be readily implemented via an OO language.

?

(5)

Dept. of Computing Science & Mathematics

University of Stirling 17

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:

Booking System

Resource User

Web Server

Dept. of Computing Science & Mathematics

University of Stirling 18

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.

•  This phase is iterative, with continual refinement.

Dept. of Computing Science & Mathematics 19

Resource Staff

Students Administrator User

Book Journal

CD

Event Manager

Booking System Controller

Database

Object Modelling - Design Solution(s)

Dept. of Computing Science & Mathematics 20

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

•  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.

Object Modelling - Implementation

(6)

Dept. of Computing Science & Mathematics

University of Stirling 21

Outline

1.  Software Engineering: a general introduction.

2.  Software Development life cycle

•  Requirements

•  Analysis

•  Design

•  Implementation

•  Testing

•  Maintenance

the Waterfall model (and other models).

3.  Object Oriented Modelling.

References

Related documents

The research results indicate that the biggest challenge in Tekla‟s online community building is lack of information in the following areas: users‟ needs, community‟s

► Commercial operation of satellite systems for positioning, data collection, ocean observation and monitoring with high resolution imagery.. ► Developing added-value

Analysis based on CDP’s supply chain program data has, for the first time, identified where emissions are generated within supply chains, and which sections of those supply

This Evidence of Coverage and Health Service Agreement (“Agreement”) is issued by California Physi- cians’ Service dba Blue Shield of California ("Blue Shield"), a health

Knowledge-based IDPS detected attacks provide network security personnel detailed contextual analysis associated with the attack traffic, enabling security personnel to easily

This figure for technical provisions, together with the asset margin obtained from the product of the assumed asset margin percentage and the written premiums

Once ESCAT is implemented, the appropriate military authority (see section 3 of this enclosure) will consult regularly with the Department of Transportation (DOT) (through the

As a result of this public campaign, the Ministry of Science, Technology, Energy and Mining (MSTEM) had strategically installed energy efficient pump motors and