MC9244 	OBJECT ORIENTED ANALYSIS AND DESIGN            	 
L T P C
3 1 0 4
UNIT I 		INTRODUCTION							       12
An overview – Object basics – Object state and properties – Behavior – Methods – Messages – Information hiding – Class hierarchy – Relationships – Associations – Aggregations- Identity – Dynamic binding – Persistence – Metaclasses – Object oriented system development life cycle. 

UNIT II 	METHODOLOGY AND UML						       12
Introduction – Survey – Rumbugh, Booch, Jacobson methods – Patterns – Frameworks – Unified approach – Unified modeling language – Static and Dynamic models – UML diagrams – Class diagram – Usecase diagrams – Dynamic modeling – Model organization – Extensibility.

UNIT III 	OBJECT ORIENTED ANALYSIS					       12
Identifying Usecase – Business object analysis – Usecase driven object oriented analysis – Usecase model – Documentation – Classification – Identifying object, relationships, attributes, methods – Super-sub class – A part of relationships Identifying attributes and methods – Object responsibility

UNIT IV 	OBJECT ORIENTED DESIGN					       12
Design process – Axions – Colollaries – Designing classes – Class visibility – Refining attributes – Methods and protocols – Object storage and object interoperability – Databases – Object relational systems – Designing interface objects – Macro and Micro level processes – The purpose of a view layer interface

UNIT V 	SOFTWARE QUALITY						       12
Quality assurance – Testing strategies – Object orientation testing – Test cases – Test Plan – Debugging principles – Usability – Satisfaction – Usability testing – Satisfaction testing
						 L : 45 T : 15 Total No. of periods    :    60
TEXT BOOKS

1.	Ali Bahrami, “Object Oriented System Development”, McGraw Hill International Edition, 1999.

REFERENCES 
1.	Craig Larman, Applying UML and Patterns, 2nd Edition, Pearson, 2002. 
2.	Grady Booch, James Rumbaugh, Ivar Jacobson, “The Unified Modeling Language
       User Guide”, Addison  Wesley Long man, 1999.
3.	Bernd Bruegge, Allen H. Dutoit, Object Oriented Software Engineering using UML,
      Patterns and Java, Pearson 2004

EGSP College of Engineering
Department of Computer Applications

Subject      : Object Oriented Analysis and Design 				Sem	: IV

Sub Code	: MC9244							Class	: II MCA
Question Bank
PART – A
UNIT-I
1)	What is an Object?
The term object means a combination of data and logic that represents some real world entity. For example, consider a Ashok automobile, it can be represented in a computer program as an object.

2)	What is Polymorphism?
Poly means many and morph means form. In the context of object-oriented systems, it means objects that can take on or assume many different forms. Polymorphism means that the same operation may behave differently on different classes. Booch defines polymorphism as the relation ship of objects of many different classes by some common superclass; thus, any of the objects designated by this name is able to respond to some common set of operations in a different way.

3)	What is the difference between an object's methods and an object's attribute?
Properties represent the state of an object. Often, we want to refer to the description of these properties rather than how they are represented in a particular programming language.
A method implements the behavior of an object. Basically, a method is a function or procedure that is defined for a class and typically can access the internal state of an object of that class to perform some operation

4)	What is inheritance?
Inheritance is the property of object-oriented systems that allows objects to be built from other objects. Inheritance allows explicitly taking advantage of the commonality of objects when constructing new classes. The parent class is also known as the base class or super class.

5)	Why is encapsulation important?
Encapsulation means that the user cannot see the inside of an object "capsule", but can use the object by calling the object's methods. This ensures not only that instructions are operating on the proper data but also that no object can operate directly on another object's data. Using this technique, an object's internal format is insulated from other objects.

6)	What is the difference between a method and a message?
A message is much more general than a function call. To draw a chart, you would send a draw message to the chart object. Notice that draw is a more general instruction than, say, draw a chart. This is because the draw message can be sent to many other objects, such as a line or circle, and each object could act differently.	The message is the instruction and the method is the implementation

7)	Why is polymorphism useful?
Polymorphism allows us to write generic, reusable code more easily, because we can specify general instructions and delegate the implication details to the objects involved. Since no assumption is made about the classes of an object that represents a message, fewer dependencies are needed in the code and, therefore, maintenance is easier.

8)	What is an association?
Association represents the relationship between objects and classes. For example, in the statement "a pilot can fly planes", is an association. Association is bi-directional; that means they can be reversed in both directions, perhaps with different connotations. The direction implied by the name is the forward direction; the opposite direction is the reverse direction.

9)	What is a formal class?
Formal or abstract classes have no instances but define the common behaviors that can be inherited by more specific classes.

