Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 9 Design Engineering

Similar presentations


Presentation on theme: "Chapter 9 Design Engineering"— Presentation transcript:

1 Chapter 9 Design Engineering
California State University, Los Angeles – cs337 – Part III

2 Analysis Model -> Design Model
California State University, Los Angeles – cs337 – Part III

3 Design and Quality the design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. the design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software. the design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective. California State University, Los Angeles – cs337 – Part III

4 Quality Guidelines A design should exhibit an architecture that (1) has been created using recognizable architectural styles or patterns, (2) is composed of components that exhibit good design characteristics and (3) can be implemented in an evolutionary fashion For smaller systems, design can sometimes be developed linearly. A design should be modular; that is, the software should be logically partitioned into elements or subsystems A design should contain distinct representations of data, architecture, interfaces, and components. A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns. A design should lead to components that exhibit independent functional characteristics. A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis. A design should be represented using a notation that effectively communicates its meaning. California State University, Los Angeles – cs337 – Part III

5 Design Principles The design process should not suffer from ‘tunnel vision.’ The design should be traceable to the analysis model. The design should not reinvent the wheel. The design should “minimize the intellectual distance” [DAV95] between the software and the problem as it exists in the real world. The design should exhibit uniformity and integration. The design should be structured to accommodate change. The design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered. Design is not coding, coding is not design. The design should be assessed for quality as it is being created, not after the fact. The design should be reviewed to minimize conceptual (semantic) errors. From Davis [DAV95] California State University, Los Angeles – cs337 – Part III

6 Fundamental Concepts abstraction—data, procedure, control
architecture—the overall structure of the software patterns—”conveys the essence” of a proven design solution modularity—compartmentalization of data and function hiding—controlled interfaces Functional independence—single-minded function and low coupling refinement—elaboration of detail for all abstractions Refactoring—a reorganization technique that simplifies the design California State University, Los Angeles – cs337 – Part III

7 Data Abstraction door manufacturer model number type swing direction
inserts lights type number weight opening mechanism implemented as a data structure California State University, Los Angeles – cs337 – Part III

8 Procedural Abstraction
open details of enter algorithm implemented with a "knowledge" of the object that is associated with enter California State University, Los Angeles – cs337 – Part III

9 Architecture “The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” [SHA95a] Structural properties. This aspect of the architectural design representation defines the components of a system (e.g., modules, objects, filters) and the manner in which those components are packaged and interact with one another. For example, objects are packaged to encapsulate both data and the processing that manipulates the data and interact via the invocation of methods Extra-functional properties. The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics. Families of related systems. The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems. In essence, the design should have the ability to reuse architectural building blocks. California State University, Los Angeles – cs337 – Part III

10 Patterns Design Pattern Template
Pattern name—describes the essence of the pattern in a short but expressive name Intent—describes the pattern and what it does Also-known-as—lists any synonyms for the pattern Motivation—provides an example of the problem Applicability—notes specific design situations in which the pattern is applicable Structure—describes the classes that are required to implement the pattern Participants—describes the responsibilities of the classes that are required to implement the pattern Collaborations—describes how the participants collaborate to carry out their responsibilities Consequences—describes the “design forces” that affect the pattern and the potential trade-offs that must be considered when the pattern is implemented Related patterns—cross-references related design patterns California State University, Los Angeles – cs337 – Part III

11 Modular Design California State University, Los Angeles – cs337 – Part III

12 Modularity: Trade-offs
What is the "right" number of modules for a specific software design? module development cost cost of software module integration cost optimal number number of modules of modules California State University, Los Angeles – cs337 – Part III

13 Information Hiding module clients • algorithm controlled
interface • data structure • details of external interface • resource allocation policy clients "secret" a specific design decision California State University, Los Angeles – cs337 – Part III

14 Why Information Hiding?
reduces the likelihood of “side effects” limits the global impact of local design decisions emphasizes communication through controlled interfaces discourages the use of global data leads to encapsulation—an attribute of high quality design results in higher quality software California State University, Los Angeles – cs337 – Part III

15 Stepwise Refinement open walk to door; reach for knob; open door;
repeat until door opens turn knob clockwise; walk through; if knob doesn't turn, then close door. take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat California State University, Los Angeles – cs337 – Part III

16 Functional Independence
California State University, Los Angeles – cs337 – Part III

17 Sizing Modules: Two Views
California State University, Los Angeles – cs337 – Part III

