ohto -99 software engineering “software product quality” today: - software quality - quality...

21
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” • Today: - Software quality - Quality Components - ”Good” software properties

Upload: juniper-mckenzie

Post on 29-Dec-2015

234 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY”

• Today:- Software quality - Quality Components - ”Good” software properties

Page 2: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

SOFTWARE ENGINEERINGSOFTWARE QUALITY

• Today we talk about quality - but what is quality?

• ”Suitable”• ”Fulfills requirements”• ”Customer is satisfied”• ”Other attributes than price”• ”Superiority, excellence”• ”Has required and expected features”

• It seems difficult to find a ”perfect” single definition.

Page 3: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

SOFTWARE QUALITY -QUALITY COMPONENTS

• Objective quality component: properties that can be measured or approximated objectively

• Subjective quality component: customer satisfaction (”What does the product feel like?”)

• Other: features which can not be (even subjectively) evaluated at the time. This is related with future events which can not be predicted - unexpected circumstances, changes, etc.

Page 4: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

SOFTWARE PROPERTIES -EXTERNAL AND INTERNAL

• External properties are the ones that are visible to the users.

• Internal properties are the ones the ones that are visible to the software developers.

• Users are (understandably) primarily interested in the external properties.

• The internal properties are used to achieve the external ones.

Page 5: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

SOFTWARE QUALITIES -PRODUCT AND PROCESS

• Product quality - the quality of the software product (including user and technical documentation).

• Process quality - the quality of the software engineering process used to produce the product.

• Users are (understandably) primarily interested in the product qualities.

• The process qualities are used to achieve the product ones.

Page 6: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Correctness

• A program is functionally correct if it behaves according to the functional specifications.

• The functional specifications may not always be available.

• The functional specification may be very informal.• The functional specifications may contain

ambiguities.• Sometimes it is evident what is expected - is it fair

to compare the software with general expectations or its own help?

• Do we assume that the specifications are correct?

Page 7: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Reliability

• A program is reliable, if the user can rely on the software.

• For reliability, the statistical approach could be used: What is the probability that the software fails with a given task?

• The program may be reliable in a user’s point of view even if it is not correct.

Page 8: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Robustness

• A program is robust, if it behaves reasonably (?) well even in unexpected circumstances - i.e. it tolerates unexpected difficulties.

• Dealing with errors? E.g. program input is often different from what is expected.

• The program may be reliable in a user’s point of view even if it is not correct.

• A crucial property in some applications.

Page 9: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Performance

• Performance = efficiency.• Efficiency: memory management, disk

management, CPU usage, ... • Asymptotic behaviour: what happens when inputs

grow larger?• Transaction processing systems:

- Throughput = how many transactions can be processed in a given time slice (average or min)- Response time = the time (max or average) needed to process a transaction.

Page 10: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - User friendliness

• A software system is user friendly if the users find it easy to use.

• A subjective quality.• Incorrect, inefficient, and unreliable systems are

not very user friendly.• A non-robust system may be user friendly.

Page 11: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Verifiability

• A software system is verifiable, if its properties can be verified easily.

• The software properties can be verified using testing or formal analysis.

Page 12: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Maintainability

• A software system is maintainable, if it is easy to maintain.

• Corrective maintenance - removing errors (repairability)

• Adaptive maintenance - adapting the software to new or changing environments (evolvability).

• Perfective maintenance - improving other software qualities (evolvability).

Page 13: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Evolvability

• A software system is evolvable, if it is easy to add new functions or change old ones.

• Adding new functions or changing the old ones usually ”eats up” some of the evolvability - after the change the software is usually less evolvable.

Page 14: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Reusability

• A software system is reusable, if it can be used to produce another software system.

• Reusability is rare in practice.• In addition to the program code, also other parts of

the software product, such as designs and documentation, can be reusable.

Page 15: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Portability

• A software system is portable, if it can be run (or it can be made to run) in different environments.

• Portability across different hardware architectures.• Portability across different operating systems.• Portability across different hardware

configurations.

Page 16: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Understandability

• How easy is it to understand the system’s structure and how it works?

• Some tasks are more complex: it is easier to understand an ordinary text editor than an operating system.

• There is internal and external understandability.

Page 17: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Interoperability

• is the ability to co-operate with other systems.• Exchange of data using data files.• Exchange of data using some kind of a clipboard.• Exchange of data using network.• Standard interfaces• Open system - open interfaces

Page 18: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Productivity

• The efficiency of the software production process (internal).

• Huge differences between teams and individuals (starting from the fact that some teams or individuals may not be able to complete some tasks at all).

• In producing new software one individual can easily be 2-4 times more productive than another.

• In maintaining old software one individual can in extreme cases be 20-40 (or even more) times more productive than another.

Page 19: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Timeliness

• The ability to deliver a product in time.• Does not happen too often.• Result: Alpha versions, Beta versions, ”Early pre-

prototype test versions”, ...• Which is better:

to deliver a defective product in time orto deliver a better product late?(Ok, this depends on the situation.)

Page 20: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS - Visibility

• The software development process is visible, if it is easy to see what has been done and what has happened.

• If all know what the state of the process is, it is easier to know when to do what.

• When personnel changes (and in long projects it does), visibility is very valuable.

Page 21: OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99

QUALITY COMPONENTS

• Correctness• Reliability• Robustness• Performance• User Friendliness• Verifiability• Maintainability

• Reusability• Portability• Understandability• Interoperability• Productivity• Timeliness• Visibility