10)	What is OOSDLC? Compare with traditional approach
OOSDLC (object oriented software development life cycle) consists of three macro processes namely: 
•	Object oriented analysis
•	Object oriented design
•	Object oriented implementation 
Object oriented systems development includes these activities namely:
(a) Object oriented analysis
(b) Object oriented design
(c) Prototyping
(d) Component based development
(e) Incremental testing 
Comparison with traditional approach: This is advantageous over the traditional approach where change and refinement is highly impossible.

11)	What is prototyping? Why is it useful?
Prototype is a version of software product developed in the early stages of product's life cycle for specific and experimental purposes. Prototyping can further define the use cases and it actually makes use case modeling much easier.
Uses: -
Prototyping was used as "quick and dirty" way to test the design, user interface and something to be thrown away when the "industrial strength" version was developed.

12)	What is software development process?
It is a process of change, refinement, transformation or addition to the existing product with in the process it is possible to replace one subprocess with a new one as long as a sub process has the same interface as the old one.
13.  What are some of object oriented design process?
•    Design and refine classes
•    Design and refine attributes
•    Design and refine methods
•    Design and refine structures
•    Design and refine association
14. What is use case modeling?
Expressing the high -level processes and interaction with customers in a scenario and analyzing it is referred to as use-case modeling. A use case model represents the users view of the system or user needs.

15. What is object modeling?
Object modeling is a process by which the logical objects in the real world are represented by actual objects in the program. UML class diagram also referred to as object modeling, which is main static analysis diagram.
16.Whatis RAD?
RAD (Rapid Application Development) is a set of tools and techniques that can be used to build an application faster than typically possible traditional methods. The main objective of RAD is to build a version of an application rapidly to see whether the system does what it is supposed to do (design)
17. Why is CBD important?
CBD helps produce faster product development cycles, increase flexibility and improved customization features. CBD will allow independently developed applications to work together and do so m\some efficiently and with less development effort.

18. Why is reusability important and how does OOSD promote reusability?
Reusability is important because it provides increased reliability, reduced time and cost for development and improved consistency. OOSD promotes reusability by
1.   Information hiding
2.   Conformance to naming standard
3.   Creation and administration of an object repository
4.	Establishing targets for a percentage of the objects in the product to be reused.

19. What is RAD?
RAD (Rapid Application Development) is a set of tools and techniques that can be used to build an application faster than typically possible traditional methods. The main objective of RAD is to build a version of an application rapidly to see whether the system does what it is supposed to do (design)

20. What is object modeling?
Object modeling is a process by which the logical objects in the real world are represented by actual objects in the program. UML class diagram also referred to as object modeling, which is main static analysis diagram.

UNIT – II

1) What are a method, methodology and process?
Ans: A method is an implementation of an object's behavior. A model is an abstract of a system constructed to understand the system prior to building or modifying it.
Methodology is going to be a set of methods, models and rules for developing systems based on any set of standards. The process is defined as any operation being performed.
2) Write the difference between a method and a process.
Ans: Method is going to be implanted version of an objects behavior whereas the process is any operation being performed. Methods concentrate on the data or the object invoking it and modify their behavior. Process is any operation that needs to be carried out in the system.
3) What are the phases of OMT? Briefly explain each one of them.
Ans: The different phases of OMT are:	lj\
a) Analysis: This results in the object and dynamic and functional models. The object model describes the structure of objects in a system and is represented by means of an object diagram.
The dynamic model is going to be a detailed state transition diagram. The diagram is going to be a set of states receiving events so as to make transitions. The functional model is a representation of flow of data between different processes in a business. The process is any function being performed, data flow shows the direction of data element movement, data store is location of the data storage; an external entity is a source or destination of data element.
b) System Design: The results are a structure of the basic architecture of the system along with high-level strategy decisions.
c) Object Design: The phase produces a detailed design document of all the models.
d) Implementation: This phase produces a comprehensive code for the problem.
4) Name 5 Booch diagrams.
Ans: 5 Booch diagrams are Class diagrams, Object diagrams, State transition diagrams, Module diagrams, and Process diagrams.
5. Briefly describe the Booch system development process.
Ans: It helps us design the system using the object paradigm. It covers the analysis and design phases of a system. It includes a macro and a micro development process. Macro development process is concerned with the technical management of the system. It includes
a) Conceptualization where the core requirements of the system are outlined
b) Analysis and the development model which focuses on the class diagrams,
c) Design or creation of the computer architecture to establish relationships between    the' classes
d) Evolution or implementation to produce a code and
e) Maintenance to add new requirements and to eliminate the bugs.
Each macro development process has its own micro development process which aims at
a) Identifying class and objects
b) Identifying class and object semantics.
c) Identifying class and object relationships
d) Identifying class and object interfaces and implementation

