Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.