Subject |
discover |
ask |
defer |
defer to |
is a subtopic of |
mark |
create |
propose |
employ |
provide |
reduce |
represent |
think of |
identify |
make sure that |
read |
base |
focus on |
ensure that |
split |
make |
give |
evaluate |
follow |
be part of |
internationalize |
distribute |
work |
invent |
avoid |
choose |
explore |
find |
concern with |
think about |
ask herself whether |
hide |
use |
perform |
revise |
propose that |
be |
software designer | | several evaluators to independently perform heuristic evaluations | | | 9.1 - The Process of Design | | skeletons for the files that will contain the code | the same solution to a design issue as another designer | | | | | | all the use cases associated with the software product | | | | | the set of use cases is complete and that they are expressed consistently and unambiguously | | design decision | | | | | | | | | the use of obscure features of technology because later versions of the technology might be changed in ways that are incompatible with how you have used it or the producer of the technology might go out of business or withdraw it from the market | | different paths through design space - investigating the consequences of choosing different alternatives when major issues arise | ways to reduce costs and increase benefits | | | | | cost-benefit analysis to choose among alternatives | cost estimation | previous decisions if new issues raised by design decisions have no solutions | the requirements be changed if new issues raised by design decisions have no solutions | a programmer |
UML diagram designer | classes in source material such as requirements descriptions, interview notes, or the results of brainstorming sessions | several evaluators to independently perform heuristic evaluations | decisions about directionality to later phases of development, when the detailed design is created because although making associations one-directional can improve efficiency and reduce complexity, it might also limit the flexibility of the system. | | 5.2 - Essentials of UML Class Diagrams | an association as an aggregation if the following are true: - You can state that the parts 'are part of' the aggregate, or the aggregate 'is composed of' the parts
- When something owns or controls the aggregate, then they also own or control the parts
| a distinct class if a subset of a class's attributes form a coherent group | | | | | actions as if they were associations | generalizations as special associations, a common misconception which arises because both generalizations and associations connect classes together in a class diagram | associations and attributes once a good initial list of classes has been identified, starting with the most important classes and working outwards towards the classes that are less important | | every association in both directions to verify that it makes sense because it is very common to make errors when creating associations - it is particularly easy to get the multiplicity wrong | | | the set of use cases is complete and that they are expressed consistently and unambiguously | a class into several distinct classes if it has too many responsibilities | design decision | | | | | | responsibilities among the classes so no one class has an unfair share, and hence becomes unduly complex | in the following sequence- Identify a first set of candidate classes
- Starting with the most important classes, add any associations and attributes that clearly will be needed
- Work out the most clear generalizations
- List the main responsibilities of each class
- Based on responsibilities, decide on specific operations that are needed
- Iterate over the entire process, examining the model to see if you need to add or delete classes, associations, attributes, generalizations, responsibilities or operations
- Repeat the last step as needed until the model is satisfactory
| classes that are needed to solve a particular design problem | overdoing generalization | | | classes by extracting the nouns and noun phrases from source materials | reuse when identifying classes | | a less restrictive multiplicity could also makes sense in some circumstances | part objects inside the aggregate object to improve the encapsulation of the system so that methods in the system would be able to perform most operations on the aggregate, without needing to know about the existence of the parts | cost-benefit analysis to choose among alternatives | cost estimation | | | a programmer |
user interface designer | | user's opinions | | users by both asking their opinions and evaluating how they use prototypes | 7.4 - The Basics of User Interface Design | | skeletons for the files that will contain the code | | a skilled writer to write the text and a skilled graphical designer to create graphics | good help system | the amount of reading and manipulation the user has to do | | | all the use cases associated with the software product | elements are arranged in straight lines or several columns | | user interface design on user's tasks | the commands, fields and icons etc. that are needed because this approach tends to result in systems that do not fit the users' tasks | when something goes wrong, the user interface explains the situation in adequate detail and helps the user to resolve the problem | | the most important commands stand out by using large buttons, by being the first item in a menu or by being the leftmost icon in a toolbar | the user too much to look at | response time by testing on the slowest hardware that end-users are likely to encounter | usability principles but not rely solely on them | software development team | the user interface | | | new user interface controls because users will have to figure them out | fancy and unusual UI designs, and especially the design of new controls, because they will be more sensitive to changes | coding techniques with care | | ways to reduce costs and increase benefits | | the sequence of activities the user will want to perform to get their job done | | | similar layouts and graphic designs throughout the application | use case analysis and designs the user interface based on this | | | responsible for making sure that usability is kept at the forefront of the design process |