6) What is a use case? What are some of the ways that use cases can be described? 
Ans. Use Case is a scenario depicting a user system interaction. It begins with the user of the system issuing a sequence of interrelated events. Use cases are described as:
a) Nonformal text with no clear flow of events.
b) Text, easy to read but with a clear flow of events.
c) Formal style using pseudo code.
7) What is the strength of Jacobson et. Al. Methodology?
Ans: The strength of the Jacobson et. Al. methodology is that it entire life cycle and stress trace ability between the different phases, both forward and backward. This enables the reuse of analysis and design work, reducing development time significantly.
8) What do you mean by difference between patterns and frameworks.
Ans: A pattern is instructive information that captures the essential structure and insight of a successfully family of proven solutions to a recurring problem that arises within certain context and system of forces. Pattern solves a problem, is a proven concept, describes relationships, and has significant human component.
A framework is a way of presenting a generic solution to a problem that can be applied to all levels in a development. It represents a set of classes that make up a reusable design for a specific class of software. It partitions the design into abstract classes and also defines relationships between them. They emphasize design reuse over code reuse.
9). What are antipatterns?
A pattern represents a "best practice," whereas an antipattern represents "worst practice" or a "lesson learned."
10) What is pattern mining?
A pattern should help its users comprehend existing systems, customize systems to fit user needs, and construct new system. The process of looking for patterns to document is called pattern mining.

11. What are the processes involved in UA to software development?
•    Use-case driven development
•    Object-oriented analysis
•    Object-oriented design
•    Incremental development and prototyping
•    Continuous testing

12. How are models represented and organized?
Static model: A static model can be viewed as a snapshot of a system's parameters at rest or at a specific point in time. Static models are needed to represent the structural or static aspect of a system. For example a customer could have more than one account or an order could be aggregated from one or more line items.
Dynamic model: A dynamic model contrast to a static model, can be viewed as a
collection of procedures or behaviours that, taken together, reflect the behaviour of a
system over time. For example an order interacts with inventory to determine product
availability. Dynamic relationships show how the business objects interact to perform tasks.

13. List the graphical diagrams defined by UML.
1 Class diagram (static)
2 Use-case diagram
3 Behavior diagram (dynamic)
 3.1    Interaction diagram 
3.1.1 Sequence diagram
3.1.2 Collaboration diagram
   3.2   State chart diagram
4    Implementation diagram
   4.1 Component diagram   
      4.2  Deployment diagram
14. What is a Qualifier?
A qualifier is an association attribute. For example, a person object
may be associated to a Bank object. An attribute of this association is the account#. The account# is the qualifier of this association.
Bank

	Account#

               *
             0..1

Person
	
A qualifier is shown as a small rectangle attached to the end of an association path, between the final path segment and the symbol of the class to which it connects. The qualifier rectangle is part of the association path, not part of the class. The qualifier rectangle usually is smaller than the attached class rectangle.
15) What is meant by Multiplicity?
Multiplicity specifies the range of allowable associated classes. It is given for roles within associations, parts within compositions, repetitions, and other purpose. A multiplicity specification is as a text string comprising a period-separated sequence of integer intervals, where an interval represents a range of integers in this format: " lower bound.. upper bound". 
The terms lower bound and upper bound are integer values. The star character (*) may be used for the upper bound, denoting an unlimited upper bound. If a single integer value is specified, then the integer range
contains the single values.
Eg:0..1
0..*
1. . 3,7. . 10,15,19..*
16) What is Association class.?
An association class is an association that also as class properties. The name in the class symbol and the name string attached to the association path are the same. If an association class has attributes but no operations or other associations, then the name may be displayed on the association path and omitted from the association class to emphasize its “association nature". If it has operations and attributes then the name may be omitted from the path and placed in the class rectangle to emphasize its "class nature".
17. What are the contents of UML behaviour diagrams?
•    Interaction diagrams: a) Sequence and b) collaboration diagrams
•    State chart diagrams
•    Activity diagrams

18. What is an Association rule?
An association may have an association name. This name may have an optional black triangle in it, the point of the triangle indication the direction in which to read the name. The end of an association where it connects to a class is called the association role.
19. Discuss some of the forms of associations? Draw their UML representations. 
OR Association:
This indicates a situation in which only one of several potential associations may be instantiated at one time for any single object.

A car may associate with a person or a company.
 N-ary Association:

GradeBook
grade
exam
lab
This association is an association among more than 2 classes. It is better to convert an n-ary association to binary association. This is shown as a large diamond with a path from the diamond to each participant class.

