Lecture 7 Quality Attributes = Nonfunctional Req. Topics Quality AttributesReadings: January 29, 2008 CSCE 492 Software Engineering.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Testing Relational Database
Test process essentials Riitta Viitamäki,
DAIMI(c) Henrik Bærbak Christensen1 Software Architecture Quality Attributes.
System Integration Verification and Validation
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Instructor: Tasneem Darwish
Understanding Quality Attributes. Functionality and Quality Attributes  Functionality and quality attributes are orthogonal.  Functionality can be achieved.
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
The Architecture Design Process
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
1 Steve Chenoweth Tuesday, 10/18/11 Week 7, Day 2 Right – One view of the layers of ingredients to an enterprise security program. From
Evaluating Software Architectures RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz.
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Non-functional requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Requirements Engineering
Managing Software Quality
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
CLEANROOM SOFTWARE ENGINEERING.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
Security Security is a measure of the system’s ability to protect data and information from unauthorized access while still providing access to people.
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
CSE 303 – Software Design and Architecture
Quality Attributes Often know as “–ilities” …
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Quality Attribute -continued. What is Availability? Availability refers to a property of software that it is there and ready to carry out its task when.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Designing & Testing Information Systems Notes Information Systems Design & Development: Purpose, features functionality, users & Testing.
Software Testing and Quality Assurance Software Quality Assurance 1.
1 Software Architecture in Practice Quality attributes.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Architecture in Practice Quality attributes (The amputated version)
CSE 303 – Software Design and Architecture
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (1)
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Non Functional Testing. Contents Introduction – Security Testing Why Security Test ? Security Testing Basic Concepts Security requirements - Top 5 Non-Functional.
 System Requirement Specification and System Planning.
Powerpoint Templates Data Communication Muhammad Waseem Iqbal Lecture # 07 Spring-2016.
TOTAL QUALITY MANAGEMENT
Software Architecture in Practice
Software Quality Assurance Software Quality Factor
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Lecture 7 – Quality Attributes
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture in Practice
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Lecture 7 Quality Attributes = Nonfunctional Req. Topics Quality AttributesReadings: January 29, 2008 CSCE 492 Software Engineering

– 2 – CSCE 492 Spring 2008 Overview Last Time Documenting Software Architecture Rational Unified Process (RUP) - Kruchten Today’s Lecture Quality Attributes = Nonfunctional requirementsReferences: Documenting Software Architectures: Views and Beyond, 2002, Addison-Wesley, SEI series. Next Time: Quality Attributes = Nonfunctional requirements

– 3 – CSCE 492 Spring 2008 Creating An Architecture “Beauty is in the eye of the beholder” Booth Tarkington (1838–1918). The Magnificent Ambersons So whose concept of “Quality” does the architect use? His/her own? Customer? Can’t we all just agree? (paraphrasing Rodney King) Can we move to a more objective less subjective def.? We will use quality attribute scenarios

– 4 – CSCE 492 Spring 2008 Understanding Quality The surest foundation of a manufacturing concern is quality. After that, and a long way after, comes cost. Andrew Carnegie Quality is never an accident; it is always the result of high intention, sincere effort, intelligent direction and skillful execution… Will A. Foster

– 5 – CSCE 492 Spring 2008 Qualities Examples  Usability  Modifiability  Performance  Security  Availability  Testability  On cost, on schedule  Cost and benefit  Integration with legacy systems  Functionality?

– 6 – CSCE 492 Spring 2008 Functionality vs Quality Functionality and other quality attributes are orthogonal. Orthogonal ? At least independent? Note functionality does not imply anything about others! What is functionality anyway? The system works as intended. If functionality was the only concern we could implement as one large module in Cobol or even assembly language. So functionality is a prime goal, but it should not be the only goal.

– 7 – CSCE 492 Spring 2008 Architecture and Quality Attributes Achieving quality attributes must be considered thru: Design Implementation, and Deployment No attribute is entirely dependent on design or other phases. Satisfactory inclusion of quality attributes means you must get the big picture ( architecture) and the details (implementation) right!

– 8 – CSCE 492 Spring 2008 Usability: Arch. Vs Non-Arch Aspects Non-architectural aspects of usability: Making the user-interface clear and easy to use Should we use radio button or check box? What font? All a crucial to end-user usabilty, but they are not architectural Examples of architectural aspects of usability Whether the system provides an “undo’ capability to the user? Can we – reuse data previously entered? These are architectural because they are going to require the cooperation of several elements.

– 9 – CSCE 492 Spring 2008 Modifiability: Arch. Vs Non-Arch Aspects Architectural aspects of Modifiability: How functionality is partitioned Non-architectural aspects of Modifiability : Coding techniques used within a module Note: in spite of having the perfect decomposition, the implementation may be not be maintainable. You must be concerned about modifiability at all levels, all the time.

