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