chapter 4 product design. objectives of design as all other aspects of object-oriented system...
TRANSCRIPT
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
Relational TablesBook
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
GameClient
GameClient
GameClient
GameServerInternet
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 Name Intermediate State
Initial State
Final State
Trigger State transition with event trigger
State Name
State with substates
Sample State Machine Showing Interprocess Communication
Player Joining Game
Get player name
Select token
{ Client States}
{ Server State}
Communicate remaining tokens
player nameavailable tokens selected
token
Modeling Multiple Threads of ControlClasses that consist of a separate
thread of control are modeled as active classes
Active classes are rendered with thick rectangles as shown below
Active classRegular 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
The Role of the User InterfaceAp
plica
tion
Func
tiona
lity
Inte
rnal
Rep
rese
ntat
ion
User
Inte
rface
Exte
rnal
Rep
rese
ntat
ion
User
User Interface DesignFive factors related to user interface
quality Ease of learning Speed of use Frequency of user errors User satisfaction Knowledge retention
Guidelines for User-Friendly InterfacesUse easy to learn instructionsMake help functions context-sensitivePresent logically related functions
together and consistentlyCreate graphical interfaces whenever
possibleAllow actions to be activated quickly
Know the UserThere 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 DesignBe consistentProvide shortcutsOffer useful feedbackDesign a beginning, middle and end for
each sequence of actionsPrevent catastrophic mistakesVerify deletion tasks
More Rules for Interface Design Allow easy reversal of most actionsAllow user to focus on task not the
interfaceDo not rely on user memoryDisplay only currently relevant
information
Interaction StylesMenu SelectionForm Fill-inCommand LanguageNatural LanguageDirect Manipulation
Guidelines for Designing MenusBe consistentUse distinctive itemsBe concisePut keywords first in the item nameCreate groups of logically similar items
Guidelines for Designing Effective FormsUse a meaningful titleGive brief but clear instructionsOrganize fields logicallyMake form visually appealingUse familiar labelsCreate boundaries around data-entry fieldsAllow the cursor to be moved conveniently
Allow easy error correctionPrevent errors when possibleProvide error messages when invalid
values are enteredClearly mark optional fieldsExplain individual fieldsClearly signal completion of data-entry
More Guidelines for Designing Effective Forms
Design Guidelines for Command LanguagesLimit the number of commandsChoose meaningful, distinctive command
namesAbbreviate consistentlySelect a consistent command syntax structureUse prompts to help intermittent usersConsider using command menus to help
intermittent users
Design Guidelines for Direct Manipulation InterfacesUse easy to use iconsAvoid misleading analogies
E.g. Window’s trash bin allows retrieval for discarded items, otherwise this would be misleading
Do not violate cultural stereotypesUse icons for appropriate purposesCarefully design iconic interaction
Design Summary
Create solution for object persistence
Develop user interface designsDetermine process architecture
Working in TeamsTo improve 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 MeetingsPoor agendasDysfunctional communication during the
meeting (silence or domination)Not adhering to the agendaDiscussion may not sufficiently focus on
meeting objectives specified by the agendaTeam members are not listening to each
other during discussion