CL 8 ORAL Question Bank
CL 8 ORAL Question Bank
CL 8 ORAL Question Bank
software requirements specification (SRS) is a document that describes what the software will do and how it will be
expected to perform. It also describes the functionality the product needs to fulfill all stakeholders (business, users) needs.
A software requirements specification is the basis for your entire project. It lays the framework that every team involved in
development will follow.It’s used to provide critical information to multiple teams — development, quality assurance,
operations, and maintenance
SRS (Software Requirements Specification) is a document that describes the system that should be developed and
implemented. It contains a full and detailed description of intended purposes, system behavior, user’s and system
requirements. Also, SRS defines the expected system performance and capabilities.
The aim of SRS is to specify the software product in details. In other words, it contains all necessary and
important information that the product team should be aware of in order to create the software.
• functional
• performance
• quality
• safety
• reliability
• interface
• maintainability
• operational
• resource.
•
Q3.What is data dictionary?
A data dictionary is a file or a set of files that includes a database's metadata. The data dictionary hold records
about other objects in the database, such as data ownership, data relationships to other objects, and other data.
The data dictionary is an essential component of any relational database. Ironically, because of its importance, it
is invisible to most database users. Typically, only database administrators interact with the data dictionary.
Ans:
The dynamic model is used to express and model the behaviour of the system over time.
Ans: -
Use Case: A use case is a list of actions or event steps typically defining the interactions between a role (known
in the Unified Modeling Language (UML) as an actor) and a system to achieve a goal. The actor can be a human
or other external system.
Actor: In UML, an actor is a model element that interacts with a system. As a model element, it can be an
abstract person (e.g. “customer”) or another external system.
System Boundary: A system boundary is a rectangle that you can draw in a use-case diagram to separate the use
cases that are internal to a system from the actors that are external to the system.
Ans :
Generalization of an actor.
Extend between two use cases.
Ans: There may be instances where actors are associated with similar use cases while triggering a few use
cases unique only to them. In such instances, you can generalize the actor to show the inheritance of
functions. You can do a similar thing for use case as well.
Ans:
Include:a] The include relationship allow us to include the behavior one use case into the flow of another use
case.
b] The including use case is called as base use case & included use case is called as inclusion use case.
Eg: E.g. Login use case include Enter credentials use case
Extend: a] This relationship provides a way to insert new behavior in an existing use case.
b] The base use case provides set of extension point where a new behavior can be
added.
c] In this relation the base use case is complete without the extended use case & does
d ]Eg: Invalid password use case extend Login use case (with additional steps of actions or behavior).
Q1 What are the different elements of activity diagram, explain with notations. Activity Diagram Notations:
Activity
Action
A task to be performed
Control Flow
Initial Node
Portrays the beginning of a set of actions or
activities
Object Node
Decision Node
Join Node
An activity, also known as an activity state, on a UML Activity diagram typically represents the invocation of an operation,
a step in a business process, or an entire business process. Action is a named element which represents a single atomic step
within activity, i.e.that is not further decomposed within the activity. Activity represents a behavior that is composed of
individual elements that are actions.
A fork node is used to split a single incoming flow into multiple concurrent flows. It is represented as a straight, slightly
thicker line in an activity diagram.
A join node joins multiple concurrent flows back into a single outgoing flow. A fork and join node used together are often
referred to as synchronization.
A decision node is used to accepts tokens on an incoming edge and presents them to multiple outgoing edges.A merge node
is a control node that brings together multiple alternate flows. It is not used to synchronize concurrent flows but to accept
one among several alternate flows.
Q5 What are the different types of combined fragments (alt, opt, loop, break etc…)
Combined fragment is an interaction fragment which defines a combination (expression) of interaction fragments. A
combined fragment is defined by an interaction operator and corresponding interaction operands.
alt - alternatives
opt - option
loop - iteration
break - break
par - parallel
ignore - ignore
consider - consider
assert - assertion
neg - negative
Assignment No 4 & 5
Assignment No 6
1. What are different elements in sequence diagram?
Answer: Sequence diagram is the most common kind of interaction diagram, which focuses on
the message interchange between a number of lifelines. Sequence diagram describes an
interaction by focusing on the sequence of messages that are exchanged, along with their
corresponding occurrence specifications on the lifelines. The nodes and edges are typically
drawn in a UML sequence diagram are
• lifeline
• execution specification
• message
• combined fragment
• interaction use
• state invariant
• continuation
• destruction occurrence.
State:
A state diagram is a type of diagram used in computer science and related fields to
describe the behavior of systems.
State diagrams require that the system described is composed of a finite number of states;
sometimes, this is indeed the case,
Composite state:
It can be used to group states into logical compounds and thus make the statechart more
comprehensible.
When a composite state is entered, its entry node denotes the substate to be activated.
History State:
History states allow the state machine to re-enter the last substate that was active prior to
leaving the composite state.
Sequential State:
Concurrent state:
A concurrent composite state contains two or more sequential state diagrams in regions
separated by dashed lines called concurrent region boundary lines.
Nested state:
A state can contain other states, often called as nested states or substates.
If you are modeling complex state machines, use nested states to separate detailed
behavior into multiple levels.
Events:
Events are some occurrences that can trigger state transition of an object or a group of
objects.
Events have a location in time and space but do not have a time period associated with it.
Events are generally associated with some actions.
Types:
External events are those events that pass from a user of the system to the objects within
the system.
For example, mouse click or key−press by the user are external events.
Internal events are those that pass from one object to another object within a system. For
example, stack overflow, a divide error, etc.
Deferred Events:
Deferred events are those which are not immediately handled by the object in the current
state but are lined up in a queue so that
they can be handled by the object in some other state at a later time.
Event Classes:
Event class indicates a group of events with common structure and behavior. As with
classes of objects, event classes may also be organized in a hierarchical structure. Event classes
may have attributes associated with them, time being an implicit attribute. For example, we can
consider the events of departure of a flight of an airline, which we can group into the following
class –
Q3 What is Transition?
Transition:
A transition is graphically represented by a solid directed arc from the source state to the
destination state.
Event Trigger − The occurrence due to which an object in the source state undergoes a
transition if the guard condition is satisfied.
Action − An un-interruptible and atomic computation that occurs on the source object
due to some event.
Target State − The destination state after completion of transition.
Q4 what is exit action, entry action and do?Explain with different state?
In UML models, you can add an entry, do, or exit activity to a state to describe an activity
that is performed only upon entry into a state,
Ex:
Right-click a state; then click Add UML and complete one of the following steps:
Q5 what are different components of state diagrams, draw each with its notations?
- Initial State: This state shows the first activity of the flow.
- State: A state represents the state of an object at a particular given point of time.
- Transition: The transition from one state to another state of objects is represented by an arrow.
- Signal: When a message or a trigger caused by an event to a state, which causes a transition,
this message is called as a signal.
- Final State: The state diagram ends with a diagram that depicts a bull’s eye is known as Final
State.
Objet Model:
"An object diagram is a graph of instances, including objects and data values.
The use of object diagrams is fairly limited, namely to show examples of data structure."
Assignment No 8
Ans : GRASP (General Responsibility Assignment Software Patterns) is a design pattern in object-
oriented software development used to assign responsibilities for different modules of code.
As a tool for software developers, GRASP provides a means to solve organizational problems and offers a
common way to speak about abstract concepts. The design pattern sets responsibilities
for objects and classes in object-oriented program design.GRASP with object-oriented programming
classifies problems and their solutions together as patterns.With these problems and solutions well
defined, they can be applied in other similar instances. GRASP assigns seven types of roles to classes and
objects in order to make for clear delineation of responsibilities.
1.Information Expert
2. Creator
3. Controller
4. Low Coupling
5. High Cohesion
6. Indirection
7. Polymorphism
8. Pure Fabrication
9. Protected Variations
Ans:
Ans: Creator is a GRASP principle which helps to decide which class should be responsible for
creating a new instance of a class. Object creation is an important process, and it is useful to have
a principle in deciding who should create an instance of a class.
The Creator defines WHO instantiates WHAT object. In object-oriented design lingo, we need to ask the
question of who creates an object A. The solution is that we give class B the role of instantiating (creating
an instance of) a class A if ;
• B contains A
• B uses most of A's features
• B can initialize A
Let's use a real-world example of a chess game. A chess game includes 2 players, 32 pieces (16 per
player) and a game board with 64 squares.
Ans: High cohesion is an evaluative pattern that attempts to keep objects appropriately focused,
manageable and understandable. High cohesion is generally used in support of low coupling.The
term cohesion is used to indicate the degree to which a class has a single, well-focused
responsibility. Cohesion is a measure of how the methods of a class or a module are meaningfully and
strongly related and how focused they are in providing a well-defined purpose to the system.
It is important to have code that is clean. Objects need to be manageable, easy to maintain and
have clearly-stated properties and objectives. This is High Cohesion which includes defined
purposes of classes, ability to reuse code, and keeping responsibility to one unit. High Cohesion,
Low Coupling, and clearly defined responsibilities go together. To achieve High Cohesion, a
class should have ONE job. A game piece should move across the board. It should not need to
setup the board or define moves for other players.
Ans: Coupling is a measure of how strongly one element is connected to, has knowledge of, or relies on
other elements. Low coupling is an evaluative pattern that dictates how to assign responsibilities to
support
Low Coupling can be described as following the path of least resistance. Coupling is a measure of how
much objects are tied to one another. We can follow the information expert for the lowest level of
coupling. So, to get the moves available to a piece, we start with the information expert, and not some
other class. In the chess game, the MovePiece class needs to get information from the board and the place
it intends to move to. We can couple all of this together in one flow,
Ans : The Controller is responsible for handling the requests of actors. The Controller is the middle-man
between your user clicking “Send” and your back-end making that happen. The Controller knows how to
interpret the actions of user-interfaces, and how to connect those actions to behaviours in your system.
When a request comes from the UI layer object, Controller pattern helps us in determining what is that
first object that receives the message from the UI layer objects.
This object is called a controller object which receives a request from the UI layer object and then
controls/coordinates with other objects of the domain layer to fulfill the request.
It delegates the work to other class and coordinates the overall activity .
Ans: The Polymorphism GRASP pattern deals with how a general responsibility gets distributed to a set
plugins for different customers according to their needs. The presence of a switch construction in the
code is a violation of this principle, switches and are subject to refactoring. Overuse of polymorphism
Ans: A pure fabrication is a class that does not represent a concept in the problem domain, specially
made up to achieve low coupling, high cohesion, and the reuse potential thereof derived (when a
solution presented by the information expert pattern does not). This kind of class is called a "service" in
domain-driven design.
For example, Suppose we Shape class, if we must store the shape data in a database.
● If we put this responsibility in Shape class, there will be many database related operations thus
● So, create a fabricated class DBStore which is responsible to perform all database operations.
● Similarly logInterface which is responsible for logging information is also a good example for Pure
Fabrication.
Ans: Indirection introduces an intermediate unit to communicate between the other units, so that the
The indirection pattern supports low coupling and reuses potential between two elements by assigning
the responsibility of mediation between them to an intermediate object. An example of this is the
introduction of a controller component for mediation between data (model) and its representation (view)
in the model-view control pattern. This ensures that coupling between them remains low.
Ans: The protected variations pattern protects elements from the variations on other elements (objects,
systems, subsystems) by wrapping the focus of instability with an interface and using polymorphism to
For example, the prior external tax calculator problem and its solution with Polymorphism illustrate
Protected Variations. The point of instability or variation is the different interfaces or APIs of external tax
calculators. The POS system needs to be able to integrate with many existing tax calculator systems,
and also with future third - party calculators not yet in existence.
By adding a level of indirection, an interface, and using polymorphism with various TaxCalculator
Adapter implementations, protection within the system from variations in external APIs is achieved.
Internal objects collaborate with a stable interface; the various adapter implementations hide the
Strategy lets the algorithm vary independently from clients that use it. Strategy is one of the
patterns included in the influential book Design Patterns by Gamma et al. that popularized
the concept of using design patterns to describe how to design flexible and reusable
object-oriented software. Deferring the decision about which algorithm to use until
runtime allows the calling code to be more flexible and reusable.
The state pattern is a behavioral software design pattern that allows an object to alter its
behavior when its internal state changes. This pattern is close to the concept of finite-state
machines. The state pattern can be interpreted as a strategy pattern, which is able to switch a
strategy through invocations of methods defined in the pattern's interface.
The state pattern is used in computer programming to encapsulate varying behavior for the
same object, based on its internal state. This can be a cleaner way for an object to change its
behavior at runtime without resorting to conditional statements and thus improve
maintainability.
In software engineering, the adapter pattern is a software design pattern (also known as
wrapper, an alternative naming shared with the decorator pattern) that allows the interface
of an existing class to be used as another interface.[1] It is often used to make existing classes
work with others without modifying their source code.
An example is an adapter that converts the interface of a Document Object Model of an XML
document into a tree structure that can be displayed.
Q10 what is interface, explain difference between interface and abstract data.
In computing, an interface is a shared boundary across which two or more separate
components of a computer system exchange information. The exchange can be between
software, computer hardware, peripheral devices, humans, and combinations of these.