You are on page 1of 13

Software Engineering

Software Development Process


Lesson 6

Software Engineering

Sw Development Process

Software Development Processes:


a structured set of activities required to develop a software system

Software Engineering

2005 Fausto Giunchiglia and Alessandro Tomasi

Sw Development Process
A set of activities: 0. 1. 2. 3. 4. 5. 6. 7.
Software Engineering

Feasibility Study Project Planning and Management Risk Analysis Requirements Analysis Design Analysis Software Implementation V&V (Verification & Validation) Maintess
3

Sw Development Process

Now and during the next lessons we will present differents kinds of Software Development Processes through some Case Studies

Software Engineering

2005 Fausto Giunchiglia and Alessandro Tomasi

Software Engineering
Code & Fix
by Alessandro Tomasi Lesson 6

Software Engineering

A Definition
Programming: is the art and/or science of creating a program, a set of instructions for a computer to do some work.

Software Engineering

2005 Fausto Giunchiglia and Alessandro Tomasi

Programming
Programming often consists of five major steps: 1. Recognizing the need for a program to solve a problem (the Requirements) 2. Writing the program in the programming language of choice (Code) 3. Testing the program to make sure it works 4. Planning the program and selecting the tools to solve the problem (Fix) 5. Update the code with new functionalities
Software Engineering 7

Code and Fix

This is the Code and Fix software development and this is your Software Development Process!!!

Software Engineering

2005 Fausto Giunchiglia and Alessandro Tomasi

Code & Fix

Requirements Analysis Code Implementation Test it Fix it Maintain it

Software Engineering

Code and Fix


Analysis reduced to the bare minimum Implement the problem in the first phases Programmers immediately begin producing code Unstructured process (e.g. not well defined transition from one phase to the next)

Software Engineering

10

2005 Fausto Giunchiglia and Alessandro Tomasi

Code & Fix


Some Benefits
simplified analysis quick results simplified testing

Software Engineering

11

Code & Fix


More Benefits
avoids to make prototypes immediately begin producing code

Software Engineering

12

2005 Fausto Giunchiglia and Alessandro Tomasi

Code & Fix


Some Disadvantages
poor analysis lower quality and less maintainable code extreme difficulty in meeting the customers needs small variations of requirement generally have a great impact on the code

Software Engineering

13

Code & Fix

More Disadvantages
inefficient code unreliable code unmaintanable code

Software Engineering

14

2005 Fausto Giunchiglia and Alessandro Tomasi

An Example

We implement an Address Book in C++ with Code and Fix software development

Software Engineering

15

Case Study: Address Book


1. Requirements:
Store peoples relevant data (e.g. name, surname, address) Retrieve data by: name surname address

Software Engineering

16

2005 Fausto Giunchiglia and Alessandro Tomasi

Address Book
2. Code Implementation:
Use for every element of the address book an array of char Define a struct that contains all these elements Define an array of this struct Save all the data in this array Write search algorithms that operate in the array
17

Software Engineering

A Solution: Sketch
Define this struct:
struct struttura{ char nome[20]; char indirizzo[20]; };

Implement this variable:


struttura people[100];

Save the data in people.

Software Engineering

18

2005 Fausto Giunchiglia and Alessandro Tomasi

Address Book

3. Test the code

4. Fix it

Software Engineering

19

Address Book: Great Success!


Quick implementation Everything runs smoothly with no testing at all! ... but is it, really? ... and the last step?
Software Engineering 20

2005 Fausto Giunchiglia and Alessandro Tomasi

10

... but, is it really a success?


Poor analysis yields to longer development time, lower quality and less maintainable code Potential Issues:
Customer satisfaction, Costs overrun, motivation, Code Maintenance, ...
Software Engineering 21

Team

Ex: Customer Satisfaction


How do we insert new records in the agenda?
Solution: Add an insertion function (does it need to check data?)

Slight delay in software delivery. Slight rise in costs.


Software Engineering 22

2005 Fausto Giunchiglia and Alessandro Tomasi

11

Costs and Team Motivation


Does the agenda support the LDIF format?
Solution: Development of an import function Development of an export function Longer allocation of team: possible problem of motivation New esteem of software development costs: costs overruns
Software Engineering 23

Maintainability: Agenda v2.0


Consider the problem of managing double addresses (e.g. work and home) Consider the problem of managing long names

Great part of the code will be modified!!!


Software Engineering 24

2005 Fausto Giunchiglia and Alessandro Tomasi

12

Impact
The problem of managing double addresses The proposed code
struct struttura{ char nome[20]; char indirizzo[20]; } struct struttura{ char nome[20]; char indCasa[20]; char indUfficio[20]; }

and we will have to modify all the code for storing, managing, and printing records
Software Engineering 25

Impact
The problem of managing long names The proposed code
struct struttura{ char nome[20]; char indirizzo[20]; } struct stringa{ char shortN[10]; stringa *next} struct struttura{ stringa nome; stringa indirizzo; }

We will have to modify

and we will have to implement the code for inputting, managing, and printing stringa
Software Engineering 26

2005 Fausto Giunchiglia and Alessandro Tomasi

13

You might also like