+ All Categories
Home > Documents > 1 Software Engineering Software has some special characteristics –Software is “developed” and...

1 Software Engineering Software has some special characteristics –Software is “developed” and...

Date post: 21-Dec-2015
Category:
View: 215 times
Download: 2 times
Share this document with a friend
Popular Tags:
26
1 Software Engineering Software Engineering Software has some special characteristics – Software is “developed” and not “manufactured”
Transcript
Page 1: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

1

Software EngineeringSoftware Engineering

• Software has some special characteristics– Software is “developed” and not

“manufactured”

Page 2: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

2

Software CharacteristicsSoftware Characteristics

– Software has ZERO TOLERANCE

– Software does NOT wear out– Software deteriorates due to discovery of bugs and

applying patches

Page 3: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

3

Software is Crucial Software is Crucial

• Software error in NASA’s Mariner-I caused booster failure and $18 Million losses

• The guidance antenna on the Atlas performed poorly, below specifications. When the signal received by the rocket became weak and noisy, the rocket lost its lock on the ground guidance signal that supplied steering commands. The possibility had been foreseen; in the event that radio guidance was lost the internal guidance computer was supposed to reject the spurious signals from the faulty antenna and proceed on its stored program, which would probably have resulted in a successful launch. However, at this point a second fault took effect. Somehow a hyphen had been dropped from the guidance program loaded aboard the computer, allowing the flawed signals to command the rocket to veer left and nose down. The hyphen had been missing on previous successful flights of the Atlas, but that portion of the equation had not been needed since there was no radio guidance failure. Suffice it to say, the first U.S. attempt at interplanetary flight failed for want of a hyphen."

Page 4: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

4

Software ErrorsSoftware Errors

• Hubble Telescope became almost useless for some time due to mirror-polish-monitoring software error

• Software error in a Texas clinic caused lethal X-ray doses to patients, killing 3 and burning scores of others

Page 5: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

5

Ariane-5 Blows up Ariane-5 Blows up

• In 1996, Ariane-5 rocket was launched by European Space Agency after $7 billion in development expenses for 10 years

• The rocket exploded just 40 seconds after launching

• The investigators determined that the cause of the mishap was a software error

• A 64 bit FP number representing horizontal velocity of the rocket was converted into 16 bit integer thus truncating it and having a wrong value used in inertial reference system

Page 6: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

6

Engineering Approach RequiredEngineering Approach Required

• Therefore let us stop programming and start software engineering

• When a product is designed by Engineers, it passes through several stages from concept to actual fabrication

• We should develop the software using the Engineering approach

Page 7: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

7

An ExampleAn Example

• Consider the designing of a new mobile phone

Page 8: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

8

Mobile Phone DesignMobile Phone Design

• Many aspects are considered before this phone can be manufactured

• Design Engineer has to consider the physical dimensions, the desired battery life, the number and location of buttons, the controls required, the functionality and the cost

• Later a prototype will be built to evaluate the design

Page 9: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

9

The Waterfall ModelThe Waterfall Model

• When we want to develop software, we should take similar approach

• Classical Software Engineering life cycle consists of four stages– Analysis

– Design

– Coding

– Testing

Page 10: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

Adapted from "Software Engineering A Practitioner's Approach" by Roger Pressman

10

Waterfall Model DiagramWaterfall Model Diagram

Page 11: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

11

The Waterfall ModelThe Waterfall Model

• This model is a sequence of stages

• During analysis, the user requirements are identified and systems specs. are prepared

• During design, the number of modules and their interconnection is finalized. The data types and structure is specified

• During coding, actual programming is done

• Testing is done to make sure there are no errors (alpha-release and beta-release)

Page 12: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

12

Spiral ModelSpiral Model

• It was realized that the waterfall model is not optimal as it is a one-way model

• If a problem is discovered in a later stage, there is no way to go back and correct the problem

• Therefore, spiral model was proposed in which the SE activity occurs in a spiral thus giving a chance to correct the mistakes

Page 13: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

Adapted from "Software Engineering A Practitioner's Approach" by Roger Pressman

13

Spiral Model DiagramSpiral Model Diagram

Page 14: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

14

An Example of Applying An Example of Applying WaterFall ModelWaterFall Model

• A software is being developed for a post office teller in order to integrate various functions together. These functions may include selling postage stamps, issuing exact postage printouts and accepting utility bill payments for electricity and phone.

• Determine the user interface requirements and functionality requirements of software

Page 15: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

15

Software Engineering (cont’d)Software Engineering (cont’d)

• Why should we take Engineering approach for software development?

• What are the stages in Waterfall model?• What is the main problem in Waterfall

model?• How does spiral model solve this problem?• How would you apply software engineering

to a software development project?

Page 16: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

16

Post Office Clerk’s SoftwarePost Office Clerk’s Software

WELCOME TO MY WORKSTATION

Please select from the following:

(1) Sell stamps

(2) Print exact postage for metered mail

(3) Accept utilities bills

==>

Page 17: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

17

Post Office Clerk’s SoftwarePost Office Clerk’s Software

YOU HAVE SELECTED BILL PAYMENT

Please choose the bill type:

(1) Phone Bill

(2) Gas Bill

(3) Water/Sewerage Bill

(4) Electricity Bill

==>

Page 18: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

18

Considering Modular DesignConsidering Modular Design

• During the design phase, the modular architecture of the system is developed

• Consider the previous example and determine major functions of software

• Determine the interconnections between major modules. (Think about the type of information that will be exchanged)

• Make a schedule of activities

Page 19: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

19

Interaction ExampleInteraction Example

Main

Opening MenuDisplay Module

Utility BillsModule

Page 20: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

20

Before CodingBefore Coding

• Plan well before coding begins

• Think about the platform, the specific hardware and software and the working environment

• Since it is a highly interactive software, we should go for prototyping

• Prototyping allows the end user to have a feel of the product before it is ready

Page 21: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

21

Incremental DesignIncremental Design

• In this approach, a minimal working software is developed and goes through evaluation

• Later, as per customer requirements, features and functions are added

• This is best for small development team

Page 22: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

22

RADRAD

• RAD (Rapid Application Development) is recommended for software projects that have following characteristics– The software does not have an innovative

design– Similar software projects have been completed

successfully– Software design is modularized

Page 23: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

23

Testing ConsiderationsTesting Considerations

• Target of testing should be to find a fault and not to prove that it works fine

• Bottom-up testing and integration is recommended. Here is how it works– Test the independent modules (slaves)– Integrate the tested modules into system and

now test the integrated system

Page 24: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

24

Testing HintsTesting Hints

• Try to test boundary values for loops– For example while (x<34) {….}

(Test at x=33, x=34 and x=35)

• Within each module (program unit), test both branches of a decision statement– Example if v is 0 do s1 else do s2

(Test will force v as 0 and also v as not zero)

Page 25: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

25

Documentation and MaintenanceDocumentation and Maintenance

• It is necessary to provide a detailed user guide that tells the user about the normal use and also about handling errors

• A large software project would require a system admin guide that provides technical details of installation, running and troubleshooting

• Software delivery is not the end of the story, it has to be maintained as well

Page 26: 1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

26

Tools and HelpTools and Help

• Tools to help in development of software arrived much later; just like the shoemaker who makes shoes for everyone but does not have time to make shoes for himself

• CASE Tools are now available for analysis, design, prototyping, coding, testing, and documenting

• Check out http://www.rspa.com and identify at least one CASE Tool


Recommended