chapter 4 product design. objectives of design as all other aspects of object-oriented system...

30
Chapter 4 Product Design

Upload: abner-higgins

Post on 22-Dec-2015

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

Chapter 4

Product Design

Page 2: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 3: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 4: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 5: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 6: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 7: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 8: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

LMS Case Study: Relational Representation of Data

Relational TablesBook

Resource List

Patron Address

Patron

Page 9: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 10: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

Sample Deployment Diagram

GameClient

GameClient

GameClient

GameServerInternet

Page 11: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 12: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

UML Notation for State Machines

State Name Intermediate State

Initial State

Final State

Trigger State transition with event trigger

State Name

State with substates

Page 13: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 14: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 15: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 16: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 17: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

User Interface DesignFive factors related to user interface

quality Ease of learning Speed of use Frequency of user errors User satisfaction Knowledge retention

Page 18: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 19: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 20: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

Rules for Interface DesignBe consistentProvide shortcutsOffer useful feedbackDesign a beginning, middle and end for

each sequence of actionsPrevent catastrophic mistakesVerify deletion tasks

Page 21: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 22: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

Interaction StylesMenu SelectionForm Fill-inCommand LanguageNatural LanguageDirect Manipulation

Page 23: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

Guidelines for Designing MenusBe consistentUse distinctive itemsBe concisePut keywords first in the item nameCreate groups of logically similar items

Page 24: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 25: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 26: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 27: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 28: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

Design Summary

Create solution for object persistence

Develop user interface designsDetermine process architecture

Page 29: Chapter 4 Product Design. Objectives of Design  As all other aspects of object-oriented system development, design can be deployed in an iterative or

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

Page 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

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