– 10 – CSCE 492 Spring 2008 Performance: Arch. Vs Non-Arch Aspects The performance of a systems depends on both architectural and non-architecture aspects. Architectural aspects of Performance: Communication between components Partially on partitioning of functionality Allocation of resources Non-architectural aspects of Performance: Choice of algorithms How these algorithms are coded

– 11 – CSCE 492 Spring 2008 Architectural Vs Non-Architectural  Architecture is critical to achieving quality attributes.  Architecture alone cannot achieve these qualities. Quality attributes can never be achieved in isolation. The achievement of one attribute may negatively (or perhaps positively) influence the achievement of another. E.g., security and reliability, (or security and usability or performance and modifiability) are often at cross– purposes

– 12 – CSCE 492 Spring 2008 Types of Quality Attributes  Qualities of the system Availability Performance Security Testability Usability  Business qualities Time-to-market Cost and benefit Projected lifetime  Overall architectural qualities. Conceptual integrity Correctness and completeness Constructability

– 13 – CSCE 492 Spring 2008 System Quality Attributes Been a focus of the software industry since the 1970’s Each attribute ( usability, performance, reliability) has its own focus group of researchers, conferences, journals, terminology etc. Usability (SIGCHI) - Performance (SIGMETRIC) Reliability - Attributes are not “operational”. What does it mean to say a system is modifiable, it needs to be measurable so we can make comparisons, judgments.

– 14 – CSCE 492 Spring 2008 Quality Attribute Scenarios Quality Attribute Scenario is a quality-attribute-specific requirement. There are 6 parts:  Source of stimulus  Stimulus – a condition that needs to be considered  Environment - what are the conditions when the stimulus occurs?  Artifact – what elements of the system are stimulated.  Response  Response measure – when the response occurs it should be measurable so that the requirement can be tested. Figure 4.1

– 15 – CSCE 492 Spring 2008 Availability Scenarios Figure 4.2 General availability scenario Figure 4.3 Example availability scenario

– 16 – CSCE 492 Spring 2008 Modifiability Scenarios Same general format as for availability scenarios. (4.2) Figure 4.4 Example Modifiability scenario “change the UI; make the background color blue.” Source: developer Source: developer Stimulus: request for change (maybe ) Stimulus: request for change (maybe ) Artifact: the code for the UI Artifact: the code for the UI Environment: design time Environment: design time Response: modification with no side effects made Response: modification with no side effects made Response measure: three hours Response measure: three hours

– 17 – CSCE 492 Spring 2008 Quality Attribute Scenario Generation Architect’s Goal: generate meaningful quality attribute requirements for the system Quality-attribute-specific tables  General scenarios  System specific scenarios

– 18 – CSCE 492 Spring 2008 Availability Scenarios in Practice Availability is concerned with system failure and duration of system failures. System failure means … when the system does not provide the service for which it was intended. Failure vs fault – A “system failure” is observable by the system’s user A system fault may cause a “system failure” or it might be masked. Measuring availability?

– 19 – CSCE 492 Spring 2008 Measuring Availability Mean time to failure – Mean time to repair – Availability = MTF / (MTF + MTR) How do we figure in scheduled downtime?

– 20 – CSCE 492 Spring 2008 Availability General Scenario Generation Table 4.1 Scenario Portion Possible Values Source Internal to system or external to system Stimulus Crash, timing, no response, incorrect response Artifact System’s processors, communication channels, persistent storage Environment Normal operation; degraded (failsafe) mode Response Log the failure, notify users/operators RespMeasure Time interval when it must be available, availability%, unavailability time interval

– 21 – CSCE 492 Spring 2008 Modifiability Scenarios in Practice Modifiability is about the cost of change, both in time and money. (Time is money. Who said this?) Two major concerns:  What can change the artifact? Changes top the function the system computes Changes to the environment in which it operates (portability) Qualities of the system  When is the change made and who makes it? In the past developers changed the code. Changes made at several levels: User changing a screen color to her liking Modifications to source code Modifications to compile-time switches During execution

– 22 – CSCE 492 Spring 2008 Modifiability General Scenario Generation Table 4.2 Scenario Portion Possible Values Source End-user, developer, system-administrator Stimulus Add/delete/modify functionality or quality attr. Artifact System user interface, platform, environment Environment At runtime, compile time, build time, design- time Response Locate places in architecture for modifying, modify, test modification, deploys modification RespMeasure Cost in effort, money, time, extent affects other system functions or qualities

– 23 – CSCE 492 Spring 2008 Performance Scenarios in Practice Performance is about time. Events occur and the system must respond in a timely fashion. Probabilistic distribution of arrival of events. Queue of events, queue lengths … Response time can be measured by: Latency = Throughput = Deadlines in processing Jitter of response = variability of latency Number of events not processed (system overwhelmed) Amount of data loss when system is overwhelmed

