Vous êtes sur la page 1sur 30

Chapter 4

Product Design
Objectives of Design
 As all other aspects of object-oriented system
development, design can be deployed in an
iterative or top-down development context
 The design phase takes the results of the
analysis phase and evolves these results
further
 The results of the design phase feeds directly
into the implementation phase
Product Design versus
Class Design
 Product design concerns itself with creating effective
interactions
 Between the system and human users
 Between distributed elements of the system
 Between software system and solutions for data persistence
(e.g. database management systems)
 Class design concerns itself with determining class
definitions:
 Attributes
 Method signatures
 Class semantics
Product Design Overview
 Product design addresses the external
structure of the software
 External structure includes all software
components that interact with external
resources, such as
 Solutions to data or object persistence
 Means by which distributed processes interact
over a network (process architecture)
 User Interfaces
Object Persistence
 Object persistence seeks to retain object
information on some persistent storage
medium as a file or through a DBMS
 Object streaming solutions work for situations
were all object information can reside in
memory at once
 Because most commercial DBMSs are
relational in contrast to object-oriented, some
translation between the object and relational
representations must be made
Evaluating Object Persistence
 Security
 Hacker proof
 Allows reconstruction in face of malicious use
 Information growth
 Solution still works with increased data volume
 Concurrency
 Concurrency solution allows for increased users
LMS Case Study: Object
Persistence
 LMS may contain hundreds of thousands of
book entries as well as thousands of other
library resources
 Large volumes of data are not well suited to
object streaming
 A DBMS is called for to provide
 Concurrent access by multiple users
 Security enforcement of different access levels for
various user categories
 Allow for increased data capacity
LMS Case Study: Relational
Representation of Data

Book Relational Tables

Resource List

Patron Address

Patron
Process Architecture
 Software systems may consist of processes
interacting over a network
 Process architecture lays out the machines (nodes)
that will host the processes making up the system
 Process architecture determines the behavior of the
distributed processes
 Deployment diagrams are used to model distributed
processes
Sample Deployment Diagram

Game
Game
Internet Server
Client

Game
Client
Game
Client
Modeling Interprocess
Communication
 Deployment diagrams show the distribution of
process over multiple nodes but do not
indicate how these processes communicate
 State machines may be used to model
communication between processes
 The idea behind using state machines for
modeling interprocess communication is that
the system enters a new state when
messages are exchanged between processes
UML Notation for State
Machines
State with
Initial substates
State State
Name
Final
State

State Intermediate
Name State

Trigge State
r transition
with event
trigger
Sample State Machine Showing
Interprocess Communication

{ Server State}
Player Joining
Game
Communicat
e remaining
player name tokens
available
tokens select
ed
token
Get Select
player token
name
{ Client States}
Modeling Multiple Threads of
Control
 Classes that consist of a separate
thread of control are modeled as active
classes
 Active classes are rendered with thick
rectangles as shown below
Regular Active
class class
User Interfaces
 The user interface enables users to interact
with the software system to accomplish some
set of tasks
 The user interface consists of interaction
techniques that facilitate this human-machine
communication
 It is a good idea to keep the design for the
user interface and the design of the
functionality of the remaining system separate
Application Functionality

Internal Representation

User Interface

External Representation

User
The Role of the User Interface
User Interface Design
 Five factors related to user interface
quality
 Ease of learning
 Speed of use

 Frequency of user errors

 User satisfaction

 Knowledge retention
Guidelines for User-Friendly
Interfaces
 Use easy to learn instructions
 Make help functions context-sensitive
 Present logically related functions
together and consistently
 Create graphical interfaces whenever
possible
 Allow actions to be activated quickly
Know the User
 There are three broad categories of users
 Novice
 Rarely uses the computer
 Knowledgeable intermittent user
 Has sporadic experience with computer systems
 Frequent user
 Comfortable with computer systems in general
Rules for Interface Design
 Be consistent
 Provide shortcuts
 Offer useful feedback
 Design a beginning, middle and end for
each sequence of actions
 Prevent catastrophic mistakes
 Verify deletion tasks
More Rules for Interface
Design
 Allow easy reversal of most actions
 Allow user to focus on task not the
interface
 Do not rely on user memory
 Display only currently relevant
information
Interaction Styles
 Menu Selection
 Form Fill-in
 Command Language
 Natural Language
 Direct Manipulation
Guidelines for Designing
Menus
 Be consistent
 Use distinctive items
 Be concise
 Put keywords first in the item name
 Create groups of logically similar items
Guidelines for Designing
Effective Forms
 Use a meaningful title
 Give brief but clear instructions
 Organize fields logically
 Make form visually appealing
 Use familiar labels
 Create boundaries around data-entry fields
 Allow the cursor to be moved conveniently
More Guidelines for Designing
Effective Forms
 Allow easy error correction
 Prevent errors when possible
 Provide error messages when invalid
values are entered
 Clearly mark optional fields
 Explain individual fields
 Clearly signal completion of data-entry
Design Guidelines for
Command Languages
 Limit the number of commands
 Choose meaningful, distinctive command names
 Abbreviate consistently
 Select a consistent command syntax structure
 Use prompts to help intermittent users
 Consider using command menus to help
intermittent users
Design Guidelines for Direct
Manipulation Interfaces
 Use easy to use icons
 Avoid misleading analogies
 E.g. Window’s trash bin allows retrieval for
discarded items, otherwise this would be
misleading
 Do not violate cultural stereotypes
 Use icons for appropriate purposes
 Carefully design iconic interaction
Design Summary
 Create solution for object
persistence
 Develop user interface designs
 Determine process architecture
Working in Teams
 Toimprove development team
dynamics, engage an impartial observer
 By meeting during class time and getting
class feedback
 By having the instructor observe all
development teams during class time
 By inviting another development team to
observe one of your meetings
Possible Obstacles to
Effective Meetings
 Poor agendas
 Dysfunctional communication during the
meeting (silence or domination)
 Not adhering to the agenda
 Discussion may not sufficiently focus on
meeting objectives specified by the agenda
 Team members are not listening to each
other during discussion

Vous aimerez peut-être aussi