Upload
trankhanh
View
214
Download
1
Embed Size (px)
Citation preview
SCAD ENGINEERING COLLEGE
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN
Unit-I
Introduction to OOAD
PART-A
(UML Notations has to be used wherever necessary)
1. What is Object-Oriented Analysis?
During object-oriented analysis there is an emphasis on finding and describing the
objects or concepts in the problem domain. For example, in the case of the flight information
system, some of the concepts include Plane, Flight, and Pilot.
2. What is Object-Oriented Design?
During object-oriented design (or simply, object design) there is an emphasis on defining
software objects and how they collaborate to fulfill the requirements. The combination of
these two concepts shortly known as object oriented analysis and design.
3. What is Object-Oriented Analysis and Design? APRIL/MAY-2011
During object-oriented analysis there is an emphasis on finding and describing the objects or
concepts in the problem domain. For example, in the case of the flight information system,
some of the concepts include Plane, Flight, and Pilot.
During object-oriented design (or simply, object design) there is an emphasis on defining
software objects and how they collaborate to fulfill the requirements. The combination of
these two concepts shortly known as object oriented analysis and design.
4. What is Analysis and Design?
Analysis emphasizes an investigation of the problem and requirements, rather than a solution.
Design emphasizes a conceptual solution (in software and hardware) that fulfills the
requirements, rather than its implementation. For example, a description of a database
schema and software objects.
5. Define Design Class Diagrams
A static view of the class definitions is usefully shown with a design class diagram. This
illustrates the attributes and methods of the classes.
SCAD ENGINEERING COLLEGE
6. What is the UML? MAY/JUNE 2012
The Unified Modeling Language is a visual language for specifying, constructing and
documenting the artifacts of systems.
7. What are the three ways and perspectives to Apply UML?
Ways - UML as sketch, UML as blueprint, UML as programming language
Perspectives-Conceptual perspective, Specification (software) perspective, Implementation
(Software) perspective.
8. What is Inception? APIRAL/MAY-2011
Inception is the initial short step to establish a common vision and basic scope for the
Project. It will include analysis of perhaps 10% of the use cases, analysis of the critical non-
Functional requirement, creation of a business case, and preparation of the development
Environment so that programming can start in the elaboration phase. Inception in one
Sentence: Envision the product scope, vision, and business case.
9. What Artifacts May Start in Inception?
Some sample artifacts are Vision and Business Case, Use-Case Model, Supplementary
Specification, Glossary, Risk List & Risk Management Plan, Prototypes and proof-of-concepts
etc.
10. Define Requirements and mention its types.
Requirements are capabilities and conditions to which the system and more broadly, the project
must conform.
1. Functional
2. Reliability
3. Performance
4. Supportability
11. What are Actors?
SCAD ENGINEERING COLLEGE
An actor is something with behavior, such as a person (identified by role), computer system, or
organization; for example, a cashier.
12. What is a scenario?
A scenario is a specific sequence of actions and interactions between actors and the system; it is
also called a use case instance. It is one particular story of using a system, or one path through
the use case; for example, the scenario of successfully purchasing items with cash, or the
scenario of failing to purchase items because of a credit payment denial.
13. Define Use case.
A use case is a collection of related success and failure scenarios that describe an actor using a
system to support a goal. Use cases are text documents, not diagrams, and use-case modeling is
primarily an act of writing text, not drawing diagrams.
14. What are Three Kinds of Actors?
Primary actor, Supporting actor, offstage actor.
15. What Tests Can Help Find Useful Use Cases?
1. The Boss Test
2. The EBP Test
3. The Size Test
16. What are Use Case Diagrams?
SCAD ENGINEERING COLLEGE
A use case diagram is an excellent picture of the system context; it makes a good context
diagram that is, showing the boundary of a system, what lies outside of it, and how it gets used.
It serves as a communication tool that summarizes the behavior of a system and its actors.
17. What are Activity Diagrams?
A diagram which is useful to visualize workflows and business processes. These can be a useful
alternative or adjunct to writing the use case text, especially for business use cases that describe
complex workflows involving many parties and concurrent actions.
18. List the relationships used in use cases? MAY/JUNE 2012
1.Include
2.Extend
3.Generalize
19.List out the steps for finding use cases.NOV/DEC 2012
20. What is an object?
An object is a combination of data and logic; the representation of some real-world entity.
21. What is the main advantage of object-oriented development?
• High level of abstraction
• Seamless transition among different phases of software development
• Encouragement of good programming techniques.
• Promotion of reusability.
22. What is Object Oriented System development methodology?
SCAD ENGINEERING COLLEGE
Object oriented system development methodology is a way to develop software by building self-
contained modules or objects that can be easily replaced, modified and reused.
23. Distinguish between method and message in object.
Method Message
i) Methods are similar to functions, procedures or subroutines in more traditional programming
languages. Message essentially are non-specific function calls.
ii) Method is the implementation. Message is the instruction.
iii) In an object oriented system, a method is invoked by sending an object a message. An object
understands a message when it can match the message to a method that has the same name as the
message.
PART- B
1. Explain about POS generation systems.
-The Next Gen POS System
-Architectural Layers and Case Study Emphasis
-Iterative Development and Iterative Learning
2. Define Inception. Explain about artifacts of Inception
-Inception: An Analogy
-What Artifacts May Start in Inception
- You Didn't Understand Inception When...
3. Explain about Unified process phases. APRIL/MAY-2011
- Iterative Development
SCAD ENGINEERING COLLEGE
- UP Practices and Concepts
-The UP Phases and Schedule
-The UP Disciplines (was Workflows)
-The Agile UP
-The Sequential "Waterfall
4. Explain about Use-Case Model and its Writing Requirements in Context. APRIL/MAY-2011
-Background
-Use Cases and Adding Value
-Use Cases and Functional Requirements
-Use Case Types and Formats
-Fully Dressed Example: Process Sale
-Relating use cases- Include, Exclude,Generalize
-Example with diagram-ATM, Library Management System etc
5. List out the components of Object-Oriented Analysis and Design.
-Applying UML and Patterns in OOA/D
-Assigning Responsibilities
-What Is Analysis and Design?
-What Is Object-Oriented Analysis and Design?
-An Example
-The UML
SCAD ENGINEERING COLLEGE
UNIT-II
Elaboration
PART- A
1. What is Elaboration?
Elaboration is the initial series of iterations during which the team does serious investigation,
implements (programs and tests) the core architecture, clarifies most requirements, and tackles
the high-risk issues. In the UP, "risk" includes business value. Therefore, early work may include
implementing scenarios that are deemed important, but are not especially technically risky.
2. What are the tasks performed in elaboration?
• the core, risky software architecture is programmed and tested
• the majority of requirements are discovered and stabilized
• the major risks are mitigated or retired
3. What are the key ideas and best practices that will manifest in elaboration?
• do short time boxed risk-driven iterations
• start programming early
• adaptively design, implement, and test the core and risky parts of the architecture
• test early, often, realistically
• adapt based on feedback from tests, users, developers
• write most of the use cases and other requirements in detail, through a series of
workshops, once per elaboration iteration
SCAD ENGINEERING COLLEGE
4. What Artifacts May Start in Elaboration?
Domain Model This is a visualization of the domain concepts; it is similar to a static
information model of the domain entities.
Design Model This is the set of diagrams that describes the logical design. This includes
software class diagrams, object interaction diagrams, package diagrams,
and so forth.
Software
Architecture
Document
A learning aid that summarizes the key architectural issues and their
resolution in the design. It is a summary of the outstanding design ideas
and their motivation in the system.
Data Model This includes the database schemas, and the mapping strategies between
object and non-object representations.
Use-Case
Storyboards, UI
Prototypes
Descriptions of the user interface, paths of navigation, usability models,
and so forth.
5. What are the key ideas for Planning the Next Iteration?
Organize requirements and iterations by risk, coverage, and criticality.
6. What is a Domain Model? APIRAL/MAY-2011
A domain model is a visual representation of conceptual classes or real-situation objects in a
domain. The term "Domain Model" means a representation of real-situation conceptual classes,
not of software objects. The term does not mean a set of diagrams describing software classes,
the domain layer of a software architecture, or software objects with responsibilities.
7. How the domain model is illustrated?
Applying UML notation, a domain model is illustrated with a set of class diagrams in which no
operations (method signatures) are defined. It provides a conceptual perspective. It may show:
• domain objects or conceptual classes
• associations between conceptual classes
• attributes of conceptual classes
8. Why Call a Domain Model a "Visual Dictionary"?
The information it illustrates could alternatively have been expressed in plain text. But it's easy
to understand the terms and especially their relationships in a visual language, since our brains
SCAD ENGINEERING COLLEGE
are good at understanding visual elements and line connections. Therefore, the domain model is
a visual dictionary of the noteworthy abstractions, domain vocabulary, and information content
of the domain.
9. What are the elements not suitable in a domain model?
The following elements are not suitable in a domain model
• Software artifacts, such as a window or a database, unless the domain being modeled is
of software concepts, such as a model of graphical user interfaces.
• Responsibilities or methods
10. What are Conceptual Classes?
The domain model illustrates conceptual classes or vocabulary in the domain. Informally, a
conceptual class is an idea, thing, or object. More formally, a conceptual class may be considered
in terms of its symbol, intension, and extension
• Symbol words or images representing a conceptual class.
• Intension the definition of a conceptual class.
• Extension the set of examples to which the conceptual class applies
11. How to Create a Domain Model?
The current iteration requirements under design:
1. Find the conceptual classes (see a following guideline).
2. Draw them as classes in a UML class diagram.
3. Add associations and attributes.
12. How to Find Conceptual Classes?
1. Reuse or modify existing models. This is the first, best, and usually easiest approach, and
where I will start if I can. There are published, well-crafted domain models and data
models (which can be modified into domain models) for many common domains, such as
inventory, finance, health, and so forth. Example books that I'll turn to include Analysis
Patterns by Martin Fowler, Data Model Patterns by David Hay, and the Data Model
Resource Book (volumes 1 and 2) by Len Silverton.
2. Use a category list.
3. Identify noun phrases.
13. Mention some Conceptual Class Category.
Conceptual Class Category Examples
SCAD ENGINEERING COLLEGE
Conceptual Class Category Examples
business transactions
Sale, Payment
Reservation
transaction line items
Sales Line Item
product or service related to a transaction or
transaction line item
Item
Flight, Seat, Meal
where is the transaction recorded?
Register, Ledger
Flight Manifest
roles of people or organizations related to the
transaction; actors in the use case
Cashier, Customer, Store Monopoly
Player Passenger, Airline
place of transaction; place of service Store
Airport, Plane, Seat
14. Define Association.
An association is a relationship between classes (more precisely, instances of those classes) that
indicates some meaningful and interesting connection.
15. Why Should We Avoid Adding Many Associations?
We need to avoid adding too many associations to a domain model. Digging back into our
discrete mathematics studies, you may recall that in a graph with n nodes, there can be
associations to other nodes a potentially very large number. A domain model with 20 classes
could have 190 associations’ lines! Many lines on the diagram will obscure it with "visual
noise." Therefore, be parsimonious about adding association lines. Use the criterion guidelines
suggested in this chapter, and focus on "need-to-remember" associations.
16. How to Name an Association in UML?
Name an association based on a Class Name-Verb Phrase-Class Name format where the verb
phrase creates a sequence that is readable and meaningful.
17. What is Aggregation? APRIL/MAY-2011
SCAD ENGINEERING COLLEGE
Aggregation is a vague kind of association in the UML that loosely suggests whole-part
relationships (as do many ordinary associations). It has no meaningful distinct semantics in the
UML versus a plain association, but the term is defined in the UML.
18. What is composition? APRIL/MAY-2011
Composition, also known as composite aggregation, is a strong kind of whole-part aggregation
and is useful to show in some models. A composition relationship implies that 1) an instance of
the part (such as a Square) belongs to only one composite instance (such as one Board) at a time,
2) the part must always belong to a composite (no free-floating Fingers), and 3) the composite is
responsible for the creation and deletion of its parts either by itself creating/deleting the parts, or
by collaborating with other objects.
19. Mention the guidelines that suggest when to show aggregation.
• The lifetime of the part is bound within the lifetime of the composite there is a create-
delete dependency of the part on the whole.
• There is an obvious whole-part physical or logical assembly.
• Some properties of the composite propagate to the parts, such as the location.
• Operations applied to the composite propagate to the parts, such as destruction,
movement, and recording.
20. What is an activity diagram?
A UML activity diagram shows sequential and parallel activities in a process. They are useful for
modeling business processes, workflows, data flows, and complex algorithms. Basic UML
activity diagram notation illustrates an action, partition, fork, join, and object node. In essence,
this diagram shows a sequence of actions, some of which may be parallel. Most of the notation is
self-explanatory; two subtle points:
• once an action is finished, there is an automatic outgoing transition
• the diagram can show both control flow and data flow
PART –B
1. Write briefly about elaboration and discuss the differences between Elaboration and Inception
with examples.
-Iteration 1 Requirements and Emphasis: Core OOA/D Skills
-Inception and Elaboration
-Planning the Next Iteration
2. Illustrate the concept of Domain model with examples. APRIL/MAY-2011
-Definitions
-Guidelines for creating domain model
-Examples
3. Explain the guidelines for finding Conceptual Classes with neat diagrams
SCAD ENGINEERING COLLEGE
- Three Strategies
-Find and Draw Conceptual Classes
4. What is activity diagram? Explain about its applications briefly? APRIL/MAY-2011
-UML Activity Diagram Notation
-Guidelines for activity modeling
-Example –Next Gen Activity Diagram
5. Explain about Aggregations and compositions
-Definitions
-Identify Composition &Aggregations
-Example: the Next Gen Domain Model
UNIT-III
System Sequence Diagrams
PART- A
1. What is meant by System Sequence Diagrams? APRIL/MAY-2011
A system sequence diagram (SSD) is a picture that shows, for a particular scenario of a use case,
the events that external actors generate their order, and inter-system events. All systems are
treated as a black box; the emphasis of the diagram is events that cross the system boundary from
actors to systems.
2. What is meant by System Behavior?
System behavior is a description of what a system does, without explaining how it does it. One
Part of that description is a system sequence diagram. Other parts include the Use cases, and
system contracts (to be discussed later).
SCAD ENGINEERING COLLEGE
3. What is meant by Inter-System SSDs?
SSDs can also be used to illustrate collaborations between systems, such as between the Next
Gen POS and the external credit payment authorizer. However, this is deferred until a later
iteration in the case study, since this iteration does not include remote systems collaboration.
4. Define System Events and the System Boundary.
To identify system events, it is necessary to be clear on the choice of system boundary, as
discussed in the prior chapter on use cases. For the purposes of software development, the
system boundary is usually chosen to be the software system itself; in this context, a system
event is an external event that directly stimulates the software.
5. How to Naming System Events and Operations?
System events (and their associated system operations) should be expressed at the level of intent
rather than in terms of the physical input medium or interface widget level.
It also improves clarity to start the name of a system event with a verb Thus "enter item" is
better than "scan" (that is, laser scan) because it captures the intent of the operation while
remaining abstract and noncommittal with respect to design choices about what interface is used
to capture the system event.
6. What is meant by interaction diagram?
The term interaction diagram is a generalization of two more specialized UML diagram types;
both can be used to express similar message interactions:
. Collaboration diagrams
. Sequence diagrams
7. What is meant by link?
A link is a connection path between two objects; it indicates some form of navigation And
visibility between the objects is possible . More formally, a link is an instance of an association.
For example, there is a link or path of navigation from a Register to a Sale, along which
messages may flow, such as the make 2 Payment message.
8. What is meant by Messages?
Each message between objects is represented with a message expression and small arrow
indicating the direction of the message. Many messages may flow along this link. A sequence
number is added to show the sequential order of messages in the current thread of control.
9. How to create an instance?
Any message can be used to create an instance, but there is a convention in the UML to use a
message named create for this purpose. If another (perhaps less obvious) message name is used,
the message may be annotated with a special feature called a UML stereotype, like so: «create».
SCAD ENGINEERING COLLEGE
The create message may include parameters, indicating the passing of initial values. This
indicates, for example, a constructor call with parameters in Java.
10. What is meant by Low Coupling?
Coupling is a measure of how strongly one element is connected to, has knowledge of, or relies
on other elements. An element with low (or weak) coupling is not dependent on too many other
elements; "too many" is context-dependent, but will be examined. These elements include
classes, subsystems, systems, and so on.
11. What is meant by High cohesion?
Cohesion (or more specifically, functional cohesion) is a measure of how strongly related and
focused the responsibilities of an element are. An element with highly related responsibilities,
and which does not do a tremendous amount of work, has high cohesion. These elements include
classes, subsystems, and so on.
12. Define Controller.
Assign the responsibility for receiving or handling a system event message to a class
representing one of the following choices:
- Represents the overall system, device, or subsystem (facade controller).
- Represents a use case scenario within which the system event occurs, often named
<UseCaseName>Handler, <UseCaseName>Coordinator, or
<Use-CaseName>Session (use-case or session controller).
- Use the same controller class for all system events in the same use case scenario.
-Informally, a session is an instance of a conversation with an actor.
-Sessions can be of any length, but are often organized in terms of use cases (use case sessions).
13. What is meant by CRC card?
CRC cards are index cards, one for each class, upon which the responsibilities of the class are
briefly written, and a list of collaborator objects to fulfill those responsibilities. They are usually
developed in a small group session. The GRASP patterns may be applied when considering the
design while using CRC cards.
14. What is meant by Pure Fabrication?
This is another GRASP pattern. A Pure Fabrication is an arbitrary creation of the designer, not a
software class whose name is inspired by the Domain Model. A use-case controller is a kind of Pure
Fabrication.
15. List the relationships used in class diagram? APRIL/MAY-2011
Generalization(class to class)
Association (object to object)
Aggregation (object to object)
SCAD ENGINEERING COLLEGE
Composition (object to object)
PART- B
1. How to Adding New SSDs and Contracts?
-New System Sequence Diagrams
-New System Operations
-New System Operation Contracts
2. Explain about Interaction Diagram Notation? APRIL/MAY-2011
-Sequence and Collaboration Diagrams
-Collaboration Diagram
-Sequence Diagram
-Common Interaction Diagram Notation
-Basic Collaboration Diagram
-Notation
-Basic Sequence Diagram Notation
3. Design the Model and Creating Design Class Diagrams.
-When to Create DCDs
-Example DCD
-DCD and UP
-Domain Model vs. Design Model Classes
-DCDs, Drawing, and CASE Tools
-DCDs within the UP
4. What are concepts involved in domain refinement?
-Generalization
SCAD ENGINEERING COLLEGE
-Defining Conceptual Super classes and Subclasses
-Class Hierarchies and Inheritance
-Aggregation and Composition
-Examples
5. Illustrate with an example, the relationship between sequence diagram and use cases.
APIRAL/MAY-2011
SCAD ENGINEERING COLLEGE
Unit-IV
GRASP
PART- A
SCAD ENGINEERING COLLEGE
1. How to Choosing the Initial Domain Object?
Choose as an initial domain object a class at or near the root of the containment or aggregation
hierarchy of domain objects. This may be a facade controller, such as Register, or some other
object considered to contain all or most other objects, such as a Store.
2. How to Connecting the UI Layer to the Domain Layer?
• An initializing routine (for example, a Java main method) creates both a UI and a domain
object, and passes the domain object to the UI.
• A UI object retrieves the domain object from a well-known source, such as a factory object that
is responsible for creating domain objects.
3. Mention the Interface and Domain Layer Responsibilities.
The UI layer should not have any domain logic responsibilities. It should only be responsible for
user interface tasks, such as updating widgets. The UI layer should forward requests for all
domain-oriented tasks on to the domain layer, which is responsible for handling them.
5. Define patterns.
A pattern is a named problem/solution pair that can be applied in new context, with advice on
how to apply it in novel situations and discussion of its trade-offs.
6. How to Apply the GRASP Patterns?
The following sections present the first five GRASP patterns:
. Information Expert
. Creator
. High Cohesion
. Low Coupling
. Controller
7. Define Responsibilities and Methods.
The UML defines a responsibility as "a contract or obligation of a classifier" [OMG01].
Responsibilities are related to the obligations of an object in terms of its behavior. Basically,
these responsibilities are of the following two types:
- knowing
-doing
Doing responsibilities of an object include:
- doing something itself, such as creating an object or doing a calculation
- initiating action in other objects
-controlling and coordinating activities in other objects
Knowing responsibilities of an object include:
- knowing about private encapsulated data
- knowing about related objects
- knowing about things it can derive or calculate
SCAD ENGINEERING COLLEGE
8. Who is creator?
Solution Assign class B the responsibility to create an instance of class A if one or more
of the following is true:
. B aggregates an object.
. B contains an object.
. B records instances of objects.
. B closely uses objects.
. B has the initializing data that will be passed to A when it is created (thus B is an Expert with
respect to creating A).
B is a creator of an object.
If more than one option applies, prefer a class B which aggregates or contains class A.
9. List out some scenarios that illustrate varying degrees of functional cohesion.
-Very low cohesion
-low cohesion
-High cohesion
-Moderate cohesion
10. Define Modular Design.
Coupling and cohesion are old principles in software design; designing with objects does not
imply ignoring well-established fundamentals. Another of these. Which is strongly related to
coupling and cohesion? is to promote modular design.
11. What are the advantages of Factory objects?
• Separate the responsibility of complex creation into cohesive helper objects.
• Hide potentially complex creation logic.
• Allow introduction of performance-enhancing memory management strategies, such as object
caching or recycling.
12. Designing for Non-Functional or Quality Requirements.
Interestingly—and this a key point in software architecture—it is common that the large-scale
themes, patterns, and structures of the software architecture are shaped by the designs to resolve
the non-functional or quality requirements, rather than the basic business logic.
13. Abstract for Factory (GoF) for Families of Related Objects.
The Java POS implementations will be purchased from manufacturers.
For example5:
// IBM's drivers
com.ibm.pos.jpos.CashDrawer (implements jpos.CashDrawer)
com.ibm.pos.jpos.CoinDispenser (implements jpos.CoinDispenser)
// NCR's drivers
com.ncr.posdrivers.CashDrawer (implements jpos.CashDrawer)
com.ncr.posdrivers.CoinDispenser (implements
jpos.CoinDispenser)
14. What is meant by Abstract Class Abstract Factory?
SCAD ENGINEERING COLLEGE
A common variation on Abstract Factory is to create an abstract class factory that is accessed
using the Singleton pattern, reads from a system property to decide which of its subclass
factories to create, and then returns the appropriate subclass instance. This is used, for example,
in the Java libraries with the java.awt.Toolkit class, which is an abstract class abstract factory for
creating families of GUI widgets for different operating system and GUI subsystems.
15. What is meant by Fine-Grained Classes?
Consider the creation of the Credit Card, Drivers License, and Check software objects. Our first
impulse might be to record the data they hold simply in their related payment classes, and
eliminate such fine-grained classes. However, it is usually a more profitable strategy to use them;
they often end up providing useful behavior and being reusable. For example, the Credit Card is
a natural Expert on telling you its credit company type (Visa, MasterCard, and so on).
This behavior will turn out to be necessary for our application.
16. Define coupling. APIRAL/MAY-2011
The degree to which components depend on one another. There are two types of coupling,
"tight" and "loose". Loose coupling is desirable for good software engineering but tight coupling
may be necessary for maximum performance. Coupling is increased when the data exchanged
between components becomes larger or more complex.
PART- B
1. Explain Grasp: designing objects with responsibilities.
-Responsibilities and Methods
-Responsibilities and Interaction Diagrams
-Patterns
2. Explain GRASP: Patterns of General Principles in Assigning Responsibilities.
APIRAL/MAY-2011 -The UML Class Diagram Notation
-Information Expert (or Expert)
-Creator
-low coupling
-high cohesion
-controller
-object design and CRC CARDS
3. How to Determining the Visibility of the Design Model?
-Visibility between Objects
-Visibility
4. Explain about Patterns for Assigning Responsibilities.
-Polymorphism
-Pure Fabrication
-Indirection
SCAD ENGINEERING COLLEGE
-Protected Variations
5. Designing the Use-Case Realizations with GoF Design Patterns. APRIL/MAY-2011
-Analysis" Discoveries during Design: Domain Model
-Factory
-Singleton
-Conclusion of the External Services with Varying Interfaces Problem 3
-Strategy
-Composite
-Facade
SCAD ENGINEERING COLLEGE
Unit-V
UML state diagrams and modeling
PART- A
1. Define post condition.
The post conditions describe changes in the state of objects in the Domain Model. Domain
Model state changes include instances created, associations formed or broken, and attributes
changed.
2. Define Attributes.
An attribute is a logical data value of an object.
3. When Are Contracts Useful?
The use cases are the main repository of requirements for the project. They may provide most or
all of the detail necessary to know what to do in the design, in which case, contracts are not
helpful. However, there are situations where the details and complexity of required state changes
are awkward to capture in use cases.
4. Mention the Guidelines for Contracts.
To make contracts:
1. Identify system operations from the SSDs.
2. For system operations that are complex and perhaps subtle in their results, or which are not
clear in the use case, construct a contract.
3. To describe the post conditions, use the following categories:
- Instance creation and deletion
- attribute modification
- Associations formed and broken
5. What are Steps for Mapping Designs to Code?
Implementation in an object-oriented programming language requires writing source code for:
• Class and interface definitions
• Method definitions
6. Creating Class Definitions from DCDs.
At the very least, DCDs depict the class or interface name, super classes, method signatures, and
simple attributes of a class. This is sufficient to create a basic class definition in an object-
oriented programming language. Later discussion will explore the addition of interface and
namespace (or package) information, among other details.
SCAD ENGINEERING COLLEGE
7. What are the Benefits of Iterative Development?
• Early rather than late mitigation of high risks (technical, requirements, objectives, usability,
and so forth)
• Early visible progress
• Early feedback, user engagement, and adaptation, leading to a refined system that more
closely meets the real needs of the stakeholders
• managed complexity; the team is not overwhelmed by "analysis paralysis" or very long and
complex steps
• The learning within iteration can be methodically used to improve the development process
itself, iteration by iteration
8. Define Events, States, and Transitions. APRIL/MAY-2011
An event is a significant or noteworthy occurrence.
For example:
A telephone receiver is taken off the hook.
A state is the condition of an object at a moment in time—the time between events.
For example:
• A telephone is in the state of being "idle" after the receiver is placed on the hook and until it
Is taken off the hook.
A transition is a relationship between two states that indicates that when an event occurs, the
Object moves from the prior state to the subsequent state.
For example:
• When the event "off hook" occurs, transition the telephone from the "idle" to "active" state.
9. What is meant by State chart Diagrams?
A UML state chart diagram, illustrates the interesting events and states of an object, and the
behavior of an object in reaction to an event. Transitions are shown as arrows, labeled with their
event. States are shown in rounded rectangles. It is common to include an initial pseudo-state,
which automatically transitions to another state when the instance is created.
10. State chart Diagrams in the UP?
There is not one model in the UP called the "state model." Rather, any element in any model
(Design Model, Domain Model, and so forth) may have a state chart to better understand or
communicate its dynamic behavior in response to events. For example, a state chart associated
with the Sale design class of the Design Model is itself part of the Design Model.
11. Utility of Use Case State chart Diagrams.
- Hard-coded conditional tests for out-of-order events
- Use of the State pattern (discussed in a subsequent chapter)
- disabling widgets in active windows to disallow illegal events (a desirable approach)
- A state machine interpreter that runs a state table representing a use case
State chart diagram.
SCAD ENGINEERING COLLEGE
12. List out the types of Events.
-External event
-Internal event
-Temporal event
13. Define External event.
External event—also known as a system event, is caused by something (for example, an actor)
outside our system boundary. SSDs illustrate external events. Noteworthy external events
precipitate the invocation of system operations to respond to them.
- When a cashier presses the "enter item" button on a POS terminal, an external event has
occurred.
14. Define internal event.
Internal event—caused by something inside our system boundary. In terms of software, an
internal event arises when a method is invoked via a message or signal that was sent from
another internal object. Messages in interaction diagrams suggest internal events.
- When a Sale receives a make Line item message, an internal event has occurred.
15. Define temporal event.
Temporal event—caused by the occurrence of a specific date and time or passage of time. In
terms of software, a temporal event is driven by a real time or simulated-time clock.
-Suppose that after an end Sale operation occurs, a make Payment operation must occur within
five minutes, otherwise the current sale is automatically purged.
PART- B
1. Explain UML State Machine Diagrams and Modeling.
-Definition
-How to apply
-Example
-Process
2. What is the operation of contracts works.
-Contracts
-Contract Sections
-Post conditions
SCAD ENGINEERING COLLEGE
-Guidelines: Contracts
-Next Gen POS Example
-Changes to the Domain Model
-Contracts, Operations, and the UML
-Operation Contracts With in the UP
3. Explain the operation of Mapping Designs to Code. APRIL/MAY-2011
- Programming and the Development Process
-Mapping Designs to Code
-Creating Class Definitions from DCDs
-Creating Methods from Interaction Diagrams
-Container/Collection Classes in Code
-Exceptions and Error Handling
-Defining the Sale--makeLineItem Method
-Order of Implementation
-Test-First Programming
4. What is operation of UML Deployment and Component Diagram? Draw the diagram for a
banking application. APRIL/MAY-2011
-Deployment Diagram
-Component Diagram
SCAD ENGINEERING COLLEGE
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN
Unit-I
UML DIAGRAMS UML DIAGRAMS UML DIAGRAMS UML DIAGRAMS Introduction to OOAD – Unified Process - UML diagrams – Use Case – Class Diagrams– Interaction Diagrams – State Diagrams – Activity Diagrams – Package, component and Deployment Diagrams.
PART-A
1. What is Object-Oriented Analysis?
During object-oriented analysis there is an emphasis on finding and describing the
objects or concepts in the problem domain. For example, in the case of the flight information
system, some of the concepts include Plane, Flight, and Pilot.
2. What is Object-Oriented Design?
During object-oriented design (or simply, object design) there is an emphasis on defining
software objects and how they collaborate to fulfill the requirements. The combination of
these two concepts shortly known as object oriented analysis and design.
3. What is Object-Oriented Analysis and Design? APRIL/MAY-2011
During object-oriented analysis there is an emphasis on finding and describing the objects or
concepts in the problem domain. For example, in the case of the flight information system,
some of the concepts include Plane, Flight, and Pilot.
During object-oriented design (or simply, object design) there is an emphasis on defining
software objects and how they collaborate to fulfill the requirements. The combination of
these two concepts shortly known as object oriented analysis and design.
4. What is Analysis and Design?
Analysis emphasizes an investigation of the problem and requirements, rather than a solution.
Design emphasizes a conceptual solution (in software and hardware) that fulfills the
requirements, rather than its implementation. For example, a description of a database
schema and software objects.
5. Define Design Class Diagrams
A static view of the class definitions is usefully shown with a design class diagram. This
illustrates the attributes and methods of the classes.
SCAD ENGINEERING COLLEGE
6. What is the UML? MAY/JUNE 2012
The Unified Modeling Language is a visual language for specifying, constructing and
documenting the artifacts of systems. 7. What are the three ways and perspectives to Apply UML?
Ways - UML as sketch, UML as blueprint, UML as programming language
Perspectives-Conceptual perspective, Specification (software) perspective, Implementation
(Software) perspective.
10. Define Requirements and mention its types.
Requirements are capabilities and conditions to which the system and more broadly, the project
must conform.
1. Functional
2. Reliability
3. Performance
4. Supportability
11. What are Actors?
An actor is something with behavior, such as a person (identified by role), computer system, or
organization; for example, a cashier.
12. What is a scenario?
A scenario is a specific sequence of actions and interactions between actors and the system; it is
also called a use case instance. It is one particular story of using a system, or one path through
the use case; for example, the scenario of successfully purchasing items with cash, or the
scenario of failing to purchase items because of a credit payment denial.
13. Define Use case. A use case is a collection of related success and failure scenarios that describe an actor using a
system to support a goal. Use cases are text documents, not diagrams, and use-case modeling is
primarily an act of writing text, not drawing diagrams.
14. What are Three Kinds of Actors? Primary actor, Supporting actor, offstage actor.
15. What Tests Can Help Find Useful Use Cases? 1. The Boss test
2. The EBP test
3. The Size test
SCAD ENGINEERING COLLEGE
16. What are Use Case Diagrams?
A use case diagram is an excellent picture of the system context; it makes a good context
diagram that is, showing the boundary of a system, what lies outside of it, and how it gets used.
It serves as a communication tool that summarizes the behavior of a system and its actors. 17. What are Activity Diagrams?
A diagram which is useful to visualize workflows and business processes. These can be a useful
alternative or adjunct to writing the use case text, especially for business use cases that describe
complex workflows involving many parties and concurrent actions. 18.List out the steps for finding use cases.NOV/DEC 2012
19. What is an object?
An object is a combination of data and logic; the representation of some real-world entity.
20. What is the main advantage of object-oriented development?
• High level of abstraction
• Seamless transition among different phases of software development
• Encouragement of good programming techniques.
• Promotion of reusability.
21. What is Object Oriented System development methodology?
Object oriented system development methodology is a way to develop software by building self-
contained modules or objects that can be easily replaced, modified and reused.
22. Distinguish between method and message in object.
Method Message
i) Methods are similar to functions, procedures or subroutines in more traditional programming
languages. Message essentially are non-specific function calls.
ii) Method is the implementation. Message is the instruction.
iii) In an object oriented system, a method is invoked by sending an object a message. An object
understands a message when it can match the message to a method that has the same name as the
message.
23. What is an activity diagram?
A UML activity diagram shows sequential and parallel activities in a process. They are useful for
modeling business processes, workflows, data flows, and complex algorithms. Basic UML
activity diagram notation illustrates an action, partition, fork, join, and object node. In essence,
SCAD ENGINEERING COLLEGE
this diagram shows a sequence of actions, some of which may be parallel. Most of the notation is
self-explanatory; two subtle points:
• once an action is finished, there is an automatic outgoing transition
• the diagram can show both control flow and data flow
24. What is meant by interaction diagram?
The term interaction diagram is a generalization of two more specialized UML diagram types;
both can be used to express similar message interactions:
. Collaboration diagrams
. Sequence diagrams
25. What is meant by link? A link is a connection path between two objects; it indicates some form of navigation And visibility between the objects is possible . More formally, a link is an instance of an
association. For example, there is a link or path of navigation from a Register to a Sale, along
which messages may flow, such as the make 2 Payment message.
26. What is meant by Messages?
Each message between objects is represented with a message expression and small arrow
indicating the direction of the message. Many messages may flow along this link. A
sequence number is added to show the sequential order of messages in the current thread of
control.
27. How to create an instance?
Any message can be used to create an instance, but there is a convention in the UML to use a
message named create for this purpose. If another (perhaps less obvious) message name is
used, the message may be annotated with a special feature called a UML stereotype, like so:
«create».
The create message may include parameters, indicating the passing of initial values.
This indicates, for example, a constructor call with parameters in Java.
28. List the relationships used in class diagram? APRIL/MAY-2011
Generalization(class to class)
Association (object to object)
Aggre gation (object to
object)
Composition (object to object)
29. Define Events, States, and Transitions. APRIL/MAY-2011
An event is a significant or noteworthy occurrence.
For example:
A telephone receiver is taken off the hook.
A state is the condition of an object at a moment in time—the time between events.
For example:
• A telephone is in the state of being "idle" after the receiver is placed on the hook and until it
Is taken off the hook.
SCAD ENGINEERING COLLEGE
A transition is a relationship between two states that indicates that when an event occurs, the
Object moves from the prior state to the subsequent state.
For example:
• When the event "off hook" occurs, transition the telephone from the "idle" to "active" state.
30. What is meant by State chart Diagrams?
A UML state chart diagram, illustrates the interesting events and states of an object, and the
behavior of an object in reaction to an event. Transitions are shown as arrows, labeled with their
event. States are shown in rounded rectangles. It is common to include an initial pseudo-state,
which automatically transitions to another state when the instance is created.
31. State chart Diagrams in the UP?
There is not one model in the UP called the "state model." Rather, any element in any model
(Design Model, Domain Model, and so forth) may have a state chart to better understand or
communicate its dynamic behavior in response to events. For example, a state chart associated
with the Sale design class of the Design Model is itself part of the Design Model.
32. Utility of Use Case State chart Diagrams.
- Hard-coded conditional tests for out-of-order events
- Use of the State pattern (discussed in a subsequent chapter)
- disabling widgets in active windows to disallow illegal events (a desirable approach)
- A state machine interpreter that runs a state table representing a use case
State chart diagram.
33. List out the types of Events.
-External event
-Internal event
-Temporal event
34. Define External event.
External event—also known as a system event, is caused by something (for example, an actor)
outside our system boundary. SSDs illustrate external events. Noteworthy external events
precipitate the invocation of system operations to respond to them.
- When a cashier presses the "enter item" button on a POS terminal, an external event has
occurred.
35. Define internal event.
Internal event—caused by something inside our system boundary. In terms of software, an
internal event arises when a method is invoked via a message or signal that was sent from
another internal object. Messages in interaction diagrams suggest internal events.
- When a Sale receives a make Line item message, an internal event has occurred.
36. Define temporal event.
SCAD ENGINEERING COLLEGE
Temporal event—caused by the occurrence of a specific date and time or passage of time. In
terms of software, a temporal event is driven by a real time or simulated-time clock.
-Suppose that after an end Sale operation occurs, a make Payment operation must occur within
five minutes, otherwise the current sale is automatically purged.
PART- B
1. Explain about Unified process phases. APRIL/MAY-2011
- Iterative Development
- UP Practices and Concepts
-The UP Phases and Schedule
-The UP Disciplines (was Workflows)
-The Agile UP
-The Sequential "Waterfall
2. Explain about Use-Case Model and its Writing Requirements in Context. APRIL/MAY-2011
-Background
-Use Cases and Adding Value
-Use Cases and Functional Requirements
-Use Case Types and Formats
-Fully Dressed Example: Process Sale
-Relating use cases- Include, Exclude,Generalize
-Example with diagram-ATM, Library Management System etc
3. List out the components of Object-Oriented Analysis and Design.
-Applying UML and Patterns in OOA/D
-Assigning Responsibilities
-What Is Analysis and Design?
-What Is Object-Oriented Analysis and Design?
-An Example
-The UML
4. What is activity diagram? Explain about its applications briefly? APRIL/MAY-2011
-UML Activity Diagram Notation
-Guidelines for activity modeling
-Example –Next Gen Activity Diagram
5. Explain about Interaction Diagram Notation? APRIL/MAY-2011
-Sequence and Collaboration Diagrams
-Collaboration Diagram
-Sequence Diagram
-Common Interaction Diagram Notation
-Basic Collaboration Diagram
-Notation
-Basic Sequence Diagram Notation
6. Design the Model and Creating Design Class Diagrams.
-When to Create DCDs
-Example DCD
-DCD and UP
SCAD ENGINEERING COLLEGE
-Domain Model vs. Design Model Classes
-DCDs, Drawing, and CASE Tools
-DCDs within the UP
7. Illustrate with an example, the relationship between sequence diagram and use cases.
APIRAL/MAY-2011
Sequence diagram- definition,example diagram
Use Cases- definition,example diagram
8. Explain UML State Machine Diagrams and Modeling.
-Definition
-How to apply
-Example
-Process
9. What is operation of UML Deployment and Component Diagram? Draw the diagram for a
banking application. APRIL/MAY-2011
-Deployment Diagram
-Component Diagram
UNIT-II
DESIGN PATTERNS DESIGN PATTERNS DESIGN PATTERNS DESIGN PATTERNS
GRASP: Designing objects with responsibilities – Creator – Information expert – Low Coupling – High Cohesion – Controller - Design Patterns – creational - factory method - structural – Bridge – Adapter -behavioral – Strategy – observer.
PART- A
1. How to Choosing the Initial Domain Object?
Choose as an initial domain object a class at or near the root of the containment or aggregation
hierarchy of domain objects. This may be a facade controller, such as Register, or some other
object considered to contain all or most other objects, such as a Store.
2. How to Connecting the UI Layer to the Domain Layer?
• An initializing routine (for example, a Java main method) creates both a UI and a domain
object, and passes the domain object to the UI.
• A UI object retrieves the domain object from a well-known source, such as a factory object that
is responsible for creating domain objects.
3. Mention the Interface and Domain Layer Responsibilities.
The UI layer should not have any domain logic responsibilities. It should only be responsible for
user interface tasks, such as updating widgets. The UI layer should forward requests for all
domain-oriented tasks on to the domain layer, which is responsible for handling them.
5. Define patterns.
A pattern is a named problem/solution pair that can be applied in new context, with advice on
how to apply it in novel situations and discussion of its trade-offs.
6. How to Apply the GRASP Patterns?
The following sections present the first five GRASP patterns:
SCAD ENGINEERING COLLEGE
. Information Expert
. Creator
. High Cohesion
. Low Coupling
. Controller
7. Define Responsibilities and Methods.
The UML defines a responsibility as "a contract or obligation of a classifier" [OMG01].
Responsibilities are related to the obligations of an object in terms of its behavior. Basically,
these responsibilities are of the following two types:
- knowing
-doing
Doing responsibilities of an object include:
- doing something itself, such as creating an object or doing a calculation
- initiating action in other objects
-controlling and coordinating activities in other objects
Knowing responsibilities of an object include:
- knowing about private encapsulated data
- knowing about related objects
- knowing about things it can derive or calculate
8. Who is creator? Solution Assign class B the responsibility to create an instance of class A if one or more
of the following is true:
. B aggregates an object.
. B contains an object.
. B records instances of objects.
. B closely uses objects.
. B has the initializing data that will be passed to A when it is created (thus B is an Expert with
respect to creating A).
B is a creator of an object.
If more than one option applies, prefer a class B which aggregates or contains class A.
9. List out some scenarios that illustrate varying degrees of functional cohesion.
-Very low cohesion
-low cohesion
-High cohesion
-Moderate cohesion
10. Define Modular Design. Coupling and cohesion are old principles in software design; designing with objects does not imply ignoring well-established fundamentals. Another of these. Which is strongly related to
coupling and cohesion? is to promote modular design.
11. What are the advantages of Factory objects?
• Separate the responsibility of complex creation into cohesive helper objects.
• Hide potentially complex creation logic.
• Allow introduction of performance-enhancing memory management strategies, such as object
caching or recycling.
SCAD ENGINEERING COLLEGE
12. Designing for Non-Functional or Quality Requirements.
Interestingly—and this a key point in software architecture—it is common that the large-scale
themes, patterns, and structures of the software architecture are shaped by the designs to resolve
the non-functional or quality requirements, rather than the basic business logic.
13. Abstract for Factory (GoF) for Families of Related Objects. The Java POS implementations will be purchased from manufacturers.
For example5:
// IBM's drivers
com.ibm.pos.jpos.CashDrawer (implements jpos.CashDrawer)
com.ibm.pos.jpos.CoinDispenser (implements jpos.CoinDispenser)
// NCR's drivers
com.ncr.posdrivers.CashDrawer (implements jpos.CashDrawer)
com.ncr.posdrivers.CoinDispenser (implements
jpos.CoinDispenser)
14. What is meant by Abstract Class Abstract Factory? A common variation on Abstract Factory is to create an abstract class factory that is accessed
using the Singleton pattern, reads from a system property to decide which of its subclass
factories to create, and then returns the appropriate subclass instance. This is used, for example,
in the Java libraries with the java.awt.Toolkit class, which is an abstract class abstract factory for
creating families of GUI widgets for different operating system and GUI subsystems.
15. What is meant by Fine-Grained Classes?
Consider the creation of the Credit Card, Drivers License, and Check software objects. Our first
impulse might be to record the data they hold simply in their related payment classes, and
eliminate such fine-grained classes. However, it is usually a more profitable strategy to use them;
they often end up providing useful behavior and being reusable. For example, the Credit Card is
a natural Expert on telling you its credit company type (Visa, MasterCard, and so on).
This behavior will turn out to be necessary for our application.
16. Define coupling. APIRAL/MAY-2011 The degree to which components depend on one another. There are two types of coupling, "tight" and "loose". Loose coupling is desirable for good software engineering but tight coupling
may be necessary for maximum performance. Coupling is increased when the data exchanged
between components becomes larger or more complex.
17. What is meant by Low Coupling?
Coupling is a measure of how strongly one element is connected to, has knowledge of, or
relies on other elements. An element with low (or weak) coupling is not dependent on too
many other elements; "too many" is context-dependent, but will be examined. These elements
include classes, subsystems, systems, and so on.
18. What is meant by High cohesion?
Cohesion (or more specifically, functional cohesion) is a measure of how strongly related and
focused the responsibilities of an element are. An element with highly related
responsibilities, and which does not do a tremendous amount of work, has high cohesion. These
elements include classes, subsystems, and so on.
SCAD ENGINEERING COLLEGE
19. Define Controller.
Assign the responsibility for receiving or handling a system event message to a
class representing one of the following choices:
- Represents the overall system, device, or subsystem (facade controller).
- Represents a use case scenario within which the system event occurs, often named
<UseCaseName>Handler, <UseCaseName>Coordinator, or
<Use-CaseName>Session (use-case or session controller).
- Use the same controller class for all system events in the same use case scenario.
-Informally, a session is an instance of a conversation with an actor.
-Sessions can be of any length, but are often organized in terms of use cases (use case sessions).
PART- B
1. Explain Grasp: designing objects with responsibilities.
-Responsibilities and Methods
-Responsibilities and Interaction Diagrams
-Patterns
2. Explain GRASP: Patterns of General Principles in Assigning Responsibilities.
APIRAL/MAY-2011 -The UML Class Diagram Notation -Information Expert (or Expert)
-Creator
-low coupling
-high cohesion
-controller
-object design and CRC CARDS
3. How to Determining the Visibility of the Design Model?
-Visibility between Objects
-Visibility
4. Explain about Patterns for Assigning Responsibilities.
-Polymorphism
-Pure Fabrication
-Indirection
-Protected Variations
5. Designing the Use-Case Realizations with GoF Design Patterns. APRIL/MAY-2011
-Analysis" Discoveries during Design: Domain Model
-Factory
-Singleton
-Conclusion of the External Services with Varying Interfaces Problem 3
-Strategy
-Composite
-Facade
SCAD ENGINEERING COLLEGE
UNIT IIIUNIT IIIUNIT IIIUNIT III
CASE STUDYCASE STUDYCASE STUDYCASE STUDY
Case study – the Next Gen POS system, Inception -Use case Modeling - Relating Use cases – include, extend and generalization - Elaboration - Domain Models - Finding conceptual classes and description classes – Associations – Attributes – Domain model refinement – Finding conceptual class Hierarchies - Aggregation and Composition
1. What is Inception? APIRAL/MAY-2011
Inception is the initial short step to establish a common vision and basic scope for the Project.
It will include analysis of perhaps 10% of the use cases, analysis of the critical non-
Functional requirement, creation of a business case, and preparation of the development
Environment so that programming can start in the elaboration phase. Inception in one
Sentence: Envision the product scope, vision, and business case.
2. What Artifacts May Start in Inception?
Some sample artifacts are Vision and Business Case, Use-Case Model, Supplementary
Specification, Glossary, Risk List & Risk Management Plan, Prototypes and proof-of-concepts
etc.
3. What Artifacts May Start in Elaboration?
Domain Model This is a visualization of the domain concepts; it is similar to a static
information model of the domain entities.
Design Model This is the set of diagrams that describes the logical design. This includes
software class diagrams, object interaction diagrams, package diagrams,
and so forth.
Software
Architecture
Document
A learning aid that summarizes the key architectural issues and their
resolution in the design. It is a summary of the outstanding design ideas
and their motivation in the system.
Data Model This includes the database schemas, and the mapping strategies between
object and non-object representations.
Use-Case
Storyboards, UI
Prototypes
Descriptions of the user interface, paths of navigation, usability models,
and so forth.
4. What are the key ideas for Planning the Next Iteration?
Organize requirements and iterations by risk, coverage, and criticality.
5. What is a Domain Model? APIRAL/MAY-2011
A domain model is a visual representation of conceptual classes or real-situation objects in a
domain. The term "Domain Model" means a representation of real-situation conceptual classes,
not of software objects. The term does not mean a set of diagrams describing software classes,
the domain layer of a software architecture, or software objects with responsibilities.
SCAD ENGINEERING COLLEGE
6. How the domain model is illustrated?
Applying UML notation, a domain model is illustrated with a set of class diagrams in which no
operations (method signatures) are defined. It provides a conceptual perspective. It may show:
• domain objects or conceptual classes
• associations between conceptual classes
• attributes of conceptual classes
7. Why Call a Domain Model a "Visual Dictionary"?
The information it illustrates could alternatively have been expressed in plain text. But it's easy
to understand the terms and especially their relationships in a visual language, since our brains
are good at understanding visual elements and line connections. Therefore, the domain model is
a visual dictionary of the noteworthy abstractions, domain vocabulary, and information content
of the domain.
8. What are the elements not suitable in a domain model?
The following elements are not suitable in a domain model
• Software artifacts, such as a window or a database, unless the domain being modeled is
of software concepts, such as a model of graphical user interfaces.
• Responsibilities or methods
9. What are Conceptual Classes?
The domain model illustrates conceptual classes or vocabulary in the domain. Informally, a
conceptual class is an idea, thing, or object. More formally, a conceptual class may be considered
in terms of its symbol, intension, and extension
• Symbol words or images representing a conceptual class.
• Intension the definition of a conceptual class.
• Extension the set of examples to which the conceptual class applies
10. How to Create a Domain Model?
The current iteration requirements under design:
1. Find the conceptual classes (see a following guideline).
2. Draw them as classes in a UML class diagram.
3. Add associations and attributes.
11. How to Find Conceptual Classes?
1. Reuse or modify existing models. This is the first, best, and usually easiest approach, and
where I will start if I can. There are published, well-crafted domain models and data
models (which can be modified into domain models) for many common domains, such as
inventory, finance, health, and so forth. Example books that I'll turn to include Analysis
Patterns by Martin Fowler, Data Model Patterns by David Hay, and the Data Model
Resource Book (volumes 1 and 2) by Len Silverton.
2. Use a category list.
SCAD ENGINEERING COLLEGE
3. Identify noun phrases.
12. Mention some Conceptual Class Category.
Conceptual Class Category Examples
business transactions Sale, Payment
Reservation
transaction line items Sales Line Item
product or service related to a transaction or
transaction line item
Item
Flight, Seat, Meal
where is the transaction recorded? Register, Ledger
Flight Manifest
roles of people or organizations related to the
transaction; actors in the use case
Cashier, Customer, Store Monopoly
Player Passenger, Airline
place of transaction; place of service Store
Airport, Plane, Seat
13. Define Association.
An association is a relationship between classes (more precisely, instances of those classes) that
indicates some meaningful and interesting connection.
14. Why Should We Avoid Adding Many Associations?
We need to avoid adding too many associations to a domain model. Digging back into our
discrete mathematics studies, you may recall that in a graph with n nodes, there can be
associations to other nodes a potentially very large number. A domain model with 20 classes
could have 190 associations’ lines! Many lines on the diagram will obscure it with "visual
noise." Therefore, be parsimonious about adding association lines. Use the criterion guidelines
suggested in this chapter, and focus on "need-to-remember" associations.
15. How to Name an Association in UML?
Name an association based on a Class Name-Verb Phrase-Class Name format where the verb
phrase creates a sequence that is readable and meaningful.
16. What is Aggregation? APRIL/MAY-2011
SCAD ENGINEERING COLLEGE
Aggregation is a vague kind of association in the UML that loosely suggests whole-part
relationships (as do many ordinary associations). It has no meaningful distinct semantics in the
UML versus a plain association, but the term is defined in the UML.
17. What is composition? APRIL/MAY-2011
Composition, also known as composite aggregation, is a strong kind of whole-part aggregation
and is useful to show in some models. A composition relationship implies that 1) an instance of
the part (such as a Square) belongs to only one composite instance (such as one Board) at a time,
2) the part must always belong to a composite (no free-floating Fingers), and 3) the composite is
responsible for the creation and deletion of its parts either by itself creating/deleting the parts, or
by collaborating with other objects.
18. Mention the guidelines that suggest when to show aggregation.
• The lifetime of the part is bound within the lifetime of the composite there is a create-
delete dependency of the part on the whole.
• There is an obvious whole-part physical or logical assembly.
• Some properties of the composite propagate to the parts, such as the location.
• Operations applied to the composite propagate to the parts, such as destruction,
movement, and recording.
19. What is Elaboration? Elaboration is the initial series of iterations during which the team does serious
investigation, implements (programs and tests) the core architecture, clarifies most
requirements, and tackles the high-risk issues. In the UP, "risk" includes business value.
Therefore, early work may include implementing scenarios that are deemed important, but are
not especially technically risky.
20. What are the tasks performed in elaboration? • the core, risky software architecture is programmed and tested
• the majority of requirements are discovered and stabilized
• the major risks are mitigated or retired
21. What are the key ideas and best practices that will manifest in elaboration?
• do short time boxed risk-driven iterations
• start programming early
• adaptively design, implement, and test the core and risky parts of the architecture • test early, often, realistically • adapt based on feedback from tests, users, developers
• write most of the use cases and other requirements in detail, through a series of
workshops, once per elaboration iteration
PART- B 1. Explain about POS generation systems.
-The Next Gen POS System
-Architectural Layers and Case Study Emphasis
-Iterative Development and Iterative Learning
SCAD ENGINEERING COLLEGE
2. Define Inception. Explain about artifacts of Inception
-Inception: An Analogy
-What Artifacts May Start in Inception
- You Didn't Understand Inception When...
3. Write briefly about elaboration and discuss the differences between Elaboration and Inception
with examples.
-Iteration 1 Requirements and Emphasis: Core OOA/D Skills
-Inception and Elaboration
-Planning the Next Iteration
4. Illustrate the concept of Domain model with examples. APRIL/MAY-2011
-Definitions
-Guidelines for creating domain model
-Examples
5. Explain the guidelines for finding Conceptual Classes with neat diagrams
- Three Strategies
-Find and Draw Conceptual Classes
6. Explain about Aggregations and compositions
-Definitions
-Identify Composition &Aggregations
-Example: the Next Gen Domain Model
SCAD ENGINEERING COLLEGE
UNIT IVUNIT IVUNIT IVUNIT IV
APPLYING DESIGN PATTERNSAPPLYING DESIGN PATTERNSAPPLYING DESIGN PATTERNSAPPLYING DESIGN PATTERNS
System sequence diagrams - Relationship between sequence diagrams and use cases Logical architecture and UML package diagram – Logical architecture refinement - UML class diagrams – UML interaction diagrams - Applying GoF design patterns.
1. What is meant by System Sequence Diagrams? APRIL/MAY-2011
A system sequence diagram (SSD) is a picture that shows, for a particular scenario of a use case,
the events that external actors generate their order, and inter-system events. All systems are
treated as a black box; the emphasis of the diagram is events that cross the system boundary from
actors to systems.
2. What is meant by System Behavior?
System behavior is a description of what a system does, without explaining how it does it. One
Part of that description is a system sequence diagram. Other parts include the Use cases, and
system contracts (to be discussed later).
3. What is meant by Inter-System SSDs?
SSDs can also be used to illustrate collaborations between systems, such as between the Next
Gen POS and the external credit payment authorizer. However, this is deferred until a later
iteration in the case study, since this iteration does not include remote systems collaboration.
4. Define System Events and the System Boundary.
To identify system events, it is necessary to be clear on the choice of system boundary, as
discussed in the prior chapter on use cases. For the purposes of software development, the
system boundary is usually chosen to be the software system itself; in this context, a system
event is an external event that directly stimulates the software.
5. How to Naming System Events and Operations?
System events (and their associated system operations) should be expressed at the level of intent
rather than in terms of the physical input medium or interface widget level.
It also improves clarity to start the name of a system event with a verb Thus "enter item" is
better than "scan" (that is, laser scan) because it captures the intent of the operation while
remaining abstract and noncommittal with respect to design choices about what interface is used to
capture the system event. 6. What is meant by interaction diagram?
The term interaction diagram is a generalization of two more specialized UML diagram types;
both can be used to express similar message interactions:
. Collaboration diagrams
. Sequence diagrams
7. What is meant by link? A link is a connection path between two objects; it indicates some form of navigation And visibility between the objects is possible . More formally, a link is an instance of an association.
For example, there is a link or path of navigation from a Register to a Sale, along which
messages may flow, such as the make 2 Payment message.
SCAD ENGINEERING COLLEGE
8. What is meant by Messages?
Each message between objects is represented with a message expression and small arrow
indicating the direction of the message. Many messages may flow along this link. A sequence
number is added to show the sequential order of messages in the current thread of control.
9. How to create an instance?
Any message can be used to create an instance, but there is a convention in the UML to use a
message named create for this purpose. If another (perhaps less obvious) message name is used,
the message may be annotated with a special feature called a UML stereotype, like so: «create».
The create message may include parameters, indicating the passing of initial values. This
indicates, for example, a constructor call with parameters in Java.
10. What is meant by Low Coupling?
Coupling is a measure of how strongly one element is connected to, has knowledge of, or relies
on other elements. An element with low (or weak) coupling is not dependent on too many other
elements; "too many" is context-dependent, but will be examined. These elements include
classes, subsystems, systems, and so on.
11. What is meant by High cohesion?
Cohesion (or more specifically, functional cohesion) is a measure of how strongly related and
focused the responsibilities of an element are. An element with highly related responsibilities,
and which does not do a tremendous amount of work, has high cohesion. These elements include
classes, subsystems, and so on.
12. Define Controller.
Assign the responsibility for receiving or handling a system event message to a class
representing one of the following choices:
- Represents the overall system, device, or subsystem (facade controller).
- Represents a use case scenario within which the system event occurs, often named
<UseCaseName>Handler, <UseCaseName>Coordinator, or
<Use-CaseName>Session (use-case or session controller).
- Use the same controller class for all system events in the same use case scenario.
-Informally, a session is an instance of a conversation with an actor.
-Sessions can be of any length, but are often organized in terms of use cases (use case sessions).
13. What is meant by CRC card?
CRC cards are index cards, one for each class, upon which the responsibilities of the class are
briefly written, and a list of collaborator objects to fulfill those responsibilities. They are usually
developed in a small group session. The GRASP patterns may be applied when considering the
design while using CRC cards.
14. What is meant by Pure Fabrication?
SCAD ENGINEERING COLLEGE
This is another GRASP pattern. A Pure Fabrication is an arbitrary creation of the designer, not a software class whose name is inspired by the Domain Model. A use-case controller is a kind of Pure
Fabrication.
15. List the relationships used in class diagram? APRIL/MAY-2011
Generalization(class to class)
Association (object to object)
Aggregation (object to object)
Composition (object to object)
PART- B
1. How to Adding New SSDs and Contracts?
-New System Sequence Diagrams -New System Operations -New System Operation Contracts
2. Explain about Interaction Diagram Notation? APRIL/MAY-2011
-Sequence and Collaboration Diagrams
-Collaboration Diagram
-Sequence Diagram
-Common Interaction Diagram Notation
-Basic Collaboration Diagram
-Notation
-Basic Sequence Diagram Notation
3. Design the Model and Creating Design Class Diagrams.
-When to Create DCDs
-Example DCD
-DCD and UP
-Domain Model vs. Design Model Classes
-DCDs, Drawing, and CASE Tools
-DCDs within the UP
4. What are concepts involved in domain refinement?
-Generalization
-Defining Conceptual Super classes and Subclasses
-Class Hierarchies and Inheritance
-Aggregation and Composition
-Examples
SCAD ENGINEERING COLLEGE
UNIT VUNIT VUNIT VUNIT V
CODING AND TESTINGCODING AND TESTINGCODING AND TESTINGCODING AND TESTING
Mapping design to code – Testing: Issues in OO Testing – Class Testing – OO Integration Testing – GUI Testing – OO System Testing.
PART A
1. What are Steps for Mapping Designs to Code?
Implementation in an object-oriented programming language requires writing source code for:
• Class and interface definitions
• Method definitions
PART B
1. Explain the operation of Mapping Designs to Code. APRIL/MAY-2011
- Programming and the Development Process
-Mapping Designs to Code
-Creating Class Definitions from DCDs
-Creating Methods from Interaction Diagrams
-Container/Collection Classes in Code
-Exceptions and Error Handling
-Defining the Sale--makeLineItem Method
-Order of Implementation
-Test-First Programming