Short Answer
How is behavioral modeling related to structural modeling?
Behavioral models : - describe things that happen and changes that occur during use Structural modeling : - describes the permanent elements of the system
Is connascence ever desirable in a system?
within any encapsulation boundary
Give an example of a "bad" use of polymorphism.
"create order" which would mean start the sales process in a marketing system but might mean straighten up the living room in a housekeeping system.
What are the pros of using a workaround?
- Can be an inexpensive solution to making an imperfect software package usable. - The firm retains the use of software it is already invested in
What is a CRC card and why should an analyst create them? What are the essential elements of a CRC card?
- Class-Responsibility-Collaboration - responsibility and collaborations of a class - all the information needed for logical structural model - essential elements of a class in each card - front : class name, id, type, description, list of associated use cases - back : attributes, relationship of the class
What are the advantages of selecting a Packaged Software design strategy?
- It is efficient (the programs are already created, tested, and proven) - It can be installed quickly - The expertise and experience from the vendor who created the software
Is factoring out multiple inheritance difficult?
- Not really, you can eliminate all the super classes - convert the additional inheritance relationships to association relationships.
Define what a structural model is.
- Represents the data that are used and created by business system. - Information is captured and used by the system. - shows the interrelationships between them.
Why is it necessary for an analyst to detail the specifications for the individual classes and methods?
- The analyst must provide explicit instructions on how to write code. - for programmers who write the code will know what to do. - the specifications need to be very clear and easy to understand or the programmers will have to try to decipher vague or incomplete instructions
What are the advantages of selecting a custom development design strategy?
- You control over the way the system looks and functions - You have flexibility and creativity in the way the business problem is solved - You can build technical and functional knowledge within the company.
Why should a systems analyst create one?
- complete understanding of the key data. - same language as the users.
What is an attribute?
- data we decided to capture - property
What is role playing? Describe how role playing is conducted? What value does role playing have?
- discovering additional objects, attributes, relationships, and operations. - useful in testing the fidelity of the evolving structural model. - members of the team perform roles associated with the actors and objects previously identified with the different use cases. - perform the different steps associated with a specific scenario of a use case.
What is Brainstorming
- generating ideas - many ideas as possible - without any analysis
Why is the creation of a structural model iterative?
- it evolves as the analyst gains understanding - high-level during the analysis phase, and becomes more concrete and detailed through the SDLC
Describe the patterns method for identifying candidate objects for a structural model.
- matching exiting patterns of classes to the target business domain - can be reused - can define the system more quickly and more completely
What is name connascence?
- measure of how well methods reference attributes. - If a method refers to an attribute, it is tied to the name of the attribute. If the attribute's name chagnes, the content of the method will have to change.
What are the advantages of selecting a outsourcing design strategy?
- more experience - superior technology - extensive resources - adds value to the organization instead of reducing costs
How do you show that a temporary object is to go out of existence on a sequence diagram?
- place an "x" at the bottom of its lifeline to show that a temporary object is to go out of existence on a sequence diagram
What is meant by balancing the models?
- process of ensuring the consistency among all of the analysis models. - do the functional and structural models agree? - do functional and behavioral models are agree? - are the structural and behavioral models trustworthy?
What is connascence?
- similar to coupling - Classes are so interdependent that a chage in one necessittates a change in the other.
Do events lead to state transitions on a behavioral state machine diagram?
- state transitions occur only as the result of an event. - events are defined as anything that changes a value which in turn describes a state of the behavioral state machine
What is a method or behavior?
- the object can do, a task that it can perform in conjunction the object's data. - operation
Why is iteration important when creating a behavioral model?
- understand more about the structures needed - updating older models - process, continues until the models more or less stabilize
What are the source documents that can be used to develop a Communication Diagram?
- use case documents : scenario - CRUD matrix : information on "access rights" - sequence diagrams : naming & associations
How do use cases relate to a sequence and communication diagrams?
- use case model business processes - sequence and communication diagrams show the underlying details of those processes.
What are exceptions?
- violations of a constraints - must determine the errors the system must handle
What is convention connascence?
A class has an attribute in which a range of values has a semantic meaning. If the range would change, then every method that used the attribute would have to be modified.
What is a dependency relationship?
A dependency relationship shows that dependency exists between two packages. That is, a change in one package can potentially cause a change in another package. This is very important to know for maintenance, testing, and debugging purposes.
What is a package?
A package is similar and serves the same purpose as a folder or directory on your computer. It is a way of grouping several related objects or elements into one "higher level" element- Java packages, User Interface packages, use case packages, etc.
What is a sequence diagram used for? Why would an analyst choose a sequence diagram over a communication diagram?
A sequence diagram is an interaction diagram (as is the communication diagram) that looks at the time-based order of the messages among the objects in the use case. Sequence diagrams are constructed by placing the objects across the top of the diagram, and drawing the messages from lifeline to lifeline, from top to bottom to reflect the time-based order of the messages. Communication diagrams are essentially object diagrams that show message passing relationships instead of associations. These diagrams help you see the pattern of activity that occurs over a set of collaborating classes. Unlike sequence diagrams, they are unable to indicate time-ordering of messages. An analyst would choose to draw a sequence diagram if this time-based order is important to the analysis of the use case under study.
What is a walkthrough?
A walkthrough is a peer-review of a product. A presenter "walks" the team through the models encouraging members to ask questions. The goal is identify errors. The team does not fix the problems. Any errors detected are corrected by the analysis team and then handed over to the design team.
How is factoring related to abstraction and refinement?
Abstraction and refinement are two specific methods for factoring. Abstraction focuses on "subclasses" and looks for objects with common attributes and behaviors like "Salaried", "Hourly", "Part Time", "Bonus Eligible", etc. and creates the appropriate "super class" like "Employee" (Abstract Class). Refinement is the opposite. It focuses on "super classes" (Abstract Objects) like "Employee" and then creates (abstracts) its associated "subclass" like "Salaried", "Hourly", "Part Time", "Bonus Eligible", etc. objects.
How are "actions" related to "activities"?
Action : - non-decomposable process - cannot be interrupted - results in a transition to a state Activity : - decomposable process - comprised of actions Both are associated with a state
What are examples of Functional Models?
Activity diagrams, use case descriptions, use case diagrams.
What is the purpose of an alternatives matrix?
An alternatives matrix is a tool that organizes the pros and cons of the design alternatives so that the best solution will be chosen in the end.
What is a state transition event?
An occurrence that triggers a change in an object's state through the updating of one or more of its attributes' values
What is a layer?
As we move from the problem domain to the physical architecture of our system, we need to decompose our software architecture into more manageable components. A layer is an element of our software architecture and a typical system has several layers.
How do you balance the functional and structural models?
Balancing means making sure that both sets represent the same thing. In other works, the functional models (activity diagrams, use-case descriptions and use case diagram) must agree with the structural models (class diagram and CRC cards)
Are there any downsides of optimizing a system?
Before optimization the designer is focused on making sure the stakeholders understand the system. After the system is optimized, although the system is likely to perform better, it becomes more difficult to explain to the stakeholders how the opimized system will solve their problem.
What does the acronym CRUD stand for? Why would an analyst create a CRUD matrix during his analysis?
CRUD stands for Create, Read or Reference, Update, and Delete. These are the four possible interactions between classes in a system. An analyst would create a CRUD matrix to help identify potential collaborations while building a communication diagram. (Step 2 of building a communication diagram). CRUD matrix clearly identifies how objects create, reference, modify and delete other objects.
What are class libraries?
Class libraries consist of sets of implemented classes and designed for reuse. They are similar to frameworks. A typical class library suppots numerical or statistical processing, file management or user interface development. Frameworks may, in fact, be built using class libraries.
What is cohesion?
Cohesion refers to how single-minded a module is within a system. A class or object should only represent one thing, and a method should only solve a single task. Thus, high cohesion is desirable in a system.
What are constraints?
Constraints are limitations on the values or acitivities that are acceptavle within the business problem domain.
What is coupling?
Coupling refers to the level of interdependency or interrelationship among the modules (classes, objects, and methods) in a system.
What are some examples of partitions?
Decomposing and accounting information system into an accounts payable, an accounts receivable, a payroll, etc. partition.
Describe the custom development design strategy.
During custom development the project team actually builds the new system from scratch. Advantages to custom development include control over the way the system looks and functions,flexibility and creativity in the way the business problem is solved; and the ability to build technical and functional knowledge within the company. Disadvantages to custom development include factors such as the use of an already over committed IS staff, a fully trained and experienced staff must already be in place before attempting custom development, and the risks (testing and recreating the wheel) associated with building a system from the ground up.
How does Polymorphism relate to dynamic binding?
Dynamic binding facilities the use of Polymorphism since the run time system makes its use almost transparent to the developers.
What is dynamic binding?
Dynamic binding refers to the ability of an object-oriented system to "do all the work" of implementing Object Orientation features - ingeritance, associations, message exchange, etc. with no coding. This would allow a message such as compute employee pay to be interoreted differently at run time by "salaried employee" and "hourly employee" objects.
How do you show the sequence of messages on a communication diagram
Each message is given a number that corresponds with the order in which the message is transmitted.
What does factoring mean?
Factoring is the process of organizing objects (classes or methods) in such a way that you can easily determine if generalization is possible and then creating the appropriate generalized objects with their required methods and attributes. i.e. group all "people" or "customer" or "order" objects together.
What is factoring?
Factoring is the process of reviewing all our classes or methods looking for similarities among them & then combining them into a new method or class to simplify the overall design.
What are the things you look for to determine if packages make sense for your project?
First off, look for relationships - generalization / specialization, aggregation / composition, associations, etc. - that classes share. Then look at the messages that are sent, communications diagrams, the CRUDE matrix, etc.
What is a partition?
For some systems with a lot of factoring, refining & abstracting, its size can overwhelm both users & developers. So it becomes necessary to decompose the system into related subsystems or subsystems that share some affinity. These OO subsystems are called partitions.
Is coupling a good thing or a bad thing?
Higher the interdependency ,changes in part of a design can cause changes in other part of the design. Thus you want to minimize coupling in a system.
Is there such a thing as "good" method cohesion
If a method performs a single problem-related task.
Explain how the "business need" factor influences the selection of a design strategy for a project.
If the business is quite common, there may be technical solutions in the market place that already meet this common business need. A common need means that the solution probably already exists in the marketplace and can be purchased in package software. A unique business need means a solution will need to be created from scratch by custom development. Non-core business needs can be outsourced.
Is high cohesion or low cohesion more desirable in a system?
If you want a system to function well it must be highly cohesive.
How does a partition relate to collaboration?
In large complex systems, objects that collaborate or have a high level of affinity are obvious candidates to partition.
What is inheritance coupling?
Inheritance coupling deals with how tightly coupled the classes are in an inheritance hierarchy.
What is an invariant?
Invariants are constraints that must always be adhered to. Typically we list class invatiants on CTC cards or class diagrams.
What is an "object wrapper"?
It is an object that enables an object-oriented system to send messages to the legacy system.
What is method cohesion?
Method is a measure of "how single-minded mehtod is." Methods should do one and only one thing. A method that performs multiple functions is more difficult to understand.
Is an organization chart BOD -> CEO -> MGR -> Employee a good inheritance template?
No because if you think about it, it is just the opposite a manager is "kind of a" employee is "kind of a" manager, the BOD is "kind of a" CEO.
Why are objects encapsulated?
Objects are encapsulated so since they share only the elements that are relevant to other objects, they can easily be modified, updated or expanded with no impact on existing applications. i.e. adding sound or video or animation.
What is the typical content of an alternatives matrix?.
On one side of the matrix, technical, budget, and organizational feasibility is listed. The various system candidates are listed along the top of the matrix. In each cell of the grid, detailed information on each alternative is inserted.
Describe the outsourcing design strategy.
Outsourcing is when an external vendor, developer, or service provider is hired to create the system.
When you are evaluation several different design strategies how do you determine the best option to choose?
Perform a risk assessment or analysis. Determine all the deleterious outcomes of each choice on cost, schedule, objectives, technology, political environment, enterprise's vision, etc. and then calculate each outcomes's probability of occurrence.
Explain the concept of polymorphism.
Polymorphism allows the same message to be interpreted differently by different objects.
What are examples of Behavioral Models?
Sequence diagrams, communication diagrams, state machines, and CRUDE matrix.
If your analysis was done using Object Orientation methodology, are there any issues using Java, Small Talk or Visual Basic as an implementation language?
Since all three do not support multiple inheritance, it has to be factored out.
How can inheritance coupling be minimized?
Since high levels of inheritance easily casue conflicts should ensure that inheritance is used only to support generalization/specialization (a-kind-of) reltaionships and avoid all other uses.
What value do package diagrams have for stakeholders?
Since package diagrams shows packages only they simplify UML diagrams by grouping similar elements into single higher level element.
How do you perform a verifying and validating walkthrough of a package diagram?
Since package diagrams were derived primarily from the class diagram, the communications diagrams, and the CRUDE matrix we need to make sure the identified packages (Participant, Patient, Appointment, Account, and Treatment) must make sense from a problem domain point view. Then we must insure all the dependency relationships are based on message-sending relationships on the communications diagram, cell entries in the CRUDE matrix, and associations on the class diagram.
How are packages related to partitions and layers?
Since packages are simply are a generic grouping of things that simplify design models through composition (book / pages) both partitions & layers are excellent candidates to "package" or create "sets of packages"
Why do we need several different layers?
Since the system environment is large & complex, focusing on specific specialized layers insures we don't overload the developer.
How will an alternatives matrix be used by a project team in the context of design strategy selection?
The alternatives matrix provides a concise representation of the relevant issues on each option in an easily compared format. Team may use assign weights to each of the factors, and then score each alternative on each factor, enabling them to compute a weighted average score for each alternative. This quantification may help the team identify the best
Briefly discuss the procedure for verifying and validating class and method design.
The best way to do this is to role-play the system ysing the different scenarios of the use cases. Also insure: 1) all fucntional, structural & behavioral models are consistent 2) all functionnal, structrual and behavioral models are balanced 3) all constraints, contracts, and method specifications are tested 4) each method is specifications crrectly
How are contracts used?
The consumer object (client) object sends a message to the supplier object (server) which guarantees, given that all constraints are met, the request will be responded to properly.
What issue does the data management layer address?
The data management layer addresses the issues involving the persistence (data outlives the application) of the objects contained in the system.
What needs to be verified and validated in package diagrams?
The dependency relationships in a package diagram need to be verified and validated.
Describe the packaged system design strategy.
The packaged system design strategy is the purchase of software for a non-unique business need.
What issue does the physical architecture layer address?
The physical architecture layer addresses how the software will execute on specific computers and networks.
How does an object's "state" related to its "behavior"?
The purpose of behavior is to transition an object from one state to a new state.
What are the three types of constraints typically captured in object-oriented design?
The three common constraunts are pre-condotions, post conditions, and invariants. Pre-conditions are constraints that must be met for a method to execute. A post-condition is a cinstraint that must be met after the method executes. Invariants model constraints that must always be true for all instances of a class.
Are there different types of inheritance?
There are two types of inheritance. - Single inheritance allows a subclass to have only one parent class. - With multiple inheritance, a subclass may inherit from more than one superclass.
How can an "object wrapper" be used to help integrate systems?
They create an application program interface (API) to the legacy system that allows a firm to leverage object-oriented systems and retain their legacy investment through integration of both.
What value does Polymorphism & Inheritance have?
They simplify & streamline both logical & physical design.
Why do we need the detailed blueprint we create during the design phase?
Think about an architect building a house who needs to supply detailed inputs to electrician plumber, construction, HVAC, etc.
What issue does the user interface layer address?
This deals with issues like the navigation through the system, help system, and the types of input and output elements to be included.
Describe how views and packages help simplify class diagrams.
Views : - subset of the class diagram - only shows information desired by the user Packages : - logically related group classes - reducing the number of elements on the diagram for simplifying
What do we have to do the ensure they BALANCED?
We must insure they are consistent and in agreement.
How do we determine which objects system collaborate?
We review our communications diagram & examine the messages exchanged between objects. In general the more messages sent between two or three objects, the higher their level of collaboration or affinity.
How does the "time frame" factor influences the selection of a design strategy for a project?
When we talk about time frame, we need to incorporate factors like size, scope, flexibility and business impact. Custom development normally takes longer than expected and requires a flexible time frame. Shorter times frames lean to packaged system. Size & scope influence an outsourcing option for projects flexible or short time frames.
Explain how the "in-house experience" factor influences the selection of a design strategy for a project
Without "in-house experience" the probability of success drops significantly and dictates a packaged system or outsourcing strategy.
How do you "refine' an analysis phase use case?
You add the details on how the actor will actually access the system(i.e. menu, window, bar code reader, etc.) & how the system will respond (i.e. the contents of reports, windows, queries, etc.).
What is a relationship?
association between two classes
How does a data-to-location-CRUD matrix supplement a data requirements?
can supplement the data model by identifying what data and access rights are needed at which locations.
What is an Object State?
condition of the object at one point in its lifetime
What does behavioral modeling focus on?
dynamic view of the system, not on how it is implemented
What is normalization?
helping identifying missing classes by reviewing each association & aggregation relationship and insuring that all atrributes are dependent on their assigned classes and only on their assigned classes.
When do you have a "black hole" state? When do you have a "miracle" state?
inputs but no outputs outputs but no inputs
What is Generalization/ Specialization cohesion?
measure how accurate or how much sense your inheritance hierarchy is. High cohesive inheritance hierarchies do not confuse associations or aggregation with gerneralization and specialization. A studetn is (a-kind-of) person but a classroom is not (a-kind-of) department even thoigh they might have common attributes.
What are the types of relationships that you may have on a class diagram?
normal relationship : - does not involve either generalization or aggregation generalization : - drawn between a superclass and a subclass, showing the inheritance of properties - "is a-kind-of." aggregation : - used when group of classes actually comprise another class - "is a part of" or "is made up of"
What are components?
self-contained classes used as plugins to provide specific functionality
What are the interrelationships between the functional, structural, and the behavioral models that need to be tested?
the activity diagrams, use-case descriptions, and use-case diagrams must agree with the CRC cards and class diagrams. They must agree with the sequence diagrams, communication diagrams, behavioral state machines, and CRUD matrix. Finally, the CRC cards and class diagrams agree with the sequence diagrams, communication diagrams, behavioral state machines and the CRUD matrix.
What is the difference between an analysis model and a design model?
the analysis model ignores non-functional requirements (performance) and system environment issues. The design models take these issues into account as well as meeting all the functional requirements.
What is the goal of the design phase?
to create a blueprint for a system that can be implemented successfully.