Quality Attributes in Software Architecture

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. Quality Attributes in Software Architecture
2. Quality Attributes in Software Architecture Nov 2011 Gang Tao
3. Levels of Requirement Business Requirements Vision and Scope Documents User Requirements Use Cases Functional Requirements Quality Attributes Other Nonfunctional Requirements Software Requirements Specification Confidential
4. Quality Attributes Confidential
5. Responsiveness
6. 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. Confidential
7. Responsive Matters Confidential
8. Responsiveness • All Operations Must Be Responsive Click Me Under normal IO load, any operation must return to the user within 3 seconds. Confidential
9. A Case Study • getVersion() methods cause serious performance downgrade. Confidential
10. What causes the performance issue? • Complexity • Indirection • Repetitions • Bad Design • I/O • … … Confidential
11. Price of Optimization • Loss Readability • Increase Complexity • Hard to maintain and extend • Introduce conflict • … … Confidential
12. SAP Standard Reference Confidential
13. Scalability
14. 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 Confidential
15. Scale Up VS Scale Out Confidential
16. Scalability Considerations • Increased Managed Content Must Scale Appropriately • Maintain Viability as System Resources Decrease • UI Data Presentation Scaling • Load Sharing Considerations Confidential
17. Usability
18. Usability Confidential
19. 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. Confidential
20. 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 Confidential
21. 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? Confidential
22. Rule One – Don’t Make Me Think Confidential
23. Rule Two - Know Your Users Confidential
24. Rule Three – Be Consistent • Be Consistent • Things that look the same should act the same. • Things that look different should act different. Confidential
25. Usability VS. User Experiences • Free Discussion Confidential
26. Case Study & Samples Confidential
27. Some References of Usability • [1] 《Designing • [2] 《Usability • [3] 《The • [4] 《About • [5] 《Designing Web Interfaces》,中文版名为《Web界面设计》 • [6] 《Designing the Obvious》,中文版名为《一目了然——Web软件显性设计之路》 • [7] 《Communicating • [8] 《Don’t • [9] 《Designing • [10] 《UI • [11] 《The Interfaces》,中文版名为《Designing Interfaces中文版》 Engineering》,中文版名为《可用性工程》 Design of Everyday Things》,中文版名为《设计心理学》 Face 3》,中文版名为《交互设计精髓》 Design》,中文版名为《设计沟通十器》 Make Me Think》,中文版名为《点石成金:访客至上的网页设计秘笈》 From Both Sides of the Screen》,内外兼修的设计,尚未出版文版 Design for Programmers》,程序员之用户界面设计,尚未出版中文版 Inmates are Running the Asylum》,中文版名为《交互设计之路——让高科 技产品回归人性》 Confidential
28. Security
29. Security • Security is defined as being protected against danger or loss Confidential
30. Security Model Authentication Authorization Audit Encryption Confidential
31. Refereneces • OWASP Top Ten • Seven Pernicious Kingdoms • Sans Top 25 • Common Weakness Enumerations Confidential
32. Accessibility
33. Accessibility • “accessibility“ refers to the possibility for everyone, including and especially people with disabilities, to access and use technology and information products. Confidential
34. Case Study : Choose the right color Confidential
35. Serviceability
36. 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. Confidential
37. 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. Confidential
38. 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. Confidential
39. Cost of Service Customer Self Service Web Remote Support, BBS/MSN Phone/Email Support On Site Support Confidential
40. Extensibility
41. Extensibility • With extensibility, the design and implementation takes into consideration future growth. Confidential
42. 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 Confidential
43. Distributability
44. 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. Confidential
45. 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. Confidential
46. Distributed Architecture • Web Service • CORBA Confidential
47. Maintainability
48. 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. Confidential
49. Maintainability Tips • Adhere to Coding Standards • Avoid duplication • Story Telling with your code • Keep your code simple Confidential
50. Portability
51. 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. Confidential
52. Reliability
53. 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. Confidential
54. Availability MTBF – Mean Time Between Failure MTTR – Mean Time to Recovery Availability= MTBF/(MTBF+MTTR) Confidential
55. 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 Confidential
56. Testability
57. 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. Confidential
58. 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 Confidential
59. Testability of Requirements • consistent • complete • unambiguous • quantitative • verifiable in practice Confidential
60. Compatibility
61. Compatibility • Backward • Forward Confidential
62. Summary
63. Quality Attributes Relationship Matrix Negative Impact Responsive ness No Impact Positive Impact Usability Extensibility Security Reliability Responsive ness Usability Extensibility Security Reliability Confidential
64. Quality Model • McCall/GE Quality Model • ISO 9126 Confidential
65. Business Qualities • Time to Market • Cost and Benefit • Project Lifetime • Target Market • Rollout schedule • Integration with Legacy System Confidential
66. 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. Confidential

trang chủ - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 18:58
浙ICP备14020137号-1 $bản đồ khách truy cập$