0% found this document useful (0 votes)
58 views16 pages

Software Engineering: Topic 2: Software: Its Nature and Qualities

3100-topic2 (1)

Uploaded by

energy0124
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views16 pages

Software Engineering: Topic 2: Software: Its Nature and Qualities

3100-topic2 (1)

Uploaded by

energy0124
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

Software Engineering

Topic 2:
Software: Its Nature and Qualities
Your Name: _____________________
Computer Science & Engineering Department
The Chinese University of Hong Kong
Chinese University, CSE Dept.

Software Engineering / 2 - 1

The Nature of Software


1. Software is malleable

modify s/w code is easy


changes in s/w should be disciplined as _________
changes, not merely ________ changes

2. Software is human intensive

it needs engineering, not manufacturing (a trivial process of


duplication)
software engineering process in every phase is human
intensive

3. Software Quality is hard to define

hard to separate software product from software process


lack of quantitative measurement

Chinese University, CSE Dept.

Software Engineering / 2 - 2

Classification of Software Qualities


1. External Versus Internal Qualities
external qualities are visible to the users
internal qualities are of developers concern
they are related to each other
reliability verifiability
(______) (________)

Chinese University, CSE Dept.

Software Engineering / 2 - 3

Classification of Software Qualities


2.

Product and Process Qualities

a process produces a product


s/w product is not merely the final code (end-product); it
includes deliverables in each intermediate phase (deliverables:
requirements, design, code revisions, test data)
a s/w production process may produce several products (or
versions) for different customers (needs configuration
management - CM)

CM specifies
differences in

Chinese University, CSE Dept.

different _________________________
different _________________________
different _________________________
different _________________________
different _________________________
Software Engineering / 2 - 4

Representative Qualities
1. Dependability
1) correctness

a program is (functionally) correct if it


meets the (functional) specifications
specifications tend to be ambiguous,
inconsistent, or even incorrect
program correctness can be enforced by
testing, formal verification, tools, s/w reuse

2) reliability

the probability that s/w will operate as


expected over a specified time under a
specified environment
if s/w specifications are perfect, then

Chinese University, CSE Dept.

_____
_____
Software Engineering / 2 - 5

Representative Qualities
3)

robustness
A program is robust if it behaves reasonably, even in unspecified
circumstances
Hard to define completely
4) availability
the probability the s/w is working upon request
m ean _ up _ tim e
M TB F
or
m ean _ up _ tim e |m ean _ dow n _ tim e M TB F M TTR

mean time between failure


mean time to repair

up

down

up

down

Availability =? ____________
5)

loss of life
safety
the likelihood that s/w doesnt cause safe-critical failures

Chinese University, CSE Dept.

Software Engineering / 2 - 6

Representative Qualities
2.

Performance
efficient usage of computing resources
relates to cost, reliability, usability, productivity
initially achieved by analyzing the complexity of algorithms

O(n)
O(n2)
O(n log n)
______
______
_______
approach:
performance

Rank?
a complete
evaluations
measurement (data)
analysis (theoretical model)
simulation (realistic model)
performance of s/w process ______________

Chinese University, CSE Dept.

Software Engineering / 2 - 7

Representative Qualities
3.

User Friendliness

if human users find it easy to use


the key: user interface
relates to correctness, performance, reliability, safety
standard user interface would help
e.g. __________________

4.

Verifiability

s/w is verifiable if its properties can be verified easily


by testing or formal analysis methods
software monitors (code inserted) improve verifiability
an internal and (sometimes) external quality
e.g. __________________

Chinese University, CSE Dept.

Software Engineering / 2 - 8

Representative Qualities
5. Maintainability (________ of total software cost)

corrective maintenance (________)

adaptive maintenance (________)

removal of residual s/w errors


20% maintenance cost
adjustment of s/w for changes in environment
20% cost

perfective maintenance (________)

improvement of qualities or addition of new features


60% cost

Chinese University, CSE Dept.

Software Engineering / 2 - 9

Relative Effort (Cost) Distribution

}
Chinese University, CSE Dept.

40%

Figure 2.1

60%

Software Engineering / 2 - 10

Maintainability
(a) Repairability
for fixing defects
not replaceability for s/w
s/w needs modularization (module structure + module interfaces)
to improve repairability
improved through use of proper tools (high-level language,
debugger)

(b) Evolvability

for satisfaction of new requirements (inevitable)


changes of s/w require discipline
key: documentation of the s/w evolution
evolvability is achieved by modularlization and successive
changes tend to reduce it

Chinese University, CSE Dept.

Software Engineering / 2 - 11

Representative Qualities
6.

Reusability

s/w reuse reduces cost, enhances reliability, productivity and


evolvability
a typical example: ______________
reusability should be designed in advance, e.g. o-o design
e.g., _______________________

reuse could happen in every phase of s/w engineering

Chinese University, CSE Dept.

Software Engineering / 2 - 12

Representative Qualities
7.

Portability

software is portable if it can run in


different environments
portability adds more value to the
s/w (e.g. UNIX, Windows)
achieved by separate levels of
abstractions (separation of concerns)
a special case of reusability

Web
Application

_______
project

OS

_______

Hardware

_______

8. Understandability

whether a s/w system is easy to understand


originally an internal product quality - evolvability, verifiability
extended to an external product quality - user friendliness

Chinese University, CSE Dept.

Software Engineering / 2 - 13

Representative Qualities
9.

Interoperability

the ability of system to coexist and cooperate with other


systems
enhanced by setting up standard interface (e.g. UNIX)
open system: a integrated system incorporating
independently-written applications (e.g. Web Services)

10. Productivity

it measures the efficiency of the s/w process


defined as size/effort (KLOC / person-year)
an increasingly important measure
In industry:
________ for newly developed code
________ for maintenance

Chinese University, CSE Dept.

Software Engineering / 2 - 14

Representative Qualities
11. Timeliness

the ability to deliver a s/w product on time


lack of timeliness causes s/w crisis
hard to measure and predict schedule
continuously changing user requirements
(increasing user needs)
solution: incremental delivery (fast prototyping)

12. Visibility

the steps and status of a s/w project are clearly documented


allow engineers to see the impact of their actions
both ___________ and _____________

Chinese University, CSE Dept.

Software Engineering / 2 - 15

Topic 2 Conclusion
Software nature makes it distinguished from
hardware dramatically
Software quality is hard to define and measure
comprehensively
Software qualify can be classified as external
vs. internal qualities, and product vs. process
qualities
We need to understand representative
software qualities
Chinese University, CSE Dept.

Software Engineering / 2 - 16

You might also like