0% found this document useful (0 votes)
22 views225 pages

Oose Lab Manual

The document outlines a course on Object Oriented Analysis and Design (OOAD), detailing its objectives, learning outcomes, and a structured lesson plan. It covers key concepts such as object-oriented methodologies, analysis, design, and software quality, emphasizing the use of UML for modeling. The course aims to equip students with the skills to effectively analyze and design software systems using object-oriented principles.

Uploaded by

Ravi Potnuru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views225 pages

Oose Lab Manual

The document outlines a course on Object Oriented Analysis and Design (OOAD), detailing its objectives, learning outcomes, and a structured lesson plan. It covers key concepts such as object-oriented methodologies, analysis, design, and software quality, emphasizing the use of UML for modeling. The course aims to equip students with the skills to effectively analyze and design software systems using object-oriented principles.

Uploaded by

Ravi Potnuru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 225

L T P C

16BECS604 OBJECT ORIENTED ANALYSIS AND DESIGN


3 0 0 3
COURSE OBJECTIVES:
 To understand the concepts of object oriented analysis and design 
 To understand the object oriented life cycle. 
 To know how to identify objects, relationships, services and attributes through UML. 

LEARNING OUTCOMES:
 To understand the use-case diagrams. 
 To know the Object Oriented Design process. 
 To know about software quality and usability. 
UNIT- I INTRODUCTION (9)
An Overview of Object Oriented Systems Development - Object Basics – Object Oriented
Systems Development Life Cycle.

UNIT- II OBJECT ORIENTED METHODOLOGIES (9)


Rumbaugh Methodology - Booch Methodology - Jacobson Methodology - Patterns –
Frameworks – Unified Approach – Unified Modeling Language – Use case - class diagram -
Interactive Diagram - Package Diagram - Collaboration Diagram - State Diagram - Activity
Diagram.

UNIT- III OBJECT ORIENTED ANALYSIS (9)


Identifying use cases - Object Analysis - Classification – Identifying Object relationships - Attributes
and Methods.

UNIT- IV OBJECT ORIENTED DESIGN (9)


Design axioms - Designing Classes – Access Layer - Object Storage - Object Interoperability.

UNIT- V SOFTWARE QUALITY AND USABILITY (9)


Designing Interface Objects – Software Quality Assurance – System Usability - Measuring User
Satisfaction

Total hours:45
TEXT BOOKS:
1. Ali Bahrami Object Oriented Systems Development Tata McGraw- Hill 2008
2. Martin Fowler Martin Fowler PHI/Pearson Education 2007
REFERENCES:
1. Stephen R. Schach Introduction to Object Oriented Analysis and Design Tata
McGraw-Hill 2003
2. James Rumbaugh, Ivar Jacobson, Grady Booch The Unified Modeling Language
Reference Manual Addison Wesley 2005
3. Hans-Erik Eriksson, Magnus Penker, Brain Lyons, David Fado UML Toolkit
OMG Press Wiley Publishing Inc 2004
LESSON PLAN

COURSE EDUCATIONAL OBJECTIVES:

 The main objective is the students become familiar with all phases of OOAD.

 Master the main features of the UML.


 Master the main concepts of Object Technologies and how to apply them at work and
develop the ability to analyze and solve challenging problem in various domains.
 Learn the Object design Principles and understand how to apply them towards
implementation.

COURSE OUTCOMES:

After the completion of the course, students should be able to:

1. Select the basic elements of modeling such as Things, Relationships and Diagrams
depending on the views of UML Architecture and SDLC.
2. Apply basic and Advanced Structural Modeling Concepts for designing real time applications.
3. Design Class and Object Diagrams that represent Static Aspects of a Software System.
4. Analyze Dynamic Aspects of a Software System using Use Case, Interaction and Activity
Diagrams.
5. Apply techniques of State Chart Diagrams and Implementation Diagrams to model
behavioral aspects and Runtime environment of Software Systems.
Detailed Lesson Plan

No. of Content delivery

S.NO DATE TOPIC TO BE COVERED Actual Date HOURS Methods

UNIT-I INTRODUCTION TO UML

1 22/06/15 Importance of Modelling 1 DM1

2 23/06/15 Principles of modelling 1 DM1

3 25/06/15 Object Oriented modelling 1 DM1

4 26/06/15 Conceptual model of the UML 1 DM1

5 27/06/15 Conceptual model of the UML 1 DM6

6 29/06/15 Conceptual model of the UML 1 DM6

7 30/06/15 UML Architecture 1 DM1

8 06/07/15 Software Development life cycle 1 DM6

9 07/07/15 Tutorial-I 1 DM2

10 09/07/15 Software Development life cycle 1 DM1

UNIT-II STRUCTURAL MODELLING

11 10/07/15 Basic Structural Modelling: Classes 1 DM1


12 13/07/15 Basic Structural Modelling: Classes 1 DM6

13 14/07/15 Relation ships 1 DM1

14 16/07/15 Common mechanisms 1 DM1

15 17/07/15 Common mechanisms 1 DM6

16 20/07/15 Common mechanisms 1 DM6

17 21/07/15 Diagrams 1 DM1

18 23/07/15 Tutorial-II DM2

19 24/07/15 Diagrams 1 DM6

20 25/07/15 Advanced Structural Modelling: Classes 1 DM2

21 27/07/15 Advanced Relation ships 1 DM1

22 28/07/15 Interfaces 1 DM6

23 30/07/15 Types and Roles 1 DM6

24 31/07/15 Packages DM1

25 01/08/15 Tutorial-III DM2


26 03/07/15 Review DM6

UNIT-III CLASSES & OBJECT DIAGRAMS

27 04/07/15 Terms & Concepts - Class diagrams 1 DM1

28 06/07/15 Modelling techniques for class diagrams 1 DM1

29 07/07/15 Modelling techniques for class diagrams 1 DM1

30 10/07/15

31 11/07/15

32 13/07/15 MID-I EXAMS

33 14/07/15

34 17/08/15

35 18/08/15 Terms & Concepts - Object diagrams 1 DM1

36 20/08/15 Modelling techniques for Object diagrams 1 DM6

37 21/08/15 Modelling techniques for Object diagrams 1 DM6

38 22/08/15 Tutorial-IV 1 DM2

UNIT-IV BASIC BEHAVIORAL MODELLING


39 24/08/15 Interactions 1 DM1

40 25/08/15 Interaction diagrams- Sequence 1 DM1

41 27/08/15 Interaction diagrams - Collaborations 1 DM1

42 28/08/15 Interaction diagrams –C M Techniques 1 DM6

43 29/08/15 Use cases 1 DM1

44 31/08/15 Use case Diagrams 1 DM1

45 01/09/15 Common modelling techniques 1 DM6

46 03/09/15 Activity diagrams 1 DM1

47 04/09/15 Common modelling techniques 1 DM6

48 05/09/15 Tutorial-V 1 DM2

49 07/09/15 Review DM6

50 08/09/15 Review DM6

UNIT-V

51 10/09/15 Advanced Behavioral Modelling 1 DM6

52 11/09/15 Events and Signals 1 DM1


53 14/09/15 Events and Signals 1 DM6

54 15/09/15 State machines 1 DM6

55 18/09/15 Processes and Threads 1 DM1

56 19/09/15 Time and Space 1 DM1

57 21/09/15 State Chart Diagrams 1 DM6

58 22/09/15 State Chart Diagrams 1 DM6

59 25/09/15 Tutorial-VI 1 DM2

60 26/09/15 Architectural Modelling 1 DM1

61 28/09/15 Components 1 DM1

62 29/09/15 Component Diagrams 1 DM6

63 01/10/15 Deployment 1 DM1

64 03/10/15 Deployment Diagrams 1 DM6

65 05/10/15 Tutorial-VII 1 DM2

66 06/10/15 Review 1 DM6

67 08/10/15 Review DM6


68 09/10/15 Review DM6

69 12/10/15 Review of Unit - IV DM6

70 13/10/15 Review of Unit - III DM6

71 15/10/15 Review of Unit - II DM6

72 16/10/15 Review of Unit - II DM6

73 17/10/15 Review of Unit - I DM6

74 26/10/15

75 27/10/15

76 29/10/15 MID – II EXAMS

77 30/10/15

78 31/10/15

TEXT BOOK :

1. Grady Booch, James Rumbaugh, Ivar Jacobson : The Unified Modeling Language
User Guide, Pearson Education.

UNIT-I
Introduction:
The various trends in S/W development give the change in the languages. In earlier
days S/W developers used Machine Languages, which deals with 0‘s and 1‘s
[Binary Number]. S/W developers felt it was difficult to program using binary
numbers. In later stage Assembly Language was used for a programming. Assembly
Language uses mnemonics, which is better than binary language. Then high-level
language was introduced. The human understandable English is used in the
programming languages. Initial stages of high-level languages have the procedural
/structural languages. Programmers concentrate more on functions rather than data.
To overcome this object oriented programming languages was introduced. In
OOProgramming the programmer concentrate or gives equal importance to
functions and data. The advantages over procedure languages are OOPS concepts.

Machine Language 0,1

Assembly LanguageMnemonics

High Level Language Human Understandable Language

Procedure/Structural
language
Global data

Concentrate on functions.

Object oriented programming language

OOPS concepts.

The OOPS concepts are

Data hiding
Data encapsulation

Data abstraction

Inheritance

Polymorphism

Objects

Class
Dynamic binding

Message passing.

The detailed view of oops concepts is discussed later.

OBJECT ORIENTATION:

Object oriented methods enable us to create sets of objects that work


together synergistically to produce software that better module their problem domains
than similar systems produced by traditional techniques. The system created using
object oriented methods are easier to adapt changing requirements, easier to maintain,
more robust, promote greater design. The reasons why object orientation works

High level of abstraction.

Seamless transition among different phases of software development.

Encourage of good programming techniques.

Promotion of reusability.

High level of abstraction:

Top-down approach It supports abstraction of the function level.


Objects oriented approach It supports abstraction at the object level.

The

object encapsulate both the data (attributes) and functions (methods), they work
as a higher level of abstraction. The development can proceed at the object level,
this makes designing, coding, testing, and maintaining the system much simpler.

Seamless transition among different phases of software development

Traditional Approach:

The software development using this approach requires different


styles and methodologies for each step of the process. So moving from one
phase to another requires more complex transistion.

Object-oriented approach:

We use the same language to talk about analysis, design,


programming and database design. It returns the level of complexity and
reboundary, which makes clearer and robust system development.

Encouragement of good programming techniques:

A class in an object-oriented system carefully delineates between its


interface and the implementation of that interface. The attributes and methods are
encapsulated within a class (or) held together tightly. The classes are grouped into
subsystems but remain independent one class has no impact on other classes. Object
oriented approach is not a magical one to promote perfect design (or) perfect code.
Raising the level of abstraction from function level to object level and
focusing on the real-world aspects of the system, the object oriented method tends to

Promote clearer designs.

Makes implementation easier.

Provide overall better communication.

Promotion of Reusability:

Objects are reusable because they are modeled directly out of real world.
The classes are designed generically with reuse. The object orientation adds
inheritance, which is a powerful technique that allows classes to built from each other.
The only differents and enhancements between the classes need to be designed and
coded. All the previous functionality remains and can be reused without change.

OBJECT-ORIENTED SYSTEM DEVELOPMENT

Traditional Software Development:

The S/W development is based on function and procedures.

Object-oriented software development:

It is a way to develop software by building self-contained modules or


objects that can be easily replaced, modified and reused. In an object-oriented
environment, software is a collection of discrete objects that encapsulate their
data as well as the functionality to model real-world objects. An object orientation
yields important benefits to the practice of software construction. Each object has
attributes (data) and methods (function). Objects are grouped into classes.
In object-oriented system, everything is an object and each object is
responsible for itself.

For example:
Windows applications needs windows object that can open
themselves on screen and either display something or accept input.

Windows object is responsible for things like opening, sizing, and

closing itself.

When a windows display something, that something is an object. (ex)

chart.

Chart object is responsible for maintaining its data and labels and
even for drawing itself.
Review of objects:

The object-oriented system development makes software


development easier and more natural by raising the level of abstraction to the
point where applications can be implemented. The name object was chosen
because ―everyone knows what is an object is ‖. The real question is ―what do
objects have to do with system development‖ rather that ―what is an object?‖

Object:

A car is an object a real-world entity, identifiably separate from its


surroundings. A car has a well-defined set of attributes in relation to other object.
CAR Object

Attributes Methods

Color Drive it
Manufacturer Lock it

Cost Tow it

Owner Carry Passenger in it

Attributes:

Data of an object.

Properties of an object.

Methods:

Procedures of an
object. or

Behaviour of an object.

The term object was for formal utilized in the similar language. The term
object means a combination or data and logic that represent some real-world entity.

When developing an object oriented applications, two basic questions arise

What objects does the application need?

What functionality should those objects have?

Programming in an object-oriented system consists of adding new


kind of objects to the system and defining how they behave. The new object
classes can be built from the objects supplied by the object-oriented system.
Object state and properties (Attributes):
Properties represent the state of an object. In an object oriented
methods we want to refer to the description of these properties rather than how
they are represented in a particular programming language.
Car

Cost

Color Attributes of car object

Make

Model

We could represent each property in several ways in a programming

languages.

For example:

Color 1. Can be declared as character to store sequence or character [ex: red, blue, ..]

2. Can declared as number to store the stock number of paint [ex: red
paint, blue paint, ..]
3. Can be declared as image (or) video file to refer a full color video image.

The importance of this distinction is that an object abstract state can


be independent of its physical representation.

Object Behaviour and Methods:

We can describe the set of things that an object can do on its own (or) we

can
do with it.

For example:

Consider an object car,

We can drive the car.


We can stop the car.

Each of the above statements is a description of the objects behaviour. The


objects behaviour is described in methods or procedures. A method is a function or
procedures that is defined in a class and typically can access to perform some operation.
Behaviour denotes the collection of methods that abstractly describes what an object is
capable of doing. The object which operates on the method is called receiver. Methods
encapsulate the behaviour or the object, provide interface to the object and hide any of the
internal structures and states maintained by the object. The procedures provide us the
means to communicate with an object and access it properties.

For example:

An employee object knows how to compute salary. To compute an


employee salary, all that is required is to send the compute payroll message to
the employee object.

So the simplification of code simplifies application development and

maintenance.

Objects Respond to Messages:

The capability of an object‘s is determined by the methods defined


for it. To do an operation, a message is sent to an object. Objects represented to
messages according to the methods defined in its class.
For example:

When we press on the brake pedal of a car, we send a stop


message to the car object. The car object knows how to respond to the stop
message since brake have been designed with specialized parts such as break
pads and drums precisely respond to that message.
Brake

------------------
Car Object

Different object can respond to the same message in different ways.


The car, motorcycle and bicycle will all respond to a stop message, but the actual
operations performed are object specific.

It is the receiver‘s responsibility to respond to a message in an


appropriate manner. This gives the great deal or flexibility, since different object can
respond to the same message in different ways. This is known as polymorphism.

Objects are grouped in classes:

The classification of objects into various classes is based its


properties (states) and behaviour (methods). Classes are used to distinguish are
type of object from another. An object is an instance of structures, behaviour and
inheritance for objects. The chief rules are the class is to define the properties
and procedures and applicability to its instances.
For example:

Employee Class

David

John

Andrew Objects of

Align class employee

Alfred

Class Hierarchy:

An object-oriented system organizes classes into a subclass super


class hierarchy. The properties and behaviours are used as the basis for
making distinctions between classes are at the top and more specific are at
the bottom of the class hierarchy. The family car is the subclass of car. A
subclass inherits all the properties and methods defined in its super class.

Motor Vehicle

Bus Truck Car


Private Govt Mini Heavy Race Family

Omni Passenger Lorry Truck Car Car

Bus Bus

Super class/Subclass Hierarchy

Inheritance:

It is the property of object-oriented systems that allow objects to be


built from other objects. Inheritance allows explicitly taking advantage of the
commonality of objects when constructing new classes. Inheritance is a
relationship between classes where one class is the parent class of another
(derived) class. The derived class holds the properties and behaviour of base
class in addition to the properties and behaviour of derived class.
Vehicle

Car

Hyundai

Santro Sonata Accent

Inheritance allows reusability.

Dynamic Inheritance:

Dynamic inheritance allows objects to change and evolve over time.


Since base classes provide properties and attributes for objects, hanging base
classes changes the properties and attributes of a class.

Example:

A window objects change to icon and basic again. When we double click
the folder the contents will be displayed in a window and when close it, changes back to
icon. It involves changing a base class between a windows class and icon class.

Multiple Inheritances:
Some object-oriented systems permit a class to inherit its state
(attributes) and behaviour from more than one super class. This kind or
inheritance is referred to as multiple inheritances.

For example:

Utility vehicle inherits the attributes from the Car and Truck classes.

Vehicle

Truck Car Bus

Utility Vehicle
Encapsulation and Information Hiding:

Information hiding is the principle of concealing the internal data and


procedures of an object. In C++ , encapsulation protection mechanism with
private, public and protected members.

In per-class protection:

Class methods can access any objects of that class and not just the receiver.

In per-object protection:

Methods can access only the receiver.

An important factor in achieving encapsulation is the design at different


classes of objects that operate using a common protocol. This means that many
objects will respond to the message using operations tailored to its class.

A car engine is an example of encapsulation. Although engines may


differ in implementation, the interface between the driver and car is through a
common protocol.

Polymorphism:

Poly ‖many‖

Morph ―form‖

It means objects that can take on or assume many different forms.


Polymorphism means that the same operations may behave differently on
different classes. Booch defines polymorphism as the relationship of objects
many different classes by some common super class. Polymorphism allows us to
write generic, reusable code more easily, because we can specify general
instructions and delegate the implementation detail to the objects involved.

Example:

In a pay roll system, manager, office worker and production worker


objects all will respond to the compute payroll message, but the actual operations
performed are object specific.

Object Relationship and associations:

Association represents the relationships between objects and classes.


Associations are bi-directional. The directions implied by the name are the
forward direction and the opposite is the inverse direction.
Can fly
Pilot Planes

Flown by

A pilot ―can fly‖ planes. The inverse of can fly is ―is flown by ―. Plane ―is flown by‖ pilot

Cardinality:

It specifies how many instances of one class may relate to a single


instance of an associated class. Cardinality constrains the number of
related objects and often is described as being ―one‖ or ―many‖.

Consumer-producer association:

A special form or association is a consumer-producer relationship,


also known as a client-server association (or) a use relationship. It can be viewed
as one-way interaction. One object requests the service or another object. The
object that makes the request is the consumer or client and the object that
receives the request and provides the service is the producer (or) server

Example:
Request for

Print Server Item

Printing

The consumer-producer association we have a print object that prints


the consumer object. The print producer provides the ability to print other objects.

Aggregations:

All objects, except the most basic ones, are composed of and may contain
other objects. Breaking down objects in to the objects from which they are composed is
de composition. This is possible because an objects attributes need not be simple data
fields, attributes can reference other objects. Since each object has an identity, one
object can refer to other objects. This is known as aggregation. The car object is an
aggregation of other objects such as engine, seat and wheel objects.
Car

Engine Seat Wheel

Static and Dynamic Binding:

Determining which function has to be involved at compile time is


called static binding. Static binding optimized the calls. (Ex) function call.

The process of determining at run time which functions to involve is


termed dynamic binding. Dynamic binding occurs when polymorphic call is issued. It
allows some method invocation decision to be deferred until the information is known.

Example:

Cut operation in a edit submenu. It pass the cut operation to any


object on the desktop, each or which handles the message in its own way.

Object Persistence:
Objects have a lifetime. They are explicitly created and can exist for
a period of time that has been the duration of the process in which they were
created. A file or database can provide support for objects having a longer
lifeline, longer than the duration of the process for which they are created. This
characteristic is called object persistence.

Meta-Classes:

In an object-oriented system every thing is an object, what about a class?


Is a class an object?. Yes, a class is an object. So, If it is an object, it must belong to a
class, such a class belong to a class called a meta-class (or) class or classes.
Object-Oriented Systems Development Life Cycle [OOSDLC]

Introduction:

The S/W development process that consists of Analysis, Design,


implementation, testing and refinement is to transform users needs into a software
solution that satisfies those needs. Some people view the s/w developing process as
interesting but feel it has less importance in developing s/w. Ignoring the process and
plunge into the implementation and programming phases of s/w development is much
like the builder who would by pass the architect. The object oriented approach requires
a more rigorous process to do things right. We have to spend more time on gathering
requirements, developing a requirements model and an analysis model, then turning
them into the design model. We should consult a prototype of some of the key system
components shortly after the products are selected. It is used to understand how easy
or difficult it will be to implement some of the features of the system.

Software Development process:

S/W development can be viewed as a process. The development itself


is a process of change, retirement, transformation (or) addition to the existing
product. It is possible to replace one sub process with a new one, as long as the
new sub process has the same interface as the old one, to allow it to fit into the
process as a whole. The object-oriented approach provides us a set of rules for
describing inheritance and specialization in a consistent way when a sub process
changes the behaviour of its parent process. The process can be divided into small,
interacting phases know as sub processes. The sub processes must be defined in
such a way that they are clearly spelled out, to allow each activity to be performed
as independently of other sub processes as possible. Each sub process must have

A description in terms of how it works

Specification of the input required for the process

Specification of the output to be produced.


The software development process can be viewed as a series of transformations, where
the output of one transformation becomes the input of the subsequent transformation.

Transformation 1 [Analysis]

Transformation 2 [Design]

Transformation 3 [Implementation]
Problem

Transformation 1

Statements

Analysis

What are the users of the system?

Transformation 2

Design System

Transformation 3

Implementation Software

Detail Product

Transformation 1 [Analysis]

It translates the users‘ needs into system requirements and responsibilities.

The way they use can provide insight into user requirements.

Transformation 2 [Design]
It begins with a problem statement and ends with a detailed design
that can be transformed into an operational system. This transformation includes
the bulk of the software development activity, including definition of how to build
the software, its development and it‘s testing. It includes the design descriptions,
the program and the testing materials.

Transformation 3 [Implementation]

It refines the detailed design into the system deployment that will
satisfy the users needs. It represents embedding the software product within its
operational environment.

The software development process is the waterfall approach which starts

with deciding

what is to be done (what is the problem)

How to accomplish
them Which we do it

Test the result to see it we have satisfied the users


requirements Finally we use what we have done
What

Analysis

How

Design

Do It
Implementation

Test
Testing

Use

Maintenance
The water fall S/W development process

Building High-Quality Software

The software process transforms the users needs via the application
domain to a software solution that satisfies those needs. High-Quality products
must meet users needs and expectations. The quality of the product should be
improved prior to delivery rather than correcting them after deliver.
To achieve high quality software we need to be able to answer the
following question.

How do we determine when the system is ready for delivery?

It is now operational system that satisfies uses needs?

It is correct and operating as we thought it should?

Does it pass an evaluation process?

There are different approaches for systems testing. Blum describes a means of
system evaluation in terms of four quality measures,

Correspondence
Correctness

Verification
and Validation
Validation

Verification

Needs Requirements Design Software

Correctness

* Correspondence measures how well the delivered system matches the needs of
the operational environment as described in the original requirements statement.

* Validation is the task of predicting correspondence. True correspondence can


be determined only after the system is in place

* Correctness measures the consistency of the product requirements with


respect to the design specification

* Verification is the exercise of determining correctness.

Boehm observes that these quality measures, verification and validation is


answering the following questions.

Verification- Am I building the product right?


Validation- Am I building the right product.

Object-Oriented Systems Development: A use-case Driven Approach:

The object-oriented S/W development Life Cycle (SDLC) consists


of three macro process.

Object-Oriented Analysis
Object-oriented Design and

Object-oriented Implementation.
Build a Use-

Case model

Object

Analysis

Validation

test

Analysis

Iteration and Reuse

Using Tools User Satisfaction

CASE and/or OO Usability & QA Design Classes Build Object

Programming Tests Define Attributes and Dynamic

languages & Methods


Model

User satisfaction
Implementation
Usability test &
Build User
quality assurance
Interface &
test
Prototype

Design
The use-case model can be employed throughout most activities of software
development. The main advantage is that all design decisions can be traced
back directly to user requirements.

Object-oriented Analysis – Use case


driven Object-oriented design

Prototyping

Component-based development
Incremental testing

Object-Oriented Analysis –Use-Case Driven:

The object-oriented analysis phase of S/W development is concerned with


determing the system requirements and identifying classes and their relationship to other
classes in the problem domain. To understand the system requirements we need to identify
the users or the actors. Who are the actors and how do they use the system, scenarios are
used to help analysis to understand the requirements. Ivar Jacobson came up with the
concept of the use case, his name for scenario to describe user-computer system inter
action. The object-oriented community has adopted use case to a remarkable degree.
Scenarios are a great way of examine who does what in the interactions
among objects and what role they play. That is their inert relationship. This inter actions
among the objects roles to achieve a given goal is called collaboration.

A use-case is a typical interaction between a user and a system that


captures user goals & needs. Expressing these high-level processes and interactions it
is referred to as use-case modeling. Once the use case model is better understood and
developed we should start to identify classes and create their relationships.

The physical objects in the system also provide us important information


an objects in the system. The objects could be individuals‘ organizations, machines,
units of information; pictures (or) what ever else makes up the application and makes
sense in the context of the real-world system.

For example: The object in the payroll system is as follows,

The employee, worker, supervisor, office


admin. The paycheck.

The product being made.

The process used to make the product.

The objects need to have meaning only within the context of the application domain.

Few guide lines to use in object-oriented design.

Reuse, rather than build, anew class, know the existing classes.

Design a large number of simple numbers of simple classes, rather than a


small number of complex classes.

Design methods.

Critique what we have proposed. It possible go back and refine the classes.

Prototyping:
It is important to construct a prototype of some of the key system
components shortly after the products are selected. A prototype is a version of a
software product developed in the early stages of the product‘s life cycle for
specific, experimental purposes. It enables to fully understand how easy or
difficult it will be to implement some of the features of the system. It gives users a
chance to comment on the usability and usefulness of the user interface design,
it can define use cases and it makes use Case modeling much easier.

Prototyping was used as a ―quick and dirty‖ way to test the design,
user interface and so forth, something to be thrown away when the ―industrial
strength‖ version was developed. The rapid application development (RAD)
refines the prototype into the final product.

Prototypes have been categorized in various ways. The following


categorized are some of the commonly accepted prototypes.
Horizontal prototype
Vertical prototype
Analysis prototype
Domain prototype

Horizontal Prototype:

It is a simulation of the interface but contains no functionality. This


has the advantages of being very quick to implement, providing a good overall
feel of the system and allowing users to evaluate the interface on the basis of
their normal, expected perception of the system.

Vertical Prototype:

It is a subset of the system features with complete functionality. The


advantage of this method is that the few implemented functions can be tested in great
depth. The prototypes are hybrid between horizontal and vertical, the major portions of
the interface are established so the user can get the feel of the system and features
having a high degree of risk are prototyped with much more functionality.

Analysis Prototype:

It is an aid for exploring the problem domain. This class of prototype


is used to inform the user and demonstrate the proof of a concept. It is not used
as the basis of development and is discarded when it has served its purpose.

Domain Prototype:

It is an aid for the incremental development of the ultimate software


solution. It demonstrates the feasibility of the implementation and eventually will
evolve into a deliverable product.
The typical time required to produce a prototype is anywhere from a
few days to several weeks, depending on the type and function of prototype. The
prototype makes the end users and management members to ascertain that the
general structure of the prototype meets the requirements established for the
overall design. The purpose of this review is

To demonstrate that the prototype has been developed according to


the specification and that the final specification is appropriate.

To collect information about errors or other problems in the system, such as


user interface problems that need to be addressed in the intermediate prototype stage
To give management and everyone connected with the project the
first glimpse of what the technology can provide.

Prototyping is a useful exercise of almost any stage of the


development. Prototyping should be done in parallel with the preparation of the
functional specification. It also results in modification to the specification.

Implementation:

Software components are built and tested in-house, using a wide range
of technologies. Computer aided software engineering (CASE) tools allow their
users to rapidly develop information systems. The main goal of CASE technology is
the automation of the entire information system‘s development life cycle process
using a set of integrated software tools, such as modeling, methodology and
automatic code generation. The code generated by CASE tools is only the skeleton
of an application and a lot needs to be filled in by programming by hand.

Component-Based Development: (CBD)

CASE tools are the beginning of Component-Based Development.


Component-Based Development is an industrialized approach to the software
development process. Application development to assembly of prebuilt,
pretested, reusable software components that operate with each other: The two
basic ideas of using Component-Based development.

1. The application development can be improved significantly if applications


can be assembled quickly from prefabricated software components.

2. An increasingly large collection of interpretable software components could


be made available to developers in both general and specified catalogs.

A CBD developer can assemble components to construct a complete software


system. The software components are the functional units of a program, building blocks
offering a collection of reusable services. The object-Oriented concept addresses analysis,
design and programming, where as component-Based development is concerned with the
implementation and system integration aspects of software development.
Rapid Application Development (RAD):

RAD is a set of tools and techniques that can be used to build


application footer than typically possible with traditional methods. The term is
often conjunction with S/W prototyping. RAD encourages the incremental
development approach of ―grow, do not build‖ software.

Testing:

(Refer Software Engineering Book )


Design Patterns:
Design pattern is instructive information for that captures the essential
structure and insight of a successful family of proven design solutions to a recurring
problem that arises within a certain context.

Gang Of Four (GoF) [Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides]
introduced the concept of design patterns.

Characteristics of Design Patterns:

1. It solves the problem – Design patterns are not just abstract representations of theoretical
research. To be accepted as a pattern it should have some proves practical experiences.
2. It‘s a proven concept – Patterns must have a successful history.

3. It describes a relationship – Patterns do not specify a single class instead it


specifies more than one classes and their relationship.

4. It has a human component - Good patterns make the job of the programmer easy
and time saving.

Contents of Design Pattern:

• Name of the pattern is used to identify the pattern as well as an descriptive of the
problem solution in general. Easy to remember and context related names
makes remembering patterns easy.

• Context of the pattern describes when and where the pattern is applicable. It also
describes the purpose of pattern and also the place where it is not applicable due
to some specific conditions.

• Solution of the design pattern is describes how to build the appropriate design
using this appropriate design.

• Consequences of design patterns describe the impact of choosing a particular


design pattern in a system.

Pattern Template:

1. PATTERN NAME (good and relevant names make patterns easy to remember)
2. INTENT (Which problem does the pattern solve)
3. ALSO KNOWN AS(alias names given to the pattern)
4. APPLICABILITY(when should this pattern be applied)
5. STRUCTURE(Graphical representation of the Pattern (using UML))

6. PARTICIPANTS(classes and objects taking part in the pattern and their relationship)
7. COLLABORATORS (says how objects/actors interact to achieve the goal).

8. CONSEQUENCES (how does they solve the problem and what are the
consequences if the problem is solved by this way.)
9. IMPLEMENTATION (Issues related with Implementation, language specific issues)
10. KNOWN USES (Examples of the same pattern used in real systems)

11. RELATED PATTERNS (Specify is there any similar patterns. Where are they
used.) The Singleton Design Pattern:

1. Pattern Name – Singleton


2. Intent – To ensure a class has only one instance a global point of access to it.

3. Motivation – Its common in software development where some component developers


specify that more than one object of a Class alive make systems ambiguous.
4. Applicability – Singleton can be used where there must be exactly one object and
it must be accessible to multiple clients/objects.
5. Structure:

Singleton

Static int count

*Other singleton data*

Static singleton *

create_Instance()

*Other singleton

behaviour*

6. Participants – Singleton class defines a Class function which can be


accessed by the clients for creating instance.
7. Collaborations – Clients access a singleton object solely through instance operation.

8. Consequences – Controlled access to the single instance, Reduced name


space, can be sub classed and more behaviors can be added, and can be
modified for existence of more than one objects(BASED ON THE DOMAIN).

Implementation:

class singleton

private:
static int no_of_obj;

static singleton * pointer_instance;

// other private data members and member functions

public:

static singleton * create_instance()

if (no_of_obj==0)

pointer_instance=new singleton;

no_of_obj=1;

return pointer_instance;

//function f() uses the following statement to create a new instance:

singleton s=singleton::create_instance();
Generative Patterns: Patterns that suggest the way of finding the solution

Non Generative patterns: They do not suggest instead they give a passive solution.

Non Generative patterns cannot be used in all the situation.

Frameworks:

Frameworks are the way of delivering application development patterns to


support/share best development practice during application development.

In general framework is a generic solution to a problem that can be applied to all


levels of development. Design and Software frameworks and most popular where Design pattern
helps on Design phase and software frameworks help in Component Based Development phase.

Framework groups a set of classes which are either concrete or abstract. This
group can be sub classed in to a particular application and recomposing the necessary items.

a. Frameworks can be inserted in to a code where a design pattern cannot


be inserted. To include a design pattern the implementation of the design
pattern is used.

b. Design patterns are instructive information; hence they are less in space where
Frameworks are large in size because they contain many design patterns.

c. Frameworks are more particular about the application domain where


design patterns are less specified about the application domain.

Note:

Include the details of Microsoft .Net development framework.

UNIT –II
OBJECT ORIENTED METHODOLOGIES:

Overview of methodologies:

In 1980‘s, many methodologists were wondering how analysis and design


methods and processes would fit into an object-oriented world. Object oriented methods
suddenly had become very popular and it was apparent that the techniques to help
people execute good analysis and design were just as important as the object-oriented
methodologies, sometimes called second-generation object-oriented methods.

Many methodologies are available to choose from for system development.


The methodology is based on modeling the business problem and implementing the
differences lie primary in the documentation of information, modeling notations and
languages. An application an be implemented in many ways to meet some requirements
and provide the same functionality. Two people using the methodology may produce
applications designs that look radically different. This does not necessarily mean
that one is right and one is wrong, just that they are different.

The various methodologies and their notations are developed by

Jim Rum Baugh


Grady Booch
Ivar Jacobson

These is the origin of the UML (Unified Modeling Language)

Each method has its own strengths.

Rum Baugh Method Describing the object model or the static structure of the system.

Jacobson Method Good for providing user driven analysis models.

Booch Method Produces detailed object-oriented design methods.

Object Modeling Technique (OMT) or Rum Baugh ET AL‘s Object


Modeling Technique:

The object modeling techniques (OMT) presented by Jim Ram Baugh and
his counters describes a method for the analysis, design and implementation or
system using an object-oriented technique. Object modeling technique (OMT) is
a fast, intuitive approach for identifying and modeling all the objects all the
objects making up a system. The information such as class attributes, methods,
inheritance and association also can be expressed easily. The dynamic behavior
of objects within a system is described in OMT dynamic model. This dynamic
model specifies the detailed state transition and description. The relationships
can be expressed in OMT‘s functional model.

OMT consists of four phases, which can be performing iteratively.

Analysis: The results are objects and dynamic and functional models.
System design: The results are a structure of the basic architecture of
the system along with high-level strategy decisions.

Implementation: The activity produces reusable, extensible and robust code.

OMT separates modeling into three different parts.

• An object model:

Presented by the object model and the data dictionary.

• An dynamic model:

Presented by the state diagrams and event flow diagrams.


• Functional model:

Presented by data flow and constraints.

The Object model:

It describes the structure of objects in a system, their identity,


relationships to other objects, attribute and operations. This model is graphically
represented by an object diagram, which contains classes interconnected by
association lines. The object diagram contains classes interconnected by
association lines. The association lines establish relationships among the
classes. The links from the objects or one class to the objects or another class.

The OMT object model of a bank system

The object model of bank system. The boxes represent classes and
the field triangle represents specialization.

Client

Client Account
Transaction
First name
Account
Account Transaction Trans date
Last name
Number
Trans time
Pin code
Balance
Trans type
Deposit
Amount
With draw post balance
Create transaction

Checking account Saving


Checking Saving Account

With draw Account

The OMT dynamic model

OMT provides a detailed and comprehensive dynamic model. The state transition
diagram is a network of states, transitions, events, and actions. Each state receives one
or more events and the next state depends on the current state as well as the events.
No
been selected

Nothing is
Account has

selected
been selected

Selected
Select

checking or
checking
savings
account

Select
Enter the

transaction
amount

type

Confirmation
The OMT functional model

The OMT data flow diagram (DFD) shows the flow of data between different
processes in a business. An OMT DFD provides a simple and intuitive method for
describing business process with out focusing on the details of computer systems.

Data flow diagrams use four primary symbols:

Process:

The process is any function being performed. ( ex: verify


password or pin in the ATM)

Data flow:

The data flow shows the direction of data element movement.

Data store:

The data store is a location where data is stored. (ex: account


in ATM)
External entity:

The external entity is a source or destination of a data element. ( ex:

ATM card reader)

carsatium

Bad bank code


ATM Card Bank code
Select bank
reader

Bank

Card code Invalid card code

Use
Select
keyboard
card
entry
tion
type
Verify
User screen Select

selection account password

Update

account

ATM data flow diagram

system architect
User

The Booch Methodologies:


The Booch Methodologies is a widely used object-oriented method.
It helps to design our system using object paradigm. It covers the analysis and
design phases of an object-oriented system. Booch uses large set of symbols.
We will never use all these symbols and diagrams. We start with class and object
diagrams in various steps. The Booch method consists of the following diagrams.

Class Diagrams.
Object Diagrams.

State Transition Diagrams.


Module Diagrams

Process Diagrams

Interaction Diagrams.

Car

color

manufacturer superclass
cost

inherits

Ford

inherits
Mustang Escort
Taurus

The Macro Development Process:

The macro process serves as a controlling frame work for the micro
process and can takes weeks (or) even months. The technical management of the
system is interested less in the actual object-oriented design than in how well the
project corresponds to the requirements set for it and whether it is produced on time.

The macro development process consists of the following


steps. Conceptualization.

Analysis and Development of the Architecture.


Design or Create the System Architecture.
Evolution or Implementation.

Conceptualization:

* Establish the core requirements of the system.

* Establish a set of goals and develop a problem to prove the concept.

Analysis and Development of the Model:

The class diagrams are used to describe the roles and responsibilities
of objects to carry out in performing the desired behavior of the system.

The object diagrams describe the desired behavior of the system


in terms of scenarios.

The interaction diagrams are also used to describe the behavior


of the system in terms of scenarios.

Design or Create the System Architecture:

* The class diagram is used to decide what classes exist and how they relate to
each other.

* The object diagrams decide what mechanisms are used to regulate how
objects collaborate.

* The module diagram used to map out where each class and object should be declared.
* The module diagram is used to determine which processor to allocate a process. It
also determines the schedule for multiple processes on each relevant processor.

Evolution or Implementation:

Produce a stream of software implementation after a successfully


refining the system through many iterations.

Maintenance:

Make localized changes to the system to add new requirements and


eliminate bugs.

The Micro Development Process:


Each macro development process has its own micro development
process. The micro process is a description of the day to day activities by a
single (or) small group of software developers.

The micro development process consists of the following steps.

* Identify classes and objects.


* Identify class and object semantics.
* Identify class and object relationships.
* Identify class and object interface and implementation.

The Jacobson Methodologies:

The Jacobson methodologies cover the entire life cycle and stress trace
ability between the different phases, both forward and backward. This trace ability
enables reuse of analysis and design work. The heart of their methodologies is the use-
case concept, which evolved with objectory (Object Factory for Software Development)

Object-oriented Business Engineering (OOBE)

Object-Oriented Software Engineering (OOSE)

The Booch methodology prescribes a macro development and micro


development process.

Use Cases

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 description must contain:


How and when the use case begins and ends.

The interaction between the use case and its actors, including
when the interaction occurs and what is exchanged.

How and when the use case will store data in the
system. Exceptions to the flow of events.

Library

Checking out books

Getting an

Interlibrary loan
Object-Oriented Software Engineering: Objectory

Object-oriented software engineering (OOSE), also called Objectory, is a


method of object-oriented development with the specific aim to fit the
development of large, real-time systems.

Objectory is built around several different models:

Use case model.

Domain object model.


Analysis object model.
Implementation
model. Test model.
Use-case model

Tested in
Realized by
Express in Structured by
Implemented by

OK

NOT OK

Domain Object Analysis Design model Implementation Testing model

Model Model Model

Use case model.


The use case model defines the outside (actors) and inside (use
case) of the system behavior.

Domain object model.

The objects of the real world are mapped into 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, specifications, and reports.

Object-Oriented Business Engineering (OOBE)

Object-oriented business engineering (OOBE) is object modeling at the


enterprise level.

Use cases again are the central vehicle for modeling, providing traceability
throughout the software engineering processes.

OOBE consists of:

Analysis
phase Design
Implementation phases
and Testing phase.

Analysis phase

The analysis phase defines the system to be built in terms of the problem-
domain object model, the requirements model, and the analysis model. The
analysis process is iterative but the requirements and analysis models should be
stable before moving to subsequent models.

Design and Implementation phases

The implementation environment must be identified for the design model. The
analysis objects are translated into design objects that fit the current implementation.

Testing phase.

There are several levels of testing and techniques. The levels include unit
testing, integration testing, and system testing.

Patterns
A pattern is instructive information that captures the essential structure and
insight of a successful family of proven solutions to a recurring problem that
arises within a certain context and system of forces.

The main idea behind using patterns is to provide documentation to help


categorize and communicate about solutions to recurring problems.

The pattern has a name to facilitate discussion and the information


it represents.

A good pattern will do the following:

It solves a problem.

Patterns capture solutions, not just abstract principles or strategies.

It is a proven concept.

Patterns capture solutions with a track record, not theories or speculation.

The solution is not obvious.

The best patterns generate a solution to a problem indirectly—a


necessary approach for the most difficult problems of design.

It describes a relationship.

Patterns do not just describe modules, but describe deeper system


structures and mechanisms.

The pattern has a significant human component.

All software serves human comfort or quality of life; the best patterns
explicitly appeal to aesthetics and utility.

Generative Patterns:

Patterns that suggest the way of finding the solution

Non Generative patterns:


They do not suggest instead they give a passive solution. Non Generative
patterns cannot be used in the entire situation.

Patterns template

There are different pattern templates are available which will represent a pattern.
It is generally agreed that a pattern should contain certain following components.

Name A meaningful name.

Problem A statement of the problem that describes its intent.

Context The preconditions under which the problem and its solution seem to recur
and for which the solution is desirable. This tells us the pattern‘s applicability.

Forces constraints and conflicts with one another with the goals which we
wish to achieve.

Solution solution makes the pattern come alive.

Examples sample implementation


Resulting context describes the post conditions and side effects of the pattern.

Rationale justifying explanation of steps or rules in the pattern. This tells how
the pattern actually works, why it works and why it is good.

Related patterns. The static and dynamic relationships between these


patterns and others with in the same pattern language or system.

Known uses The known occurrences of the pattern and its application within
existing systems.

Anti patterns

A pattern represents a best practice whereas an anti pattern represents


worst practice or a lesson learned.

Anti patterns come in two varieties:

Those describing a bad solution to a problem that resulted in a bad situation

Those describing how to get out of a bad situation and how to proceed
from there to a good solution.

Capturing Patterns

Guidelines for capturing patterns:

Focus on practicability.

Aggressive disregard of originality.


Nonanonymous review.
Writers' workshops instead of
presentations. Careful editing.

Frameworks:

Frameworks are the way of delivering application development patterns to


support/share best development practice during application development.

In general framework is a generic solution to a problem that can be applied to all


levels of development. Design and Software frameworks and most popular where Design pattern
helps on Design phase and software frameworks help in Component Based Development phase.

Framework groups a set of classes which are either concrete or abstract. This
group can be sub classed in to a particular application and recomposing the necessary items.

d. Frameworks can be inserted in to a code where a design pattern cannot


be inserted. To include a design pattern the implementation of the design
pattern is used.
e. Design patterns are instructive information; hence they are less in space where
Frameworks are large in size because they contain many design patterns.

f. Frameworks are more particular about the application domain where


design patterns are less specified about the application domain.

Note:

Include the details of Microsoft .Net development framework.

Differences Between Design Patterns and Frameworks

Design patterns are more abstract than frameworks.

Design patterns are smaller architectural elements than frameworks.


Design patterns are less specialized than frameworks.

Object Oriented Methodologies

There are different methods for modeling object oriented systems. Each methodology
can represent same model with varying documentation style, Modeling language and notations.

1. Rumbaugh‘s Object Modeling Technique

• The system can be modeled with the help of 3 different models


1. Object Model
2. Dynamic Model
3. Functional Model

• These models are related to different phases as they are the outcome of
each phase.

• In analysis phase less detailed [more abstract] representation of object,


dynamic and functional model are used.
• In system design phase Architectural diagram is drawn that represents
blocks are relations.

• In object design the models generated during analysis phase are refined.

• In implementation phase reusable robust code is generated from the design.

• Object Model:
o It‘s an object diagram containing interrelated objects.

o Objects are represented by object notation and it contains Name,


Behavior and attributes.
o Association lines represent the relationship between the objects.

One – to – One relationship is one in which an object uses only


one object at the other end. [Represented by straight line].

One – to – Many relationship is one in which an object at one end


uses many objects at the other end. [Represented by bubbled line].

Specialized relationship [Inheritance] – is one in which the one


object is a type of other object. [Represented by filled triangle].

Do

course
College Studies Student Private

Center

Is a type

of

Physically

Handicapped

o In the above example there exist an one to one relationship between


student and college as a student studies in a college at a time

o There exists one to much relationship between student and private computer
center coz a student can courses in more than one private center.
o Physically handicapped student is a type of student [generalization].

• Dynamic Model

o Represents a set of states possessed by the system.


o Interconnected lines represent the transition between the states.
o The system performs some activity when it is in a state.

o One or more event may occur in a state and the system may undergo
transition from one state to the other state based on the event.
o State transition can be triggered by an event or completion of an activity.
o Hence next state depends on the current state and event.
Card INS
Idle Reading

Read
No Card
Complete

Verification

User gave

Trans

option

Process

o The above diagram shows the different states of an ATM machine.


o The system remains in idle state until the user inserts card when user
inserts card the system goes to Reading state and once it‘s completed the
system goes to verification state and prompt for process choice option.

o The system goes to Process state when the user gives the option for
transaction.

• Functional Model [Data Flow Diagram]


o Represents flow of data between various functional blocks of the system.
o A functional model may be an external device, process or a Data store.

o Functional blocks are connected by labeled line that represents flow of


data between various functional models.
PIN Reader/ Choice

Scanner

Digital
Camera
Image

PIN Wise
Status
C
o
PIN/Choice Processd
e
PIN
W
i
Account wise
s
e
Choice

Barcode
Process

Bar Code
Process

S Trans
t
a
t
u
s
o The above diagram represents the flow of data between various
functional blocks.
o The external devices/entities
I are represented in a rectangular box
m
o The Process is represented in a oval shape which performs a
particular functionality. a
g
o The Data Store [InformationeStorage] is represented inside a parallel line.
o Labeled arrows represent direction of flow of data and the date itself.
W
i
s
e
Imag
e
Process
2. The Booch Methodology

o Booch provides a technique for creating more informative model.

o This approach provides a large set of notations so that a complete model


can be built during the analysis and design phase.

o Booch gave equal importance to process [Management Aspect] and


diagrams [Technical].
o Diagrams introduced by Booch are
1. Class Diagram
2. State Transition Diagram
3. Module Diagram
4. Process Diagram
5. Interaction Diagram
o Booch define process in terms of Macro Process and Micro Process.
o Diagrams:
o Class Diagram
Represents a set of interrelated classes.

This diagram shows the existence of various classes and


logical relation between them.

operat
ion

Class Name

attributes
General Notation for a class

Association

Inheritance

Has

using
• Association can be quantified with the help of
Cardinality.

Student
Course
Name 1
1..N Name
Number
Year

The above class diagram represents the


association between student class and Course
class. The cardinality says that each student
can attend one course and each course can
have any number of students.

Note: For 16 marks question convert all the


UML diagrams in to Booch diagrams.
o Interaction Diagram

An interaction diagram is used to trace the execution


scenario in the same context as an object diagram.

Interaction diagram includes objects involved in the


sequence of communication.

The interaction diagram represents the sequence of


message passing among related objects.
ISP

BROWSER
WEBSERVER DATABASE

Http Req

Http Req

SQL query

Result set

HTML Page

HTML Page

The above interaction diagram represents the sequence


of message passing between various objects.

[Note: Explain the sequence]

o Module Diagram
Module diagram is used to show the allocation of classes and
objects to modules in the physical design of the system.

A single module diagram represents the view of module


structure of the system.

These diagrams are used to indicate the physical


layering of the system during architectural design.

Module diagram contains modules and dependencies.


Dependencies are represented by straight line.

Data Processing Printer Control

User Interface
o State Transition Diagram

State transition diagrams represent the different states


of the machine as whole or different states of an object.

The states are named and represented in a state icon.

Various transitions between states are represented by


directed line with the event and result.

This labeled line says that when that particular event occurs
the machine undergoes transition from one to another state.
No card Insterted/ waitfor card()

Inserted Card

Idle Valid Card


Read/Validate
Process

invalid card

o Process Diagram

Process Diagram is used to show the allocation of process


to processors in the physical design of the system.

The process diagram is used to indicate the physical


collection of processors and devices.

The processor is represented by cube with shaded sides


and device is represented by a cube.

BAR code

scanner
Validatorq

Digital
Came ra

o The Process – Booch gave the concept of Macro process and Micro
Process. It highlights the management aspect.

o The Macro Development Process – Concerns about the management


aspect of the system. The entire process is composed of a set of
Macro Development Process. The set of Macro process are

Conceptualization – core requirement of the system

Analysis and Development of the Model – Trace the use


of the software, actors, what the system should do.
Design and Create System Arch. – Set of interconnected
classes with detailed representation of properties and
behavior. Various modules that exist from OO
decomposition are represented.

Evolution or Implementation – After successful iterations


of previous steps the representation is implemented in
programming languages.

Maintenance – It is carried out to make changes needed


after the release because of new requirements.

o The Micro Development Process – It represents the set of minute


activities that belongs to a Macro Development Process. In detail
the Micro development process represents the minute set of
activities carried out by a programmer or group of programmers.
o The steps involved are

Identify classes and objects


Identify class and semantics
Identify class and relationship

Identify class, object interfaces and implementation

2. The Jacobson Methodology

o Jacobson and team came with the concept of Object Oriented


Software Engineering and Object Oriented Business Engineering
which covers the entire project life cycle.
o Use Case is introduced by this team and later it is adopted in UML.

o Use Case diagram captures the complete requirements of the user and
is used in almost all the phases of the software development.
o Use Case represents the interaction between the actor and the system.
ud

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri

Enquiry

4.00 Unregistered Trial Version E<<Uses>>A0 0 Unregistered Tri

Check Card

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri


<<Uses>>

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri


Borrow Books

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri


Member Return Books

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri

Renev al Books

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri

4.00 Unregistered Trial Version EA 4.00 Unregistered Tri

o Use Case diagram contains a set of use case where a single use case
represents a flow of events.

o There exist <<extends>> and <<uses>> relationships between the


various use cases.

o If a use case extends a particular use case the derived case does
some functionality more than the base use case.

o The relation between two use cases is said to be <<uses>> if one use
case invokes the used one whenever needed.
o In the above example the Member (actor) may borrow books or return
books in a library.

o In both the cases the card should be checked and redundancy can be
eliminated by establishing uses relationship.

o An use case is said to be concrete if that particular case is initiated by the


actor where a abstract use case is one which is not initiated by the actor.

o Object Oriented Business Engineering is a variant of Object Oriented


Software Engineering.
o Various model specified by Jacobson are
o Use Case Model – Needs of the user.
o Domain Object Model – mapped real world objects.

o Analysis Model – represents what should be done and how


should be done to the customer to satisfy them

o Implementation Model – represents the runtime representation


of the system.
o Test Model – represents the test plan, specifications and the report.
UML

(Unified Modeling Language)

Model Represents an abstract of the system. It is build prior to the original system. It
can be used to make a study on the system and also can be used to analyze the effect
of changes on the system. Models are used in all disciplines of engineering.

Static Model Represents the static structure of the system. Static models are stable and they

don‘t change over time.

E.g. Class diagram.

Dynamic Model Collection of diagrams that represents the behavior of the system over time.

It shows the interaction between various objects over time.

E.g. Interaction Diagram.

A model includes

a) Model Elements – Fundamental modeling concepts and semantics.

b) Notation – Visual rendering of model elements.

c) Guidelines – Expression of usage.


Technique of creating models. It is also a good medium of communication
between developers at various levels.

• Clarity – Visual representations are mode clear and informative than listed
or written documents. Missed out details can be easily found out.

• Familiarity – Similar modeling language and techniques is followed by


developers working in same domain.

• Maintenance – Changes can be made easily in visual systems and


changes can be confirmed easily.

• Simplification – More complex structures can be represented in an


abstract manner to deliver the conceptual idea.

Unified Modeling Language:


It‘s a language for modeling software systems. This language is used for specifying,
visualizing, constructing and documenting software systems through out the development.
(Mostly object oriented development).UML is used to model systems build through Unified
Approach. Unified Approach combines the methodologies of Booch, Rumbaugh and Jacobson.

Models can be represented at different levels based on the abstraction and


refinement. A complete model can be obtained only after continuous refinement of UML
diagrams. UML is composed of 9 graphical diagrams:

1) Class Diagram

2) Use – Case Diagram

3) Behavior Diagram

a. Interaction Diagram

i. Sequence Diagram

ii. Collaboration Diagram

b. State Chart Diagram

c. Activity Diagram

4) Implementation Diagram

a. Component Diagram

b. Deployment Diagram

UML Class Diagram:

Class diagram represents the types of objects in the system and the
various kinds of static relationships that exist between them. Class diagrams are used in
object modeling where real world objects are mapped to logical objects in computer
program. Notations and symbols used in Class diagrams are

1) Class Notation
2) Object Diagram

3) Class Interface Notation

4) Binary Association Notation and Association Role

5) Qualifier

6) Multiplicity

7) OR Association

8) Association Class

9) N – ARY Association

10) Aggregation and Composition


11) Generalization

1) Class Notation:

Classes are represented in a rectangular box. The top box has the name, the middle one

has the attributes/properties/data members and the lower one


has the behavior/ member

functions/ methods. A Box with a class name represents the most abstract representation of a

class.

E.g.

Vehicle

Vehicle

Vehicle
- Color
Color
- Brand
Brand
- Owner
Owner

#Drive()

+Stop()

-Turn()

-Reverse()

All the above diagrams represent the same class in different levels of abstraction.
Visibility of members can be specified using -, + and # symbols.

- indicates a private member


+ indicates a public member
# indicates a protected member.

2) Object Diagram:

Object diagram is an instance of a class diagram. It gives a detailed state of a system at


a particular point of time. Class diagrams can contain objects and Object diagram cannot
contain classes. Hence Class diagram with objects and no classes is called an object diagram.

My car

Color: red

Brand: Ford
3) Class
Owner: Mr. Doss

It represents the externally visible behavior of a class. Externally visible behaviors


are public members. The notation is small circle with a line connected to a class.

Print
Print Control

4) Binary Association Notation and association role:

It represents the association between two classes represented by a straight line


connecting 2 classes. Association has got a name written on the line and association role

Works for

Company Person

Employer Employee

In the above diagram Works for is the association that exist between Person and
Company. The arrow mark indicates the direction of association. i.e., The Person Works
for the company.

Association Role: it‘s related to association. Each class that is a member of an association
plays a role in the association called association role. E.g. The person plays the role of EMPLOYEE
in the WORKS FOR association where a company plays the role of EMPLOYER.

5) Qualifier:

Qualifier is an attribute of an association. It makes the association more clear.


Account
Bank
maintains 1..2

Person

The qualifier here is the account and it defines that each instance of account is
related to 1 or 2 person. Hence the account qualifies the association maintains.

6) Multiplicity:

It gives the range of associated classes. It is specified of the form lower


bound..upper bound or integer. Lower bound must be an integer where upper bound
can be an integer or a *. * Denotes many.
When a multiplicity is stated at one end it states that each class at the other end can
have relation with stated number of classes at the nearer end.

E.g:

The below diagrams says that each course can have any number of students OR each
student may attend any number of courses.

