Computer Networks
Computer Networks
To produce eminent skilled women engineers in the field of Artificial Intelligence And
Data Science to solve challenges in the society.
Mission
⚫ To nourish the core competence in the domain of Artificial Intelligence and Data
Science by continuously improving the resources.
⚫ To produce virtuous engineers by imparting the value of honesty, courage and
tenderness to serve the society.
⚫ To enrich the skills to meet the industrial requirement in the field of Artificial
intelligence.
PROGRAM EDUCATIONAL OBJECTIVES (PEO’s)
PEO1: Develop actionable competency in the realm of Artificial Intelligence & Data
Science to solve socially relevant problems.
PEO2: Develop world class solutions with the professional knowledge gained by lifelong
learning and Work in multi-disciplinary teams, communicate effectively.
PEO3: Pursue higher education and research in the field of Artificial Intelligence and Data
Science.
PSO 1: Implement Artificial Intelligence and data science tools like data analytics, machine
learning and neural networks to build new algorithms for a successful career and
entrepreneurship.
PSO 3: Graduates will gain practical proficiency with emerging technologies and open source
software in the field of Artificial Intelligence and Data Science
CS3591 COMPUTER NETWORKS LTPC
3 0 24
COURSE OBJECTIVES:
✓ To understand the concept of layering in networks.
✓ To know the functions of protocols of each layer of TCP/IP protocol suite.
✓ To visualize the end-to-end flow of information.
✓ To learn the functions of network layer and the various routing protocols.
✓ To familiarize the functions and protocols of the Transport layer.
UNIT I INTRODUCTION AND APPLICATION LAYER 10
Data Communication - Networks – Network Types – Protocol Layering – TCP/IP Protocol
suite – OSI Model – Introduction to Sockets - Application Layer protocols: HTTP – FTP –
Email protocols (SMTP - POP3 - IMAP - MIME) – DNS – SNMP
UNIT IV ROUTING 7
Routing and protocols: Unicast routing - Distance Vector Routing - RIP - Link State Routing
– OSPF – Path-vector routing - BGP - Multicast Routing: DVMRP – PIM.
TEXT BOOKS:
1. James F. Kurose, Keith W. Ross, Computer Networking, A Top-Down Approach
Featuring the Internet, Eighth Edition, Pearson Education, 2021.
2. Behrouz A. Forouzan, Data Communications and Networking with TCP/IP Protocol
Suite, Sixth Edition TMH, 2022.
REFERENCES:
1. Larry L. Peterson, Bruce S. Davie, Computer Networks: A Systems Approach, Fifth
Edition, Morgan Kaufmann Publishers Inc., 2012.
2. William Stallings, Data and Computer Communications, Tenth Edition, Pearson
Education, 2013.
3. Nader F. Mir, Computer and Communication Networks, Second Edition, Prentice Hall,
2014.
4. Ying-Dar Lin, Ren-Hung Hwang, Fred Baker, “Computer Networks: An Open Source
Approach”, McGraw Hill, 2012.
CONCEPT MAP
SYLLABUS:
UNIT DETAILS HOURS
INTRODUCTION AND APPLICATION LAYER
Total hours 30
TEXT/REFERENCE BOOKS:
T/R BOOK TITLE/AUTHORS/PUBLICATION
T1 James F. Kurose, Keith W. Ross, Computer Networking, A Top-Down Approach
Featuring the Internet, Eighth Edition, Pearson Education, 2021.
T2 Behrouz A. Forouzan, Data Communications and Networking with TCP/IP Protocol
Suite, Sixth Edition TMH, 2022
COURSE PRE-REQUISITES:
Course Course Name Description Sem
Code
CS8392 Problem Solving and Python OOPS Concepts 3
Programming
COURSE OBJECTIVES:
1 To understand the concept of layering in networks.
2 To know the functions of protocols of each layer of TCP/IP protocol suite.
S NO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PS03
CO505.1 3 1 2 3 0 0 0 0 1 1 3 1 3 2 1
CO505.2 3 2 1 2 2 0 0 0 2 2 2 1 3 2 3
CO505.3 2 2 3 2 1 0 0 0 3 3 1 2 1 1 3
CO505.4 1 3 1 3 1 0 0 0 1 2 1 1 1 3 1
CO505.5 3 3 1 1 2 0 0 0 2 2 2 2 2 2 2
Average 2 2 2 2 2 0 0 0 2 2 2 1 2 2 2
CO505.3
CO505.4
CO505.5
Lecture Hours
UNIT V - Testing
Days/Period I
II III IV V VI VII VIII
Monday
CS3591 CS3591
Tuesday
CS3591
Wednesday
CS3591
Thursday CS3591
Friday
CS3591 CS3591
UNIT 1
UNIFIED PROCESS
Advantages of UP:
In risk-driven and client-driven iterative planning, the goals of the early iterations are chosen
to
1) identify and drive down the highest risks, and
2) build visible features that the client cares most about.
2.Elaboration
❖ In this phase the core architecture is iteratively implemented, and high-risk issues are
mitigated, refined vision, iterative implementation of the core architecture, resolution
of high risks, identification of most requirements and scope, more realistic estimates
are made.
UML DIAGRAMS
❖ The Unified Modeling Language is a visual language for specifying, constructing and
documenting the artifacts of systems.
❖ Unified Modeling Language (UML) is a standardized general-purpose modeling
language in the field of software engineering.
❖ The standard is managed, and was created by, the Object Management Group. UML
includes a set of graphic notation techniques to create visual models of software-
intensive systems.
There are two broad categories of diagrams and they are again divided into subcategories −
1. Structural Diagrams
2. Behavioral Diagrams
1. Structural Diagrams
❖ The structural diagrams represent the static aspect of the system. These static aspects
represent those parts of a diagram, which forms the main structure and are therefore
stable.
❖ These static parts are represented by classes, interfaces, objects, components, and
nodes. The four structural diagrams are
a) Class diagram
b) Object diagram
c) Component diagram
d) Deployment diagram
A)Class Diagram
➢ Class diagrams are the most common diagrams used in UML. Class diagram consists
of classes, interfaces, associations, and collaboration. Class diagrams basically
represent the object-oriented view of a system, which is static in nature.
➢ Active class is used in a class diagram to represent the concurrency of the system.
➢ Class diagram represents the object orientation of a system.
➢ Hence, it is generally used for development purpose. This is the most widely used
diagram at the time of system construction.
b)Object Diagram
➢ Object diagrams can be described as an instance of class diagram. Thus, these diagrams
are more close to real-life scenarios where we implement a system.
➢ Object diagrams are a set of objects and their relationship is just like class diagrams.
They also represent the static view of the system.
➢ The usage of object diagrams is similar to class diagrams but they are used to build
prototype of a system from a practical perspective.
c)Component Diagram
➢ Component diagrams represent a set of components and their relationships. These
components consist of classes, interfaces, or collaborations.
➢ Component diagrams represent the implementation view of a system.
➢ During the design phase, software artifacts (classes, interfaces, etc.) of a system are
arranged in different groups depending upon their relationship.
➢ Now, these groups are known as components.
➢ Finally, it can be said component diagrams are used to visualize the implementation.
d)Deployment Diagram
➢ Deployment diagrams are a set of nodes and their relationships. These nodes are
physical entities where the components are deployed.
➢ Deployment diagrams are used for visualizing the deployment view of a system. This
is generally used by the deployment team.
2)Behavioral Diagrams
➢ Any system can have two aspects, static and dynamic. So, a model is considered as
complete when both the aspects are fully covered.
➢ Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspect
can be further described as the changing/moving parts of a system.
➢ Use case diagrams are a set of use cases, actors, and their relationships. They represent
the use case view of a system.
➢ A use case represents a particular functionality of a system.
➢ Hence, use case diagram is used to describe the relationships among the functionalities
and their internal/external controllers. These controllers are known as actors.
b)Sequence Diagram
➢ A sequence diagram is an interaction diagram.
➢ From the name, it is clear that the diagram deals with some sequences, which are the
sequence of messages flowing from one object to another.
➢ Interaction among the components of a system is very important from implementation
and execution perspective.
➢ Sequence diagram is used to visualize the sequence of calls in a system to perform a
specific functionality.
c)Collaboration Diagram
e)Activity Diagram
➢ Activity diagram describes the flow of control in a system. It consists of activities and
links. The flow can be sequential, concurrent, or branched.
➢ Activities are nothing but the functions of a system. Numbers of activity diagrams are
prepared to capture the entire flow in a system.
➢ Activity diagrams are used to visualize the flow of controls in a system. This is prepared
to have an idea of how the system will work when executed.
RELATING USECASES:
Use cases can be related to each other. Organizing use cases into relationships has no
impact on the behavior or requirements of the system. It is simply an organization mechanism
to improve communication and comprehension of the use cases, reduce duplication of text, and
improve management of the use case documents.
Extensions:
4. ...
Extensions:
… Trigger: Customer wants to pay with gift certificate. Extension Points: Payment in
Process Sale. Level: Sub function Main Success Scenario: 1 . Customer gives gift certificate to
Cashier. 2. Cashier enters gift certificate ID. …
This is an example of an extend relationship. Extension points are labels in the base use
case which the extending use case references as the point of extension, so that the step
numbering of the base use case can change without affecting the extending use case—
indirection yet again.
UNIT II
TRANSPORT LAYER
CLASS DIAGRAM
Class diagram is a static diagram. It represents the static view of an application. Class
diagram describes the attributes and operations of a class and also the constraints imposed on
the system. Class diagram shows a collection of classes, interfaces, associations,
collaborations, and constraints. It is also known as a structural diagram.
1. Class Name
• The name of the class appears in the first partition.
2. Class Attributes
• Attributes are shown in the second partition.
• The attribute type is shown after the colon.
• Attributes map onto member variables (data members) in code.
3. Class Operations (Methods)
• Operations are shown in the third partition. They are services the class provides.
• The return type of a method is shown after the colon at the end of the method
signature.
• The return type of method parameters are shown after the colon following the
parameter name.
• Operations map onto class methods in code
Two Perspectives of class diagram:
i) Conceptual perspective
ii)Software perspective
Classifier
A UML classifier is "a model element that describes behavioral and structure features”. In
class diagrams the two most classifiers are regular classes and interfaces.
UML Attributes
• a UML note or comment is displayed as a dog eared rectangle with a dashed line
to the annotated element
• a UML constraint, in which case it must be encased in braces '{…}'
• a method body the implementation of a UML operation
Operations
Operations are usually assumed public if no visibility is shown. The property string contains
arbitrary additional information, such as exceptions that may be raised, if the operation is
abstract, and so forth.
For example:
Methods
Keywords
Properties of elements may be presented in many ways, but a textual approach is to use the
UML property string {name1=value1, name2=value2} format, such as {abstract,
visibility=public}.
Generalization in the UML is shown with a solid line and fat triangular arrow from
the subclass to superclass. Generalization is a taxonomic relationship between a more general
classifier and a more specific classifier. Each instance of the specific classifier is also an
indirect instance of the general classifier.
Abstract classes and operations can be shown either with an {abstract} tag (useful when
sketching UML) or by italicizing the name
Dependency
The UML includes a general dependency relationship that indicates that a client
element (of any kind, including classes, packages, use cases, and so on) has knowledge of
another supplier element and that a change in the supplier could affect the client.
Dependency is illustrated with a dashed arrow line from the client to supplier.
There are many kinds of dependency; here are some common types in terms of objects and
class diagrams:
Class Relationships
A class may be involved in one or more relationships with other classes.
Relationship Names
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.
Elaboration Process often consists of between two and four iterations; each iteration is
recommended to be between two and six weeks, unless the team size is massive. Each iteration
is time boxed, meaning its end date is fixed; if the team is not likely to meet the date,
requirements are placed back on the future tasks list, so that the iteration can end on time with
a stable and tested release
Elaboration in one sentence: Build the core architecture, resolve the high-risk elements,
define most requirements, and estimate the overall schedule and resources.
Some key ideas and best practices that will manifest in elaboration include
iii) adaptively design, implement, and test the core and risky parts of the architecture
vi) write most of the use cases and other requirements in detail, through a series of workshops,
once per elaboration iteration
Artifacts in Elaboration
Table below lists sample artifacts that may be started in elaboration, and indicates the issues
they address
4 Data Model This includes the database schemas, and the mapping strategies between
object and non-object representations.
5 Test Model A description of what will be tested, and how.
6 Implementation Model This is the actual implementation — the source code, executable,
database, and so on.
7 Use-Case A description of the user interface, paths of navigation, usability models,
Storyboards,UI and so forth.
Prototypes
UNIT III
NETWORK LAYER
Messages
Sequence diagrams may also show the focus of control using an execution specification
bar. The bar is optional.
Reply or Returns
There are two ways to show the return result from a message:
Message being sent from an object to itself by using a nested activation bar.
Creation of Instance
Object creation notation is shown in dashed line with filled arrow ( synchronous message), or
open (stick arrow) if an asynchronous call.
The explicit destruction of an object can be shown with <<destroy>>sterotype message with
larger X.
Figure:Object destruction.
Frames
Frames are regions or fragments of the diagrams; they have an operator or label (such as loop)
and a guard .The [boolean test] guard should be placed over the lifeline to which it belongs.
An OPT frame is placed around one or more messages. Notice that the guard is placed over the
related lifeline.
A common algorithm is to iterate over all members of a collection (such as a list or map),
sending the same message to each.
Nesting of Frames
A system sequence diagram (SSD) is a fast and easily created artifact that illustrates input and
output events related to the systems under discussion. They are input to operation contracts and
most importantly object design.
❖ The UML includes sequence diagrams as a notation that can illustrate actor interactions
and the operations initiated by them.
❖ A system sequence diagram is a picture that shows, for one 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.
❖ A UML state machine 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.
❖ A state machine diagram shows the lifecycle of an object: what events it experiences,
its transitions, and the states it is in between these events.
❖ It need not illustrate every possible event; if an event arises that is not represented in
the diagram, the event is ignored as far as the state machine diagram is concerned.
❖ Therefore, we can create a state machine diagram that describes the lifecycle of an
object at arbitrarily simple or complex levels of detail, depending on our needs.
❖ If an object always responds the same way to an event, then it is considered state-
independent (or modeless) with respect to that event.
❖ For example, if an object receives a message, and the responding method always does
the same thing. The object is state-independent with respect to that message.
❖ If, for all events of interest, an object always reacts the same way, it is a state-
independent object. By contrast, state-dependent objects react differently to events
depending on their state or mode.
Guideline
❖ Consider state machines for state-dependent objects with complex behavior, not for
state-independent objects .For example, a telephone is very state-dependent.
❖ The phone's reaction to pushing a particular button (generating an event) depends on
the current mode of the phone off hook, engaged, in a configuration subsystem, and so
forth.
❖ In general, business information systems have few complex state-dependent classes.
The following is a list of common objects which are often state-dependent, and for which it
may be useful to create a state machine diagram:
a) Communication Protocols TCP, and new protocols, can be easily and clearly
understood with a state machine diagram. The diagram illustrates when operations are
legal. For example, a TCP "close" request should be ignored if the protocol handler is
already in the "closed" state.
b) UI Page/Window Flow or NavigationWhen doing UI modeling, it can be useful to
understand the legal sequence between Web pages or windows; this is often complex.
A state machine is a great tool to model UI navigation
UNIT IV
ROUTING
CREATOR
Mainly used to create an instance of a class.
Problem : Who should be responsible for creating a new instance of some class?
Solution :
Assign class B the responsibility to create an instance of class A if one or more of the following
is true:
• B aggregates A objects.
• B contains A objects.
• B records instances of A objects.
• B closely uses A 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 A objects.
If more than one option applies, prefer a class B which aggregates or contains class A.
Example:
.
Figure:Partial domain model.
Since a Sate contains (in fact, aggregates) many SalesLineltem objects, the Creator pattern
suggests that Sale is a good candidate to have the responsibility of creating SalesLineltem
instances. This leads to a design of object interactions as shown in Figure 4.3.
Discussion: Creator guides assigning responsibilities related to the creation of objects, a very
common task. The basic intent of the Creator pattern is to find a creator that needs to be
connected to the created object in any event. Choosing it as the creator supports low coupling.
Benefits:
Information Expert assigns responsibility to the class that has the information needed to
fulfill the responsibility.
Solution: Assign a responsibility to the information expert the class that has the information
necessary to fulfill the responsibility.
A Design Model may define hundreds or thousands of software classes, and an application may
require hundreds or thousands of responsibilities to be fulfilled. During object design, when
the interactions between objects are defined, we make choices about the assignment of
responsibilities to software classes. Done well, systems tend to be easier to understand,
maintain, and extend, and there is more opportunity to reuse components in future applications.
Example : In the NextGEN POS application, some class needs to know the grand total of a
sale.
It is necessary to know about all the SalesLineltem instances of a sale and the sum of their
subtotals
In terms of an interaction diagram, this means that the Sale needs to send get-Subtotal messages
to each of the SalesLineltems and sum the results;
Figure : Calculating the Sale sub total
To fulfill the responsibility of knowing and answering its subtotal, a SalesLineltem needs to
know the product price. The ProductSpecification is an information expert on answering its
price; therefore, a message must be sent to it asking for its price.
To fulfill the responsibility of knowing and answering the sale’s total, three responsibilities
were assigned to three design classes of objects as follows.
Benefits:
• Low Coupling
• High cohesion
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.
A class with high (or strong) coupling relies on many other classes. Such classes may be
undesirable;
Problem: How to support low dependency, low change impact, and increased reuse?.
Example: Consider the following partial class diagram from a NextGen case study:
Assume we have a need to create a Payment instance and associate it with the Sale.
What class should be responsible for this? Since a Register "records" a Payment in the real-
world domain, the Creator pattern suggests Register as a candidate for creating the Payment.
The Register instance could then send an addPayment message to the Sale, passing along the
new Payment as a parameter. A possible partial interaction diagram reflecting this is shown in
Figure 4.7
This assignment of responsibilities couples the Register class to knowledge of the Payment
class. UML notation: Note that the Payment instance is explicitly named p so that in message
2 it can be referenced as a parameter. An alternative solution to creating the Payment and
associating it with the Sale is shown in Figure 4.8
Discussion: Low Coupling is a principle to keep in mind during all design decisions; it is an
underlying goal to continually consider.
• Type X has an attribute (data member or instance variable) that refers to a Type Y
instance, or Type Y itself.
• A Type X object calls on services of a TypeY object.
• Type X has a method that references an instance of Type Y, or Type Y itself, by any
means.
• Type X is a direct or indirect subclass of Type Y.
• Type Y is an interface, and Type X implements that interface.
Contradictions:
Benefits
• not affected by changes in other components
• simple to understand in isolation
• convenient to reuse
• Related Patterns or Principles:
• Protected variation
HIGH COHESION
In terms of object design, 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.
A class with low cohesion does many unrelated things, or does too much work. Such classes
are undesirable;
Example: The same example problem used in the Low Coupling pattern can be analyzed for
High Cohesion. Assume we have a need to create a (cash) Payment instance and associate it
with the Sale. What class should be responsible for this? Since Register records a Payment in
the real-world domain. The Register instance could then send an addPayrnent message to the
Sale, passing along the new Payment as a parameter, as shown in Figure 4.9
The second design below delegates the payment creation responsibility to the Sale, and the
second design supports both high cohesion and low coupling, it is desirable.
Figure: Sale creates Payment
Discussion :Like Low Coupling, High Cohesion is a principle to keep in mind during all design
decisions; it is an underlying goal to continually consider. It is an evaluative principle that a
designer applies while evaluating all design decisions.
Here are some scenarios that illustrate varying degrees of functional cohesion:
• Very low cohesion -A class is solely responsible for many things in very dif ferent
functional areas.
• Low cohesion - A class has sole responsibility for a complex task in one func tional
area.
• High cohesion - A class has moderate responsibilities in one functional area and
collaborates with other classes to fulfill tasks.
• Moderate cohesion - A class has lightweight and sole responsibilities in a few different
areas that are logically related to the class concept, but not to each other.
• Modular design – Modularity is the property of a system that has been decomposed
into a set of cohesive and loosely coupled modules.
Benefits:
Intent: The Bridge pattern separates an object's abstraction from its implementation so that you
can vary them independently.
1. Abstraction
2. Implementation
Motivation:
• The bridge pattern allows the Abstraction and the Implementation to be developed
independently and the client code can access only the Abstraction part without being
concerned about the Implementation part.
• The abstraction is an interface or abstract class and the implementer is also an interface
or abstract class.
• It increases the loose coupling between class abstraction and it’s implementation.
Participants:
• Abstraction – core of the bridge design pattern and defines the crux. Contains a
reference to the implementer.
• Refined Abstraction – Extends the abstraction takes the finer detail one level below.
Hides the finer elements from implementers.
• Implementer – It defines the interface for implementation classes. This interface does
not need to correspond directly to the abstraction interface and can be very different.
Abstraction imp provides an implementation in terms of operations provided by
Implementer interface.
• Concrete Implementation – Implements the above implementer by providing concrete
implementation.
Structor:
Collaborations:Abstraction forwards client request to its implementor object.
Consequences:
Implementation:
Intent:
Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy
lets the algorithm vary independently from clients that use it.
Motivation:
Applicability:
Participants:
Structure:
Consequences:
• Rumbaugh’s Methodology
• Booch Methodology
• Jacobson Methodology
• Patterns
• Framework
INTRODUCTION:
Many methodologies are available to choose from for the system development. Each
methodology is based on modelling the business problem and implementation in an object
oriented fashion. The Rumbaugh method has a strong method for producing object models.
Jacobson et al have a strong method for producing user-driven requirement and object oriented
analysis model. Booch has a strong method for producing detailed object oriented design
models.
• Rumbaugh’s describes a method for the analysis, design and implementation of a system
using an object oriented technique. OMT consists of four phases which can be performed
iteratively
i) Object model
• Object model describes the structure of objects in a system, their identity and
relationships to other objects, attributes, and operations.
• the object model is represented graphically with an object diagram.
• The object diagram contains classe4s interconnected by association lines.
• Each class represents a set of individual objects.
• The boxes in figure5.1 represents classes and the filled triangle represents associations
ii)Dynamic model
iii)Functional model
Functional Modelling gives the process perspective of the object-oriented analysis
model and an overview of what the system is supposed to do. It defines the function of the
internal processes in the system with the aid of Data Flow Diagrams (DFDs). It depicts the
functional derivation of the data values without indicating how they are derived when they
are computed, or why they need to be computed.
Functional Modelling is represented through a hierarchy of DFDs. The DFD is a
graphical representation of a system that shows the inputs to the system, the processing
upon the inputs, the outputs of the system as well as the internal data stores. DFDs illustrate
the series of transformations or computations performed on the objects or the system, and
the external controls and objects that affect the transformation. Data Flow Diagrams use
four primary symbols
1. The process is any function being performed
2.The data flow shows the direction of data element movement.
3. The data store is a location where data are stored.
4. An external entity is a source or destination of a data element.
Rumbaugh OMT methodology provides one of the strong tolls set for the analysis and design
of object-oriented system.
• Booch methodology is a widely used object-oriented method that helps to design your
system using the object paradigm. It covers the analysis and design phases of an object
oriented system.
• Is criticized for his large set of symbols.
• It consists of the following diagrams:
.
i)Object diagrams.
ii)State transition diagrams.
iii) Module diagrams.
iv) Process diagrams.
v)Class diagrams
vi) Interaction diagrams.
The macro process serves as a controlling frame work for the micro process and can take
weeks or months. The primary concern of macro process is technical management of the system
Steps involved:
1.Conceptualization.
Establish the core requirements and develop a prototype.
2.Analysis and development of the model
Use the class diagram to describe the roles and responsibilities of objects. Use the
object diagram to describe the desired behaviour of the system.
Jacobson Methodology
Use cases are Scenarios for understanding system requirements. A use case is an
interaction between users and a system. The use case model captures the goal of the user and
the responsibility of the system to its users. Use cases are described as one of the following
OOSE is also called Objectory is a method of object oriented development with the
specific aim to fit the development of large, real time systems. Development process is also
called as use case driven development. The system development method based on OOSE is a
process for the industrialized development of the software. Objectory is built around several
different models
✓ Use case model: The use-case model defines the outside and inside of the system
behaviour.
✓ Domain Object Model: The objects of the real worlds are mapped in to the domain
object model.
✓ Analysis Object Model: The analysis object model presents how the source code
should be carried out and written.
✓ Implementation model: The implementation model represents the implementation
of the System
✓ Test model: The test model constitutes the test plans, specification and reports.
❖ Analysis phase: The analysis phase defines the system to be built in terms of the
• problem-domain object model
• the requirements model
• analysis model
❖ Design and Implementation phase: The implementation environment must be identified for
the design model.
❖ Testing phase: This level includes unit testing, integration testing and system testing.
TESTING STATEGIES
FOURTH SEMESTER
QUESTION BANK
PART A QUESTIONS
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.
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.
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.
A static view of the class definitions is usefully shown with a design class diagram. This
illustrates the attributes and methods of the classes.
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?
8. What is Inception?
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.
Some sample artifacts are Vision and Business Case, Use-Case Model, Supplementary
Specification, Glossary, Risk List & Risk Management Plan, Prototypes and proof-ofconcepts
etc.
Requirements are capabilities and conditions to which the system and more broadly, the project
must conform.
1. Functional
2. Reliability
3. Performance
4. Supportability
An actor is something with behavior, such as a person (identified by role), computer system,
or organization; for example, a cashier.
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.
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.
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.
1.Include
2.Extend
3.Generalize
20.List out the steps for finding use cases.
An object is a combination of data and logic; the representation of some real-world entity.
Method Message
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 QUESTIONS
1.What is the unified process?Is the UP iterative and incrementa?Expalin.
2.Explain about Unified process phases?
3.Explain about use case model for a case study of your choice?
4.List out the various UML diagrams?
5.Write about Inception
6.Discuss about relationships in use case diagrams?
PART C QUESTIONS
PART A QUESTIONS
1. What is domain model? List the steps involved in creating a domain model.
A domain model is a visual representation of conceptual classes or real- world objects
in a domain of interest. They have also been called conceptual models, domain object models,
and analysis object models.
The steps involved in creating a domain model are
1. Find the conceptual classes
2. Draw them as classes in a UML class diagram
3. Add associations and attributes
2. List the elements not suitable in a domain model.
The elements not suitable in a domain model are:
1. Software artifacts, such as a window or a database, unless the domain being modeled
are of software concepts, such as a model of graphical user interfaces.
2. Responsibilities or methods.
3.State the reason to avoid adding many associations.
.We need to avoid adding too many associations to a domain model.
In discrete mathematics, 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.
4. What is 100% rule?
100% of the conceptual Super class’s definition should be applicable to the subclass.
The subclass must conform to 100% of the Super class’s attributes and associations.
5. Write the guidelines followed in defining a super class.
The guidelines are:
Create a super class in a generalization relationship to subclasses when :
1. The potential conceptual subclasses represent variations of a similar concept
2. The subclasses will confirm to the 100% and Is-A rules
3. All subclasses have the same attribute that can be factored out and expressed in the super
class
4. All subclasses have the same association that can be factored out and related to the super
Class
6. What are the strong motivations to partition a conceptual class with subclasses?
The following are the strong motivations to partition a class into subclasses :
Create a conceptual subclass of a super class when :
1. The subclass has additional attributes of interest
2. The subclass has additional associations of interest
3. The subclass concept is operated on, handled, reacted-to, or manipulated differently than
the super class or other subclasses
7. Define – Requirements
Requirements are capabilities and conditions, to which the system and more broadly,
the project must conform,
1) The UP promotes a set of best practices, one of which is to manage requirements.
2) In the context of changing and unclear stakeholder’s wishes – Managing requirements means
a systematic approach to finding, documenting, organizing, and tracking the changing
requirements of a system.
A prime challenge of requirements analysis is to find, communicate, and remember (To write
down) what is really needed, in a form that clearly speaks to the client and development team
members.
8. List the types and categories of requirements.
In the UP, requirements are categorized as the following,
1. 2) Functional - features, capabilities, security.
2. 3) Usability - human factors, help, documentation.
3. 4) Reliability - frequency of failure, recoverability, predictability.
4. 5) Performance - response times, throughput, accuracy, availability, resource usage.
5. 6) Supportability - adaptability, maintainability, internationalization, configurability.
9.Define Class Diagram.
Class diagram is a static diagram. It represents the static view of an application. Class
diagram describes the attributes and operations of a class and also the constraints imposed on
the system. Class diagram shows a collection of classes, interfaces, associations,
collaborations, and constraints. It is also known as a structural diagram
10. Define Classifier
A UML classifier is "a model element that describes behavioral and structure features".
In class diagrams the two most classifiers are regular classes and interfaces.
11.Define Generalization
Generalization in the UML is shown with a solid line and fat triangular arrow from
the subclass to superclass. Generalization is a taxonomic relationship between a more general
classifier and a more specific classifier. Each instance of the specific classifier is also an
indirect instance of the general classifier.
12. Define Abstract Classes
Abstract classes and operations can be shown either with an {abstract} tag (useful
when sketching UML) or by italicizing the name.
13.Define 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.
14. Why Description Classes are used?
• To retrieve the details of an item which does not exist anywhere else
• .To maintains a record of an item that carries information apart from its basic details.
15. Shared Aggregation—Hollow Diamond
Shared aggregation means that the multiplicity at the composite end may be more than
one, and is signified with a hollow diamond. It implies that the part may be simultaneously in
many composite instances.
PART B QUESTIONS
1.Explain in detail about class diagrams?
2.Discuss about elaboration?
3.Write about the relationship between sequence diagrams and use case?
4.Explain about associations and compositions
5. Describe the strategies used to identify conceptual classes. Describe the steps to create a
domain model used for representing conceptual classes.
6. Analyze the concepts of Descriptions classes with the mobile phone Domain.
7. Discuss the uses, concepts and notations are used in Sequence Diagram
8. Analyze the guidelines to define a conceptual subclass with suitable example.
PART C QUESTIONS
1.Describe the strategies used to identify the conceptual classes? Describe the steps to create
a Domain model for representing the conceptual classes?
2.Write about elaboration and discuss the differences between elaboration and inception
with suitable diagrams for University domain?
3. For the Next Gen POS systems design, explain the following Conceptual class
hierarchies. (i). Conceptual super class (3) (ii).Conceptual subclass (4) (iii). Authorization
Transaction classes.(4) (iv). Abstract Conceptual classes. (4)
4. Classify the following Items and justify your answer. (15) Bike, tiger , chair, man, dog,
lion, child, spider, crocodile, fish, boat, aeroplane, mango, pineapple, deer, horse.
PART A QUESTIONS
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.
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(tobediscussedlater).
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.
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.
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.
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.
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.
• 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.
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.
- 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.
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.
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 QUESTIONS
1.What is the purpose of state chart diagrams?How to draw state chart diagram?Explain
2.Discuss about UML deployment and component diagrams.Draw the diagrams for banking
application?
PART C QUESTIONS
a)ATM system
requirements
(i) System should handle the in-patient, out-patient information through receptionist.
(ii) Doctors are allowed to view the patient history and give their prescription.
(iii) There should be a information system to provide the required information.
5. With suitable example explain the notations used in Sequence Diagram for the foll: Object
UNIT-IV - ROUTING
PART A QUESTIONS
Cohesion Coupling
1 Cohesion refers to what the class (or module) It refers to how related are two classes /
modules and how dependent they are on each
will do. Low cohesion would mean that the
other. Being low coupling would mean that
class does a great variety of actions and is not
changing something major in one class should
focused on what it should do. High cohesion
not affect the other. High coupling would make
would then mean that the class is focused on
your code difficult to make changes as well as
what it should be doing, i.e. only methods
to maintain it, as classes are coupled closely
relating to the intention of the class
together, making a change could mean an entire
system revamp
3 Increased cohesion and decreased coupling The most effective method of decreasing
do
coupling and increasing cohesion is
leads to good software design.
design by interface
The required visibility and associations between classes are indicated by the interaction
diagrams.
2. Method definitions
A method body implementation may be shown in a UML note box. It should be placed
within braces, it is semantic influence. The syntax may be pseudo-code, or any language 3.
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.
4. 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.
• Information Expert .
• Creator .
• High Cohesion .
• Low Coupling .
• Controller
7. 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.
8. List out some scenarios that illustrate varying degrees of functional cohesion
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.
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.
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.
Consider the creation of the Credit Card, Driver’s 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.
15. 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 QUESTIONS
1. What is GRASP? Explain the GRASP patterns creator, Information Expert, low coupling,
High cohesion?
4. Describe the features of Low Coupling and High Coupling with suitable example.
PART C QUESTIONS
3. Consider the following design goals. Indicate the candidate patterns(s) you would consider
to satisfy each goal:
a) Given a legacy banking application, encapsulate the existing business logic component.
b) Given a chess program, enable future developers to substitute the planning algorithm
that describes the next move with a better one. .
c) Given a chess program, enable a monitoring component to switch planning algorithms
at runtime, based on the opposing player's style and response time.
d) You are developing a system that stores its data on a Unix file system. You antcipate
that you will port future versions of the system to other operating systems that provide
different file systems.
PART A QUESTIONS
Class diagrams.
Object diagrams.
Module diagrams.
Process diagrams.
Interaction diagrams.
o Analysis and development of the model-Use the class diagram to describe the roles and
responsibilities of objects. Use the object diagram to describe the desired behaviour of the
system.
o Design or create the system architecture. -Use the class diagram to decide what classes exist
and how they relate to each other, the object diagram to decide what mechanisms are used, the
module diagram to map out where each class and object should be declared, and the process
diagram to determine to which processor to allocate a process.
o Maintenance-Make localized changes to the system to add new requirements and eliminate
bugs.
The micro process is a description of the day-to-day activities by a single or small group of
software developers. It consists of the following steps.
Use cases are scenarios for understanding system requirements. A use case is an interaction
between users and a system. The use-case model captures the goal of the user and the
responsibility of the system to its users. The use-case model employs extends and uses
relationships. The use cases are described as one of the following:
Use case-model.
Implementation model.
Test model.
9. Define proto-patterns.
A proto-pattern is the “pattern in waiting” which is not yet known to recur. It is the pattern
waiting to undergo some degree of peer scrutiny or review.
components are:
• Name
• Problem
• Context
• Forces
• Solution
• Examples
The process of looking for patterns to document is called pattern mining sometimes called
reverse architecting. The steps involved are:
Focus on practicability-Patterns should describe proven solutions to problems rather than the
latest scientific results.
Non anonymous review- Pattern submissions are shepherded rather than reviewed.
Writers’ workshops instead of presentations- Rather than being presented by the authors,
the patterns are discussed in the writers’ workshops.
A frame work is a way of presenting a generic solution to a problem that can be applied to all
levels in a development. Frameworks are a way of delivering application development patterns.
A framework provides architectural guidance, captures the design decisions that are common
to its application domain and thus emphasize design reuse over code reuse.
The major differences between design patterns and frameworks are as follows:
o A framework is executable software whereas design patterns represent knowledge
and experience about the software.
The main motivation for going to unified approach is to combine the best practices, processes,
methodologies, and guidelines along with UML (UnifiedModeling Language) notations and
diagrams for better understanding object oriented concepts and system development.
The repository allows the maximum reuse of previous experience and previously defined
objects, patterns, frameworks, and user interfaces in an easily accessible manner with a
completely available and easily utilized format.
17.Define model.
PART B QUESTIONS
7. Develop the test cases for Bank ATM System .Sketch the Class diagram, Object diagram
and State transition diagram based on Booch methodology.
PART C QUESTIONS
• You may have requirements that dictate a specific appearance orformat for your test
plan.
• The test plan should contain a schedule and a list of required resources.
• After you have determined what types of testing are necessary, you need to document
• A configuration control system provides a way of tracking the changes to the code. At
a minimum, every time the code changes, a record should be kept that tracks which
module has been changed, who changed it, and when it was altered.
• A well thought out design tends to produce better code and result in more complete
testing, so it is a good idea to try to keep the plan up to date.
• At the end of each month or as you reach each milestone, take time to complete routine
updates
4. Design a burglar alarm system with necessary diagrams based on Booch methodology. List
down the micro development process steps for the alarm system.
PART-A
PART-B
11. a) i) Outline the steps to be followed to identify actors and use cases.
ii) What is inception? Outline the tasks that a project team performs during inception.
(OR)
b) Let’s say you own a small baking company, where you make and design custom cakes
for different occasions. You now wish to take your business online, so that you could cater to
a large customer base. You hire a web development company to build an online cake store for
you. This software product is built on the basis of the Unified Process Model(UPM).
Define and explain UPM with its phases for developing the above online banking company.
(OR)
13. a) What is the purpose, how to draw and where to use UML component diagrams?
Illustrate with an example.
(OR)
b) Why to use an activity diagrams? Outline the steps in modelling an activity diagram
with an example.
(OR)
b) What are GoF patterns? Outline the application of GoF design patterns with suitable
example.
(OR)
b) What is a test case? Describe in detail the test case design for OO software with
relevant examples.
PART-C
16. a) Develop a use case model for activities involved in ordering food in a restaurant from
the point when the customer enters a restaurant to the point when he leaves the restaurant.
(OR)
b) Model a class diagram for a “Library Management System”. State the functional
requirements you are considering.
ARUNACHALA COLLEGE OF ENGINEERING FOR WOMEN
DEPARTMENT OF CSE
INTERNAL TEST I
CS8592 OBJECT ORIENTED ANALYSIS AND DESIGN
CLASS: III CSE A & B
PART A (10*2=20)
1 CO1 K4 Design a partial domain model of Dice game.
2 CO1 K4 What is usecase? List its types.
3 CO1 K1 What is UML? List its types.
4 CO1 K1 Define requirements. Mention its types.
5 CO1 K1 List out the artifacts in elaboration.
6 CO1 K1 What is OOA and OOD?
7 CO1 K1 List out the process sale steps.
8 CO1 K1 Define class diagram.
9 CO1 K1 What is black box usecase?
10 CO1 K1 What tests help to find useful usecases?
PART B (2*15=30)
11.a.i CO1 K2 Describe in detail about inception(10)
11.a.ii CO1 K4 Design usecase diagram for any real time scenarios.(5)
OR
11b.i CO1 K2 Explain in detail about nextGen POS.(10)
11b.ii CO1 K4 Design usecase diagram for library management.(5)
12.a. CO1 K2 Explain in detail about relating usecases(15)
OR
12.b.i CO1 K4 Design usecase diagram for university exam registration.(7)
12.b.ii CO1 K2 Explain in detail about unified process.(8)
ARUNACHALA COLLEGEOF ENGINEEERING FOR WOMEN
MANAVILAI, VELLICHANTHAI- 629 203
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
INTERNAL EXAM – II
Class: S5 CSE-A&B
Total Marks: 50
Subject Name & Code : Object Oriented Analysis and Design/ CS8592 Time :
9.10 – 10.40AM
PART-B (2x15=30marks)
Question Cognitive
Questions CO
No. Level
11)a.i Explain in detail about conceptual class hierarchy with CO 2 K2
neat example(10)
ii Implement the partial domain model of POS with CO 2 K3
attributes(5)
OR
11)bi. Explain domain model Refinement in detail(10) CO 2 K2
ii Implement the partial domain model of POS with CO 2 K3
necessary associations(5)
12)a. Explain detail about SSD with necessary notations. (15) CO 3 K2
OR
12)b.i Explain package diagram in detail with its required CO 3 K2
symbols.(10)
11.b. CO4 K3 How will you map design to code? Convert your NextGen POS
design into its code
12.a. CO 5 K3 Explain the Rumbaugh’s object Modeling technique and create
the model for it
OR
12.b. CO5 K2 Explain in detail about test case and test plan.
ARUNACHALA COLLEGE OF ENGINEERING FOR WOMEN
DEPARTMENT OF CSE
INTERNAL TEST I-Answer key
CS8592 OBJECT ORIENTED ANALYSIS AND DESIGN
CLASS: III CSE A & B
PART A (10*2=20)
PART B (2*15=30)
5.a.ii CO1 K4 Design usecase diagram for any real time scenarios.(5)
OR
5b.i CO1 K2 Explain in detail about nextGen POS.(10)
❖ The case study is the NextGen point-of-sale (POS) system
❖ A POS system is a computerized application used (in part) to record sales and
handle payments;
Architectural Layers
A typical object-oriented information system is designed in terms of several
architectural layers or subsystems . The following is not a complete list, but provides
an example:
• User Interface—graphical interface; windows.
• Application Logic and Domain Objects—software objects representing domain
concepts (for example, a software class named Sale) that fulfill application
requirements.
• Technical Services—general purpose objects and subsystems that provide
supporting technical services, such as interfacing with a database or error logging.
These services are usually application-independent and reusable across several
systems
5b.ii CO1 K4 Design usecase diagram for library management.(5)
Define Requirement.
1. Functional
1 CO 2 K1
2. Reliability
3. Performance
4. Supportability
3 CO 2 K2
Write the guidelines followed in defining a super class
class
4. All subclasses have the same association that can be factored out and
related to the super
Class
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)
9 CO 3 K1
may have a state chart to better understand or communicate its dynamic
behavior in response to events.
PART-B (2x15=30marks)
Quest
Cognitive
ion Questions CO
Level
No.
11)a.i Explain in detail about conceptual class hierarchy with neat example(10) CO 2 K2
OR
Generalization
Messages
Reply or Returns
Creation of Instance
Object Destruction
Frames
An OPT frame is placed around one or more messages. Notice that the
guard is placed over the related lifeline.
Nesting of Frames
OR
Package:
Package is a namespace used to group together elements that are
semantically related and might change together.
package:
Visibility:
Dependency:
Example:
Figure Layers shown with UML package diagram notation.
PART B (2*15=30)
ii.Information Expert
Information Expert assigns responsibility to the class that has the information
needed to fulfill the responsibility.
Problem: What is a general principle of assigning responsibilities to objects?
Solution: Assign a responsibility to the information expertthe class that has the
information necessary to fulfill the responsibility.
.Example : In the NextGEN POS application, some class needs to know the grand
total of a sale.
It is necessary to know about all the SalesLineltem instances of a sale and the sum
of their subtotals. In terms of an interaction diagram, this means that the Sale needs
to send get-Subtotal messages to each of the SalesLineltems and sum the results;
Figure 4.5 Calculating the Sale sub total
To fulfill the responsibility of knowing and answering its subtotal, a SalesLineltem
needs to know the product price. The ProductSpecification is an information expert
on answering its price; therefore, a message must be sent to it asking for its price.
iii.Factory
Intent: Define an interface for creating an object, but let
subclasses decide which class to instantiate.Factory Method lets
a class defer instantiation to subclases.
Also Known As:Virtual Constructor
Motivation:
• Frameworks use abstract classes to define and maintain relationships between
objects.
• A framework is often responsible for creating these objects as well.
• Consider a framework for applications that can present
multiple documents to the user.
• Two key abstractions in this framework are the classes Application and
Document.
• Both classes are abstract, and clients have to
subclass them to realize their application-specific
implementations.
Applicability:
Use the Factory Method pattern when
• a class can't anticipate the class of objects it must create.
• a class wants its subclasses to specify the objects it creates.
• classes delegate responsibility to one of several helper
subclasses
Srructure:
Participants:
• Product (Document) – defines the interface of objects the
factory method creates.
• ConcreteProduct (MyDocument) – implements the Product
interface.
• Creator (Application) - m declares the factory method, which returns
an object of type Product. Creator may also define a default
implementation of the factory method that returns a default
ConcreteProduct object.
11.b. CO4 K3 How will you map design to code? Convert your NextGen POS design into its code
Map design artifacts to code in an object oriented language. Implementation in
an object-oriented programming language requires writing source code for:
• class and interface definitions
• method definitions
Creating Class Definitions from DCDs
At the very least, DCDs depict the class or interface name, superclasses, method
signatures, and simple attributes of a class. This is sufficient to create a basic
class definition in an object-oriented programming language.
12.a. CO 5 K3 Explain the Rumbaugh’s object Modeling technique and create the model for it
Rumbaugh’s describes a method for the analysis, design and implementation of a
system using an object oriented technique. OMT consists of four phases which can
be performed iteratively
i) Analysis – results are objects, dynamic and functional models.
ii) System design – gives a structure of the basic architecture.
iii) Object design – produces a design document.
iv) Implementation – produces reusable code.
• OMT separates modelling in to three different parts
i)Object Model – presented by object model and the data dictionary
ii)Dynamic model - presented by the state diagrams and event Flow diagrams.
iii)Functional Model – presented by data flow and constraints.
i) Object model
• Object model describes the structure of objects in a system, their identity and
relationships to other objects, attributes, and operations.
• the object model is represented graphically with an object diagram.
• The object diagram contains classe4s interconnected by association lines.
• Each class represents a set of individual objects.
• The boxes in figure5.1 represents classes and the filled triangle represents
associations
ii)Dynamic model
• OMT state transition diagram is a network of states and events.
• Each state receives one or more events, at which it makes the transition to the
next state.
• The next state depends on the current state as well as the events.
• State transition diagrams for the bank application user interface is given in
figure 5 inwhich Round boxes represents states and Arrows represents
transition
OR
12.b. CO5 K2 Explain in detail about test case and test plan.
TEST CASES-To have a comprehensive testing scheme,the test must cover all
methods or a good majority of them.All the services of your system must be
checked by at least one test.To test a system,you must construct some test input
cases,then describe how the output will look.Next,perform the tests and compare
the outcome with the expected output.The good news is the use cases developed
during analysis can be used to describe the usage test cases.
The objective of testing as follows:
• Testing is the process of executing a program with the intent of finding
errors.
• A good case is the one that has a high probability of detecting an as-yet
undiscovered error.
• A successful test case is the one that detects an as-yet undiscovered error.
We need to specify the result as follows
1. Drop down the File Menu and Select Open.
2. Try opening the following types of files:
• A file that is there (should work).
• A file that is not there (should get an Error message).
• A file name with international characters (should work).
• A file type that the program does not open (should get an
message or conversion dialog box).
TEST PLAN
A test plan is developed to detect and identify potential problems before delivering
the software to its users. Your users might demand a test plan as one item delivered
with the program. In other cases, no test plan is required, but that does not mean
should not have one. A test plan offers a road map for testing activities, whether
usability, user satisfaction, or quality assurance tests. It should state the test
objectives and how to meet them.
The test plan need not be very large; in fact, devoting too much time to the
plan can be counterproductive.
The following steps are needed to create a test plan
Objectives of the test: Create the objectives and describe how to achieve them.
For eg, if the objective is usability of the system, that must be started and also how
to realize it.
Development of a test case: Develop test data, both input and expected output,
based on the domain of the data and the expected behaviours that must be tested
Test analysis: This step involves the examination of the test output and the
documentation of the test results. If bugs are detected, then this is reported and the
activity centers on debugging. After debugging, step 1 through 3 must be repeated
until no bugs can be detected.
All passed tests should be repeated with the revised program, called
regression testing, which can discover errors introduced during the debugging
process. when sufficient testing is believed to have been conducted, this fact should
be reported, and testing for this specific product is complete.
Most software companies also use beta testing, a popular, inexpensive, and
effective way to test software on a select group of the actual users of the system. This
is in contrast to alpha testing, where testing is done by in house testers, such as
programmers, software engineers, and internal users.
1. 960220104001 Aarthi.S.P Design a use case diagram for a library management system
with the following actors: Librarian, Member, and
960220104002 Abinaya.R.K Administrator. Include at least eight use cases and show their
interactions
960220104003 Abiraina.P.A 1
960220104004 Abisha.C
960220104005 Abisha.D
3 960220104011 Akalya.K For the library management system, develop a use case
scenario for the "Borrow Book" use case. Include interactions
960220104012 Akshaya.S between the Member and the Librarian.
960220104014 Anitta.M.Das 1
960220104016 Anusha.V
5. 960220104022 Ashika.H Create a use case diagram for a university course registration
system. Identify the primary actors and at least five use cases.
960220104023 Ashika.N
960220104024 Ashika.R.V 1
960220104025 Ashlina.J
960220104026 Ashmika.G
6 960220104027 Ashna Chinju Draw a use case diagram for a hotel reservation system.
Include the roles of guests, hotel staff, and the reservation
960220104028 Asley Rejeese.R system, and identify key use cases.
960220104029 Aslin Kani.C.S 1
960220104030 Auslin.M
7 960220104032 Benshika.B.V For the hotel reservation system, provide detailed use case
descriptions for the use cases "Make a Reservation" and
960220104033 Bershika. R.S "Cancel a Reservation".
960220104034 Bincia Shine.R 1
8. 960220104037 Dhanusha.D.N Design a use case diagram for a library management system
with the following actors: Librarian, Member, and
960220104038 Dheepthika.G.A Administrator. Include at least eight use cases and show their
interactions.
960220104039 Evangalin 1
Reshmi.J
960220104041 Gayathri.J.M
960220104043 Harshini.M
960220104044 Hathoon Beevi.S Analyze the use case diagram of an ATM system. Identify the 1
actors and use cases, and discuss how the use case diagram
960220104045 Jebisha. G helps in understanding the system requirements.
960220104046 Jeshiya.J
10 960220104047 Jeya Pradeesha.S Create a use case diagram for a ride-sharing application (like
Uber or Lyft). Include actors such as Driver, Rider, and
960220104048 Jijin Jora.N.S System, and at least seven use cases.
960220104049 Jika Shirose.R.M 1
11. 960220104052 Kaviya.K Create a use case diagram for a university course registration
system. Identify the primary actors and at least five use cases.
960220104055 Lakshmi.V.V
960220104079 Roshini C M 1
960220104002 Abinaya.R.K
960220104003 Abiraina.P.A 2
960220104004 Abisha.C
960220104005 Abisha.D
2 960220104006 Abisha.S Develop a sequence diagram for the use case "Borrow Book"
in a library management system, illustrating interactions
960220104007 Adjaya Sree.S between the Member, Librarian, Book Inventory, and
Notification System.
960220104008 Afrin.N 3
960220104009 Ahalya.G
960220104010 Ajatha.B.S
960220104012 Akshaya.S
960220104014 Anitta.M.Das 3
960220104016 Anusha.V
960220104020 Asha.A.C
960220104021 Asha.M
5. 960220104022 Ashika.H Create an activity diagram for the use case "User Registration"
in a web application. Include activities such as entering details,
960220104023 Ashika.N validating input, and creating an account.
960220104024 Ashika.R.V 3
960220104025 Ashlina.J
960220104026 Ashmika.G
6 960220104027 Ashna Chinju Create a class diagram for a hospital management system,
focusing on relationships such as one-to-many, many-to-many,
960220104028 Asley Rejeese.R and one-to-one. Include classes like Hospital, Doctor, Patient,
Appointment, and Medical Record.
960220104029 Aslin Kani.C.S 2
960220104030 Auslin.M
7 960220104032 Benshika.B.V Create a sequence diagram for the "Login" use case in a web
application, covering both successful and unsuccessful login
960220104033 Bershika. R.S scenarios. Include interactions with the User, Login Page,
Authentication System, and User Profile.
960220104034 Bincia Shine.R 3
960220104041 Gayathri.J.M
9 960220104042 Geji Reashma.A Create a collaboration diagram for the use case "Schedule
Appointment" in a hospital management system, showing
960220104043 Harshini.M
960220104044 Hathoon Beevi.S interactions between the Patient, Receptionist, Doctor, and 3
Appointment System classes.
960220104045 Jebisha. G
960220104046 Jeshiya.J
10 960220104047 Jeya Pradeesha.S Discuss the role of domain models in the overall UML
modeling process. How do they complement other UML
960220104048 Jijin Jora.N.S diagrams like use case diagrams and sequence diagrams? Use
examples from a hotel reservation system.
960220104049 Jika Shirose.R.M 2
Construct the Partial domain model of Bank ATM
960220104050 Joevisha Mergil.S
11. 960220104052 Kaviya.K Create a class diagram for a hospital management system,
focusing on relationships such as one-to-many, many-to-many,
960220104055 Lakshmi.V.V and one-to-one. Include classes like Hospital, Doctor, Patient,
Appointment, and Medical Record.
960220104079 Roshini C M 2
1. 960220104001 Aarthi.S.P List and briefly describe the nine GRASP patterns. Provide an
example scenario where each pattern might be applicable.
960220104002 Abinaya.R.K
960220104003 Abiraina.P.A 4
960220104004 Abisha.C
960220104005 Abisha.D
960220104009 Ahalya.G
960220104010 Ajatha.B.S
3 960220104011 Akalya.K Design the class diagram oh ATM and map this to its
equivalent code
960220104012 Akshaya.S
960220104014 Anitta.M.Das 4
960220104016 Anusha.V
4 960220104017 Anusuya.S
960220104018 Archana.R.D Design a domain model using Object-Oriented Methodologies
for a smart home automation system. Include classes,
960220104019 Asberyl relationships, and attributes relevant to the system's 5
Sheraphin.I functionality.
960220104020 Asha.A.C
960220104021 Asha.M
960220104025 Ashlina.J
960220104026 Ashmika.G
960220104030 Auslin.M
8. 960220104037 Dhanusha.D.N Design test cases for a login feature in a web application.
Include positive and negative scenarios, boundary value tests,
960220104038 Dheepthika.G.A and equivalence partitioning
960220104039 Evangalin 5
Reshmi.J
960220104041 Gayathri.J.M
960220104045 Jebisha. G
960220104046 Jeshiya.J
10 960220104047 Jeya Pradeesha.S Compare and contrast Agile and Waterfall methodologies with
respect to their compatibility with Object-Oriented
960220104048 Jijin Jora.N.S Programming (OOP) principles. Discuss the advantages and
disadvantages of each in an OOP context.
960220104049 Jika Shirose.R.M 5
List and briefly describe the nine GRASP patterns. Provide an
960220104050 Joevisha Mergil.S example scenario where each pattern might be applicable.