An n-ary (ternary) association that shows association among class, year and student classes. The association class “GradeBook” which contains the attributes of the associations such as grade, exam and lab.
Aggregation:This is a hollow diamond attached to end the path to indicate aggregation. The UML notation for composition is a solid diamond at the end of a path.

20. What is a meta-model?
It is a model of modeling elements. This assures consistency among diagrams. This has made possible for a team to explore ways to make the modeling language much simpler by in a sense unifying the elements of the unified modeling language.

UNIT- III
1.   Explain usecase model?
Use cases are scenarios that describe how actors use the system .a use case is an interaction between users and a system, it captures the goal of the users and the responsibility of the system to its users. For example, a car; typical uses of a car include "take you different places" or "hand your stuff' or a user may want to use it "off the road"
2. What are the keywords of usecase definition?
Use case is a special flow of events through the system. By definition, many
courses of events are possible and many of these are very similar. It is suggested that, to
make a use-case model meaningful, we must group the courses of events and call each
group a use-cse model meaningful, we must group the courses row a book from the	
library depends on whether the book is located in the library, whether you are the
member of the library, and so on. All these alternatives often are best grouped into one or two use cases called Borrow books and Get an interlibrary loan. By grouping the use cases, we can manage complexities and reduce the number of use cases in a package.
3.   When will be Extends association used?
The extends association is used when you have one case that is similar to another use case but does a bit more specialized; in essence, it is like a subclass. In our example, checking out a book is the basic use case. This is the case that will represent what happens when all goes smoothly.
4.   When uses association will occur?
The uses association occurs when you are describing you use cases and notice that some of them have subflows in common. The relationships among the other use cases and this new extracted use case is called a uses association. The uses association helps us avoid redundancy by allowing a use case to be shared. For example, checking a library card is common among the borrow books, return books, and interlibrary loan use cases.
5.   Explain the steps for finding usecases.
  1.For each actor, find the tasks and functions that the actor should be able to perform or that the system needs the actor to perform. The use case should represent a course of events that leads to a clear goal.
2.   Name the use cases.
3.   Describe the use cases briefly by applying terms with which the user is familiar. This makes the description less ambiguous.
6.   List the guidelines for selecting classes in an application.
•    Look for nouns and noun phrases in the cases.
•    Some classes are implicit or taken from general knowledge.
•    All classes must make sense in the application domain; avoid computer implementation classes - defer them to the design stage.
•    Carefully choose and define class names.
7.   What are the guidelines for selecting candidate classes from the relevant & Fuzzy categories of classes?
•    Redundant classes; Do not keep two classes that express the same information. If more than one word is being used to describe the same idea, select the one that is the most meaningful in the context of the system.
•    Adjective classes; Adjectives can be used in many ways. An adjective can suggest a different kind of object, different use of the same object, or it could be utterly irrelevant.
•    Attribute classes: Tentative objects that are used only as values should be defined or restated as attributes and not as a class.
•    Irrelevant classes: Each class must have e a purpose and every class should be clearly defined and necessary.

8. What is common class pattern strategy?
•	The common class pattern strategy is a method for identifying classes. 
•	It is based on knowledge base of the common classes that have been proposed by various researches.  

9. How would you name classes?
•	The class name should be singular.
•	Choose the class name from standard vocabulary for the subject matter with which the clients or users are comfortable.
•	The class name should reflect its intrinsic nature.
•	Use readable names.
•	Capitalize class names.
•	Code should be consistent and easy to read.

10.  What is the place class source?
Places are physical locations that the system must keep information about. They represent physical locations, buildings, stores, sites, or offices about which the system needs to keep track. They are not applicable to the bank system. E.g. Buildings, stores, sites and offices.
11. What are the tangible things and device classes?
This is one of the common class patterns. This class includes physical objects or groups of objects that are tangible and devices with which the application interacts. E.g.: Cars are an example of tangible things and pressure sensors are an example of devices.

12. Why is an identifying class an incremental process?
In the process of identifying classes, some classes will be missing; others will be eliminated or redefined later. Unless we are starting with a lot of domain knowledge, we may miss more classes than we eliminate.
Some classes may ultimately become super classes. Thus our design will go through many stages on its way to completion and we will have an opportunity to revise it.
Thus each iteration often uncovers some classes that have been overlooked. Thus it is an incremental process.

13.. What are the guidelines for identifying the tentative associations?
The following are the guidelines for identifying the tentative association:
•	A dependency between two or more classes may be an association. Association corresponds to 
a verb or prepositional phrase, such as part of, next to, works for, or contained in.
•	A reference from class to another is an association. Some association is implicit or
 taken from general knowledge.