18 Refactoring Fowler [FOW99] defines refactoring in the following manner: "Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure.” When software is refactored, the existing design is examined for redundancy unused design elements inefficient or unnecessary algorithms poorly constructed or inappropriate data structures or any other design failure that can be corrected to yield a better design. California State University, Los Angeles – cs337 – Part III

19 OO Design Concepts Design classes
Entity classes Boundary classes Controller classes Inheritance—all responsibilities of a superclass is immediately inherited by all subclasses Messages—stimulate some behavior to occur in the receiving object Polymorphism—a characteristic that greatly reduces the effort required to extend the design California State University, Los Angeles – cs337 – Part III

20 Design Classes Analysis classes are refined during design to become entity classes Boundary classes are developed during design to create the interface (e.g., interactive screen or printed reports) that the user sees and interacts with as the software is used. Boundary classes are designed with the responsibility of managing the way entity objects are represented to users. Controller classes are designed to manage the creation or update of entity objects; the instantiation of boundary objects as they obtain information from entity objects; complex communication between sets of objects; validation of data communicated between objects or between the user and the application. California State University, Los Angeles – cs337 – Part III

21 Inheritance Design options:
The class can be designed and built from scratch. That is, inheritance is not used. The class hierarchy can be searched to determine if a class higher in the hierarchy (a superclass)contains most of the required attributes and operations. The new class inherits from the superclass and additions may then be added, as required. The class hierarchy can be restructured so that the required attributes and operations can be inherited by the new class. Characteristics of an existing class can be overridden and different versions of attributes or operations are implemented for the new class. California State University, Los Angeles – cs337 – Part III

22 Messages California State University, Los Angeles – cs337 – Part III

23 Polymorphism Conventional approach …
case of graphtype: if graphtype = linegraph then DrawLineGraph (data); if graphtype = piechart then DrawPieChart (data); if graphtype = histogram then DrawHisto (data); if graphtype = kiviat then DrawKiviat (data); end case; All of the graphs become subclasses of a general class called graph. Using a concept called overloading [TAY90], each subclass defines an operation called draw. An object can send a draw message to any one of the objects instantiated from any one of the subclasses. The object receiving the message will invoke its own draw operation to create the appropriate graph. graphtype draw California State University, Los Angeles – cs337 – Part III

24 The Design Model California State University, Los Angeles – cs337 – Part III

25 Design Model Elements Data elements Architectural elements
Data model --> data structures Data model --> database architecture Architectural elements Application domain Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations Patterns and “styles” (Chapter 10) Interface elements the user interface (UI) external interfaces to other systems, devices, networks or other producers or consumers of information internal interfaces between various design components. Component elements Deployment elements California State University, Los Angeles – cs337 – Part III

26 Interface Elements California State University, Los Angeles – cs337 – Part III

27 Component Elements California State University, Los Angeles – cs337 – Part III

28 Deployment Elements California State University, Los Angeles – cs337 – Part III

29 Design Patterns The best designers in any field have an uncanny ability to see patterns that characterize a problem and corresponding patterns that can be combined to create a solution A description of a design pattern may also consider a set of design forces. Design forces describe non-functional requirements (e.g., ease of maintainability, portability) associated the software for which the pattern is to be applied. The pattern characteristics (classes, responsibilities, and collaborations) indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems. California State University, Los Angeles – cs337 – Part III

30 Frameworks A framework is not an architectural pattern, but rather a skeleton with a collection of “plug points” (also called hooks and slots) that enable it to be adapted to a specific problem domain. Gamma et al note that: Design patterns are more abstract than frameworks. Design patterns are smaller architectural elements than frameworks Design patterns are less specialized than frameworks California State University, Los Angeles – cs337 – Part III

31 Chapter 10 Architectural Design
California State University, Los Angeles – cs337 – Part III

32 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the effectiveness of the design in meeting its stated requirements, (2) consider architectural alternatives at a stage when making design changes is still relatively easy, and (3) reduce the risks associated with the construction of the software. California State University, Los Angeles – cs337 – Part III

33 Why is Architecture Important?
Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together” [BAS03]. California State University, Los Angeles – cs337 – Part III

34 Data Design At the architectural level …
Design of one or more databases to support the application architecture Design of methods for ‘mining’ the content of multiple databases navigate through existing databases in an attempt to extract appropriate business-level information Design of a data warehouse—a large, independent database that has access to the data that are stored in databases that serve the set of applications required by a business database California State University, Los Angeles – cs337 – Part III