Also each department has one or more courses and a course may belong to one or
more departments.

Dept

1..*

has

1..*

attends

Student * * Course
7) OR – Association:

It‘s a relation in which a class is associated to more than one class and only one association
is instantiated at any instance of time for an object. It is represented by a dashed line connecting two
associations. A constraint string can be used to label the OR association line.

COMPANY

CAR
{or}

Is owned by

PERSON
8) Association Class:

It‘s an association that has class properties. The association class is atta.ched to an

association with a dashed line

Works

for
Person
Company

emplo emplo

yer yee

Works For

Salary

Here the works for relation has got one attribute salary. Hence an association class is maintained.

9) N – Ary Association:
It‘s an association where more classes participate. They are connected by a big diamond

and the name of the association is named near the line


college

1..* studies

Student
Class

* class

Mark

Sem

Mark[8]

avg

10) Aggregation and Composition:

Aggregation is a ‗part – of‘ association. Containment is a type of aggregation


with weak ownership where composition is a part of relationship with strong owner ship.
For E.g

A Car consist of Engine, Door, light etc..


[Composition] A Car contains a Bag [Containment]

Containment is represented by a line with hollow diamond arrow at the end where a
Composition is represented by filled diamond at the end.

Car

for Containment.
Sweet Bag Meal Box

car
engine door

This is an example for Containment.

12) Generalization:

It is a relationship between more general and specific classes. It‘s


represented by a directed line with a hollow arrow head. Some diagrams specify
incomplete number of subclasses. It can be represented by ellipses.

… in the example diagram specifies that there are some more sub
classes of CAR class are available and they are not mentioned.

E.g.

CAR

Benz
Ford Maruthi

EXAMPLE FOR A CLASS DIAGRAM:


cd

0 Unregistered Trial Version EA 4.00 Unregistered


ShopCart

Customer

- SubT otal: int

0 Version EA4 - Name:


- Salestax:

- addressToBill: int
- Total: int

* 1
- addressToShip: int

0 Version EA 4 - emailAddress: int


+ placeOrder() : void

- creditRating: int
+ CancelOrder() : void

1 1

0 Unregistered Trial Version EA 4.00 Unregistered


0 Unregistered Trial Version EA 4.00 Unregistered

0 Unregistered Trial Version EA 4.00 Unregistered


CreditCard
-

0 Unregistered Issuer: 4.
PrefferedCustomer
- Number: int

- ExpirationDate: int
- Discount%:

* 1
0 Unregistered 4.

+ AuthoriseCharge() : void

0 Unregistered Trial Version EA 4.00 Unregistered

0 Unregistered Trial Version EA 4.00 Unregistered

0 Unregistered Trial Version EA 4.00 Unregistered


ItermsToPurchase
0 Version EA 4.00 Unregistered
- Quantity:

- PricePerunit: int

0 + addItem() : void Version EA 4.00 Unregistered


+ removeItem() : void

0 Unregistered Trial Version EA 4.00 Unregistered

Note: like this study all the diagrams

UNIT-III

Object Analysis: Classification

Classification:

It‘s the technique of identifying the class of an object rather than individual objects. In other
words it‘s the process of checking whether the object belong to particular category or not.
Classification Theory:

Many persons introduced many theories for classification.

1. Booch: Classification guides us in making good decisions for modularization using the
property of sameness. The identified classes can be placed in same module or in different
module based on the sameness. Sameness/ Similarity can be measured with coupling and

cohesion. Cohesion is the measure of dependency between the


classes/packages/components in a module where coupling is the measure of
dependency between different modules. In real software development prefers
weak coupling and strong cohesion.

2. Martin and Odell: Classification can be used for well understanding of concept
[Building Blocks].These classes iteratively represent the refinement job during
design. Classes also act as an index to various implementations.

3. Tou and Gonzalez: Explained classification based on physicophysiology i.e., the


relation between the person and the system. When a person is introduced to a
system the human intelligence may help him to identify a set of objects and
classes which later can be refined.

Classification Approaches:

Many approaches have been introduced for identifying classes in a domain. The most
used ones are

1. Noun Phrase Approach


2. Use – Case driven Approach
3. Common Class Approach
4. Class Responsibilities and Collaborators

1. Noun Phrase Approach:

The classes are identified from the NOUN PHRASES that exist in the
requirements/ use case. The steps involved are

1. Examining the use case/ requirements.


2. Nouns in textual form are selected and considered to be the classes.
3. Plural classes are converted into singular classes.
4. Identified classes are grouped into 3 categories
a. Irrelevant Classes – They are the unnecessary classes
b. Relevant Classes – They are the necessary classes
c. Fuzzy Classes - They are the classes where exist some
uncertainty in their existence.
5. Identify candidate classes from above set of classes.

Guidelines for selecting candidate classes from Relevant, Irrelevant


and Fuzzy set of classes.

1. Redundant Classes – Never keep two classes that represent similar information
and behavior. If there exist more than one name for a similar class
select the more relevant name. Try to use relevant names that are use
by the user. (E.g. Class Account is better than Class Moneysaving)

2. Adjective Classes – An adjective qualifies a noun (Class). Specification of


adjective may make the object to behave in a different way or may be totally
irrelevant. Naming a new class can be decided how far the adjective changes
the behavior of the class. (E.g. The behavior of Current Account Holder
differs from the behavior of Savings Account Holder. Hence they should be
named as two different classes. In the other case the toper adjective doesn‘t
make much change in the behavior of the student object. Hence this can be
added as a state in the student class and no toper class is named)

3. Attribute Class – Some classes just represent a particular property of


some objects. They should not be made as a class instead they can be
added as a property in the class. (E.g. No Minimum Balance, Credit
limit are not advised to named as a class instead they should be
included as an attribute in Account class).

4. Irrelevant Class – These classes can be identified easily. When a class


is identified and named the purpose and a description of the class is
stated and those classes with no purpose are identified as irrelevant
classes. (E.g .Class Fan identified in the domain of attendance
management system is irrelevant when u model the system to be
implemented. These type of classes can be scraped out.)

The above steps are iterative and the guidelines can be used at any level of
iteration. The cycles of iteration is continues until the identified classes are
satisfied by the analyst/ designer.

The iterative Process can be represented as below

Review and

eliminate redundant

classes
Review irrelevant Review Adjectives

classes

Review Attributes
[Note: USE EXAMPLE FROM THE CASE STUDY]

2. Common Class Patterns Approach:

A set of classes that are common for all domains are listed and classes are
identified based on that category. The set of class category is listed based on the
previous knowledge (Past Experience).

The Class Patterns are

1. Concept Class

o This category represents a set of classes that represent the whole business
activity (Concept). The never contains peoples or events. These classes
represent the entire concept in an abstract way. (E.g. SavingsBank Class)

2. Events Class

o These are the category of classes that represent some event at a particular
instance of time. Mostly they record some information. (E.g. Transaction Class)
3. Organization Class

o These are the category of classes that represent a person, group of


person, resources and facilities. Mostly a group of organization class has
a defined mission (target or task). (E.g. CSEDEPT Class represents a
group of employees who belongs to Dept of CSE).
4. People Class

o This category contains the individuals who play some role in the system or
in any association. These people carry out some functions that may be
some triggers. People class can be viewed as a subcategory of
Organization class. This category again contains 2 subsets

i. People who use the system (E.g. Data Entry Operator who use the
system for entering attendance may not be an employee of the
college but a contract staff.)

ii. People who do not use the system but they play some role in the
system. (E.g. Lecturer, Students, Instructor etc)

5. Place Class

o This category of classes represents physical locations which is needed to


record some details or the place itself is recorded in detail. (E.g.
Information about BLOCK1 where CSE dept functions).
6. Tangible things and Device Class

o This category includes tangible objects and devices like sensors involved
in the system.

[Note: USE EXAMPLE FROM THE CASE STUDY]

3. Use Case Driven Approach – Identifying Classes

Use case diagram/ Model represents different needs of the user and various actors
involved in the domain boundary. Unified Approach recommends identification of objects with
the Use Case model as the base. Since the use case represents the user requirements
the objects identified are also relevant and important to the domain.

The activities involved are

1. A particular scenario from an use case model is considered


2. Sequence of activities involved in that particular scenario is modeled.
3. Modeling the sequence diagram needs objects involved in the sequence.
4. Earlier iteration starts with minimum number of objects and it grows.
5. The process is repeated for all scenarios in the use case diagram.
6. The above steps are repeated for all the Use Case diagrams.

[Note: USE EXAMPLE FROM THE CASE STUDY, SPECIFY ATLEAST 2 LEVELS OF
ITERATION FOR A SINGLE USE CASE SCENARIO]

3. Classes, Collaborators, Responsibilities – Classification (CRC)

Classes represents group of similar objects.

Responsibilities represent the attributes and methods (responsibilities of the class)

Collaborators represent other objects whose interaction is needed to fulfill the


responsibilities of the class/object.

CRC Cards – They are 4‖ X 6‖ cards where all the information about the objects is written.

Class Name Collaborators

Responsibilities

..
The above diagram represents the format of a CRC card. It contains the class name
and responsibilities on the L.H.S compartment. Class name on the upper left most
corner and responsibilities in bulleted format. Class Name identifies the class and
Responsibilities represent the methods and attributes. Collaborators represent the other
objects involved to fulfill the responsibility of the object.

This information on the card helps the designer to understand the responsibilities and
collaborating classes.

The Process involves

• Identify classes.

• Identify responsibilities.

• Find out the collaborators and need.

• Create CRC card for each class identified.


Identify classes

and

responsibility

Identify

Assign
Collaboration
Responsibility

E.g.

Account

• Balance Current Account

• number (Sub class)

• withdraw()

• deposit() Saving Bank

• getBalance() (Sub class)

Transaction.

The above diagram shows an example of a CRC card representing Account Class.

Its responsibility is to store information like Balance, Number and to have behaviors like
withdraw, deposit and getBalance.

Account class has 2 subclasses. They are Current Account and Savings Account. It
also collaborates with Transaction class to fulfill the responsibilities.
Guidelines for Naming Classes:

• Use singular Class Name

• Use Comfortable/ relevant names

• Class Name should reflect the responsibility

• Capitalize class names or Capitalize first letter

Identifying Object Relations, Attributes and Methods.

1. Association:-

Association represents a physical or conceptual connection between 2 or more objects.

Association is represented by a straight line connecting objects.


Binary association exists between 2 objects/ classes.

Trinary association exists between 3 objects/ classes.

N- Ary association exists between N objects/ classes.

Association names make the association more informative. It is the label


attached to the line representing the association.

Association role is the role played the objects involved in the association. It is
attached to link representing the association.

Works for

Company Person
Employer Employee

The above diagram represents the association between the person and the
company. The association says that Person object works for a company object.

Association Name: Works for

In this association Company plays the role of employer and person plays the role of employee.

Steps in identifying associations:

Associations are identified by analyzing the relationship among classes. The


dependencies are found out by analyzing the responsibilities of the class.

Answers for the following questions can be used to identify the associations.
1. Is the class capable of doing all its responsibilities?
2. If not what does it need?
3. What are the other class needed to fulfill the requirements?

Some cases the associations are explicit where in other cases they are identified from
general knowledge.
Common Association Patterns:

These patterns and associations are group of associations identified by good


expertise persons and researchers.

For Example

• Location Pattern – associations of type next to, part of, contained in that represents
association with respect to the physical location. For e.g. tyre is a part of car.

• Communication Pattern – association of type talk to, order to that represents


associations with respect to communication. For e.g. driver turns the vehicle.
These patterns are maintained in the repository as groups and when a new
association is identified it is placed in the relevant group.

Guidelines for eliminating unnecessary associations:

1) Remove implementation associations separate those associations that represent


associations related to implementation. Postpone these issues to later stages of design
or initial stages of coding.

2) Eliminate higher order associations by decomposing them into set of binary


associations. Higher order associations increase the complexity where binary relations
reduce complexity by reducing the confusions and ambiguities.

3) Eliminate derived associations by representing them in simpler associations. For e.g.


Grand Parent Association can be represented in terms of two parent relationship.
Hence it is enough to deal the parent relationship and no grandparent relationship.

1. Super – Sub Class Relationship (Inheritance):-

Super – Sub class relationship known as generalization hierarchy. New classes can
be built from other classes hence the effort for creating new classes gets reduced. The
newly built class is called a derived class and the class from which the new class is built is
called Base Class. This inheritance allows user to share the attributes and methods.

[ NOTE: Give one example]

Guidelines for identifying Super – Subclass relationship

1) Top – Down: - Identify more generalized classes first analyze the purpose and
importance of those classes. If necessary identify the specialized classes and represent
them. If needed increase the number of levels of generalization/ inheritance.

2) Bottom – Up: - Identify classes and compare them for similar properties and methods. If
generalization applies find a new class that can represent the similar classes.

3) Reusability: - Analyze the specialized classes and check weather similar properties/ behavior
lie in same layer. If such members exist push them to top most level as possible.

4) Remove multiple inheritance if it creates any ambiguity in the design. Such inheritance
Object Oriented Analysis:

Analysis is a process of transforming a set of facts into a set of complete, unambiguous

and consistent picture of requirements of the system must do to fulfill the user‘s requirement

needs.

In this phase developer will analyze how the user will use the system and what should be

done to satisfy the user. The analyst may user the following technique

1. Examination of existing system requirements


2. Interviews

3. Questionnaire

4. Observation

Analysis is a difficult process because of the following contents in the SRS

1. Fuzzy descriptions

2. Incomplete requirements

3. Unnecessary features

Business Object Analysis process:

In three tire architecture the business layer actually implements the logic that
solves the requirement. Hence analysis done for objects in business layer. The Object
Oriented Analysis Process involves the following steps

1. Identify the actors who use the system

a. Who is using the system? OR

b. Who will be using the system?

2. Develop the simple business process model using an Activity diagram

3. Develop Use Case

a. What are the users doing with the system?

b. What are the users going to do with the system?


4. Prepare Interaction diagram for classification

5. Classification

a. Identify classes

b. Identify relationships

c. Identify attributes

d. Identify methods

6. Iterate and refine

1. Identifying Actors:
Actor represents the role of a user with respect to the system. An user may play
more than one role. Analyst have to identify what are the roles played by the user and
how they use. Actors can be identified using the following questions

1. Who is using the system?

2. Who is affected by the system?

3. Who affects the system?

4. What are the external systems used to fulfill the task?

5. What problems does this application solve and for whom?

6. How users use the system?

Jacobson provides two – three rule in identifying actors. i.e. start with 2 or 3 classes
(minimum) number of classes and refine on later iterations.

[ Note: State the ATM System domain and specify the actors found from the Case
Study] 2. Developing a Simple Business Process Model

The entire set of activities that takes place in the domain are represented with the help of
a simple Business Process Model created with an UML activity diagram. This makes each
member of the team very familiar with the domain and overall activities that takes place when a

aduser uses the system in the domain.

MEMBER ARRIVES AT ATM

CENTER

INSERY CARD
ENTERS

PASSWORD

CORRECT

PIN?

SELECT THE

TRANSACTION

TYPE

PERFORMS

TRANSACTION

MORE

TRANSACTION?
The above diagram represents the Business Process Model for an ATM System. It
lists out following activities done by the user in an ATM Center.

1. User enters the ATM Center and inserts the card


2. He Enters the PIN
3. If he enters an incorrect PIN machine ask for correct PIN
4. User selects the type of Transaction
5. System Performs the Transaction
6. User collects the cash, card and leaves the ATM Center.

2. Develop use case model.

Use case diagram represents various requirements of the user. This use case model can be

used in most of the phases.

It consists of

a. Actors involved
b. Various Scenarios (Use Cases)
c. Communication between actors and use cases
d. Relation between various use cases
i. USES
ii. Extends

a. Actors: Actors represents the role played by the user with respect to the system. An user may play

more than one role. Actors are represented by any of the three ways in UML

<< ACTOR>>
Client

Client

<<Client>>

While dealing with the actors importance is given to the role than the people. An actor uses more

than one use case.


b. Use Cases: Use Case represents the flow of events/ sequence of activities possible in the system.

A use case can be executed by more than one actor. An use case is developed/ named by grouping a

set of activities together.

Use Case Name

c. Communication between actors and use case. Communication between an actor and use case is

represented by a straight line connecting the actor and the use case. The line represents that the actor/

user uses that particular use case. An actor may use more than one use case.

62
d. Relation between Use Case.

i) Uses – This relationship exist when there is a sub flow between use case. In order to avoid
redundancy (created in all the places where there is a sub flow) sub flow is represented by a
single Use Case and it can be used by any Use case. This is a way of sharing use cases.

Transfer Money Uses

Check Balance

Debit Money Uses

ii) Extends – Extends relation exist between Use Cases if one use case is similar to
the other use case but does some more operations. (Note the same relation exist
between super – sub class). This relation helps the analyst and the designer to
establish relationship between classes and packages that implement the use case.

Deposit in to Savings

Bank
Deposit in to

Account

Deposit in to Current

Account

Abstract and Concrete Use Case:

An Abstract Use Case is one not executed by the user and it is not complete.
Abstract Use Case is used by other use case. They can be inherited.

A Concrete Use Case is one executed by the user and is complete.

Guidelines for developing Use Case:

1. Capture simple and normal Use Case first


2. Find out the mistakes and alternate ways of representing the work.

63
3. Find out the common operations among the use cases and represent
them as a specialized use case.

Documentation:

Documentation is the effective way of communication between different


developers/ team. This document reduces the gap between different phases/ team. The
detailed representation of each work and product developed during various iterations of
different phases are written. Document serves as a reference point for future reference.

Guidelines for Developing Effective Documentation:

1. Use common cover


2. Mind 80 – 20 rule while creating and referring documents.
3. Try only familiar terms in document.
4. Make document as short as possible.
5. Represent the document in an organized way.

UNIT-IV

Access Layer Design:

The need of access layer is to design/ create a set of classes that have rights and the way to

communicate with the database or data storage place. It isolates following information from the

business layer hence it gives service to the business layer.

1) Where data resides?

Local, Local server, remote server etc.

2) How data resides?

In a database, in a file, DBMS, RDBMS, ORDBMS, Internet etc.


3) How to access the stored data?

SQL, stream, File stream, ORB (for DCOM/ EJB) etc.

Access layer provides 2 important service to business layer

Translate Request The business layer is not aware of the protocol for accessing data as the

internal details are known only to the access layer classes. So any request from the business layer for

data cannot be transformed to storage as such. Such request are translated in to a form that storage

managers can understand and then transformed.

64
Business
Request Translated
Layer Access Database/

Object/ Layer Data Storage


messages Request as
Classes Classes

query etc

Translate Result The business layer objects/ classes cannot understand the data send as such
from the database/ storage. But the access layer classes can understand the format of result data
from the storage as well as the format the business layer can understand. Hence the access layer
classes translate the result data in to a form so that business layer can understand.

Business
Translated Unformatted
Layer Access Database/
result result from
Object/ Layer Data Storage
storage
Classes Classes

