Object Oriented Software Engineering   View all facts   Glossary   Help
subject > person or group > person > stakeholder > software developer > designer
Next software developerdistributed system developer    Upsoftware developer    Previous software developerdesign pattern developer   

designer comparison table
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 codethe 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 ariseways to reduce costs and increase benefits    cost-benefit analysis to choose among alternativescost estimationprevious decisions if new issues raised by design decisions have no solutionsthe requirements be changed if new issues raised by design decisions have no solutionsa programmer
UML diagram designerclasses in source material such as requirements descriptions, interview notes, or the results of brainstorming sessionsseveral evaluators to independently perform heuristic evaluationsdecisions 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 Diagramsan association as an aggregation if the following are true:
  1. You can state that the parts 'are part of' the aggregate, or the aggregate 'is composed of' the parts
  2. 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 associationsgeneralizations as special associations, a common misconception which arises because both generalizations and associations connect classes together in a class diagramassociations 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 unambiguouslya class into several distinct classes if it has too many responsibilitiesdesign decision     responsibilities among the classes so no one class has an unfair share, and hence becomes unduly complexin the following sequence
  1. Identify a first set of candidate classes
  2. Starting with the most important classes, add any associations and attributes that clearly will be needed
  3. Work out the most clear generalizations
  4. List the main responsibilities of each class
  5. Based on responsibilities, decide on specific operations that are needed
  6. Iterate over the entire process, examining the model to see if you need to add or delete classes, associations, attributes, generalizations, responsibilities or operations
  7. Repeat the last step as needed until the model is satisfactory
classes that are needed to solve a particular design problemoverdoing generalization  classes by extracting the nouns and noun phrases from source materialsreuse when identifying classes a less restrictive multiplicity could also makes sense in some circumstancespart 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 partscost-benefit analysis to choose among alternativescost estimation  a programmer
user interface designer user's opinions users by both asking their opinions and evaluating how they use prototypes7.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 graphicsgood help systemthe amount of reading and manipulation the user has to do  all the use cases associated with the software productelements are arranged in straight lines or several columns user interface design on user's tasksthe commands, fields and icons etc. that are needed because this approach tends to result in systems that do not fit the users' taskswhen 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 toolbarthe user too much to look atresponse time by testing on the slowest hardware that end-users are likely to encounterusability principles but not rely solely on themsoftware development teamthe user interface  new user interface controls because users will have to figure them outfancy and unusual UI designs, and especially the design of new controls, because they will be more sensitive to changescoding 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 applicationuse 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

Next software developerdistributed system developer    Upsoftware developer    Previous software developerdesign pattern developer