35 Data Design At the component level …
refine data objects and develop a set of data abstractions implement data object attributes as one or more data structures review data structures to ensure that appropriate relationships have been established simplify data structures as required California State University, Los Angeles – cs337 – Part III

36 Data Design—Component Level
1. The systematic analysis principles applied to function and behavior should also be applied to data. 2. All data structures and the operations to be performed on each should be identified. 3. A data dictionary should be established and used to define both data and program design. 4. Low level data design decisions should be deferred until late in the design process. 5. The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure. 6. A library of useful data structures and the operations that may be applied to them should be developed. 7. A software design and programming language should support the specification and realization of abstract data types. California State University, Los Angeles – cs337 – Part III

37 Architectural Styles Data-centered architectures
Each style describes a system category that encompasses: (1) a set of components (e.g., a database, computational modules) that perform a function required by a system, (2) a set of connectors that enable “communication, coordination and cooperation” among components, (3) constraints that define how components can be integrated to form the system, and (4) semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts. Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures California State University, Los Angeles – cs337 – Part III

38 Data-Centered Architecture
California State University, Los Angeles – cs337 – Part III

39 Data Flow Architecture
California State University, Los Angeles – cs337 – Part III

40 Call and Return Architecture
California State University, Los Angeles – cs337 – Part III

41 Layered Architecture California State University, Los Angeles – cs337 – Part III

42 Architectural Patterns
Concurrency—applications must handle multiple tasks in a manner that simulates parallelism operating system process management pattern task scheduler pattern Persistence—Data persists if it survives past the execution of the process that created it. Two patterns are common: a database management system pattern that applies the storage and retrieval capability of a DBMS to the application architecture an application level persistence pattern that builds persistence features into the application architecture Distribution— the manner in which systems or components within systems communicate with one another in a distributed environment A broker acts as a ‘middle-man’ between the client component and a server component. California State University, Los Angeles – cs337 – Part III

43 Architectural Design The software must be placed into context
the design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction A set of architectural archetypes should be identified An archetype is an abstraction (similar to a class) that represents one element of system behavior The designer specifies the structure of the system by defining and refining software components that implement each archetype California State University, Los Angeles – cs337 – Part III

44 Architectural Context
California State University, Los Angeles – cs337 – Part III

45 Archetypes California State University, Los Angeles – cs337 – Part III

46 Component Structure California State University, Los Angeles – cs337 – Part III

47 Refined Component Structure
California State University, Los Angeles – cs337 – Part III

48 Analyzing Architectural Design
1. Collect scenarios. 2. Elicit requirements, constraints, and environment description. 3. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements: • module view • process view • data flow view 4. Evaluate quality attributes by considered each attribute in isolation. 5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style. 6. Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5. California State University, Los Angeles – cs337 – Part III

49 An Architectural Design Method
customer requirements "four bedrooms, three baths, lots of glass ..." architectural design California State University, Los Angeles – cs337 – Part III

50 Deriving Program Architecture
California State University, Los Angeles – cs337 – Part III

51 Partitioning the Architecture
“horizontal” and “vertical” partitioning are required California State University, Los Angeles – cs337 – Part III

52 Horizontal Partitioning
define separate branches of the module hierarchy for each major function use control modules to coordinate communication between functions function 1 function 3 function 2 California State University, Los Angeles – cs337 – Part III

53 Vertical Partitioning: Factoring
design so that decision making and work are stratified decision making modules should reside at the top of the architecture decision-makers workers California State University, Los Angeles – cs337 – Part III

54 Why Partitioned Architecture?
results in software that is easier to test leads to software that is easier to maintain results in propagation of fewer side effects results in software that is easier to extend California State University, Los Angeles – cs337 – Part III

55 Structured Design objective: to derive a program architecture that is partitioned approach: the DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module notation: structure chart California State University, Los Angeles – cs337 – Part III

56 Flow Characteristics Transform flow Transaction flow
California State University, Los Angeles – cs337 – Part III

57 General Mapping Approach
isolate incoming and outgoing flow boundaries; for transaction flows, isolate the transaction center working from the boundary outward, map DFD transforms into corresponding modules add control modules as required refine the resultant program structure using effective modularity concepts California State University, Los Angeles – cs337 – Part III

58 Transform Mapping California State University, Los Angeles – cs337 – Part III

59 Factoring California State University, Los Angeles – cs337 – Part III

60 First Level Factoring main program controller output input processing
California State University, Los Angeles – cs337 – Part III

61 Second Level Mapping California State University, Los Angeles – cs337 – Part III

