Professional Documents
Culture Documents
KAIST SE lab
S/W Development
Process
Technology
Resources
Quality/Productivity
Product
KAIST SE lab
Software Qualities
Definitions
DoD, 1985, ``The degree to which the attributes of the software enable it to perform its intended end use.'' ISO, 1986, ``The totality of features and characteristics of a product The or service that bear on its ability to satisfy specified or implied needs.'' Kitchenham, 1986, Fitness Kitchenham 1986 ``Fitness for needs '' needs.
Conformance to its specification: Is it a good solution? Fitness for its intended purpose: Does it address the right problem?
KAIST SE lab
Software Characteristics
The characteristic that perhaps sets software apart from other engineering products the most is that software is malleable. The malleability of software is often misused. Softwares malleability sometimes leads people to think that it can be changed easily. ( Even without extra cost!) A change in software must be viewed as a change in the ______ rather than i th _____. th th in the
KAIST SE lab
Software Characteristics
Its creation is human intensive: It requires mostly engineering rather than manufacturing. th th f t i Q: How is engineering different from manufacturing? In traditional engineering disciplines, the engineer has tools for g g p , g describing the qualities of the product distinctly from the design of the product. In SE, it is not so clear. The qualities of the software product are often intermixed in specifications with the qualities of the design. Q: What does it mean by the underlined above?
KAIST SE lab
KAIST SE lab
KAIST SE lab
Quality Factors
User
Sponsor S
Maintainer
KAIST SE lab
KAIST SE lab
Functionality Usability Efficiency Reliability, etc Effectiveness of methods, tools Use of standards Management, etc
Process quality
10
KAIST SE lab
Representative Qualities
Correctness, Reliability and Robustness Performance User Friendliness Verifiability V ifi bili Maintainability Reusability Portability Understandability Interoperability Productivity Timeliness Ti li Visibility
11
KAIST SE lab
Correctness
Correct if the program behaves according to the specification of the functions. p Assumption :
4 A specification of th system is available. ifi ti f the t i il bl 4 It is possible to determine unambiguously if a program
12
KAIST SE lab
Reliability
= dependability: reliable if the user can depend on it. A measure of the frequency and criticality of product failure Failure: An unacceptable effect or behavior under permissible operating conditions conditions. Can define in terms of statistical behavior: MTTF, MTBF Relative, (Q: What about correctness?) , (Q )
13
KAIST SE lab
Robustness
Robust if it behaves reasonably, even in circumstances that were not anticipated in the requirements specification. A function of a number of factors such as
The range of operating conditions conditions. The possibility of unacceptable results with valid input. The acceptability of effects when the product is given invalid input.
14
KAIST SE lab
Performance
Equates performance with efficiency(space, time). Affects the usability of the system. Evaluation
15
KAIST SE lab
User Friendliness
Ease to use Ease with which the system can be configured and adapted to the hardware environment.
Verifiability
Verifiable if its properties can be verified safely. Performed either by formal analysis methods or through testing.
16
KAIST SE lab
Maintainability
Maintenance
17
KAIST SE lab
Maintainability(Cont.)
Repairability
Repairable if a software system allows the correction of defects with a limited amount of work. Q Q: How many hours needed to fix an error in the maintenance phase? Right modularization promotes repairability. Q: Why? Improved through the use of proper tools: HL PL CASE etc PL, CASE, etc. Modified over time
To provide new functions. To change existing functions.
Achieved by modularization Decreased with each release of a new version Q: Thus, what we may need?
18
KAIST SE lab
Reusability
Use existing components to build a new product. Examples: Scientific libraries, X window, Motif, etc Reuse levels
19
KAIST SE lab
Portability
Portable if it can run in different environments
Understandability
20
KAIST SE lab
Interoperability
Ability of a system to coexist and cooperate with other systems Open system concept
Productivity
A quality of th software production process lit f the ft d ti Difficult to measure: simple metric: SLOC
21
KAIST SE lab
Timeliness
Ability to deliver a product on time. Requires
Visibility
Visible if all of its steps and its current status are documented. Allows to weigh the impact of their actions and thus guides them in making decisions.
22
KAIST SE lab
23
KAIST SE lab
Information Systems
Storage and retrieval of data Examples: banking systems, library-cataloging systems, etc. Qualities
24
KAIST SE lab
Real-time Systems
Respond within a predefined and strict time periods Examples: factory-monitoring systems, missile guidance systems, mouse-handling software Control-oriented Control oriented Scheduling
Deadline Priority
25
KAIST SE lab
Distributed Systems
The degree of distribution
System availability
26
KAIST SE lab
Embedded Systems
Software is one of many components. Has no interface to end-user. Examples: Airplanes, robots, microwave ovens, dishwashers, automobiles,etc. automobiles etc
27
KAIST SE lab
Discussions
Discuss the relationship between testing and quality? What is 6Sigma? Even though 6 Sigma is widely used in manufacturing industry why is the reason why 6 Sigma is not industry, easy to apply in software industry?
28
KAIST SE lab
References
Reference: ISO9126 Software Quality Page http://swquality.com
29
KAIST SE lab
Q&A
30
KAIST SE lab
31
KAIST SE lab
32
KAIST SE lab
33
KAIST SE lab
34
KAIST SE lab
Separation of Concerns
A way to deal with inherent complexity Various ways in which concerns may be separated
In time
Example :
In terms of qualities
Example :
Example :
In terms of size
Example : E l
In terms of responsibility
35
Example : Q: May we miss some global optimization due to the separation of concerns?
KAIST SE lab
Modularity
Divided into simpler pieces, called modules Top-down and bottom-up Three goals
Decomposability
Divide and conquer
Composability
Starting bottom up from elementary components
Capability of understanding
Each part of a system separately Related to maintenance
36
High cohesion and low coupling High cohesion: The degree of relatedness to other modules Low coupling: The degree of the relatedness among internal elements of the module.
KAIST SE lab
Abstraction
A process whereby we identify the important aspects of a phenomenon and ignore its details. Special case of separation of concerns History y
Mnemonic Macro functions Functions and procedures Loops, selection Abstract data types Objects Design patterns Object frameworks
Helps us concentrate on the problem to solve rather than the way to instruct the machine on how to solve it.
37
KAIST SE lab
SE R&D progress
Program Design Analysis Testing Maintenance
38
KAIST SE lab
Anticipation of Change
Software undergoes changes constantly. Likely changes should be isolated in specific portions. Affects maintainability, evolvability, reusability.
39
KAIST SE lab
Generality
Not necessarily more complex to solve a generalized problem. Have more potential to be reused. Already provided by some off-the-shelf packages. More costly in terms of
40
KAIST SE lab
Incrementality
A process that proceeds in a stepwise fashion. Evolutionary process Incremental system testing (thread testing)
41
KAIST SE lab
42
KAIST SE lab
43
KAIST SE lab
44
KAIST SE lab
Discussions
How are SE principles being pursued in SE research?
45