chapter 4 product design. objectives of design as all other aspects of object-oriented system...
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/1.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/2.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/3.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/4.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/5.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/6.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/7.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/9.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/10.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/11.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/12.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/13.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/14.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/15.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/16.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/17.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/18.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/19.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/20.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/21.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/22.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/23.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/24.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/25.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/26.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/27.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/28.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/29.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d945503460f94a7cbe9/html5/thumbnails/30.jpg)
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