Persistent Data Persistent data is one which exists between executions. These data is to
be stored permanently for future executions.

E.g. In a student class the name, no, address etc are persistent data.
Transient Data Transient data is one that may not exist between executions. These data
are need not to be stored in database for future execution.

E.g. In a student class the variables meant for temporary purpose like temp_tot etc are transient data

Access Layer Design Sub Process:

I. Design access layer

i. Create mirror class for all classes identified in business layer


which contains persistent data.

ii. Identify access layer class relationship

iii. Simplify access layer classes and class relationship

1. Remove redundant classes

65
2. Singe method classes can be removed and added in
another class.
iv. Iterate and refine.

[Note: Explain the process in detail]

The below diagram demonstrates the sub process.

First diagram represents the step mirroring.

The second diagram represents the step of identifying relationship between access layer classes.

The third diagram represents simplified class diagram.

id Component Model

EA Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.00 Unregist


Business Layer

Access Layer

EA class1 EA Unregist
ClassDB1
Mirror Class Package

EA EA EA 4.00 Unregist

EA EA EA 4.00 Unregist
Class2 Class3 ClassDB2 ClassDB3

EA EA EA 4.00 Unregist
A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.00 Unregis

id Component Model
EA 4 Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.00 Unregist
Business Layer

Access Layer

EA class1 EA Unregist
ClassDB1
Mirror Class Package

EA EA EA 4.00 Unregist

EA EA EA 4.00 Unregist
Class2 Class3 ClassDB2 ClassDB3

EA EA EA 4.00 Unregist

A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.00 Unregis

66
id Component Model

EA 4.00 Unregistered Trial Version

Access Layer

EA
ClassDB1

EA

EA
ClassDB3

EA

EA 4.00 Unregistered Trial Version

Study of Object Storage Techniques:

DBMS – Database Management System is a set of programs that enables the creation and
maintenance of collection of related data. The DBMS and associated programs access,
manipulate, protect and manage the data.

Lifetime of objects/ data can be categorized as following

Transient:

1. Transient results to the evaluation of expression.


2. Variables involved in procedure activation
3. Global variables that are dynamically allocated
Persistent:

1. Data that exist between different executions of programs.


2. Data that exist between different versions of programs
3. Data that outlive a program.

Study of DBMS:

DBMS – Database Management System is a set of programs that enables the creation and
maintenance of collection of related data. The DBMS and associated programs access,
manipulate, protect and manage the data.

DBMS also contains the full definition of the data formats. It is called meta data or schema.
Since the complexity and issues regarding the storage lies with in the DBMS it provides a
generic storage management system.

Database Views:

The low level storage details are isolated from the user and for better understanding the
logical concepts are supplied to the user.

The various logical concepts are represented by different database views.

67
Database Models:

A Persistence – This refers to the life time of an object. Some objects outlive the programs.
Persistent Objects are one whose life time is long and transient objects are those whose
lifetime is very short.

database model is a collection of logical constructs used to represent the data structure
and data relationships with in the database.

The conceptual model represents the logical nature of organization of data where a
implementation model represents the real implementation details.

1. Hierarchical Model

This model represents the data as a single rooted tree structure. Each node represents the data
object and connection between various nodes represents the parent – child relationship. This
relationship resembles the generalization relationship among objects. A parent node can have
any number of child node where each child node shouldn‘t have more than one parent node.

Motor Vehicle

Bus Truck Car

2. Network Model

A network database model is similar to hierarchical model. Here in this model each
parent can have any number of child nodes and each child node can have any
number of parent nodes.

Motor Vehicle Transport


Bus Truck Car

3. Relational Model

This model defines 4 basic concepts. Table, Primary Key, Foreign Key and relation
between tables.

Table – It‘s a collection of records form the table. The Table is composed of various
rows (tuples) and columns (attributes).

A primary key is a combination of one or more attributes which is used to identify


any tuple unambiguously. Primary never gets duplicated in a table.
Foreign key is an attribute of a table that is a primary key of another table.

68
Relation between tables – The primary key of one table is the foreign key of another table.

Also data can be searched with the combination of more then one table.

Because of these reasons the relational model is the most widely used model.

STUDENT_UNIV STUDENT_COLLEGE

Univ % of

Reg_no Name mark


College Bus

id_no Name root Area

Name Bus time

root

STUDENT_TRANSPORT

Database Interface:
The interface of a database includes Data Definition Language (DDL), Data
Manipulation Language (DML) and a query.

There are two ways to establish relation with the database

1) By embedding SQL in a program that needs an interface. Since SQL


(Structured Query Language) is one of widely accepted language usage of
SQL in a program makes programmers feel easy.

2) Extending the programming language to manage data. Here the programmers


have to know about the data models and implementation details.

DDL – Data Definition Language is the language used to describe the structure of

Objects (data) stored in a database and relation between them. This structure of
information is called Database Schema. DDL is used to create tables in a database.

E.g

CREATE SCHEMA COLLEGE

CREATE DATABASE COLLEGE_DB

CREATE TABLE STUDENT_TRANSPORT (Name char (10) NOT NULL, Busroot


number (2) NOT NULL, time TIME)

DML and Queries:

69
Data Manipulation Language is used for creating, changing and destroying data inside a
table. SQL (Structured Query Language) is the standard language for making queries.

A query usually specifies

* The domains of the discourse over which to ask the query.


* The elements of general interest.
* The conditions are constraints that apply.

* The ordering, sorting, or grouping of elements and the


constraints that apply to the ordering or grouping.

Traditional DML specifies what are the data desired and specifies how to retrieve the
data. Object Oriented DML just specifies what data is desired and not how. While
developing applications that uses SQL the mostly used way is to embed the SQL
statements inside the program.

Transaction:

A transaction is a unit of change in which many individual modifications are


aggregated into a single modification that occurs entirely or not at all. Thus all the changes
inside the transactions are done fully or none at all.

A transaction is said to be commit if all the transactions made are successfully updated
to the database and said to abort if all the changes made cannot be added to database.

Concurrent Transaction:

A transaction is said to be concurrent if it uses a database which is used by another


transactions. Hence a database lock is used to avoid problems like ―last updated‖. When a
transactions starts using a database it is locked and is not available to other transactions.

Distributed Database is one in which a portion of database lies of one node and other on
another node.

Client Server Computing.


Client – Node that request for a service

Server – Node that services the request.

Client Server computing is the logical extension of modular programming. The


fundamental concept behind the modular programming is decomposing the larger software
in to smaller modules for easier development and maintainability.

Client Server computing is developed by extending this concept i.e, modules are allowed to
execute in different nodes with different memory spaces. The module that needs and request
the service is called a client and the module that gives the service is called a server.

The network operating system is the back bones of this client sever computing. It provides
services such as routing, distribution, messages, filing and printing and network
management. This Network Operating System (NOS) is called middleware.

70
Client Program:

o It sends a message to the server requesting a service (task done by server).


o Manages User Interface portion of the application.
o Performs validation of data input by the user.
o Performs business logic execution (in case of 2 tier).
o Manages local resources.
o Mostly client programs are GUI.

Server Program:

o Fulfills the task requested by the client.


o Executes database retrieval and updation as requested by the client.
o Manages data integrity and dispatches results to the client.
o Some cases a server performs file sharing as well as application services.
o Uses power full processors and huge storage devices.

File Server – Manages sharing of files or file records. Client sends a message to the file

server requesting a file or file record. The File Server checks the integrity and
availability of file/record.

Data Base Servers – Client pass the SQL query in the form of messages to the
server in turn server performs the query and dispatches the result.

Transaction Servers – Client sends message to the server for a transaction (set
of SQL statements) where the transaction succeeds or fails entirely.

Application Servers – Application servers need not to be database centric. They


may Serve any of user needs such as sending mails, regulating download.

Characteristics of Client Server Computing:

1. A combination of client/ front end process that interacts with the user and server/
backend process that interacts with the shared resources.
2. The front end and back end task have different computing resource requirements.
3. The hardware platform and operating system need not be the same.
4. Client and Server communicate through standard well defined Application Program
Interface (API).
5. They are scalable.

Distributed and cooperative processing

In Distributed Computing the applications and business logic are distributed across
multiple processing platforms. It implies that the processing should be carried out in
different process for the transaction to be completed. These processes may not run at
same time. Proper synchronization mechanism is provided if needed.

71
Cooperative processing is a type of distributed computing where more then one process is
to be completed for completing the entire transaction. These processes are executed concurrently
on different machines and good synchronization and inter process mechanism is provided.

Distributes Object Computing offers more flexible way of distributed computing where
mobile software components (objects) travel around the network and get executed in different
platforms. They communicate with application wrappers and manage the resources they
control. In this computing the entire system is made up of users ,objects and methods.

Various DOC standards are OMG‘s CORBA, OpenDoc, Microsoft ActiveX/ DCOM.

Object Relation Mapping.

In a relational database system the data are stored in the form of tables where each
table contains a set of attributes/fields and tuple/rows. In an object oriented environment
the counterpart of class is a table.

In the mapping the classes are mapped to table such a way that the persistent data
members of classes will become the attributes. Each row in the table corresponds to an
object. The following mapping types are used in object oriented environment

1. Table – Class Mapping


2. Table – Multiple Class Mapping
3. Table – Inherited Class Mapping
4. Tables – Inherited Class Mapping

1. Table Class Mapping

It‘s a simple one – to – one mapping of a class to a table and properties of class are
become the fields. Each row in the table represents an object and column
represents a property of objects. CAR

Cost
CAR TABLE Color

Cost Color Make Model Make

Model
2. Table – Multiple Classes Mapping

Here a single table is mapped to more than one non inherited classes. So all the
persistent properties of mapped classes represents the columns of the table. The column
value that is not common for the mapped classes can be used to identify the instance.

In the below example the Employee Class and Customer Class are mapped to person
table. Instances of employee class can be identified from the rows whose custID value is NULL.
Also instances of Customer class can be identified from the rows whose empID is NULL.

Employee

Name

Name Address custID empID Address

empID
72
Mr. X A1, a2 C123 NULL

Mr.Y A2, A3 NULL E123 Employee

Name

Address

empID

3. Table Inherited Classes Mapping

In this case a single table is mapped to more than one class which has a common super class.

This mapping allows user to represent the instances of super class and subclasses in a single table.

In the given example the instances of Employee class can be identified from the
rows whose wage and salary are NULL. The instances of Hourly Employee can be
identified from the rows whose salary is NULL. The instances of Salaries Employee can be
identified from the rows with Wage as NULL.

4. Multiple Tables – Inherited Classes Mapping.

This kind of mapping allows is a to be established among tables. In a relational


database this is possible by using primary key and foreign key.

In the below example Employee and Customer inherits the properties of Person class. The
Person table is mapped to Person class, Employee table is mapped to Employee class and
Customer table is mapped to Customer Class. There exist is a relation between Employee,
person and customer, person.
cd Data Model

nregistered Trial Version EA 4.00 Unr


Person

nregistered - ssn: EA 4.00 Unr


- name:

- address:

nregistered Trial Version EA 4.00 Unr

Employee Trial Version Customer Unr

- dept: - name:

- slary: - address:
Trial Version Unr
- company:

nregistered Trial Version EA 4.00 Unr

Name Address SSN Name Dept SSN Salary

73
Name Address Company

Study of Multi Database System and Open Database Connectivity

DBMS RDBMS OODBMS DBMS

LOCAL DATABASES

MDBS

MDBS

APPLICATION

Multi database system is a heterogeneous data base system facilitate the integration
of heterogeneous database systems and other information sources. Federated multi
database systems are one that are unstructured or semi unstructured.

This multi database system provides single database illusion to the users. The user initiate
a single transaction that in turn uses many heterogeneous databases. Hence the user performs
updation and queries only to a single schema. This schema is called the global schema and it
integrates schemata of local databases. Neutralization solves the schemata conflicts.

The query and updates given to global schema by the user is decomposed and
dispatched to local databases. The local databases are managed by gateways as one gate
way for each local database.
Open Database Connectivity (ODBC) is an API (Application Program Interface) that
provides database access to application programs. The application programs can
communicate with the database through function calls (message passing) regardless of the
type and location of the database.

Datab
ODBC Driver Manager
O ase A

B Driver for Database A

Application
C
Program
A Driver for Database B Datab

P ase B

I Driver for Database C

Datab

ase C

74
The above diagram shows the logical view of Virtual Database using ODBC. The
application program uses ODBC API to communicate with the database. Application
programs passes same messages to interface irrespective of the type and location of
database. ODBC maintains a set of drivers necessary for communicating with the
database. This reduces the database related complexities for a programmer.

The driver manager loads and unloads drivers, performs status checking, manages multiple
connection and heterogeneous databases.

Design of Business Layer

Business layer involves lot of logic that is to be implemented in order to achieve the
customer needs. Analysis is carried out for business layer objects. Hence the design for
business layer has got a strong dependency with the model produced in the analysis phase.

The activities involved in Business Layer design are

2. Business Layer Class Design – apply design axioms for designing classes for
business layer. Designing classes includes designing their attributes, methods
and relationships.
I. Design/ Refine UML Class diagram developed in previous phase/ iteration.

i. Design/ Refine attributes (Use OCL)

1. Add left out attributes

2. Specify visibility, data type and initial value if any for attributes

ii. Design/ Refine Methods (Use OCL and UML Activity diagram)
1. Add left out methods

2. Specify visibility of the protocol (+, - ,#)

3. Specify the argument list and return type

4. Design the method body using UML Activity diagram and OCL.
iii. Refine association

iv. Refine Generalization and aggregation.

v. Iterate and refine.


Refine/ Design Refine/ Design Refine class

Attributes identified Methods identified association,

in previous iteration/ in previous iteration/ inheritance and

phase phase aggregation.

Refining Attributes:

75
Attributes represents the information maintained by each object. Complete list of
attributes should be identified in order to maintain a complete set of information. Detailed
information of attributes is not specified in analysis phase but in design phase.

OCL is used to represent the attribute details inside a class diagram/ notation.

Various types of attributes are

1) Single valued attributes – an attribute represents one value at a time.


2) Multi valued attributes – an attribute can store more than one value
3) Reference attributes – an attribute refers (alias) another instance.

OCL format for representing attributes:

The OCL specification for specifying attributes is

Visibility attribute name : type

OR

Visibility attribute name : type = initial value

E.g.

+ Name : String
- represents a public attribute Name of type String
# Name : String = ―Hello‖

-represents a protected attribute Name of type String with initial


value Hello
[Note: Use the example from the case study]

Designing/ Refining Methods:


Designing methods involves design of Method protocol and Method body. A method
protocol defines the rule for message passing to this particular object where the method
body gives the implementation details. The types of methods provided by class are

1) Constructor – Method that is responsible for creating objects/ Method invoked


during instantiating.

2) Destructor – The method that destroys instances/ Method invoked when an


object is freed from memory.

3) Conversion Method – Methods responsible for converting one form of date to other form.

4) Copy Method – Methods responsible for copying information.

5) Attribute Set – Method responsible for setting values in attributes

6) Attribute Ger – Method responsible for getting the values from an attribute

7) I/O Methods – Method responsible for getting and sending data from a device

76
8) Domain Specific – Those methods responsible for some functionality in a
particular domain.

Designing Protocol:

Protocol gives the rule for message passing between objects. Protocol is the interface
provided by the object. Based on the visibility of the protocol it can be classified into

1. Public Protocol

2. Private Protocol

3. Protected Protocol.

Private protocols specify messages that can be send only by the methods inside the class.

They are visible only inside the class.

Protected protocols specify messages that can be send only by the methods inside the class.

But they can be inherited by the subclass.

Public protocols specify messages that can be send by the methods with in the class
as well as objects outside the class.

Protocol and Encapsulation leakage – If protocols aren‘t well designed unnecessary


messages are made available outside the class results in encapsulation leakage.

Internal layer contains the private and protected protocols where an External layer
contains public protocols.
OCL Specification for Protocol Design:

The specification is

Visibility protocol name (argument list) : return type

Where argument list is arg1: type, arg2: type, arg3: type …


argn: type E.g.

+ getName () : String

It‘s a public protocol named getName with no parameters and it returns a


value of type String.

- setData (name : String, no : Integer) : Boolean

It is a private protocol that accepts 2 arguments one of type String and other
of type Integer. It returns a value of type Boolean.

77
Designing Method body:

UML Activity diagram along with OCL specification can be used for representing the

body of the method. Activity diagram representing the method body says how the

work should be done.

[Note: Use an activity diagram from case study]

Design of Business Layer

Business layer involves lot of logic that is to be implemented in order to achieve the
customer needs. Analysis is carried out for business layer objects. Hence the design for
business layer has got a strong dependency with the model produced in the analysis phase.

The activities involved in Business Layer design are

3. Business Layer Class Design – apply design axioms for designing classes for
business layer. Designing classes includes designing their attributes, methods
and relationships.
I. Design/ Refine UML Class diagram developed in previous phase/ iteration.

i. Design/ Refine attributes (Use OCL)

1. Add left out attributes

2. Specify visibility, data type and initial value if any for attributes

ii. Design/ Refine Methods (Use OCL and UML Activity diagram)
1. Add left out methods

2. Specify visibility of the protocol (+, - ,#)

3. Specify the argument list and return type

4. Design the method body using UML Activity diagram and OCL.
iii. Refine association
iv. Refine Generalization and aggregation.

v. Iterate and refine.

Refine/ Design Refine/ Design Refine class

Attributes identified Methods identified association,

in previous iteration/ in previous iteration/ inheritance and

phase phase aggregation.

Refining Attributes:

78
Attributes represents the information maintained by each object. Complete list of
attributes should be identified in order to maintain a complete set of information. Detailed
information of attributes is not specified in analysis phase but in design phase.

OCL is used to represent the attribute details inside a class diagram/ notation.

Various types of attributes are

4) Single valued attributes – an attribute represents one value at a time.


5) Multi valued attributes – an attribute can store more than one value
6) Reference attributes – an attribute refers (alias) another instance.

OCL format for representing attributes:

The OCL specification for specifying attributes is

Visibility attribute name : type

OR

Visibility attribute name : type = initial value

E.g.

+ Name : String
- represents a public attribute Name of type String
# Name : String = ―Hello‖

-represents a protected attribute Name of type String with initial


value Hello
[Note: Use the example from the case study]

Designing/ Refining Methods:


Designing methods involves design of Method protocol and Method body. A method
protocol defines the rule for message passing to this particular object where the method
body gives the implementation details. The types of methods provided by class are

9) Constructor – Method that is responsible for creating objects/ Method invoked


during instantiating.

10) Destructor – The method that destroys instances/ Method invoked when an
object is freed from memory.

11) Conversion Method – Methods responsible for converting one form of date to other form.

12) Copy Method – Methods responsible for copying information.

13) Attribute Set – Method responsible for setting values in attributes

14) Attribute Ger – Method responsible for getting the values from an attribute