62 Transaction Flow incoming flow action path T
California State University, Los Angeles – cs337 – Part III

63 Transaction Example fixture fixture setting servos commands operator
process report operator display commands screen robot control robot control software assembly record in reality, other commands would also be shown California State University, Los Angeles – cs337 – Part III

64 Refining the Analysis Model
1. write an English language processing narrative for the level 01 flow model 2. apply noun/verb parse to isolate processes, data items, store and entities 3. develop level 02 and 03 flow models 4. create corresponding data dictionary entries 5. refine flow models as appropriate ... now, we're ready to begin design! California State University, Los Angeles – cs337 – Part III

65 Deriving Level 1 Processing narrative for " process operator commands"
Process operator command software reads operator commands from the cell operator. An error message is displayed for invalid commands. The command type is determined for valid commands and appropriate action is taken. When fixture commands are encountered, fixture status is analyzed and a fixture setting is output to the fixture servos. When a report is selected, the assembly record file is read and a report is generated and displayed on the operator display screen. noun-verb When robot control switches are selected, control values are sent to parse the robot control system. Process operator command software reads operator commands from the cell operator . An error message is displayed for invalid commands . The command type is determined for valid commands and appropriate action is taken . When fixture commands are encountered , fixture status is analyzed and a fixture setting is output to the fixture servos . When a report is selected, the assembly record file is read and a report is generated and displayed on the operator display screen . When robot control switches are selected , control value s are sent to the robot control system. California State University, Los Angeles – cs337 – Part III

66 Level 1 Data Flow Diagram
operator Error msg fixture servos commands read operator commands status analyze fixture status determine command type Fixture setting fixture Valid command display screen select report control robot report generate send control value assembly record robot control California State University, Los Angeles – cs337 – Part III

67 Level 2 Data Flow Diagram
error msg command produce error msg read command fixture setting format setting status determine setting validate command invalid command read fixture status command raw setting combined status determine type valid command read record robot control record calculate output values send control value values format report assembly record report start/stop California State University, Los Angeles – cs337 – Part III

68 Transaction Mapping Principles
isolate the incoming flow path define each of the action paths by looking for the "spokes of the wheel" assess the flow on each action path define the dispatch and control structure map each action path flow individually California State University, Los Angeles – cs337 – Part III

69 Transaction Mapping Data flow model mapping program structure f a e b
x1 g i program structure l h k j b t m a x2 x3 x4 n d e f g h x3.1 l m n i j k California State University, Los Angeles – cs337 – Part III

70 Isolate Flow Paths error msg command produce error msg read command
fixture setting format setting status determine setting validate command invalid command read fixture status command raw setting combined status determine type valid command read record robot control record calculate output values send control value values format report assembly record report start/stop California State University, Los Angeles – cs337 – Part III

71 Map the Flow Model California State University, Los Angeles – cs337 – Part III

72 Refining the Structure Chart
California State University, Los Angeles – cs337 – Part III

73 Chapter 11 Component-Level Design
California State University, Los Angeles – cs337 – Part III

74 What is a Component? OMG Unified Modeling Language Specification [OMG01] defines a component as “… a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.” OO view: a component contains a set of collaborating classes Conventional view: logic, the internal data structures that are required to implement the processing logic, and an interface that enables the component to be invoked and data to be passed to it. California State University, Los Angeles – cs337 – Part III

75 OO Component California State University, Los Angeles – cs337 – Part III

76 Conventional Component
California State University, Los Angeles – cs337 – Part III

77 Basic Design Principles
The Open-Closed Principle (OCP). “A module [component] should be open for extension but closed for modification. The Liskov Substitution Principle (LSP). “Subclasses should be substitutable for their base classes. Dependency Inversion Principle (DIP). “Depend on abstractions. Do not depend on concretions.” The Interface Segregation Principle (ISP). “Many client-specific interfaces are better than one general purpose interface. The Release Reuse Equivalency Principle (REP). “The granule of reuse is the granule of release.” The Common Closure Principle (CCP). “Classes that change together belong together.” The Common Reuse Principle (CRP). “Classes that aren’t reused together should not be grouped together.” Source: Martin, R., “Design Principles and Design Patterns,” downloaded from California State University, Los Angeles – cs337 – Part III

78 Design Guidelines Components Interfaces Dependencies and Inheritance
Naming conventions should be established for components that are specified as part of the architectural model and then refined and elaborated as part of the component-level model Interfaces Interfaces provide important information about communication and collaboration (as well as helping us to achieve the OPC) Dependencies and Inheritance it is a good idea to model dependencies from left to right and inheritance from bottom (derived classes) to top (base classes). California State University, Los Angeles – cs337 – Part III