– 24 – CSCE 492 Spring 2008 Performance General Scenario Generation Table 4.3 Scenario Portion Possible Values Source A number of sources both external and internal Stimulus Periodic events, sporadic events, stochastic events Artifact System, or possibly a component Environment Normal mode; overload mode Response Process stimuli; change level of service RespMeasure Latency, deadline, throughput, jitter, miss rate, data loss

– 25 – CSCE 492 Spring 2008 Security Scenarios in Practice Security is the ability of the system to prevent or resist unauthorized access while providing access to legitimate users. Attack – is an attempt to breach security Unauthorized login Sniffing data on communication channel Unauthorized access/modification of data Denial of services attacks – crash the system

– 26 – CSCE 492 Spring 2008 Aspects of System Security Security can be characterized by providing: Nonrepudiation – a transaction cannot be denied Confidentiality – data or services are protected from unauthorized access Integrity - data or services are delivered as intended Assurance – (authentication) the parties to the transaction are who they say they are Availability - the system will be available for legitimate use; no DOS. Auditing – the system tracks activities at several levels sufficient to reconstruct them

– 27 – CSCE 492 Spring 2008 Security General Scenario Generation Table 4.4 Scenario Portion Possible Values Source User/system who is legitimate/imposter/unknown with full/limited access Stimulus Attempt to display/modify data; access services Artifact System services, data Environment Normal operation; degraded (failsafe) mode Response Authenticate user; hide identity of user; grant/block access … RespMeasure Time /effort/resources to circumvent security measures with probability of success

– 28 – CSCE 492 Spring 2008 Testability Scenarios in Practice Software testability refers to the ease with which the software can be made to demonstrate its faults or lack thereof. 40% of the cost of developing systems is taken up by testing (CSCE 747) If the architect can reduce this cost through design then the payoff is substantial. Measures? Probability that a fault will be revealed by test suite (or test) To be testable the system must control inputs and by able to observe outputs Test harness – test suites; regression suites

– 29 – CSCE 492 Spring 2008 Testability General Scenario Generation Table 4.5 Scenario Portion Possible Values Source Unit developer, increment integrator, system verifier, client acceptance tester, system user Stimulus Analysis, architecture, design, class, subsystem integration, system delivered Artifact Piece of design, piece of code, complete system Environment At design time, at development time, at compile time, at deployment time Response Provide access to state data values, observes results, compares RespMeasure Coverage; prob of failure, time to perform tests, length of time to prepare test environment

– 30 – CSCE 492 Spring 2008 Usability Scenarios in Practice Usability is how easy is it for the user to accomplish tasks and what support the system provides for the user to accomplish this. Dimensions: Learning system features Using the system efficiently Minimizing the impact of errors Adapting the system to the user’s needs Increasing confidence and satisfaction Usability Mea Culpa – p 92

– 31 – CSCE 492 Spring 2008 Testability General Scenario Generation Table 4.6 Scenario Portion Possible Values Source End user Stimulus Wants to: learn system, use system, recover from errors, adapt system, feel comfortable ArtifactSystem Environment At runtime, or configure time, install-time Response RespMeasure Task time, number of errors, number of tasks accomplished, user satisfaction, gain of user knowledge, amount of time. data lost

– 32 – CSCE 492 Spring 2008 Usability Scenarios in Practice: Responses System responses to stimuli: To learn system Help system is context sensitive Interface familiar, consistent To use system efficiently Reuse of command or data already entered Navigation support, comprehensive searching To recover from errors Undo, cancel, recover from system failures forgotten passwords To adapt system: customize the system to user liking To feel comfortable

– 33 – CSCE 492 Spring 2008 Quality Attribute Stimuli AttributeStimulus Availability Unexpected event, nonoccurrence of expected event Modifiability Request to add/delete/modify functionality, platform, quality-attribute or capacity Performance Periodic, stochastic or sporadic Security Attempt to access/display/modify information or resources; reduce availability of system Testability Completion of phase of system development Usability User wants to: learn, use, minimize impact or errors, adapt the system, feel comfortable

– 34 – CSCE 492 Spring 2008 Business Qualities Time to market Cost and benefit Projected lifetime of system Targeted market Rollout schedule Integration with legacy systems

– 35 – CSCE 492 Spring 2008 Architectural Qualities Conceptual integrity – do similar things in similar ways “I will contend that conceptual integrity is the most important consideration in system design. It is better to have a system omit anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independent and uncoordinated ideas.” Brooks Mythical Man-Month 1975 Correctness and completeness Buildability

– 36 – CSCE 492 Spring 2008 References  You have access to this from any USC ( x.y) IP address. Google “ACM digital library”  ACM Digital Library You have access to this from any USC ( x.y) IP address. Google “ACM digital library”