15) I/O Methods – Method responsible for getting and sending data from a device

79
16) Domain Specific – Those methods responsible for some functionality in a
particular domain.

Designing Protocol:

Protocol gives the rule for message passing between objects. Protocol is the interface
provided by the object. Based on the visibility of the protocol it can be classified into

4. Public Protocol

5. Private Protocol

6. Protected Protocol.

Private protocols specify messages that can be send only by the methods inside the class.

They are visible only inside the class.

Protected protocols specify messages that can be send only by the methods inside the class.

But they can be inherited by the subclass.

Public protocols specify messages that can be send by the methods with in the class
as well as objects outside the class.

Protocol and Encapsulation leakage – If protocols aren‘t well designed unnecessary


messages are made available outside the class results in encapsulation leakage.

Internal layer contains the private and protected protocols where an External layer
contains public protocols.
OCL Specification for Protocol Design:

The specification is

Visibility protocol name (argument list) : return type

Where argument list is arg1: type, arg2: type, arg3: type …


argn: type E.g.

+ getName () : String

It‘s a public protocol named getName with no parameters and it returns a


value of type String.

- setData (name : String, no : Integer) : Boolean

It is a private protocol that accepts 2 arguments one of type String and other
of type Integer. It returns a value of type Boolean.

80
Designing Method body:

UML Activity diagram along with OCL specification can be used for representing the

body of the method. Activity diagram representing the method body says how the

work should be done.

[Note: Use an activity diagram from case study]

Object Oriented Design

Software Design represents the logic of the software system providing more dependency to
the computer domain than physical/ user domain. Design actually deals with ―LOGIC TO
IMPLEMENT IN PROGRAM TO ACHIEVE THE SYSTEM GOAL‖

Analysis Design and Design Document


SOFTWARE
Model
DESIGN PROCESS

I. SOFTWARE DESIGN PROCESS:

Software Design Process is the set of activities involved in developing a good and quality design.

This is a sub process of Software Engineering Process.

DESIGN AXIOMS AND COROLLARIES Design Patterns


Design/ Refine Design/ Refine Design/ Verify the

the classes for Classes for Refine User Design/

Business Layer Access Layer Interface Usability test

Iterate

The above diagram shows the different sub phases in software design process.

Unified Approach suggests 3-tired architecture. Since design has strongly dependency with
implementation, the design should carried out for these layers separately.

4. Business Layer Class Design – apply design axioms for designing classes for
business layer. Designing classes includes designing their attributes, methods
and relationships.
I. Design/ Refine UML Class diagram developed in previous phase/ iteration.

81
i. Design/ Refine attributes (Use OCL)

1. Add left out attributes

2. Specify visibility, data type and initial value if any for attributes

ii. Design/ Refine Methods (Use OCL and UML Activity diagram)
1. Add left out methods

2. Specify visibility of the protocol (+, - ,#)

3. Specify the argument list and return type

4. Design the method body using UML Activity diagram and OCL.
iii. Refine association

iv. Refine Generalization and aggregation.

v. Iterate and refine.

II. Design access layer

i. Create mirror class for all classes identified in business layer.

ii. Identify access layer class relationship

iii. Simplify access layer classes and class relationship

1. Remove redundant classes

2. Singe method classes can be removed and added in


another class.
iv. Iterate and refine.

III. Design View Layer

i. Design the macro level user interface – identify view layer objects
ii. Design micro level user interface

1. Design view layer objects by applying design axioms and


corollaries.
2. Build a prototype of view layer interface

iii. Verify Usability and User Satisfaction


iv. Iterate and refine

5. Iterate and refine the above steps in necessary.

[Note: Explanation is given for 3 sub process separately. Example is given in CASE study
of ATM system.]

II. DESIGN AXIOMS AND COROLLARIES:

Axiom is a fundamental truth that has no exception or counter proof.

A corollary is one derived from axiom or another proves theorem.

82
These can be used in the software design for the following reasons

1. Making the design more informative and uniform.


2. Avoid unnecessary relationships and information.
3. Increase the quality.
4. Avoid unnecessary effort.

Axiom1 The independence axiom Maintain independence of components/ classes/


activities

Axiom2 The information axiom Minimize the information content of the design

Axiom1 The independence axiom

It says that when we implement one requirement of an user it should not affect the
other requirement or its implementation. I.e., each component should satisfy its
requirements without affecting other requirements.

E.g.

Requirement1: Node1 should send multimedia files requested by the Node2.

Requirement2: Node1 one should take minimum time for sending due to heavy traffic.

Consider the component C1 responsible for sending Multimedia files.

Choice 1: C1 reads the files and send the file header first and then the content in a
byte stream. Here the component satisfies the first requirement
where it fails to satisfy the second requirement.

Choice 2: C1 reads the files and compress the content and file header contains the
file and compression information. Since the file size transferred
is reduced this choice satisfies both requirements.

Axiom2 The information axiom


It deals with the simplicity and less information content. The fact is less number of information makes a
simple design, hence less complex. Minimizing complexity makes the design more enhanced. The best way

to reduce the information content is usage of inheritance in design. Hence more information can be
reused from existing classes/ components.

E.g.

Chioce1: (with out inheritance)

Vehicle Car

Name Name

Brand Brand

Owner Owner

Color
83
Stop() Engine No

Start()

Stop()
Class car maintains more information even though they are already maintained in
vehicle class. Since car class maintains more information the design that contains the
car class makes the design look more complex.
Vehicle 3 properties and 2 methods.

Car 5 properties and 3 methods.

Chioce2 (with inheritance)

Car
Vehicle

Color
Name
Engine No

Brand

Owner Cngecolor()

Stop()

Start()

In this case the class car inherits some reusable methods and properties from vehicle
class and hence it has to maintain 2 attributes and 1 method. Hence the class car looks simple.

Corollaries:
Corollaries are derived from design axioms(rules). These corollaries are
suggestions to the designer to create a quality design.

They are

1. Corollary 1Uncoupled Design with less information content (from


Axiom1 and 2)

2. Corollary 2Single purpose classes (from Axiom1 and 2)

3. Corollary 3large number of simple classes (from Axiom1 and 2)

4. Corollary 4Strong Maping (from Axiom 1)

5. Corollary 5Standardization (from Axiom 2)

6. Corollary 6Design with inheritance (from Axiom 2)

Corollary 4

Corollary 1

AXIOM 1
Corollary 2

84

AXIOM 1

Corollary 3
Corollary 1 Uncoupled design with less information content.

This corollary explains the concept of dependency by cohesion and coupling.

Cohesion is the dependency among the classes inside a component

Coupling the measure of dependency between 2 components.

Designers prefer design with

1) Low coupling between components


2) High cohesion among the classes inside a component.

Hence by reducing the strength of coupling between classes/ components reduces the complexity
of the design.

Coupling It‘s the measure of association established between 2 objects/ components. Designers
prefer weak coupling among components because effect of change in one component should have
less impact on the other component. The degree (strength) of coupling is the function of

1. How complicated the connection is?


2. Whether the connection refers to object itself or something inside the referred object
3. What message/ data is being send and received.

Interaction coupling exist between 2 objects if there is a message passing between those 2 objects.

The strength of interaction coupling depends on the complexity of messages passed between them.

Inheritance coupling exist between super and sub class. Inheritance coupling is
desirable. Types of coupling

1. Content Coupling (Very High)


2. Common Coupling (High)
3. Control Coupling (Medium)
4. Stamp Coupling (Low)
5. Data Coupling (Very low)
Cohesion is the strength of dependency between classes with in a component. More
cohesion reflects single purpose of the class. Designers prefer strong cohesion among
contents of the component.

Corollary 2 Single purpose

Each class should have a single well defined purpose and the aim of the class is to
full fill that responsibility. If the class aims at implementing multi purpose subdivide the
class in to smaller classes.

Corollary 3 Large number of simpler classes for reusability

85
Complex classes are difficult to understand and hence for reuse needs more effort. Many times
unnecessary members are reused as the super class was a complex one. The guideline says that ― The

smaller are your classes, better your chances of reusing them in other projects.
Large and complex classes are too specialized to be reused.‖

Corollary 4 Strong Mapping

The designer, analyst and programmer should maintain strong dependency among the products
obtained during the different phases of SDLC. Hence a class identified during the analysis is designed in

design phase and coded in implementation phase.

Designer should consider the programming language while creating design using technologies.

Corollary 5 Standardization

The Designer/ Programmer should be aware of the existing classes/ components available in the
standard library. This knowledge will help the designer to reuse the existing classes and design the newly
needed classes/ components. A class/ pattern repository is maintained to store all the reusable classes and

components. Even in most of the cases the repository is shared. Repository maintains the reusable
components, description, commercial/ non commercial and usage.

Corollary 6 Design with Inheritance

[Note: Include inheritance , importance and need of inheritance, types with one example]

OCL – Object Constraint Language:

It‘s a specification language used for representing properties of objects in an UML diagram.

It is English like language. The rules and semantics of the UML diagrams can be represented using

OCL. OCL specifications in UML diagrams make UML diagrams more clear and informative.

Sets, arithmetic expressions, Boolean expressions can be represented using OCL.


OCL Specifications:

1. Item. Selector

Selector Used to get the value of the attribute.

Item Entity to which the attribute belongs to.

E.g.

Stundent1. No = 30

Student1 is the Item and no is the selector.

2. Item. Selector [qualifier value]

Selector Used to identify a set of similar values.

Item Entity to which the attribute belongs to.

Qualifier specifies the particular value among the group.

86
E.g.

Student1. Mark [3]

rd
Student1 is the Item, mark is the selector and 3 (qualifier) that represents 3 mark

3. Boolean Expression

(Item1. Selector Boolean operation Item2.Selector)

E.g. S1. mark > S2. mark represents a Boolean value of true or false.

4. Set operation

Set select (Boolean expression) is used to select a group of


objects that satisfies the Boolean expression.

Student select (mark >40) selects a list of students who has mark greater than 40.

5. Attribute specification

The OCL specification for specifying attributes is

Visibility attribute name : type

OR

Visibility attribute name : type = initial value


E.g.

+ Name : String

- represents a public attribute Name of type String

# Name : String = ―Hello‖

- represents a protected attribute Name of type String with initial value Hello

6. Protocol Design Specification

The specification is

Visibility protocol name (argument list) : return type

Where argument list is arg1 : type, arg2 : type, arg3 : type … argn : type

E.g.

+ getName () : String

87
It‘s a public protocol named getName with no parameters and it returns a
value of type String.

- setData (name : String, no : Integer) : Boolean

It is a private protocol that accepts 2 arguments one of type String and other
of type Integer. It returns a value of type Boolean.

7. OCL in representing function call

Name =
# Student:: + getName() : String
getName()

The activity diagram does not specify any details of getName where the OCL
specification near the function call represents the clear idea about the method getName.

[Note: more examples should be added in each category]

Designing View Layer Classes:

View layer objects are more responsible for user interaction and these view layer
objects have more relation with the user where business layer objects have less interaction
with users. Another feature of view layer objects are they deal less with the logic. They help
the users to complete their task in an easy manner.
The Major responsibilities of view layer objects are

1. Input – View Layer objects have to respond for user interaction. The

user interface is designed to translate an action by the user (Eg. Clicking the
button) in to a corresponding message.

2. Output - Displaying or printing information after processing.

View Layer Design Process:

1. Macro Level UI Design Process

a. Identify classes that interact with human actors

b. A sequence/ collaboration diagram can be used to represent a clear


picture of actor system interaction.

88
c. For every class identified determine if the class interacts with the human
actor. If so

i. Identify the view layer object for that class.

ii. Define the relationship among view layer objects.

2. Micro Level UI Design Process

a. Design of view layer objects by applying Design Axioms and Corollaries.

b. Create prototype of the view layer interface.

3. Testing the usability and user satisfaction testing.

4. Iterate and refine the above steps.

[Note: Explain the above process for an essay]

User Interface Design Rules:

UI Design Rule 1: Making the interface simple

For complex application if the user interface is simple it is easy for the users to learn
new applications. Each User Interface class should have a well define single purpose. If a
user cannot sit before a screen and find out what to do next without asking multiple
questions, then it says your interface is not simple.

UI Design Rule 2: Making the Interface Transparent and Natural.


The user interface should be natural that users can anticipate what to do next by
applying previous knowledge of doing things with out a computer. This rule says there
should be a strong mapping and users view of doing things.

UI Design Rule 3: Allowing users to be in control of the Software.

The UI should make the users feel they are in control of the software and not the
software controls the user. The user should play an active role and not a reactive role in the
sense user should initiate the action and not the software.

89
Some ways to make put users in control are

1. Make the interface forgiving.

2. Make the interface visual.

3. Provide immediate feedback.

4. Avoid Modes.

5. Make the interface consistent.


Purpose of View Layer Interface - Guidelines

Unit – V

Software Quality Assurance Testing:

Bugging and Debugging - Related to Syntax Errors.

Testing – Related to Logical, Interface and communication errors.

Testing – for assuring quality. (In general)

Software Quality Assurance Testing – For Satisfying the Customer – Give more importance
to testing the Business Logic and less importance to satisfaction of the user.

User Interface Testing – Usability and User Satisfaction – More importance is given to the
easiness of the User Interface and less importance to the logic.

Quality Assurance Testing

• Error Based Testing


o Methods are tested with some valid and invalid parameters
o Boundary Tests

Methods are tested with boundary values of the parameters. The


boundary values are
• - ve value (if applicable)

• Minimum Value – 1

• Minimum Value

• Medium Value

• Maximum Value – 1

• Maximum Value

• Maximum Value + 1etc etc

• Testing Strategies
o Black Box Testing.
o White Box Testing.
o Top down Approach.
o Bottom up Approach.
(Note: Refer SE notes/ Pressman book)

• Impact of OO on Testing
o Impact of Inheritance

90
It is not necessary to test Inherited Methods because its already been
verified in the Base class.

But if the inherited method is over ridded then the behavior may
change and it is needed to be tested.

(Note: Explain with an example)


o Reusability of Test Cases

Test Cases can be reused based up on the level of


reusage Overridden methods show a different behavior.

If the similarities in behavior exist test cases can be reused.

In some cases Inherited method accept same parameter as Base but


different behavior.

In the above case a test case can be reused such a way that the
expected o/p of the test case is changed and used.

o Test Cases
Test cases represents various testing scenarios.

A good test case is one which has a high probability of detecting an


undiscovered error.

A successful test case is one that can detect an


undiscovered error. Guidelines

• Describe which feature the test attempt to cover

• If scenario based then develop test case based on Use case

• Specify what feature is going to be tested and what is the


input/parameters and expectations

• Test the normal usage of that object

• Test abnormal reasonable usage

• Test abnormal unreasonable usage

• Test boundary conditions

• Document the cases for next iteration


o Test Plan

Objectives of the Test – Create the objectives and describe how to


achieve them
Development of Test Case – Develop test data, both input and expected output
Test Analysis – Analysis of test case and documentation of test results.

o Guidelines for developing Test Plans

Develop test plan based on the requirements generated by the user.


It should contain the schedule and list of required resources.

Determine the strategy (Black box, white box etc.) document what is to
be done.

SCM (Software Configuration management or Change control) activities


should be considered when ever a change is made due to a test result.

Keep the plan up to date.

Update documents when a mile stone is reached.

o Continuous Testing

Since UA suggests iterative development continuous testing is


advisable for efficient management of resource.

Testing is also carried out for each iteration of development.

• Myer‘s bug location and debugging principles.

o Bug Locating Principles


Think

91
If you reach an impasse (deadlock) sleep on it.

If impasse still remains discuss the problems to some


one else o Debugging Principles

Where there is one bug there is likely to be


another Fix the error and not the symptom

The probability of correctness of the solution decreases when the


program size increases.

Beware that error correction should not create more number of errors.

Example Format

For example..fill out the categories for any object

Test plan

1. Project Name:
2. Team Name:
3. Test Team Details:
4. Shedule:
5. Object/ Class under testing:
6. List of Methods:

7. Test Cases for Each


Method. a. Method1
i. Test Case 1
ii. Test Case 2
iii. ..
iv. Test Case N
b. Method2
i. Test Case 1
ii. Test Case2
iii. ..
iv. Test Case N

.
ONLINE QUESTIONS
UNIT-I
QUESTIONS OPT1 OPT2 OPT3 OPT4 OPT5 OPT6 ANSWER
The entities of the
physical world are Physical
called ________ Entities Objects Real Entities Methods Objects
The mechanism by
which the data and
functions are bound
together within an
object is called as Encapsula
______ tion Inheritance Polymorphism Class Encapsulation
_______ supports the
concept of OOP C++ VB Java Oracle C++
______ increases
flexibility by
permitting the addition
of a new class of
objects without
modifying existing Dynamic Polymorphi Dynamic
code binding sm Inheritance Class binding
Advantage of OOPs Simple Simple Complex Complex Complex
has important hardware software software hardware software
technology for building system system system system system
Using a single function
name to perform
different types of tasks Encapsula
is known as tion abstraction polymorphism Inheritance polymorphism
In inheritance, super
class is also known as Parent Friend
_________ Class Class Child Class Sub Class Parent Class
------ is a mechanism
that associates the code
and data it manipulates Encapsula
into a single unit. tion Abstraction Polymorphism Inheritance Encapsulation
The process of
invoking an operation Function
on an object is referred Message Overloadin Operator Virtual Message
to as ------ Passing g Overloading Function Passing
The phenomenon
where the object
outlines the program
execution time and
exists between Persistenc
execution of a program e Genericity Extensibility Delegation Persistence
is known as---------

The technique for


defining the declaration
of data items without
specifying this exact
data type is known as-- Delegatio Message
---- n Passing Genericity Persistence Genericity
The object’s internal
structure is totally Data
hidden from the user is Inheritanc Encapsulati Data
called as------ e on Polymorphism Class Encapsulation
The data in a class are Instance
also called Members Variables. Fields. Variables Members
Action modules that
process data in class is Recursive Member Class Instances of a Member
called Function Function variables class Function
A class is a drived basic data user defind primitive data user defind
____________ data type type data type type data type
In object orientated
programming a class of
objects can
_____________
properties from another
class of objects Utilize Borrow Inherit Adapt Inherit
Which of the following is-a Part-of
are class relationships relationshi relationship Use-a All of these is-a
in inheritance ? p. . relationship. options. relationship.
Which of the following
represents is-a Part-of
relationships in relationshi relationship Use-a All of these Part-of
Delegation ? p. . relationship. options. relationship.
Data
Encapsula Inheritance
tion, ,
Inheritanc Polymorphi Data Data
Which are the main e& sm & Encapsulation, Overloading, Encapsulation,
three features of OOP Exception Exception Inheritance & Inheritance & Inheritance &
language? handling handling Polymorphism Polymorphism Polymorphism
When a language has
the capability to
produce new data type,
it is called Extensible Overloaded Encapsulated Reprehensible Extensible
State the object
oriented languages C++ Java Eiffel All the above All the above
functions with functions with
a group all have the same name same name
function same and different and different
with the number number and number and
Overload function in different and type of type of All of the type of
C++ name arguments arguments above arguments