79 Cohesion Conventional view: OO view: Levels of cohesion
the “single-mindedness” of a module OO view: cohesion implies that a component or class encapsulates only attributes and operations that are closely related to one another and to the class or component itself Levels of cohesion Functional Layer Communicational Sequential Procedural Temporal utility California State University, Los Angeles – cs337 – Part III

80 Coupling Conventional view: OO view: Level of coupling
The degree to which a component is connected to other components and to the external world OO view: a qualitative measure of the degree to which classes are connected to one another Level of coupling Content Common Control Stamp Data Routine call Type use Inclusion or import External California State University, Los Angeles – cs337 – Part III

81 Component Level Design-I
Step 1. Identify all design classes that correspond to the problem domain. Step 2. Identify all design classes that correspond to the infrastructure domain. Step 3. Elaborate all design classes that are not acquired as reusable components. Step 3a. Specify message details when classes or component collaborate. Step 3b. Identify appropriate interfaces for each component. California State University, Los Angeles – cs337 – Part III

82 Component-Level Design-II
Step 3c. Elaborate attributes and define data types and data structures required to implement them. Step 3d. Describe processing flow within each operation in detail. Step 4. Describe persistent data sources (databases and files) and identify the classes required to manage them. Step 5. Develop and elaborate behavioral representations for a class or component. Step 6. Elaborate deployment diagrams to provide additional implementation detail. Step 7. Factor every component-level design representation and always consider alternatives. California State University, Los Angeles – cs337 – Part III

83 Collaboration Diagram
California State University, Los Angeles – cs337 – Part III

84 Refactoring California State University, Los Angeles – cs337 – Part III

85 Activity Diagram California State University, Los Angeles – cs337 – Part III

86 Statechart California State University, Los Angeles – cs337 – Part III

87 Object Constraint Language (OCL)
complements UML by allowing a software engineer to use a formal grammar and syntax to construct unambiguous statements about various design model elements simplest OCL language statements are constructed in four parts: (1) a context that defines the limited situation in which the statement is valid; (2) a property that represents some characteristics of the context (e.g., if the context is a class, a property might be an attribute) (3) an operation (e.g., arithmetic, set-oriented) that manipulates or qualifies a property, and (4) keywords (e.g., if, then, else, and, or, not, implies) that are used to specify conditional expressions. California State University, Los Angeles – cs337 – Part III

88 OCL Example context PrintJob::validate(upperCostBound : Integer, custDeliveryReq : Integer) pre: upperCostBound > 0 and custDeliveryReq > 0 and self.jobAuthorization = 'no' post: if self.totalJobCost <= upperCostBound and self.deliveryDate <= custDeliveryReq then self.jobAuthorization = 'yes' endif California State University, Los Angeles – cs337 – Part III

89 Algorithm Design the closest design activity to coding the approach:
review the design description for the component use stepwise refinement to develop algorithm use structured programming to implement procedural logic use ‘formal methods’ to prove logic California State University, Los Angeles – cs337 – Part III

90 Stepwise Refinement open walk to door; reach for knob; open door;
repeat until door opens turn knob clockwise; walk through; if knob doesn't turn, then close door. take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat California State University, Los Angeles – cs337 – Part III

91 Algorithm Design Model
represents the algorithm at a level of detail that can be reviewed for quality options: graphical (e.g. flowchart, box diagram) pseudocode (e.g., PDL) choice of many programming language decision table conduct walkthrough to assess quality California State University, Los Angeles – cs337 – Part III

92 Structured Programming for Procedural Design
uses a limited set of logical constructs: sequence conditional — if-then-else, select-case loops — do-while, repeat until leads to more readable, testable code can be used in conjunction with ‘proof of correctness’ important for achieving high quality, but not enough California State University, Los Angeles – cs337 – Part III

93 A Structured Procedural Design
California State University, Los Angeles – cs337 – Part III

94 Decision Table California State University, Los Angeles – cs337 – Part III

95 Program Design Language (PDL)
California State University, Los Angeles – cs337 – Part III

96 Why Design Language? California State University, Los Angeles – cs337 – Part III

97 Chapter 12 User Interface Design
California State University, Los Angeles – cs337 – Part III

98 Interface Design Easy to learn? Easy to use? Easy to understand?
California State University, Los Angeles – cs337 – Part III

