You are on page 1of 19

Software Development

Overview
What is the Aim of Software
Development?

Produce a system that will meet the users'


requirements
What are the Constraints?

Budget

Timescale
Requirements

Budget/Resources Timescale
Software Development
Methodologies
 Purpose?

 Usefulness?
Software Development
Methodologies
may guide the Developers on:
1. how to plan/manage/phase the project
activities;
2. how to view/model the problem domain;
3. how to design/model the new software.

Some methodologies give advice on all of these aspects, while others


concentrate on one or two aspects only.
Ways of planning/managing a
project
A simple distinction may be made between:

 Waterfall

 Incremental and Iterative


Consider the typical Activities in
Developing a new System
 1. Feasibility Study
Is it worthwhile going ahead?
 2. Investigation and Analysis
What does the user wants the new system to be able to do – i.e. User Requirements
 3. System Design
How will the system work? Specifying software, hardware, manual procedures.
 4. Building/Constructing the system
Produce software
 5. System Testing
Does the system work? Does it work under real work loads?
 6. Training Users/Producing User and Operator Guides
 7. System goes live
Becomes the 'production system'. Implementation
 8. Maintenance.
Modifications are made to meet new user needs (software evolution). Bugs are fixed.
Waterfall methods – the aim is to complete each stage of
development before moving on to the next.

Different staff are likely to be involved at each stage.

 Investigation and Analysis


User Management/Users/Problem Domain experts;
Systems Analysts
 System Design
Systems Analysts, Systems Designers
Building/Constructing the system
Systems Designers, Programmers
 System Testing
Systems Analysts, Testers
Incremental and Iterative methods - one part of the system
is developed fully. Then the developers move on to the
next increment.

All types of staff are likely to be involved in developing each


increment of the system
 Increment 1/Iteration 1
User Management/Users/Problem Domain experts; Systems
Analysts, Systems Designers, Programmers, Testers
 Increment 2/Iteration 2
User Management/Users/Problem Domain experts; Systems
Analysts, Systems Designers, Programmers, Testers
etc
What are the advantages/disadvantages of
each approach?
Waterfall

Incremental/Iterative
For what sort of systems might you
use each type of method?
 Waterfall

 Incremental/Iterative
How do Agile systems fit in?
A methodology may give guidance on ways
of looking at (modelling) a problem domain.

 Explain and give examples of:


 Problem domain

 Model
Ways of modelling a problem domain
Features of the main paradigms

 Structured
Initially DATA is analysed separately from PROCESSES

 Object-Oriented
Problem domain is broken down into objects – and within
these Data and Processes are looked at together
Ways of modelling a problem domain
Features of the main paradigms
 Structured
Some Key concepts:
Sequence, Selection, Iteration
Functions and Functional decomposition, global/local
variables

 Object-Oriented
Some Key concepts:
Classes, objects. Generalisation (inheritance),
polymorphism, message passing, association,
aggregation.
Example Methodologies
 Structured: SSADM, Yourdon, JSD
 O-O: RUP, OMT, OOSE
 Agile: DSDM, Lean, XP, Scrum
For next week's lecture
 1. Attempt exercises
 2. Review SSADM:
 Stages – what is the aim of each stage? How
do they fit into the general picture of the
software development phases/activities/life-
cycle?
 Key techniques –
DFM, LDM, Function Definition, ELH, ECD,
EAP

You might also like