both making both making


c++ operators c++ operators
making works with works with
c++ giving new objects & objects &
operators meaning to giving new giving new
works existing meaning to meaning to
with c++ making new existing c++ existing c++
Operator overloading is objects operators c++ operator operators operators
A class is a collection data
of _______________ structure methods objects all the above objects
_________ are created
by run time system. class object function all the above object
___________ can be
abstract. ___________ object , class constructor destructor,
can not be abstract. class ,object ,destructor constructor class ,object
Objects communicate
with each other or
interact among
themselves by dynamic message- none of the message-
____________ linking binding passing above passing
________________
represents one or more both
conceptual connections Associatio Aggregatio Association & none of the
between objects n n Aggregation above Association
Specialization is also
called
________________rela
tionship. “has – a “ “part –of” “one-one” “is-a” “is-a”
A class that cannot be
instantiated is called meta drived none of the
__________ class class abstract class above abstract class
own class
The protected data and its own class and
members are visible in derived any where in none the its derived
its ____________ class own class the program above class
__________ is/are a
pure object oriented
language . C++ smalltalk java c# java
The method of design
encompassing the
process of object
oriented decomposition
and a notation for
depicting both logical
and physical and as
well as static and Object-
dynamic models of the Oriented Object- Object- Object-
system under design is Programm Oriented Oriented None of the Oriented
known as: ing Design Analysis mentioned Design
What is the Goals, often
programming style of Invariant expressed in a
the object oriented relationshi Classes and predicate Classes and
conceptual model? ps Algorithms objects calculus. objects
The essential
characteristics of an
object that distinguish
it from all other kinds
of objects and thus
provide crisply defined
conceptual boundaries,
relative to the
perspective of the Encapsula
viewer is called: tion Modularity Hierarchy Abstraction Abstraction
Abstraction is
classified into _______
types 4 3 2 1 4
The process of
compartmentalizing the
elements of an
abstraction that
constitute its structure
and behavior is called Encapsulati Entity
as Hierarchy on Modularity Abstraction Encapsulation
Single inheritance,
Multiple inheritance,
and Aggregation comes Modularit None of the
under _______ y Typing Hierarchy mentioned Hierarchy
In which of the
following mechanisms, Static Dynamic Static
types of all variables Strong Weak Binding/ early Binding/ late Binding/ early
and expressions are Typing Typing binding binding binding
fixed at compilation
time.

In which of the
following mechanisms,
types of all variables Static Dynamic Dynamic
and expressions are not Strong Weak Binding/ early Binding/ late Binding/ late
known until runtime Typing Typing binding binding binding
It is the
enforceme
nt of the
class of an
object,
such that
objects of
different
types may
not be
interchang
ed, or at It is the
the most property of It is the
they may an object It is the property of an
be through property that object through
interchang which its distinguishes which its
ed only in existence an active existence
Which of the following very transcends object from transcends
statements about restricted time and/or one that is not All of the time and/or
Persistence is correct? ways. space. active. mentioned space.
What is that concept in
type theory in which a
single name may
denote objects of many
different classes that
are related by some
common super class Monomor Type
referred to ______ phism Checking Polymorphism Generalization Polymorphism
Object oriented
technology is built
upon a sound
engineering foundation,
whose elements are Von
collectively called as Neumann Object Structured Programming
_________ Model Model Model Model Object Model
Which of the following Smalltalk FORTRAN
programming language and and Perl and Smalltalk and
are object oriented in Simula ALGOL C and Ada Python Simula
nature

Callback is an Inheritanc Encapsulati


operation provided by e on Modularity Abstraction Abstraction
reader, :writer or
:accessor are the slot
options in Smalltalk LISP Object Pascal CLOS CLOS
Dependencies among
files can then be
asserted using the
macro #define #undef #include #endif #include
Inheritance is an
example of which type Class Object None of the Class
of hierarchy Structure Structure Both mentioned Structure
Generalize Specializati
Superclass represents d on
______________ abstractio abstraction None of the Generalized
abstractions ns s Both mentioned abstractions
Generalize Specializati
Subclass represents d on
_______________ abstractio abstraction None of the Specialization
abstractions ns s Both mentioned abstractions
_____________ is the
property that
distinguishes an active
object from one that is Persistenc
not active. e Typing Aggregation Concurrency Concurrency
Which of the following
statements about object
model is true?
I. Object model
encourages the reuse of
software and entire
design of the
application.
II. Object model
produces systems that
are built upon stable
intermediate forms.
III. Object model
reduce the inherent in
developing complex
systems.
IV. None of the
mentioned I, III I, II I, II, III IV I, II, III
1) Which of the
following property is
associated with All of the All of the
objects? State Behavior Identity mentioned mentioned
Which of the property
of a object
encompasses all of the
(usually static)
properties of the object
plus the current
(usually dynamic)
values of each of these. Semantics Behavior State Identity State
Which of the following
object types are
generally autonomous,
meaning that they can
exhibit some behavior
without being operated Both Passive None of the
upon by another object Passive Active and Active mentioned Active
A ________ is a
description of a set of
objects that share the
same attributes,
operations,
relationships, and
semantics. Structure Class Constructor Function Class
A ________ is a
special member
function whose task is
to initialize the objects Construct
of its class. or Destructor Selector Iterator Constructor
They
cannot be
inherited,
though a
derived An object An object
class can with a with a
We cannot call the constructor constructor
Which of the following refer to base class can be used as Constructors can be used as
statements about a their constructor a member of a cannot be a member of a
constructor is not true? addresses. . union. virtual. union.
The constructors that Default
can take arguments are Construct Copy Parameterized Dynamic Parameterized
called ___________ or Constructor Constructor Constructor Constructor
When an object is
created and initialized
at the same time, a Inline
_________ constructor Construct Copy Default Parameterized Copy
gets called. or Constructor Constructor Constructor Constructor

UNIT-II
O
P
T
QUESTIONS OPT1 OPT2 OPT3 OPT4 OPT5 6 ANSWER
Test methods within
each
object____________ integration system acceptance
__ unit testing testing testing testing unit testing
A function that has
access to the private
member of the class
but is not itself a private
member of the class member inline friend protected
is called as function function function function friend function
It is necessary that a
constructor in a class
should always be
________ private public protected in main() public
sum of the
size of size of data sum of the size
Size of an object is member member and of data member
equal to size of data functions member and member
___________ members only only functions none functions
………………….method
is good for producing
user-driven analysis
model Rumbaughetal Jacobson Booch Shaler/mellor Jacobson
……………….method
produce detail object
oriented design
models Rumbaugh-etal Jacobson Booch Coad/yardon Jacobson
which of the
following mobel is static dynamic functional
not a OMT parts? object model model model model static model
a process description
and consumer-
producer OMT
relationships can be OMT static OMT dynamic functional OMT functional
expressrd using object model model model model3 model3
……………..

The object modeling


technique(OMT) is a network of
……………….. simple fast intuitive states intuitive
………….is not a
complete and has no
actor that initiate it is
used by another use none of the
case abstract concrete single above abstract
……………. Defines the
outside and inside of
the system behavior Use case domain analysis test Use case
a “pattern in waiting”
which is not yet
known to recur,
sometime is called generation nongenerat
…………….. pattern ion pattern antipattern protopattern protopattern
……………… descrides
recurring
phemomena without
necessarily sayind
how to reproduce generation nongenerat nongeneration
them pattern ion pattern antipattern protopattern pattern
the process of
looking for patterns
to document is called pattern
……………… protopatten antipatten mining frame work pattern mining
………………. Is a set of
cooperating classes
that make up a
reusable design for
specific classes that
markup a reusable
design for a specific unified none of the
class of software patten framework approach above framework
a definition of an
object oriented
software framework rambaugh
is given by gamma etal etal booch jocobson gamma etal
…………………is the
process of extracting
the needs of a
system and what the object object
system must do to use case driven oriented oriented continuous object oriented
satisfy the development analysis design testing analysis
requirements

the user interface


layer also called business dynamic
………………….. access layer layer view layer layer view layer
the user inter face object
layer object are use-case driven oriented incremental none of the incremental
identified during development design development above development
……………..contains
object that know
how to
communication with
the place where the business user interface none of the
data actually reside access layer layer layer above access layer
……………… are a way
of delivering
application
development
patterns to support
best practice sharing
during application framework unified
development patterns s appoaches protopattern frameworks
………………… have a
strong method for
producing object
model rambangh etal jacobson booch oad rambangh etal
………….allow iterative
development by
allowing you to go
back and forth
between design and unified none of the unified
modeling framework pattern approach above approach
which of the
following is not a object implementati
OMT phases? analysis design on testing testing
in OMT data flow
diagram …………..
symbol is used to
identified the or
destination of a data external
element process dataflow data store entity external entity
………………….. is a
description of the
day to day activities micro macro software micro
by a single or small business developme development development development
group of software process nt process process process process
developers process

………………. Is an
abstract
representation of a
system construct to
understand the
system prior to
building or modifying none of the
it model object class above model
the process of
determining at
runtime which
function to invoke is
termed as dymanic object
…………………. static binding binding persistance meta class dymanic binding
A class is a collection all the
of _______________ data structure methods objects above objects
_________ are
created by run time
system. class object function all the above object
___________ can be
abstract.
___________ can not class constructor destructor,
be abstract. object , class ,object ,destructor constructor class ,object
Objects
communicate with
each other or
interact among
themselves by message- none of the message-
____________ dynamic linking binding passing above passing
________________
represents one or
more conceptual
connections between Aggregatio none of the
objects Association n both a & b above Association
Specialization is also
called
________________re
lationship. “has – a “ “part –of” “one-one” “is-a” “is-a”
A class that cannot
be instantiated is none of the
called __________ meta class drived class abstract class above abstract class
The protected data own class and
members are visible its derived any where in none the own class and
in its ____________ class own class the program above its derived class
__________ is/are a
pure object oriented
language . C++ smalltalk java c# java
Test methods within
each
object____________ integration system acceptance
__ unit testing testing testing testing unit testing
for
routines for routines
for rountines that are that are for rountines
The Library programs that are difficult to difficult to none of the that are
a written repetitions type solve above repetitions
which one the
following is not a debugging
utility program text editors aids compiler I/O routines compiler
System software that
helps the user to
correct logical memory Debugging library
mistake utility program dump acids programs Debugging acids
the program of
placing jobs in a
queue for execution Batch
is called programming spooling queuing Multitasking spooling
an account
A Shareware is a share program text editor package package text editor
completes completes the
completes the the task in task after is time completes the
task in given very short given time consuming task in given
A Realtime system time time interval program time
An arrangement in
which analysis
assigns a group of
analysts to survey a project pool Team
specific system is oriented oriented functional Oriented functional
The three stage planning,a
model described by nalysis,impl planning,analy planning,analysi
Bowman,davis and Analyis,design,i ementatio sis,resource planning,anal s,resource
wetherbe mplementation n allocation ysis,design allocation
when the when the
candidate candidate
technical writer are before at the time at the time of system nears system nears
employed investigation of analysis programming completion completion
the ________
dimension tells
whether the primary
concern is
strategic,magerial or time focus MIS Analysis focus
operational

Which of the
following is not a evaluation of Analysis of
part of the feasiblity cost existing candidate
study data collection estimates system system data collection
which of the
following constitues
a pictorial language flow chart algorithms pseudocode program flow chart
the techniques of
writing a good software
program forms part analysis of engineerin design of operating software
of the algorithm g algorithms system engineering
material,ener
Flow system models money,goods,p material,go money,materi gy,informatio material,energy,
shows the flow of ower ods,data al,information n information
A structured program Redundant many Redundant
generally has compact looks codes many inputs outputs codes
one entry many entry
A good module one entry and and many many entry and many one entry and
should have one exit exit and one exit exit one exit
cost reliable and reliable and cost
software engineering reliable effective cost effective none of the effective
primary aims on software software software above software
A directed dashed
line represents
____________ none of the
relationship. Message Association Dependency above Dependency
A dashed line with
hollow arrowhead
represents
____________ generalizatio
relationship. realization association dependency n realization
A ___________ allow
us to you to create
new kind of building
blocks derived from
existing one. tagged value stereotype interface class stereotype
A tagged value
extends the
_____________ of a
UML building block. vocabulary properties semantic definition properties
A constraint extends
the _____________
of a UML building
block. vocabulary properties semantic definition semantic
UNIT-III
OP OP
QUESTIONS OPT1 OPT2 OPT3 OPT4 T5 T6 ANSWER
in object
oriented
design of classes are
software,whic object defined based an object
h of the inherit the on the can belong an object can
following is properties attributes of to two classes are belong to two
not true? of the class objects classes always different classes
the system
interm of
inputs and
outputs is
defined under
the concepts system
of analysis system design black box environment black box
desing phase
will usually be top down bottom up random centre fringing top down
data,archit
data,archit architecture,pr ectural and data,architectural data,architectural
ectural and ocedural and interface ,interface and ,interface and
design phase procedural interfacedesign designs procedural procedural
includes design only only only designs designs
In object
oriented
design of attributes attributes,
softwareobject and name operations and name and none of the attributes,name
have only name only operations above and operations
A constuctor is
called an object is an object is a class is an object is
whenever declared used declared a class is used declared
Choose the a a constructor a desructor
correct destructor cannot be can be a consructor is a constructor
statement ia inherited virtual virtual not inherited cannot be virtual
Class
Dog:public
X,public y is an multiple repeated linear none of the multiple
instance of inheritance inheritance inheritance above inheritance
Which of the
following
operators
cannot be no such operator
overloaded? >> ?: + exist ?:
A model is an
abstract
representation
of a system,
constructed to
understand
the system
prior to
building or
modifying it. model system language structure model
Most
modelling
techniques
used for
analysis and
design
involve______ conceptual graphiclanguag
____ . model e symbols descriptive text graphiclanguage
____________
can be viewed
as a snapshot
of a system’s
parameters at
rest or at a
specific point dynamic static implementation
in time model test model model model static model
A
____________
is a collection
of procedures
or behaviours,
reflect the
behaviour of a domain
system over object static
time model use case model model dynamic model dynamic model
____________
__ is a
specification
language that
uses simple
logic for
specifying the
properties of a
system. UML OMT OCL DFD OCL
A class
diagram is a
collection of
___________
modelling
element. object static use case implementation static
A
____________
___ is an
association Generalizat
attribute. Multiplicity Qualifier ion composition Qualifier
____________
_ specifies the
range of
allowable
associated
classes. navigation navigability multiplicity associations multiplicity
An__________
___ is an
association
among more
than two or- is-a a-part of
classes. association relationship association n-ary association n-ary association
____________
_ show the
configuration
of run-time
processing
elements and
the software collaborati sequence component deployment deployment
components. on diagram diagram diagram diagram diagram
A
___________
is a grouping
of model
elements. component package folder packet package
____________
__ represents
a situation in
which a
change to the
target element
may require a
change to
source model component
element in dependenc information dependenc deployment model
dependency y dependency y dependency dependency
A
____________
__ is a graphic
symbol
containing
textual
information. model symbol note Datatype note
____________
_ represents a
built-in
extensibility
mechanism of
UML. model stereotypes swimlane flow stereotypes
Actions may
be organized
into meta
___________ model crosslanes swimlane attribute swimlane
Packages can
be used to
designate not
only logical
and physical
grouping but
also
____________ component
__. s elements metamodel use case group use case group
The
____________
may be used
for the upper
bound
,denoting an
unlimited
upper bound. # * & ? *
Each action in
activity
diagram is
assigned to
___________
swimlane. three two one four one
A
____________
_ is an
alternative
way to
understand Sequence Collaboration Activity State chart Sequence
the overall diagram diagram diagram diagram diagram
flow of the
control of a
program.

The
____________
_ relationship
is used when
there is more
than one use
case that is
similar to
another use
case but does communic correspond
a little more. ation extends s uses extends
The purpose of
____________
__ is to
understand
the algorithm
involved in
performing a interaction activity statechart interaction statechart
model. diagram diagram diagram diagram diagram
Each swim
lane is
separated
from
neighboring
swimlanes by
___________
lines on both
sides. cross vertical horizontal dashed vertical
both
A modelling notations
language must and model both notations
include notations elements only notations and model
____________ and model and and model elements and
_ elements guidelines guidelines elements guidelines
The
disadvantage both
of interaction
____________ diagram
is that they are and
great only for interaction collaboration collaborati state chart interaction
representing a diagram diagram on diagram diagram diagram
single
sequential
process.

____________
___ is a form Generalizat aggregatio
of association. ion composition n navigation aggregation
A constraint is
used to
__________
rules of a UML both add both add and
building block. add modify and modify none modify
The
architecture of
a software-
intensive
system can be
described by
____ views. three five nine none five
Which view
doesn’t
represents a
software-
intensive implement
system? class use case ation deployment class
A use case
view
represents
_______ both static
aspects of the and both static and
view. static dynamic dynamic none dynamic
The _______
view addresses
the
performance,
scalability and
throughput of implement
the system. use case process ation design process
The _______
view addresses
the
configuration
management implement
of the system’s use case process ation design implementation
releases.

The _______
view addresses
the
distribution,
delivery and
installation of
the parts that
make up of the
physical implement
system. use case process ation None None
A ________ is
a contract or
an obligation responsibil
of a class. constraint note ity none responsibility
_________
relationship is
used to model specializati dependenc
an inheritance. on generalization y none generalization
A line with a
solid diamond
represents
________ specializati aggregatio
relationship. on generalization n composition composition
A link can be both
viewed as a generalizati
subset of generalizati on and
_________. on association association none association
A _________
diagram
emphasizes
the structural
organization of
the objects
that send and
receive
messages. sequence activity use case collaboration collaboration
state of
object state is state is
In UML cannot be represente represented as a state is
diagram of a represente state is d as an result of an represented as
class d irrelevant attribute operation an attribute
when
operations
are when
performed when instances methods when instances
Attributes are on an of objects are are when classes are of objects are
assigned value object defined invoked identified defined

methods
specify methods specify
operations algorithms methods algorithms
and whereas do not whereas
In object- methods operations change methods and operations only
oriented are only state what values of constructor are state what is to
design identical is to be done attributes same be done
Each swimlane
represents
responsibility
for part of the
overall activity
and may be
implemented
by one or
more
____________ Class Model Graph Object Object
The two types
of
implementatio both deployment both deployment
n diagrams are diagram and diagram and
____________ activity deployment component component component
___ diagram diagram diagram diagram diagram
A
____________
is similar to a
Petri diagram,
where a token
represents an
activity statechart collaboration activity deployment statechart
diagram. diagram diagram diagram diagram diagram
An activity is
shown as a
__________,co
ntaining the
name of the
operation. Rectangle Ellipse round box decision box round box
When an
activity symbol
appears within
a state symbol,
it indicates
the_________
___ of an both a and
operation. Execution termination b only Execution
____________
_______ is the
process of
transforming a
problem
definition from
a fuzzy set of
facts and
myths into a
coherent
statement of a
system’s
requirements. Analysis Design Testing None Design
The
____________
_____ are
external
factors that
interact with
the system, Use cases class diagram actors activity diagram actors
__________
are scenarios
that describe
how actors use class activity Interaction
the system. diagram diagram diagram Use cases Use cases
____________
____ is a
special flow of
events through activity Interaction Sequence
the system. Use cases diagram diagram diagram Use cases
A
____________
_is an atomic
set of activities
that are
performed
either fully or Transforma A measurable Transactio
not at all. tion value n Design Transaction
The
__________
association is
used when you
have one use
case that is
similar to
another use
case but does
a bit more or is
more
specialized. Uses extends class Hierarchy extends

