Software Engineering Revisited: Vu Thi Huong Giang
Software Engineering Revisited: Vu Thi Huong Giang
revisited
Vu Thi Huong Giang
@2012-2013
Covered topics
Software engineering
Software quality
I. SOFTWARE
ENGINEERING
1. FAQs
2. Deal with complexity & changes
3. Knowledge Area & Units
3
Software
Software
Large / complex
Given budget
Given deadline
Built by teams
Changeable
High quality
Software
How ???
engineering
Computer science
CS is concerned with
theory and fundamentals
Rules
Constraints applied to system models
Recommendations
Advice on good design practice
Process guidance
Activities to follow
10
Dependability
Software must be trustworthy
Efficiency
Software should not make wasteful use of system resources
Acceptability
Software must accepted by the users for which it was
designed: it must be understandable, usable and
compatible with other systems
11
Delivery
Developing techniques that lead to faster delivery of
software
Trust
Developing techniques that demonstrate that software
can be trusted by its users
12
I. SOFTWARE
ENGINEERING
1. FAQs
2. Deal with complexity & changes
3. Knowledge Area & Units
13
Approach
Consider the software engineering as a problem solving
activity
Analysis: Understand the nature of the problem and break the
problem into pieces
Synthesis: Put the pieces together into a large structure
Modeling
Decomposition
Abstraction
Hierarchy
Use patterns
15
16
I. Software engineering
1.
2.
3.
FAQs
Deal with complexity & changes
Knowledge Area & Units
17
Software Management
Software Quality
Software Engineering
Software Process
Professional Practice
Software Modeling
& Analysis
Software Evolution
Software Design
Software Verification & Validation
18
Introduction
Software products are different from traditional
types of products
intangible
difficult to describe and evaluate
malleable
human intensive
involves only trivial manufacturing process
20
21
2. Representative qualities
Common qualities: 11
Process-specific qualities: 3
Application-specific qualities
22
Correctness
Limits:
It is an absolute (yes/no) quality
there is no concept of degree of correctness
there is no concept of severity of deviation
23
Reliability
Reliability
Correctness
24
Robustness
Software behaves reasonably even in
unforeseen circumstances (e.g.,
incorrect input, hardware failure)
25
Performance
Efficient use of resources
memory, processing time, communication
Can be verified
complexity analysis
performance evaluation (on a model, via
simulation)
26
Usability
Verifiability
How easy it is to verify properties
mostly an internal quality
can be external as well (e.g., security
critical application)
28
Maintainability
Maintainability: ease of
maintenance
Maintenance: changes
after release
Maintenance costs exceed
60% of total cost of
software
Three main categories of
maintenance
Maintenability can be
decomposed as
Repairability: ability to
correct defects in
reasonable time
Evolvability: ability to adapt
software to environment
changes and to improve it in
reasonable time
29
Reusability
Existing product (or components) used
(with minor modifications) to build
another product
(Similar to evolvability)
30
Portability
Software can run on different
hardware platforms or software
environments
Remains relevant as new platforms
and environments are introduced
e.g. digital assistants
31
Understandability
Ease of understanding software
Program modification requires
program understanding
32
Interoperability
Ability of a system to coexist and
cooperate with other systems
Capable of exchange information with other
systems
Capable of use the exchanged information
33
Timeliness
ability to deliver a product on time
Visibility
all of its steps and current status are documented clearly
34
Timeliness
Often the development process does not follow
the evolution of user requirements
A mismatch occurs between user requirements
and status of the product
Function
User
needs
Actual
sy stem
capabilities
t0
t1
t2
t
3
t4
Time
35
Real-time systems
Scheduling priority
..
Distributed systems
Code mobility
36
3. Quality measurement
To measure the software quality indicators, we
use:
Metrics
Methods
Empirical
Model
Numerical
Model
Measurement
Understanding/
Refinement
Results
(Empirical)
Statistical/
Math
Analysis
Results
(Numerical)
Interpretation
37
Measurement Plan
Report
Metrics
Procedures
Goal Data
Collect
Media
Validate
CONCLUSION
39
40
41