14. List the guidelines for identifying super -sub relationships?
•	Top-Down: Look for noun phrases composed of various adjectives in a class name. Avoid Successive refinement. Specialize only when the subclasses have significant behavior.
•	Bottom-Up: look for classes with similar attributes and methods, in most cases. You can Group them by moving the common attributes and methods to an abstract class
•	Reusability: Move attributes and behavior as high as possible m the hierarchy. Do not create very specialized classes at the top of the hierarchy. Balancing act can be achieved through several narrations
•	 Multiple Inheritance: Avoid excessive use of multiple inheritances. 8 desertedness whiff behavior is to get from which class when several ancestors defuse than same method. One way of achieving the benefits of multiple inheritance is to inherit from the most appropriate class and add an object of another class as an attribute.

15.What is an association?
Association represents a physical or conceptual condition between two or more objects. For e.g.: if an object has the responsibility for telling another object that a credit card number is valid or invalid. The classes have an association.
16. What is Generalization?
Superclass -subclass relationships, also known as Generalization hierarchy allow objects to be built from other objects. Such relationships allow us to take advantage of the commonality of objects when constructing new classes.

17. Is association different from a part of a relationship?
Association and part of relation are similar except for the fact that it depends on problem domain and a part of relation is a special case of association.

18. Why do we need to identify the system’s responsibility?
Responsibility serves as a handle for solving potential solutions.
Identifying attributes of the system’s class starts with understanding the system’s responsibilities.
Identifying the system’s responsibilities helps to identify both attributes and classes.
19. How would you identify attributes?
The following questions are used to identify system’s responsibilities.
What information about an object should be kept track of?
What services must a class provide?
Answering the first question will help us to identify the attribute of the class.

20. How would you identify methods?
The following questions are used to identify system’s responsibilities.
What information about an object should be kept track of?
What services must a class provide?
Answering the second question will help us to identify the class methods.

UNIT-IV
1. Differentiate good design and bad design.
good design	bad design	
1.Uncoupled design with less information content.	Complex coupling with information passed.	
2.Each class must have a single purpose.	No clearly defined single purpose.	
3.There is a strong association between physical system & logical system.	Not a strong association	

2. List the object oriented corollaries and axioms? 
Corollaries:
1. Uncoupled design with less information content.
2. Single purpose.
3. Large number of simpler classes.
4. Strong mapping	5. Standardization
6. Design with Inheritance 
Axioms:
1. Independence axiom
2. Information axiom.
3.What is the relationship between coupling and cohesion?
Coupling denotes the measure of strength of association established by a connection from
one object to another.
Cohesion is the interaction between software components or objects. Highly cohesive element can lower coupling because only minimal information is passed between components.

4. How can you achieve multiple inheritances with single inheritance?
Inherit the most appropriate class and add an object of another class as an attribute or aggregation. Use the instance of the class as an attribute.
What is the task of design?
Good design simplifies the implementation and maintenance of project. There must be a clear step-by-step approach to design the model. All the designed components must directly trace back to user requirements.

5. What is the significance of Occam's razor? How does Occam's razor relate to O-O design?
It states that the best theory explains the known facts with minimum complexity and maximum simplicity and straight forwardness. The best design involves the least complex code but not necessarily the fewest number of classes or methods. Minimizing complexity should be the goal, because that produces the most easily maintained application.

6. Write down the ways to design UI.
•	Make the interface forgiving.
•	Make the interface visual. 
•	 Provide immediate feedback.
•	Avoid modes
•	Make the interface consistent.

7. Write about Multidatabase System.
A Multidatabase system (MDB) is a database system that resides unobtrusively on top of, says existing relational and objects databases and files systems and presents a single database  illusion to Ms users
•	Automatic generation of a unified global database schema from local DB. 
•	 Provision of cross-database functionality by using unified schemata.
•	Integration of heterogeneous DB systems with multiple DB
•	Integration of data types other than relational data through the use of such tools as driver Generators. 
•	Provision of a uniform but diverse set of interfaces.
8. What are the steps for the view layer macro process?
The view layer macro process consists of two steps:
•	For every class identified determine if the class interacts with a human actor. If so, perform the following ;otherwise, move to next the next class.
•	Iterate and refine.

9. What applications are responsible for the view layer?
The view layer objects are responsible for two major aspects of the applications:
1 Input -responding to user interaction: The user interface must be designed o translate an action by user, such as clicking on a button or selecting from a menu, into appropriate response.
2 Output_displaying or printing business objects: This layer must paint the best picture possible of tlic business objects for the user. In one interface, this may mean entry fields and list boxes to display an order and its items.

