6. 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.
14. 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
19. 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.
20. 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
21. 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?
24. Confidential
Rule Three – Be Consistent
• Be Consistent
• Things that look the same should act the same.
• Things that look different should act different.
27. 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》,中文版名为《交互设计之路——让高科
技产品回归人性》
36. 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.
37. 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.
38. 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.
42. 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
44. 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.
45. 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.
48. 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.
51. 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.
53. 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.
55. 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
57. 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.
58. 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
65. Confidential
Business Qualities
• Time to Market
• Cost and Benefit
• Project Lifetime
• Target Market
• Rollout schedule
• Integration with Legacy System
66. 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.