Slide 1

Slide 1 text

Quality Attributes in Software Architecture

Slide 2

Slide 2 text

Quality Attributes in Software Architecture Nov 2011 Gang Tao

Slide 3

Slide 3 text

Confidential Levels of Requirement Business Requirements Vision and Scope Documents User Requirements Quality Attributes Other Nonfunctional Requirements Use Cases Functional Requirements Software Requirements Specification

Slide 4

Slide 4 text

Confidential Quality Attributes

Slide 5

Slide 5 text

Responsiveness

Slide 6

Slide 6 text

Confidential Responsiveness • Responsiveness is defined as how quickly a system responds to user input. • Long delays can be a major cause of user frustration, or let the user believe the system is broken or that a command or input has been ignored. • Responsiveness is not same as performance.

Slide 7

Slide 7 text

Confidential Responsive Matters

Slide 8

Slide 8 text

Confidential Responsiveness • All Operations Must Be Responsive Click Me Under normal IO load, any operation must return to the user within 3 seconds.

Slide 9

Slide 9 text

Confidential A Case Study • getVersion() methods cause serious performance downgrade.

Slide 10

Slide 10 text

Confidential What causes the performance issue? • Complexity • Indirection • Repetitions • Bad Design • I/O • … …

Slide 11

Slide 11 text

Confidential Price of Optimization • Loss Readability • Increase Complexity • Hard to maintain and extend • Introduce conflict • … …

Slide 12

Slide 12 text

Confidential SAP Standard Reference

Slide 13

Slide 13 text

Scalability

Slide 14

Slide 14 text

Confidential Scalability • Scalability refers to a systems ability to handle increased adversity in its environment in a manner that is graceful and predictable. • Adversity comes in two dimensions: • Increased managed content • Decreased system resources

Slide 15

Slide 15 text

Confidential Scale Up VS Scale Out

Slide 16

Slide 16 text

Confidential Scalability Considerations • Increased Managed Content Must Scale Appropriately • Maintain Viability as System Resources Decrease • UI Data Presentation Scaling • Load Sharing Considerations

Slide 17

Slide 17 text

Usability

Slide 18

Slide 18 text

Confidential Usability

Slide 19

Slide 19 text

Confidential Usability • Usability is the customer’s ability to get work done with the system in an efficient and pleasing manner. • A usable system should build on skills a user already has and not require new or unique knowledge to use the system. • Each new function the user encounters should follow a similar pattern so that once a user has learned one function others are intuitive to learn.

Slide 20

Slide 20 text

Confidential Usability Notions • More efficient to use—takes less time to accomplish a particular task • Easier to learn—operation can be learned by observing the object • More satisfying to use

Slide 21

Slide 21 text

Confidential Usability Composition • Learnability • How easy is it for users to accomplish basic tasks the first time they encounter the design? • Efficiency • Once users have learned the design, how quickly can they perform tasks? • Memorability • When users return to the design after a period of not using it, how easily can they re establish proficiency? • Errors • How many errors do users make, how severe are these errors, and how easily can they recover from the errors? • Satisfaction • How pleasant is it to use the design?

Slide 22

Slide 22 text

Confidential Rule One – Don’t Make Me Think

Slide 23

Slide 23 text

Confidential Rule Two - Know Your Users

Slide 24

Slide 24 text

Confidential Rule Three – Be Consistent • Be Consistent • Things that look the same should act the same. • Things that look different should act different.

Slide 25

Slide 25 text

Confidential Usability VS. User Experiences • Free Discussion

Slide 26

Slide 26 text

Confidential Case Study & Samples

Slide 27

Slide 27 text

Confidential Some References of Usability • [1]《Designing Interfaces》,中文版名为《Designing Interfaces中文版》 • [2]《Usability Engineering》,中文版名为《可用性工程》 • [3]《The Design of Everyday Things》,中文版名为《设计心理学》 • [4]《About Face 3》,中文版名为《交互设计精髓》 • [5]《Designing Web Interfaces》,中文版名为《Web界面设计》 • [6]《Designing the Obvious》,中文版名为《一目了然——Web软件显性设计之路》 • [7]《Communicating Design》,中文版名为《设计沟通十器》 • [8]《Don’t Make Me Think》,中文版名为《点石成金:访客至上的网页设计秘笈》 • [9]《Designing From Both Sides of the Screen》,内外兼修的设计,尚未出版文版 • [10]《UI Design for Programmers》,程序员之用户界面设计,尚未出版中文版 • [11]《The Inmates are Running the Asylum》,中文版名为《交互设计之路——让高科 技产品回归人性》

Slide 28

Slide 28 text

Security

Slide 29

Slide 29 text

Confidential Security • Security is defined as being protected against danger or loss

Slide 30

Slide 30 text

Confidential Security Model Authentication Authorization Audit Encryption

Slide 31

Slide 31 text

Confidential Refereneces • OWASP Top Ten • Seven Pernicious Kingdoms • Sans Top 25 • Common Weakness Enumerations

Slide 32

Slide 32 text

Accessibility

Slide 33

Slide 33 text

Confidential Accessibility • “accessibility“ refers to the possibility for everyone, including and especially people with disabilities, to access and use technology and information products.

Slide 34

Slide 34 text

Confidential Case Study : Choose the right color

Slide 35

Slide 35 text

Serviceability

Slide 36

Slide 36 text

