You are on page 1of 25

A Brief Overview of Software

Engineering

1
Software
• Computer programs + associated
documentation

2
Software Product
• Software products may be developed for a
particular customer or may be developed for a
general market

3
Types of Software Products

•Generic Software
•Customized Software

4
The Nature of Hardware

• Hardware is a physical unit.


• Hardware wears out with time.

5
Bath tub Curve for Hardware

6
The Nature of Software

• Software is a logical unit.


• Software does not wear out with use

7
Curves for Software

8
What is the “software crisis”?

• Projects are meaningfully late.


• Software costs more than predicted.
• Software is unreliable.
• Software is difficult to maintain.
• Poor performance.

9
What is Good Software?

• Software has number of attributes which decide


whether it is a good or bad

10
Attributes of Good Software
• Maintainability
– Must evolve to meet changing needs
• Dependability
Software must be trustworthy(able to b trust)
• Efficiency
– Not use wasteful system resources
• Acceptability

11
Metrics for Specifying Software
Property Measure
Speed Processed transactions/second
User/event response time
Refresh rate
Ease of use Training time
Number of help frames
Reliability Mean time to failure (MTTF)
Mean time to repair (MTTR)
Availability
Probability of unavailability
Size Mbytes
Line of code (LOC)
Function points (FP)

12
Availability
• Different levels of availability
Availability Explanation
0.9 System is available for 90% of the
time. This means that in a 24-hour
period, the system will be
unavailable for 144 min.

0.99 In a 24 hour period, the system is


unavailable for 14.4 min.
0.999 The system is unavailable for 86.4
sec in a 24 hour period.
0.9999 The system is unavailable for 8.64
sec in a 24 hour period.
13
Example of Reliability
• Hard Disk
– Works fine for 12 months
– Breaks (can’t spin), takes 1 month to replace motor
– Works fine for 4 months
– Breaks (can’t move heads), takes 2 months to unstuck
– Works fine for 14 months
– Breaks (head broken), takes 3 months to fix
– Throw away, buy new disk

14
Example of Reliability (cont..)
• Calculate Mean time to failure (MTTF), Mean
time to Repair (MTTR) and availability
– Answer:
• MTTF = 10 months
• MTTR = 2 months
• Availability = 83.33 %

15
Function Point (FP)

• Function point is a measure of the


functionality provided by the software

16
Function Points
• FP measures the functionality of the system in
terms of these 5 components.
• FP components
– Number of users inputs
– Number of users outputs
– Number of user queries
– Number of files
– Number of interfaces

17
Function Point Analysis
Functional Count Weighting factors
components
Simple Average Complex
User inputs 3 4 6
User outputs 4 5 7
User queries 3 4 6
Files 7 10 15
Interfaces 5 7 10

FP = SUM (count x weight)

18
Function Points
(Solution)

• FP = 32 x 4 + 60 x 5 + 24 x 4 + 8 x 10 + 2 x 7
= 128 + 300 + 96 + 80 + 14
= 618

19
Function Points
(Example 2)
• Consider the following system specs:
Develop a system which allows customers to input
report bugs in a product. These reports will be
stored in a file and developers will receive a daily
report with new bugs which they need to solve.
Customers will also receive a daily status report for
bugs which they submitted. Management can query
the system for a summary info of particular months.
• Assume that weights are average.
20
Function Points
(Example 2 (Solution))

• Total functionality = 28

21
Problems in software development
• Common issues
– Does not fulfill the needs of the customer
– Hard to extend and improve
– Bad documentation
– Bad quality
– More time and costs than expected

22
Software Engineering

• The application of a systematic, disciplined,


quantifiable approach to the development,
operation, and maintenance of software; that
is the application of engineering to software.
IEEE Definition

23
Difference between Software
Engineering and Computer Science

Computer Science Software Engineering


is concerned with
 theory  development
 fundamentals  delivering useful software

24
Objectives of Software Engineering

• Objective is to produce software that is


– On time: is deliver at the established date.
– Reliable: does not crash.
– Complete: good documentation, fulfill customer
needs.

25

You might also like