10. What are the Interfaces of the Database?
1  Database schema and data definition language: A DDL (Data definition language) is the language used to describe the structure of and relationships between objects stored in a database.
2 Data manipulation language and query capabilities: ADML (Data manipulation language) is the language that allows users to access and manipulate is the standard DML for relational DBMSs.

11. What are the challenges in design with inheritance? What is single and multiple inheritances?
Multiple inheritances introduce ambiguity and program is more difficult to understand. We need to determine which behavior to get from which class, particularly when several ancestors have same method. 	Single inheritance: When a single new class inherits the behavior of a base (parent class).
Multiple inheritance: When a class inherits its state and behavior from more than one super class.
12. How an object-oriented system can be thought of as an organic system?
Organic system means they grow as u creates new application. The knowledge of existing classes will help in determining what new classes are needed to accomplish the tasks.
13. What does design pattern provide?
A design pattern provides a scheme for refining the subsystems or components of a software system or the relationship among them. Design patterns are devices that allow systems to share knowledge about their design, by describing commonly recurring structures of communicating components that solve a general design problem within a particular context.
14. Mention the modes that can be used in the user interface.
•	Modal dialog
•	Spring -loaded modes
•	Tool-driven modes
15. What is the purpose of view layer? 
•	Forms and data entry windows 
•	Dialog boxes. 
•	Application windows (main window)
16. What do you mean by Database Models? Mention its types.
•	Data model is a collection of logical constructs used to represent the data structure and data relationship within the DB.
•	Hierarchical Model: This represents data as a single rooted tree.
•	Network Model: A network DB model is similar to a hierarchical DB's, with one distinction.
•	Relational Model: Of all the DB models, the relational model has the simplest, most uniform structure and is the most commercially widespread.
17. What are the tasks of Access Layer class?
There are 2 major tasks:
1. Translate the request: The access layer must be able to translate any data related requests from the business; layer into the appropriate protocol for data access.
2. Translate the results: The access layer also must be able to translate the data retrieved back into the appropriate business objects and pass those objects back into business layer.

18. What are the benefits of the Access Layer Class?
1. These classes provide easy migration to emerging distributed object technology.
 2.  These classes should be able to address the modest needs of two-tier client-server architectures as well as the difficult demands of fine-grained, peer-to-peer distributed architectures.

19. What are the categories for the data lifetime?
•	Transient results to the evaluation of expressions
•	Variables involved in procedure activation
•	Global variables and variables that are dynamically allocated
•	Data that exist between the executions of a program
•	Data that exist between the versions of a program
•	Data that outlive a program

20. Why people are not using reusability?
Software engineering textbooks teach new practioners to build system from "first principles".
The "not invented here syndrome" and intellectual challenge of solving an interesting
software problem in one's own way mitigate reuse.
Unsuccessful experiences with software reusability in the past.
Most organization does not provide reward for reusability.
					
UNIT-5

1.What do you mean by usability Testing?
It is the effectiveness, efficiency and satisfaction with which a specified set of users can achieve a specified set of tasks in particular environments. The ISO definition requires 
•	Defining tasks. What are the tasks? 
•	Defining users. Who are the users?
 A means for measuring effectiveness, efficiency and satisfaction. How do we measure usability?
2. List the guidelines for developing usability testing.
•	The usability testing should include all of the s/w components.
•	Usability testing need not be very expensive or elaborate, such as including trained specialists working in a sound proof lab with one-way mirrors and sophisticated recording equipment.
•	Similarly, all tests need not involve many subjects.
•	Consider the user's experience as part of your s/w usability. You can study 80-90% of most design problems with as few as 3 or 4 users if you target only a single skill level of users, such as novices or intermediate level users.
•	Apply usability testing early and often.
3. What are the designing measurable goals assisted for usability?
Usability can be assisted by designing measurable goals, such as
1. 95% users should be able to find how to with draw money from the ATM machine with out
error and with no formal training.
 2. 70% of all users should experience the new function as "a clear improvement over the previous one.
3. 90% of consumers should be able to operate the VCR within 30 minutes.
4. What are the objectives of the user satisfaction test?
•	As a communication vehicle between designers, as well as between users and designers.
•	 To detect and evaluate changes during the design process.
•	To provide periodic indications of divergence of opinion about the current design.
•	 To enable pin pointing specific areas of dissatisfaction for remedy.
•	 To provide a clear understanding of just how the completed design is to be evaluated.
5. Why quality assurance is needed?
It is because computers are information for doing what you tell to do, not necessarily what you want them to do. To close this gap, the code must be free from errors, that because unexpected results a process called "Debugging".
6. What are the kinds of errors you might encounter when you run your program? 
1.Language Errors:
It results from incorrectly constructed code, such as an incorrectly typed keyword or some necessary punctuation omitted. These are easiest types of errors. 
2. Run time errors:
They occur and are detected as the program is running, when a statement attempts an operation that is impossible to carry out. 
3. Logic errors:
When codes do not perform the way you intended. The code might be syntactically valid and run without performing any invalid operations and yet produce incorrect results.