Confidential Serviceability • Serviceability refers to the ability to monitor systems, identify issues, perform root cause analysis, and provide maintenance in order to solve a problem and restore the system to a functioning state.

Slide 37

Slide 37 text

Confidential Serviceability • Diagnostic Infrastructure Should Not Be Intrusive • Issues that arise on a customer site that require engineering involvement should be able to be diagnosed without requiring that the affected system gets taken off line, new binaries get installed, or a debugger gets installed.

Slide 38

Slide 38 text

Confidential Serviceability • Solutions Must Support a Customer-Centric Service Model • Common issues are able to be root-caused and addressed by customers or entry level technical service representatives over the phone. • Meaningful log messages, alerts, and trouble-shooting trees all must be considered to be mandatory and complementary components for servicing a system.

Slide 39

Slide 39 text

Confidential Cost of Service Customer Self Service Web Remote Support, BBS/MSN Phone/Email Support On Site Support

Slide 40

Slide 40 text

Extensibility

Slide 41

Slide 41 text

Confidential Extensibility • With extensibility, the design and implementation takes into consideration future growth.

Slide 42

Slide 42 text

Confidential Extensibility Considerations • Design and Implement With Scale in Mind • Producers of Interfaces Must Support the Ability to Minimize the Amount of Data Returned to a Client • Clients Should Minimize Data Traffic and Network Requests • Business Logic Must Be Centralized • Revision Compatibility Focus

Slide 43

Slide 43 text

Distributability

Slide 44

Slide 44 text

Confidential Distributability • Distributability is defined as the ability to manage a group of systems as one unit and to perform management from any location in the network. • Decide whether a component will run in process, in a separate process on the same machine, or on a remote machine.

Slide 45

Slide 45 text

Confidential Layers and Tiers • Layers are a means of logical separation, and are an architectural pattern to separate concerns • Tiers are the physical separation of an application.

Slide 46

Slide 46 text

Confidential Distributed Architecture • Web Service • CORBA

Slide 47

Slide 47 text

Maintainability

Slide 48

Slide 48 text

Confidential Maintainability • Maintainability means the ease with which a system can be modified in order to correct defects, meet new functionality, make maintenance easier, or cope with a changing environment.

Slide 49

Slide 49 text

Confidential Maintainability Tips • Adhere to Coding Standards • Avoid duplication • Story Telling with your code • Keep your code simple

Slide 50

Slide 50 text

Portability

Slide 51

Slide 51 text

Confidential Portability • Portability is defined as the ability to reuse features and utility source code, across multiple Operating systems. • By having an OS abstraction layer that implements platform specific utilities, such as locks and shared memory. • Can also be achieved by compiling different segments of code, depending on the platform the software is to be run on.

Slide 52

Slide 52 text

Reliability

Slide 53

Slide 53 text

Confidential Reliability (Availability) • Reliability is defined as the ability of a system, to function correctly, under any reasonable circumstance. • Reasonable can include adverse situations, in which unexpected (but supported) usage occurs. • For Storage systems, this includes putting extreme I/O load on the system, but expecting the system to be manageable.

Slide 54

Slide 54 text

Confidential Availability MTBF – Mean Time Between Failure MTTR – Mean Time to Recovery Availability= MTBF/(MTBF+MTTR)

Slide 55

Slide 55 text

Confidential Reliability Consideration • All errors must be handled in a graceful manner • The Storage System must be manageable, without external dependencies. • There should be NO single point of failure

Slide 56

Slide 56 text

Testability

Slide 57

Slide 57 text

Confidential Testability • Software testability is the degree to which a software artifact (i.e. a software system, software module, requirements- or design document) supports testing in a given test context.

Slide 58

Slide 58 text

Confidential Testability of Software Components • Controllability: The degree to which it is possible to control the state of the component under test (CUT) as required for testing. • Observability: The degree to which it is possible to observe (intermediate and final) test results. • Isolateability: The degree to which the component under test (CUT) can be tested in isolation. • Separation of concerns: The degree to which the component under test has a single, well defined responsibility. • Understandability: The degree to which the component under test is documented or self-explaining. • Automatability: The degree to which it is possible to automate testing of the component under test. • Heterogeneity: The degree to which the use of diverse technologies requires to use diverse test methods and tools in paralle

Slide 59

Slide 59 text

Confidential Testability of Requirements • consistent • complete • unambiguous • quantitative • verifiable in practice

Slide 60

Slide 60 text

Compatibility

Slide 61

Slide 61 text

Confidential Compatibility • Backward • Forward

Slide 62

Slide 62 text

Summary

Slide 63

Slide 63 text

Confidential Quality Attributes Relationship Matrix Responsive ness Reliability Security Usability Extensibility Reliability Security Extensibility Usability Responsive ness Negative Impact No Impact Positive Impact

Slide 64

Slide 64 text

Confidential Quality Model • McCall/GE Quality Model • ISO 9126

Slide 65

Slide 65 text

Confidential Business Qualities • Time to Market • Cost and Benefit • Project Lifetime • Target Market • Rollout schedule • Integration with Legacy System

Slide 66

Slide 66 text

Confidential Symptoms of Bad Architecture • Rigidity • the system is hard to change because every change forces many other changes. • Fragility • changes cause the system to break in conceptually unrelated places. • Immobility • it’s hard to disentangle the system into reusable components. • Viscosity • doing things correctly is harder than doing things incorrectly. • Opacity • the code is hard to read and understand. It does not express its intent well.