UNIT-IV
OP
QUESTIONS OPT1 OPT2 OPT3 OPT4 OPT5 T6 ANSWER
The __________
association occurs
when you are
describing your use
cases and notice that
some of them have
sub flows in common Uses extends class Hierarchy Uses
_____________ use
case is not complete
and has no initiation
actors. Concrete static dynamic abstract abstract
Each use case has
______________mai
n actor One two three four One
A ____________ can
serve as an initial
understanding of the
requirements Analysis Design Testing Document Document
______is the
specification of the
number of
occurrences of one
object related to
occurrences of
another object super class sub class objects operations. operations.
______ serve as
input for creation of scenario-
other modeling scenario-based class based behavioural flow-oriented based
elements. elements elements elements elements. elements
_______ diagram
represents the
actions and decisions
that occur as some UML
function is UML swim lane UML activity relational activity
performed. diagram diagram diagram none diagram
diagram represents
the flow of actions &
decisions and UML swim
indicates which UML swim lane UML activity relational lane
actors perform each. diagram diagram diagram none diagram
The DFD is presented
in a fashion. structural functional operational hierarchical hierarchical
The data-flow
modeling is a core
modeling activity in
analysis. controlled nested structured complex structured
______ continuity
must be maintained
as each DFD level is informatio
refined. informational flow data flow functional flow none nal flow
_____ can be used to
asses the simplicity
of function . validation specification cohesion variation cohesion
______ represents control
the behavior of the monitor monitoring control specificatio
system. specification system specification control system n
____ is used to
describe all flow
model processes that process
appear at the final monitor process monitor specificatio
level of refinement. specification specification specification none n
______ are set of
attribute defined for
potential class and
applied to all multiple- retained common-
instructions of class. common-attribute attribute information needed service attribute
_____ defined a
relationship between collaboration association
classes. associations s relations operations s
______ diagram
represents behavior
by describing how
classes move from
state to state state use case sequence none sequence
____ must occur to
force an object to sequence instance operation trigger. trigger.
make a trition from
one active state to
another.
_____ establish the
context of the
problem and overall
function of the
system. places structures roles events places
A class has state that
represent its
behavior as the sys
performs its . operations functions unions none functions
model
Which task is allocate model associated
performed during identify responsibiliti messages model class
use-case realization participating es among between associated class relationshi
refinement? classes classes classes relationships ps
Which process
document describes
design mechanisms,
any mappings
between design
mechanisms, and the Software Software
details regarding Architecture Design Vision Development Vision
their use? Document Guidelines Document Plan Document
In the state of a state
machine, a behavior upon
can be defined before reaching a reaching a upon leaving a inside a
_____. state state state inside a state state
When identifying
design elements, a
simple analysis class
will map to
a(n)_____. active class interface design class subsystem design class
In which OOAD
activity is the Identify
distribution Identify Design
mechanism Identify Design Design Architectural Mechanism
identified? Elements Mechanisms Class Design Analysis s
Identify Design
Elements is part of Define a Design
which workflow Candidate Design Perform Refine the Component
detail? Architecture Components Architectural Architecture s
Object-oriented Classes of the Classes of
system modelling C++ system, their Objective C the system,
using CRC method Java programs for programs for responsibilities programs for their
gives the system the system and the system responsibili
collaborating ties and
classes collaborati
ng classes
template
template for for objects
objects of a of a
particular a class of a classification particular
A class is a group of objects type objects of objects type
Class
Collaborating Class Responsibil
Collecting with Responsibilities Creating ities and
The expansion of the Responsibilities Relevant and Relevant Collaborato
acronym CRC is Classes Classes Collaborators Classes rs
may have
new
attributes
may have new and new
may have new attributes and operations
When a subclass is may have operations only new operations in addition
created using may have only only in addition to in addition to to those of
inheritance the attributes of operations of those in parent those of the the parent
resulting class parent class parent class class parent class class
its
attributes
its attributes change
its attributes are change it has no during
An object is selected invariant during during it has attributes operation
for modelling a operation of the operation of numerous relevant to the of the
system provided system the system attributes system system
Multiplicity is the
same as what
concept for an ERD? Relationship Attribute Entity Cardinality Cardinality
Composition is a
stronger form of
which of the Encapsulatio All of the Aggregatio
following? Aggregation n Inheritance above. n
A class that
A class that A class that has has no
has no direct direct A class that has direct
A class that has instances, instances, but no direct instances,
direct instances, but whose whose instances, but but whose
but whose descendants descendants whose descendant
An abstract class is descendants may may have may not have descendants s may have
which of the have direct direct direct may not have direct
following? instances. instances. instances. direct instances instances.
The term Complete Total Partial Total
for a UML has the Overlapping rule Disjoint rule specialization specialization specializati
same meaning as rule rule on rule
which of the
following for an EER
diagram?

A UML diagram
includes which of the List of List of All of the All of the
following? Class name attributes operations above. above.
An object can have
which of the
following All of the All of the
multiplicities? Zero One More than one above. above.
Which of the
following statement An object
is true concerning An object is an A class is an includes A class includes An object is
objects and/or instance of a instance of encapsulates encapsulates an instance
classes? class. an object. only data. only data. of a class.

Which of the
following applies to a Constructor
class rather than an
object? Query Update Scope Scope
Reusability of
The benefits of The ability to analysis, Improved
object-oriented tackle more design, and communication
modeling are which challenging programming between users, All of the All of the
of the following? problems results analysts, etc. above. above.
The term Incomplete
for a UML has the
same meaning as
which of the Total Partial Partial
following for an EER specialization specialization specializati
diagram? Overlapping rule Disjoint rule rule rule on rule
Updates an Deletes and Creates a
A constructor existing existing new
operation does which Creates a new instance of a instance of a All of the instance of
of the following? instance of a class class class above. a class
Which of the
following is a
technique for hiding
the internal
implementation Polymorphis All of the Encapsulati
details of an object? Encapsulation m Inheritance above. on
Expresses a part- Expresses a Expresses an is- Expresses an is- Expresses a
of relationship part-of a relationship a relationship part-of
Aggregation is which and is a stronger relationship and is a and is a weaker relationshi
of the following? form of an and is a stronger form form of an p and is a
association weaker form of an association stronger
relationship. of an association relationship. form of an
association relationship. association
relationship. relationshi
p.

The fact that the


same operation may
apply to two or more
classes is called Polymorphis Multiple Polymorphi
what? Inheritance m Encapsulation classification sm
Analysis,
design, and
implementati Analysis,
on steps in Analysis, design, and
Analysis, design, the given Analysis, design, and implement
and order and design, and implementation ation steps
implementation going implementation steps in any in the given
The object-oriented steps in the given through the steps in any order and going order and
development life order and using steps no order and using through the using
cycle is which of the multiple more than multiple steps no more multiple
following? iterations. one time. iterations. than one time. iterations.
Which of the Classes,
following statements Classes, instances
best describes what a Only classes instances and and their
class diagram can and their their relationshi
include? Only classes. relationships. relationships. None ps.
Which is the correct
name for "a possible
set of classes,
together with an
understanding of
how those classes
might interact to
deliver the
functionality of a use use case class collaborati
case"? diagram. realization. collaboration. generalization on.
A class A class
diagram diagram
shows more A class diagram shows the
One of the following A collaboration of the shows the names of
is not a difference diagram shows structural names of the the classes,
between a class object interaction, details than classes, while while the
diagram and a while a class the the collaborati
collaboration diagram ignores collaboration collaboration on ignores
diagram. Which one? this. diagram. none ignores these. these.
Which of these is the Interface, control Boundary, Interface, none Boundary,
correct set of analysis and entity. control and sequence and control and
class stereotypes in entity. entity. entity.
standard UML?
Once a
class is
It can be stereotype
useful to d, its
differentiate Once a class is behaviour
One of the following The resulting classes that stereotyped, its is likely to
is not an advantage packages can have broad behaviour is become
of stereotyping form a basis for similarities in likely to more
analysis classes. the system's the way that become more predictable
Which one? architecture. they behave. predictable. none .
Interaction
Interaction between
Customers and People who between the the system
What do boundary suppliers of the will use the system and its and its
classes represent? business. system. none actors. actors.
User Interface The class
What is the User and called
significance of the Interface is AddAdvertUI AddAdvert
double colon in the The class called the are two UI is in the
class name: User AddAdvertUI is in stereotype of alternative package
Interface::AddAdvert the package called a class called names for the called User
UI? User Interface. AddAdvertUI. same class. none Interface.
Classes
that
Classes that represent
represent something
something or or some
Classes that some concept concept in
contain in the the
What are entity Classes that persistent application classes contain application
classes? contain data. data. domain. relationship domain.
The
calculation
and
The calculation scheduling
and scheduling Classes that Classes that aspects of
aspects of the interact with control the the logic of
What do control logic of the use the users of storage of the use
classes represent? case. the system. persistent data. scheduling only case.
One of the The creation The
following cannot dire or The creation or creation or
ctly affect the state A change in the destruction destruction of a destruction
of an object. Which value of one of its of another link with of another
one? attributes. object of the another object. none object of
same class. the same
class.
A link
connects
two
A link connects instances,
two instances, while an
What is the while an A link is an association
difference between a association A link is a association connects
link and an connects two transient between two A link is for two
association? classes. association. entity classes. communication classes.
It
constrains
the
It constrains number of
the number objects of
of objects of It constrains one
one the number of participatin
participating times that an g class that
It denotes the class that can object of one can be
What is the number of be linked to participating linked to an
significance of the different classes an object of class can be it contains object of
multiplicity of an that can be linked the other linked during its relationships the other
association? together. class. lifetime. only class.
Some object-
oriented A method
An operation programming is a
A method is a is a particular languages have particular
particular implementati methods, while implement
How do operations implementation on of a other have methods is ation of an
differ from methods? of an operation. method. operations. rules operation.
Because the
developers Because
may not members of the Because
Why is it often know enough development there may
difficult to determine Because there about how team are often be several
the most appropriate may be several the users lazy and avoid alternatives
choice of alternatives that want the responsibility as that appear
responsibilities for appear equally system to be much as they equally
each class? justified. designed. can. none justified.

UNIT-V
QUESTIONS OPT1 OPT2 OPT3 OPT4 OPT5 OPT6 ANSWER
Testing is a -------- if
a program does not
work correctly. Failure. Success. Complete. Partial. Failure.
Loop testing comes
under which testing White
method box . Black box. Green box. Yellow box. White box .
Which testing
methods are used
by end-users who
actually test Trial and
software before Error Alpha and Beta White box Black box Alpha and
they use it. testing. testing. testing. testing. Beta testing.
To test a function,
the programmer has
to wrote a -----
which calls the
function and passes None of the
its test data. Stub. Proxy. Driver. above. Driver.
The testing
technique that
requires devising
test cases to
exercise the internal White
logic of a software box Glass box Grey box Black box Black box
module is called------ testing. testing. testing. testing. testing.
Software
develop
Independent test ment Software
groups is a part of--- project Software development
----------- team. testing team. Execution. Planning team. project team.
Low level Top
components are down
combined into integrati Integration Bottom up Bottom up
clusters in on. testing. integration. Cluster testing. integration.
Both
Both Inheritance
Testing OO class Inheritance and
operations is made Encapsul Polymorphis and Polymorphis
more difficult by ation. Inheritance. m. Polymorphism. m.
Black box White box Stress None of the Black box
Unit testing is a testing. testing. testing. above. testing.
The important
element of the
validation process is Alpha Gama Configuration Configuration
a ----------------- testing. Beta testing. testing. review. review.
Simple
loop,
Nested
loop, Simple loop,
structure Simple loop, Nested loop, Simple loop, Nested loop,
loop, Nested loop, While loop, Nested loop, Concatenated
The different classes Unstruct For loop, Do while Concatenated, ,
of loops seen in loop ured Structured loop, For Unstructured Unstructured
testing are loop. loop. loop. loop. loop.
Testabilit
y,
Select the correct Stability Testability, Testability,
characteristics that and Understandabil Communicati Versatility, Understanda
lead to testable Consiste ity and on, Speed Accuracy and bility and
software. ncy. Simplicity. and stability. Testability. Simplicity.
Both Hardware and
Software are
integrated and Task Behavioral validation System
tested for error in testing. testing. testing. System testing. testing.
Software testing
accounts to what
percent of software
development costs? 10-20. 40-50 . 70-80. 5-10. 40-50 .
Loop Testing comes
under which testing Black box White box Yellow box Green box White box
method? testing. testing. testing. testing. testing.
Graph based testing
comes under which Black box White box Yellow box Green box Black box
testing methods? testing. testing. testing. testing. testing.
_________ of
software design
defines the
relationship
between major
structural elements
of the
software,styles and interface architectural architectural
design patterns. design design class design design activity design
The importance of
software design can Custome
be stated with a r
single word requirem
____________. ent engineering model quality quality
Software design is
an iterative process
through which
requirements are
translated into
a__________ for
constructing the
software. Blueprint process scenario system design Blueprint
_________ refers to
a sequence of
instructions that
have a specific and
limited function in abstracti data procedural procedural
software design. on abstraction abstraction limit data. abstraction
Collection of data
that describes a
data object is design data
concept is called abstracti procedural data
___________. on abstraction abstraction data structure. abstraction
The overall structure
of the software and
the ways in which
that structure
provides conceptual
integrity for a software
system is named as engineeri software software software software
_____________. ng design abstraction architecture. architecture.
structural
Architectural design ,framewo
can be represented rk,dynam regular,depe
using the models ic,proces software,futuri ndant,engine structural,fra
like ______ , ______ s& stic,design,proc ering,archite mework,dyna
, _______ functiona ess & ctural none of the mic,process &
&_________. l. framework. &conceptual. above. functional.
_________ is the
concept used to
hide the details of
data structure and
procedural
processing behind a
module interface in
software data information information
engineering. hiding hiding design hiding all the above. hiding
In the design
patterns
___________ is the
language specific
patterns generally
implement an
algorithm element
of a component & both idioms both idioms
specific interface &coding &coding
protocol. idioms coding patterns framework patterns patterns
___________
represents a
implementation-
specific skeletal
infrastructure for framewo
design work. rk design protocol none framework
The two
components of
software
architecture design design
pyramid are data & data design & data analysis data design &
_________ & design architectural & design data design & architectural
___________ model design analysis design analysis design
__________ is a
technique that
reuses design
elements that have pattern-
proven successful in based programming pattern programming pattern-
the past. design based data programming design. based design
______ are used to
create interface and
also interacts with controller boundary
software. sub class super class class boundary class class
is used to assemble
a collection of
related classes. methods objects package instance. package
When faced with
severe deadline
pressure,
experienced project
managers some
times use a project
scheduling and
control technique
called White - Effort
_________________ Boxing Black -Boxing Time-Boxing Validation Time-Boxing
___________
enables you to
determine what
tasks will be
conducted at a given Time - Project Time line
point in time. Boxing Time line chart tables Scheduling tool chart
Software
develop
Independent test ment Software
groups is a part of--- project Software development
----------- team. testing team. Execution. Planning team. project team.
Overloading without
explicit arguments operator Unary Binary Unary
to an operator is overloadi Argument operator operator operator
known as ------- ng overloading overloading overloading overloading
Overloading with
single explicit
arguments to an operator Unary Binary Binary
operator is known overloadi Argument operator operator operator
as ------- ng overloading overloading overloading overloading
________ feature
can be used to add
two user-defined
operator data types. Function Overloading Arrays Pointers Overloading
Which of the
following
overloading
operator does not
allow in operator
function in c++? + >> ./ ?: ?:
Pure virtual function
should be declare in outside the
------------------------- public private protected class public
The friend function
binary operator
overloading
operator must have
________ operand two three one four three
The friend function
unary operator
overloading
operator must have
________ operand two three one four one
The technique of
building new classes
from the existing
class is called --------- inheritan polymorphis
---- ce friend m Overloading inheritance
The class derived
from two or more single
than two base class inheritan multiple hybrid hierarchal multiple
is called ________. ce inheritance inheritance inheritance inheritance
Derivation of several
classes from a single single hierarchal
base class is called inheritan multiple hybrid hierarchal inheritancens
________. ce inheritance inheritance inheritancens: :
Overloading feature
can add two
________ data
types. in-built enumerated user-defined static user-defined
The public member
of a class can be
accessed by its own
objects using the Scope
________ resolutio
operator. n Relational Arithmetic DotAns: DotAns:
Derivation of a class multileve
from another l
derived classes is inheritan multiple hybrid hierarchal multilevel
called ________. ce inheritance inheritance inheritanceAns: inheritance
Derivation of class
involving more than multileve
one form of l
inheritance is called inheritan multiple hybrid hierarchal hybrid
________ ce inheritance inheritance inheritance inheritance
.A _________ is a
function declared in
a base class that has
no definition
relative to the base virtual pure virtual pure virtual
class. function function stream class function
Pure virtual function
is equated to ------- 0 1 2 3 0
Inheritance provides
the concept of derived virtual base
________. class subclass class reusability reusability
The virtual function
must be defined in Private or
_______ Public Private Protected protected Public
The function in base
class is declared as
virtual using the
keyword _______ Virtual virtual function pure virtual friend Virtual
Virtual functions are
from the concept of polymorphis
______ objects polymorphism inheritance None. m
To use a friend
function to overload
the ++ or --
operators we have operator
to pass the ----- & operand & object & operand &
as a argumen reference reference object & reference
_____________. t parameter parameter argument parameter
_____ is achieved
when a virtual
function is accessed run time run time
through a pointer to polymorp polymorphis
the base class. hism inheritance class friend. m
We cannot have
virtual constructors
but _____ are translato default virtual static virtual
allowed. rs constructor destructor members. destructor
The keywords
private and public
are known as
_________ labels. static dynamic visibility const visibility
Duplication of
inherited members
of ___ inheritance
avoided by making
the common base
class, a virtual base
class. single multi-level multipath hierarchicalAns multipath

visibility mode
----------- is the must be any of
default visibility public, private ,
mode. private public protected protected private
Operator
overloading in a function operator
class known as overload overload Overloading Overloading
_______ operator function operator operator
92

You might also like