7. Define.Black box testing:
The concept of black box testing is used to represent a system whose inside workings are not available for inspection. In a black box testing, the test item is treated as "black" since its logic-is unknown; all that is known is what goes in and what conies out, or the input and output.(figure 13.1)
In a black box testing, you try various inputs and examine the resulting output; you call earn what the box does but nothing about how this conversion in implemented. Black box testing works very nicely in testing objects in an object-oriented environment. The black box testing works very nicely in testing objects in an object-oriented environment.

8. What is white box testing?
.  White box testing: This assumes that the specific logic is important and must be tested guarantee the system's proper functioning of the white box is in error-based testing, when you already have tested all objects of an application and all external or public methods of an object that you believe to be greater importance. (Figure 13.2).

9.Explain top down testing.
. Top Down Testing:	It assumes that the main logic or object interactions and systems messages of the application need testing than an individual objects methods or supporting logic.
A top down strategy can detect the serious flaws early in the implementation. Testing the user interface using a top down approach means testing interface navigation. Thus serves two purposes, according to Conger. 

10. What is  Bottom-up Testing?
	This starts with the details of the system and proceeds to higher levels by a progressive aggregation of details until they collectively fit the requirements for the system. In this approach, you start with the methods and classes that call or rely on no methods and classes that use only the bottom level ones already tested.
11. What are the types of path testing? 
 a) Statement Testing Coverage:  
The main idea of statement testing coverage is to test every statement in the objects method by executing it at least once. Murray states, "Testing less than this for new software is unconscionable and should be criminalized". 
b) Branch Testing Coverage:
The main idea behind branch testing is to perform enough tests to ensure that every In branch testing coverage is to perform enough tests to ensure that every branch alternative has been executed at least once under some test.

12. Summarize the impact of an object orientation on testing. 
•	Some types of errors could become less plausible . 
•	Some types of errors could become more plausible
•	 Some new types of errors might appear
•	
13. List the objective of testing.
•	Testing is the process of executing a program with the intent of finding errors.
•	A good test cases is the one that has s high probability of detecting an as-yet undiscovered error
•	A successful test case is the one that detects as -yet undiscovered error.
14) List the guidelines for developing quality assurance test cases.
Freedman and Thomas have developed guidelines that have been adopted for the UA:
•	Describe which feature or service your test attempts to cover. 
•	If the test case is based on a use case, it is good idea to refer to the use-case name.
•	Specify what you are testing and which particular feature. 
•	test the normal use of the object methods. 
•	test the abnormal but reasonable use of the objects methods. 
•	test the boundary conditions. 
•	Test objects interactions and the messages sent among them.
•	Attempting to reach agreement on answers generally will raise other what-if questions.
•	The internal quality of the software, such as its reusability and extensibility, should be assessed as well.
15. What do you understand from test plan?
A test plan is developed to detect and identify potential problems before delivering the software to its users. The test plan need not be very large; in fact, devoting too much time to the plan can be counterproductive.
16.What are the steps needed to create a test plan?
1. Objectives of the test:	create the objectives and describes how to achieve them.
2. Development of a text case:   develop test case, both input and expected output.
3. Test analysis: This step involves the examination of the test output and the documentations of the test results.
17. What is Regression testing?
All passed tests should be repeated with the revised program, called "Regression". This can discover errors introduced during the debugging process. When sufficient testing is believed to have been conducted, this fact should be reported, and testing to this specific product is complete
18. List the guidelines for developing test plans.
•	You may have requirements that dictate a specific appearance or format for your test plan. 
•	The test plan should contain a schedule and a list of required resources. 
•	After you have determined what types of testing are necessary, you need to document specifically what you are going to do.
•	A configuration control system provides a way of tracking the changes to the code. At a minimum, every time the code changes, a record should be kept that tracks which module has been changed, who changed it, and when it was altered.
•	A well thought out design tends to produce better code and result in more complete testing, so it is a good idea to try to keep the plan up to date. 
•	At the end of each month or as you reach each milestone, take time to complete routine updates
19.What are the kinds of errors you might encounter when you run your program? 

1.Language Errors:
2. Run time errors:
3. Logic errors:

20. Define Error based testing
	Error based testing techniques search a given class’s method for particular clues of interests, and then describe how these clues should be tested.

PART-B
UNIT-I
1. Why an object orientation has gained popularity and works fine?	(6)
Ans: refer page 14,15 of object oriented system development by Ali Bahrami.

