160 likes | 257 Views
CS551 Lecture 5: Quality Attributes. Yugi Lee FH #555 (816) 235-5932 yugi@cstp.umkc.edu 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.
E N D
CS551Lecture 5: Quality Attributes Yugi Lee FH #555 (816) 235-5932 yugi@cstp.umkc.edu www.cstp.umkc.edu/~yugi CS551 - 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 CS551 - 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? CS551 - 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? CS551 - Lecture 5
Correctness/Verifiability Reliability/Availability Robustness Performance Security Maintainability/Modifiability Reusability/Integrability Understandability/Usability/User Friendliness Interoperability/Portability Productivity Timeliness/Visibility Software Qualities CS551 - 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 CS551 - 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. CS551 - 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. CS551 - 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 CS551 - 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. CS551 - 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 CS551 - 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. CS551 - 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 CS551 - 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 CS551 - 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 CS551 - 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 CS551 - Lecture 5