99 Interface Design Typical Design Errors lack of consistency
too much memorization no guidance / help no context sensitivity poor response Arcane/unfriendly California State University, Los Angeles – cs337 – Part III

100 Golden Rules Place the user in control Reduce the user’s memory load
Make the interface consistent California State University, Los Angeles – cs337 – Part III

101 Place the User in Control
Define interaction modes in a way that does not force a user into unnecessary or undesired actions. Provide for flexible interaction. Allow user interaction to be interruptible and undoable. Streamline interaction as skill levels advance and allow the interaction to be customized. Hide technical internals from the casual user. Design for direct interaction with objects that appear on the screen. California State University, Los Angeles – cs337 – Part III

102 Reduce the User’s Memory Load
Reduce demand on short-term memory. Establish meaningful defaults. Define shortcuts that are intuitive. The visual layout of the interface should be based on a real world metaphor. Disclose information in a progressive fashion. California State University, Los Angeles – cs337 – Part III

103 Make the Interface Consistent
Allow the user to put the current task into a meaningful context. Maintain consistency across a family of applications. If past interactive models have created user expectations, do not make changes unless there is a compelling reason to do so. California State University, Los Angeles – cs337 – Part III

104 User Interface Design Models
User model — a profile of all end users of the system Design model — a design realization of the user model Mental model (system perception) — the user’s mental image of what the interface is Implementation model — the interface “look and feel” coupled with supporting information that describe interface syntax and semantics California State University, Los Angeles – cs337 – Part III

105 User Interface Design Process
California State University, Los Angeles – cs337 – Part III

106 Interface Analysis Interface analysis means understanding
(1) the people (end-users) who will interact with the system through the interface; (2) the tasks that end-users must perform to do their work, (3) the content that is presented as part of the interface (4) the environment in which these tasks will be conducted. California State University, Los Angeles – cs337 – Part III

107 User Analysis Are users trained professionals, technician, clerical, or manufacturing workers? What level of formal education does the average user have? Are the users capable of learning from written materials or have they expressed a desire for classroom training? Are users expert typists or keyboard phobic? What is the age range of the user community? Will the users be represented predominately by one gender? How are users compensated for the work they perform? Do users work normal office hours or do they work until the job is done? Is the software to be an integral part of the work users do or will it be used only occasionally? What is the primary spoken language among users? What are the consequences if a user makes a mistake using the system? Are users experts in the subject matter that is addressed by the system? Do users want to know about the technology the sits behind the interface? California State University, Los Angeles – cs337 – Part III

108 Task Analysis and Modeling
Answers the following questions … What work will the user perform in specific circumstances? What tasks and subtasks will be performed as the user does the work? What specific problem domain objects will the user manipulate as work is performed? What is the sequence of work tasks—the workflow? What is the hierarchy of tasks? Use-cases define basic interaction Task elaboration refines interactive tasks Object elaboration identifies interface objects (classes) Workflow analysis defines how a work process is completed when several people (and roles) are involved California State University, Los Angeles – cs337 – Part III

109 Swimlane Diagram California State University, Los Angeles – cs337 – Part III

110 Analysis of Display Content
Are different types of data assigned to consistent geographic locations on the screen (e.g., photos always appear in the upper right hand corner)? Can the user customize the screen location for content? Is proper on-screen identification assigned to all content? If a large report is to be presented, how should it be partitioned for ease of understanding? Will mechanisms be available for moving directly to summary information for large collections of data. Will graphical output be scaled to fit within the bounds of the display device that is used? How will color to be used to enhance understanding? How will error messages and warning be presented to the user? California State University, Los Angeles – cs337 – Part III

111 Interface Design Steps
Using information developed during interface analysis (SEPA, Section 12.3), define interface objects and actions (operations). Define events (user actions) that will cause the state of the user interface to change. Model this behavior. Depict each interface state as it will actually look to the end-user. Indicate how the user interprets the state of the system from information provided through the interface. California State University, Los Angeles – cs337 – Part III

112 Interface Design Patterns
Patterns are available for The complete UI Page layout Forms and input Tables Direct data manipulation Navigation Searching Page elements e-Commerce California State University, Los Angeles – cs337 – Part III

113 Design Issues Response time Help facilities Error handling
Menu and command labeling Application accessibility Internationalization California State University, Los Angeles – cs337 – Part III

114 Design Evaluation Cycle
California State University, Los Angeles – cs337 – Part III


Download ppt "Chapter 9 Design Engineering"

Similar presentations


Ads by Google