cs551 lecture 5: quality attributes

16
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816) 235-5932 [email protected] www.cstp.umkc.edu/~yugi

Upload: fennella-peppard

Post on 31-Dec-2015

19 views

Category:

Documents


0 download

DESCRIPTION

CS551 Lecture 5: Quality Attributes. Yugi Lee FH #555 (816) 235-5932 [email protected] www.cstp.umkc.edu/~yugi. Classifications of Qualities. Functional requirements - visible to a system’s end- user Non-functional requirements - visible only to a system’s developers Business quality. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CS551 Lecture 5: Quality Attributes

CS551 - Lecture 51

CS551Lecture 5: Quality Attributes

Yugi Lee

FH #555(816) 235-5932

[email protected]

www.cstp.umkc.edu/~yugi

Page 2: CS551 Lecture 5: Quality Attributes

2CS551 - Lecture 5

Classifications of Qualities

• Functional requirements - visible to a system’s end- user

• Non-functional requirements - visible only to a system’s developers

• Business quality

• Product vs. Process– Qualities of a process

can impact the qualities of a product

– Product can take on different meanings for different stakeholders

– Quality attributes can be prioritized according to the stakeholders’ needs

Page 3: CS551 Lecture 5: Quality Attributes

3CS551 - Lecture 5

External Quality Attributes

• Functional Requirements: Performance, security, availability, functionality, usability – How well does the system, during execution satisfy its

behavioral requirement?

– Does it provide the required result?

– Does it provide them in a timely enough manner?

– Are the results correct or within specified accuracy and stability tolerances?

– Does the system function as desired when connected to other systems?

Page 4: CS551 Lecture 5: Quality Attributes

4CS551 - Lecture 5

Internal Quality Attributes

• Non-functional Requirments: – Modifiability, scalability, portability, reusability,

integrability, testability (verifiability), interoperability

– How easy is the system to integrate, test and modify?

• Business Qualities Time to market, Cost, Projected lifetime of the system,

Targeted market, Rollout schedule, Extensive use of legacy systems

How expensive was it to develop? What was its time to market?

Page 5: CS551 Lecture 5: Quality Attributes

5CS551 - Lecture 5

Software Qualities

• Correctness/Verifiability

• Reliability/Availability• Robustness• Performance• Security• Maintainability/

Modifiability• Reusability/

Integrability

• Understandability/Usability/User Friendliness

• Interoperability/Portability

• Productivity• Timeliness/Visibility

Page 6: CS551 Lecture 5: Quality Attributes

6CS551 - Lecture 5

Correctness & Verifiability

• Correctness: – A system is functionally correct

• if it behaves according to its functional requirements specifications

– Correctness asserts an equivalence between the software and its specifications

– Assessment: Testing and Verification (program proofs)

• Verifiability: – Can properties of the system be verified? – Typically an internal quality

Page 7: CS551 Lecture 5: Quality Attributes

7CS551 - Lecture 5

Reliability & Availability

• Reliability: A system can be reliable but not correct– e. g. the fault is not serious in nature and

the user can continue to get work done in its presence

– Engineering products are expected to be reliable; with software, users expect bugs!

• Availability: how quickly the system is able to resume operation in the event of failure.

Page 8: CS551 Lecture 5: Quality Attributes

8CS551 - Lecture 5

Security

• The system’s ability – to resist unauthorized attempts at usage and denial of

service – while still providing it services to legitimate user.

Page 9: CS551 Lecture 5: Quality Attributes

9CS551 - Lecture 5

Robustness

• How well does a system behave in situations not specified by its requirements?– Examples

•incorrect input, hardware failure, loss of power

• Related to correctness– response specified

•implementation must handle to be correct– response not specified => robustness involved

Page 10: CS551 Lecture 5: Quality Attributes

10CS551 - Lecture 5

Performance

• In SE, performance is equated with efficiency– How quickly does it perform its

operations?– Does it make efficient use of resources?– Is it scalable?

• The time required to respond to stimuli (events) or the number of events processed in some interval of time.

Page 11: CS551 Lecture 5: Quality Attributes

11CS551 - Lecture 5

Modifiability & Maintainability

• Modifiability– The ability to make changes quick and cost effectively

– A function of locality of any change

– Most closely aligned to the architecture of a system

• Maintainability– Corrective (software repair), enhancement (software

update), Perfective (the effective of the product) , and Adaptive (changes in environment)

– Related: Repairability and Evolvability

Page 12: CS551 Lecture 5: Quality Attributes

12CS551 - Lecture 5

Reusability & Integrability

• Reusability: Software components, people, requirements can be reused again in future applications. – SE needs to make reuse standard practice– Why? It’s standard practice in all engineering

disciplines!

• Integrability: The ability to make the separately developed components of the system work correctly together.

Page 13: CS551 Lecture 5: Quality Attributes

13CS551 - Lecture 5

Portability & Interoperability

• Portability: – The ability to run the same system in multiple

contexts (typically hardware/ OS combinations)

• Interoperability: – Can a system coexist and cooperate with other

systems?• Again, present in other engineering disciplines

Page 14: CS551 Lecture 5: Quality Attributes

14CS551 - Lecture 5

Understandability & Usability & User Friendliness

• Understandability: – How well do developers understand a system they have

produced?• supports evolvability and understandability

• Usability: The right information is available to the user at the right time

• User Friendliness: Human- Computer Interaction– Related: Human Factors, Cognitive Science

Page 15: CS551 Lecture 5: Quality Attributes

15CS551 - Lecture 5

Productivity

• The efficiency of a development process– An efficient process can produce a product faster and

with higher quality– Can parts of it be automated?– Standard processes?

• Software Life Cycles• Capability Maturity Model

– Measure everything!

– Use the results to improve the process the next time

Page 16: CS551 Lecture 5: Quality Attributes

16CS551 - Lecture 5

Visibility & Timeliness

• Visibility– A process is visible if all of its results and current

status are documented clearly to internal and external viewers

• Timeliness– The ability to deliver a system on- time

• requires careful scheduling, accurate estimates and visible milestones