2. How do you design a class and its components? What are the various types of objects and its aggregation to construct a class. Write an algorithm to find the area of plane figures when the objects are rectangle, circle, square, triangle etc.

3. Discuss how does  object orientation prove supremacy citing a case study which highlights the concept very well starting from design fundamentals.
Ans: refer page 14,15 of object oriented system development by Ali Bahrami.	

4.b.What are the metrics to check  whether the given class or object is well designed? Explain.

5.i)How does Object oriented methodology different from other programming methodologies? What are the advantages of OO methodology?
ii)Explain encapsulation and abstraction with examples:

6.i)Explain with an example class diagram explain association, composition and aggregation.

7.(i) How does object oriented methodology differ from other programming methodologies? Explain with an example.
       (ii) With an example describe how relationship between objects are implemented.

8. How is software development viewed? What are the various phases of OOSD life cycle? What is waterfall approach? List out its limitations

					UNIT-II

1.Discuss the analysis and the methodology by Booch, Shaler/Mellor, Coad/Yourdon, Rambausch compared to booch briefly. In which aspect Booch analysis is successful.
Ans: refer pages 63-69 of object oriented system development by Ali Bahrami.

2. Define patterns. How do analysis patterns differ from design patterns. Discuss generative, non generative patterns and anti patterns and list the guidelines on capturing patterns?
Ans: refer pages 71-77 of object oriented system development by Ali Bahrami.

3.  What are the major differences between a framework and a pattern?
Ans: refer page 78 of object oriented  system development by Ali Bahrami

4.What is the unified method for the development of the software?
Ans: refer pages 78-84 of object oriented system development by Ali Bahrami.

5. Discuss the various design methods and explain in detail the layered method to software development.
Ans: refer pages 80,82,83,84 of object oriented system development by Ali Bahrami.

6. Discuss the activities involved in Micro and Macro Development process.
	Pg. No.66-68 in Ali Bahrami

7. Describe the use of Sequence and collaboration diagrams with the help of example programs

8	.i)Explain component diagram and deployment diagram with examples:
	  ii) Outline OMT functional model

9. What are the primary goals of UML and explain the various class diagrams?
Ans: refer page 93 to 100 of object oriented system   development by Ali Bahrami.

					UNIT-III

1. What are the guidelines for developing effective documentation? (8)
(ii) Describe the activity diagram for a Banking System.(8)

2. (i)  What is the difference between users and actors? How would you identify them?(8)
    (ii)     Discuss the relationships and aggregation.(8)

3. Explain in detail about A-part-of relationships-Aggregation.

4. Describe in detail about Associations.

5. Why is developing a sequence / collaboration diagram a useful activity in identifying classes? Explain.

6. Explain in detail about use-case driven approach.

7. Describe use-case driven object oriented analysis in detail.

8. Explain in detail about common class patterns approach.
					UNIT-IV
1. What is coupling? While designing software programs, what precautions will one borne in mind. Tabulate types of coupling among objects or components   

2. Describe the noun phrase approach for identifying tentative classes in a problem domain. Why is classes, responsibilities and collaborations useful? Identify the 3 steps in CRC process

3. What are the guidelines for defining attributes? How would you identify a super-sub class structure?

4. What are some characteristics of a bad design? In a networking environment what precautions one has to consider to  design associations. If server—client architecture is adapted.

5. What are the activities of designing view for layer classes?
6. Why does refinement of attributes is a must? Give a suitable example for it

7. What are OODBMS standards? Explain them briefly. When to use object databases? List down at least four of their advantages and disadvantages over RDBMS

8. Explain in detail about CRC CARDS:
					UNIT-V

1. What are the various testing strategies and discuss the impact of object orientation on testing?
page no 330. 
2. What are the issues of software complexity and discuss on test tool?
3. Write short notes on the following:
(i) Guideline for developing a user satisfaction test.
   ii) White box testing
Pg. No. 329 in Ali Bahrami
  iii) Black box testing
Pg. No.328 in Ali Bahrami
 iv)Debugging
		Pg. No. 327 in Ali Bahrami
4. Discuss inheritance testing with an example.
 			Pg. No. 331 in Ali Bahrami
5. What is a test plan? Describe the contents and characteristics of a test plan.
		Pg. No.333 in Ali Bahrami
6. Describe the different testing strategies. How to develop test plans guided by Thomas
 
7. Sketch the guidelines for developing quality assurance test cases described by Freedman and Thomas adapted for the UA. What are the steps involved to make the testing successful?

8. i)Why   do   we   follow   standards   for   testing   any  particularly   Quality Assurance (QA)?	(6)
   ii) What are the guidelines adapted for developing QA test cases. 	(10)