Mca - Qbank-Cai-Mc4102-Oose-Sem I - Nov 24
Mca - Qbank-Cai-Mc4102-Oose-Sem I - Nov 24
2
grouped into and the relationships between the objects. It also identifies the main
attributes and operations that characterize each class.
13. Why is Unified Process called as iterative?
Soln:-Unified Process is based on the enlargement and refinement of a system
through multiple iterations, with cyclic feedback and adaptation. The system is
developed incrementally over time, iteration by iteration, and thus this
approach is also known as iterative and incremental software development.
14.Define Use case.
Soln:-A use case is a collection of related success and failure scenarios that
describe an actor using a system to support a goal. Use cases are text documents,
not diagrams, and use-case modeling is primarily an act of writing text, not
drawing diagrams.
15.What are Actors?
Soln:-The users that interact with a system. An actor can be a person, an
organization, or an outside system that interacts with your application or system.
They must be external objects that produce or consume data.for example, a
cashier.
16. What is Object-Oriented Analysis?
Soln:-During object-oriented analysis there is an emphasis on finding and
describing the objects or concepts in the problem domain. For example, in the
case of the flight information system, some of the concepts include Plane, Flight,
and Pilot.
17.What is Object-Oriented Design?
Soln:-During object-oriented design (or simply, object design) there is an
emphasis on defining software objects and how they collaborate to fulfill the
requirements. The combination of these two concepts shortly known as object
oriented analysis and design.
18. Distinguish between method and message in object.
Soln:-Methods are similar to functions, procedures or subroutines in more
traditional programming languages. Messageessentially are non-specific function
calls. Method is the implementation. Message is the instruction. In an object
oriented system, a method is invoked by sending an object a message. An object
understands a message when it can match the message to a method that has the
same name as the message.
3
19.How to create an instance?
Soln:-Any message can be used to create an instance, but there is a convention in
the UML to use a message named create for this purpose. «create».
The create message may include parameters, indicating the passing of initial
values. This indicates, for example, a constructor call with parameters in Java.
20.What are the merits of incremental model?
Soln:-The incremental model can be adopted when tere are less number of
peopleinvolved in the project.Technical risks can be managed with each
increment.For a very small time span, at least core product can be delivered to
the customer.
21.What is meant by Generalization and Specialization?
Soln:-
The relationship between a subclass and an immediate superclass is called a
generalization. The subclass is called a specialization. A hierarchy with one or
more generalizations is called an inheritance hierarchy, a generalization hierarchy
or an is a hierarchy.
22.What is a scenario?
Soln:-A scenario is a specific sequence of actions and interactions between actors
and the system; it is also called a use case instance. It is one particular story of
using a system, or one path through the use case; for example, the scenario of
successfully purchasing items with cash, or the scenario of failing to purchase
items because of a credit payment denial.
23. What is the UML?
Soln:-The Unified Modelling Language is a visual language for specifying,
constructing and documenting the artifacts of systems.
24.What are the three ways and perspectives to Apply UML?
Soln:-Ways - UML as sketch, UML as blueprint, UML as programming language
Perspectives, Conceptual perspective, Specification (software) perspective,
Implementation (Software) perspective.
25.Define Software Process models
Soln:-A software process model is an abstraction of the software development
process. The models specify the stages and order of a process.
26.List out various states of process?
Soln:-Process goes through different states throughout the life cycle which are
called process states. New, Ready, Running, Waiting or Block, Terminated or
4
Completed, Suspend ready, and Suspend wait or blocked are different states
which process might go during the life cycle.
27.Difference between OOA and OOD
Soln:-Object-oriented analysis (OOA) applies object-modeling techniques to
analyze the functional requirements for a system. Object-oriented design (OOD)
elaborates the analysis models to produce implementation specifications. OOA
focuses on what the system does, OOD on how the system does it.
28.Define Service
Soln:-A service business is one in which the perceived value of the offering to the
buyer is determined largely by the services provided to him than the products
offered. This includes the business of all intangible services delivered to the
customer.
29.What do you mean subject in OO Modeling?
Soln:-
Object-oriented modeling (OOM) is the construction of objects using a collection
of objects that contain stored values of the instance variables found within an
object. Unlike models that are record-oriented, object-oriented values are solely
objects.
30.What is meant by Messages?
Soln:-Each message between objects is represented with a message expression
and small arrow indicating the direction of the message. Many messages may
flow along this link. A sequence number is added to show the sequential order of
messages in the current thread of control.
5
PART – B ( 13 MARKS)
1. Explain the various concept of Object Orientation in detail (13)
Soln:-
2. INSTANCE VARIABLES
A variable is a place where you can put data. Each class declares a list of variables
corresponding to data that will be present in each instance; such variables are
called instance variables.
2.1. Attributes and associations
There are two groups of instance variables, those used to implement attributes,
and those used to implement associations.An attribute is a simple piece of data
used to represent the properties of an object. For example, each instance of class
Employee might have the followingattributes:
■name
■dateOfBirth
■socialSecurityNumber
■telephoneNumber
■address
An association represents the relationship between instances of one class and
instances of another. For example, class Employee in a business application might
have the following relationships:
■supervisor (association to class Manager)
■tasksToDo (association to class Task)
2.2.Variables versus objects
Variables that refer to objects are therefore often called references.
During the execution of a program, a given variable may refer to different
objects. Furthermore, an object can be referred to by several different variables
at the same time. The type of a variable determines what classes of objects it may
contain.
7
Variables can be local variables in methods; these are created when a method
runs and are destroyed when a method returns. However, objects temporarily
referenced by such variables may last much longer than the lifetime of the
method as long as some other variable also references the object.
Object References
In a program, you identify and address objects using unique object references.
Object references allow you to access the attributes and methods of an object. In
object-oriented programming, objects usually have the following properties:
9
In a well-designed object-oriented system, it should be possible to implement
changes at class level, without having to make alterations at other points in the
system. This reduces the overall amount of maintenance required.
Using polymorphism and inheritance, object-oriented programming allows you
maintaining the system is reduced, since many problems can be detected and
corrected in the design phase.
10
When concerns cut across multiple system functions, features, and
information, they are often referred to as crosscutting concerns.
Aspectual requirements define those crosscutting concerns that have an
impact across the software architecture.
Aspect oriented software development (AOSD), often referred to as aspect
oriented programming (AOP), is a relatively new software engineering paradigm
that provides a process and methodological approach for defining, specifying,
designing, and constructing aspects.”
Grundy provides further discussion of aspects in the context of what he calls
aspect oriented component engineering (AOCE):
AOCE uses a concept of horizontal slices through vertically decomposed
software components, called “aspects,” to characterize cross-cutting functional
and non-functional properties of components.
14
In this model, the changes are not permitted so it is not fit for moderate to high
risk changes in project.
It is a poor model for long duration projects.
The problems with this model are uncovered, until the software testing.
The amount of risk is high.
1. Incremental Model
The incremental model combines the elements of waterfall model and they are
applied in an iterative fashion.
The first increment in this model is generally a core product.
Each increment builds the product and submits it to the customer for suggesting
any modifications.
The next increment implements the customer's suggestions and add additional
requirements in the previous increment. This process is repeated until the
product is completed.
For example, the word-processing software is developed using the incremental
model.
Using the RAD model, software product is developed in a short period of time.
The initial activity starts with the communication between customer and
developer.
16
Planning depends upon the initial requirements and then the requirements are
divided into groups.
Planning is more important to work together on different modules.
1) Business Modeling
Business modeling consists of the flow of information between various
business information.
2) Data modeling
The information in the business modeling phase is refined into the set of objects
between objects.
17
3) Process modeling
The data objects defined in the data modeling phase are changed to fulfil the
data object.
4) Application generation
In the application generation phase, the actual system is built.
Reviews are taken from the clients at the staring of the development hence
This model is not a good choice for long term and large projects.
1.4.1.BusinessModeling:-
The Business Modeling discipline focuses on efforts to understand the
organization, its processes, and the problem domain. The discipline focuses on
understanding the following factors and how they may impact or relate to the
software being considered:
Enterprise business rules
Enterprise business process and domain model
Enterprise mission and vision statement
Organization model
1.4.2. Requirements:-
The requirements discipline in RUP is like the requirements discipline in pretty
much every other software process. The main difference is that RUP requirements
are highly focused in the form of UML models and Use Cases (both diagrams and
descriptions).
1.4.3.Analysis and Design:-
The Analysis and Design discipline named as the Solution Analysis and Design
discipline. This is because the requirements are analyzed from a solution design
perspective, rather than a requirements analysis perspective. Specific activities
that are part of this discipline include:
Understanding and analyzing the requirements for the system
Defining a candidate architecture for a system
Constructing a proof-of-concept or prototype to validate a candidate
architecture
Design of components, services, and/or modules
Design of interfaces (network, user, and databases)
1.4.4. Implementation:-
The Implementation discipline consists of coding, unit testing, and integration of
the software.
19
1.4.5.Testing:- The Testing discipline is focused on quality assurance of the
software being released in that cycle or iteration. It includes such activities as:
Planning test efforts
Creating test cases
Running tests
Reporting defects
1.4.6. Deployment:-
The Deployment discipline is focused on planning the deployment of, and actually
deploying, the software that is being completed that cycle, phase or iteration. It
includes such activities as:
Planning the deployment
Developing support and operations materials
Planning alpha, beta, and pilot testing efforts
1.4.7.Configuration and Change Management
The Configuration and Change Management discipline is focused on managing
change to the project’s work products. This includes such activities as:
Managing change requests
Setting up the Change Management process and environment
Planning configuration control
Monitoring and reporting the configuration status
Managing baselines and releases
Project Management
The Project Management discipline is focused on standard project management
activities such as:
Managing project staff
Stakeholder coordination and management
Managing project risks
Project estimating, planning, and scheduling
Iteration planning
Project initiation and close-out
Environment
The Environment discipline is focused on supporting the overall project and
development efforts through managing environmental factors such as:
20
Processes
Standards
Tools (hardware, software, etc.)
21
Because model building is so important to the systems, object-oriented
development offers a rich describe in Figure. The models of object-oriented
analysis and design reflect the importance of explicitly capturing both the class
and object hierarchies of the system under design. These models also cover the
spectrum of the important design decisions that we must consider in developing a
complex system, and so encourage us to craft implementations that embody the
five attributes of well-formed complex systems.
ELICITATION TECHNIQUES:-
When the requirements sources have been identified the requirements engineer
can start eliciting requirements from them. It also means requirement discovery.
The Following elicitation techniques are shown in Fig.
22
:- Interviews are a ‘traditionsl’ means of eliciting requirements. It is
important to understand the advantages and limitations of interviews and how
they should be conducted.
Scenarios:-Scenarios are valuable for providing context to the elicitation of
user’s requirements. Recent modeling notations have attempted to integrate
scenario notations with object-oriented analysis techniques.
- Prototypes are a valuable tool for clarifying unclear requirements.
There is a wide range of prototyping techniques, which range from paper mock-
ups of screen designs to beta-test versions of software products. There is a strong
overlap with the use of prototypes for requirements validation.
-The purpose of these is to try to achieve a summative
effect whereby a group of people can bring more insight to their requirements
than by working individually. They can brainstorm and refine ideas that may be
difficult to surface using (e.g.) interviews.
- The requirements engineer learns about users’ tasks by
immersing themselves in the environment and observing how users interact with
their systems and each other. These techniques are relatively new and expensive
but are instructive because they illustrate that many user tasks and business
processes are too subtle and complex for their actors to describe easily.
23
Object Modeling Technique is easy to draw and use. It is used in many
applications like telecommunication, transportation, compilers etc. It is also used
in many real world problems. OMT is one of the most popular object oriented
development techniques used now-a-days. OMT was developed by James
Rambaugh.
PART – C ( 14 MARKS)
1. Discuss about Software development, methodologies and activities in detail
25
(14)
Soln:-
Software development is the computer programming, documenting, testing, and
bug fixing involved in creating and maintaining applications and frameworks
involved in a software release life cycle and resulting in a software product.
Software can be developed for a variety of purposes, the three most common
being to meet specific needs of a specific
o client/business (the case with custom software),
o to meet a perceived need of some set of potential users (the case with
commercial and open source software),
o or for personal use (e.g. a scientist may write software to automate a mundane
task).
Embedded software development, that is, the development of embedded
software such as used for controlling consumer products, requires the
development process to be integrated with the development of the controlled
physical product.
System software underlies applications and the programming process itself,
and is often developed separately.
There are many approaches to software project management, known as
software development life cycle models, methodologies, processes, or models.
The waterfall model is a traditional version, contrasted with the more recent
innovation of agile software development.
1.1. Methodologies:-A software development methodology (also known as a software
development process, model, or life cycle) is a framework that is used
to structure, plan, and control the process of developing information systems.
Most methodologies share some combination of the following stages of software
development:
Analyzing the problem
Market research
Gathering requirements for the proposed business solution
Devising a plan or design for the software-based solution
Implementation (coding) of the software
Testing the software
Deployment
Maintenance and bug fixing
26
These stages are often referred to collectively as the software development
lifecycle, or SDLC.
2. Explain Prototype and Spiral model with neat diagrams in detail (7+7)
Soln:-
1. PROTOTYPE MODEL
Prototype is defined as first or preliminary form using which other forms are
copied or derived.
28
Prototype model is a set of general objectives for software.
It does not identify the requirements like detailed input, output.
Communication
In this phase, developer and customer meet and discuss the overall objectives of
the software.
Quick design
Quick design is implemented when requirements are known.
It includes only the important aspects i.e input and output format of the
software.
It focuses on those aspects which are visible to the user rather than the detailed
plan.
It helps to construct a prototype.
This phase gives the clear idea about the development of software as the
Construction of prototype
29
The process of refining the prototype is repeated till all the requirements of
users are met.When the users are satisfied with the developed prototype then
the system is developed on the basis of final prototype.
The development process is the best platform to understand the system by the
user.
Earlier error detection takes place in this model.
difficult functions.
Disadvantages of Prototyping Model
The client involvement is more and it is not always considered by the developer.
It is a throw away prototype when the users are confused with it.
2. SPIRAL MODEL
It is a combination of prototype and sequential or waterfall model.
It is used for generating the software projects. This model is a risk driven
process model.
Every phase in the Spiral model is start with a design goal and ends with the
client review.
The development team in this model begins with a small set of requirements
and for the set of requirements team goes through each development phase.
The development team adds the functionality in every spiral till the application
is ready.
Following are the steps involved in spiral model:
30
Phases of Spiral model are shown in Fig
1) Planning
2) Risk Analysis
3) Engineering
4) Evaluation
1) Planning
This phase, studies and collects the requirements for continuous
communication between the customer and system analyst.
It involves estimating the cost and resources for the iteration.
2) Risk Analysis:-This phase, identifies the risk and provides the alternate
solutions if the risk is found.
3) Engineering
31
In this phase, actual development i.e coding of the software is completed. Testing
is completed at the end of the phase.
4) Evaluation
Get the software evaluated by the customers. They provide the feedback before
the project continues to the next spiral.
Advantages of Spiral Model
It reduces high amount of risk.
In spiral model, the software is produced early in the life cycle process.
smaller chunks and smaller parts of software which can be reviewed to recognize
further requirements are implemented. This process is repeated to generate a
new version of the software in each cycle of a model.
The Iterative Model allows the accessing earlier phases, in which the variations
made respectively. The final output of the project renewed at the end of the
Software Development Life Cycle (SDLC) process is shown in Fig.
32
The various phases of Iterative model are as follows:
2. Design: In the design phase, team design the software by the different
diagrams like Data Flow diagram, activity diagram, class diagram, state transition
diagram, etc.
4. Testing: After completing the coding phase, software testing starts using
different test methods. There are many test methods, but the most common are
white box, black box, and grey box test methods.
5. Deployment: After completing all the phases, software is deployed to its work
environment.
Advantages
Produces working software rapidly and early in the software life cycle.
This model is easy to test and debug in a smaller iteration.
It is less costly to change scope and requirements.
DISADVANTAGES
33
The system architecture is costly.
This model is not suitable for smaller projects.
34
Thus, analysts may go deeper into one activity than the others as the domain
experts provide greater information in that area.
Equally, analysts may jump around between activities, identifying classes one
minute and services the next.
3.Deliverable:-
Coad and Yourdon propose a model, or architecture, for an object-oriented
system that is partitioned ``horizontally'' into layers and ``vertically''
into components, as shown in the following figure (which approximates Figure
2.4, on page 26 of Coad and Yourdon's Object-Oriented Design).
Layers
Coad and Yourdon recommend use of the same set of layers for a design as they
do for a class diagram in their object-oriented analysis:
Subject Layer
Class & Object Layer
Structure Layer
Attribute Layer
Service Layer
As for object-oriented analysis (and the class diagram developed during it),
the subject layer would show the subjects included in the system, the ``class &
object'' layer would show the system's classes and objects, the structure layer
would display the system's generalization-specialization and whole-
part structures, the attribute layer would show attributes and instance
connection, and, finally, the service layer would display services and message
connections.
Coad and Yourdon recommend the use of a CASE tool that would allow you to
select which layers you wish to see, when viewing the model of the system that's
being developed.
35
Components
Coad and Yourdon recommend that an object-oriented system include
a problem domain component, a human interaction component, a task
management component, and a data management component. Each is described
below.
a.Problem Domain Component
The problem domain component includes the ``problem domain'' classes that
were identified during object-oriented analysis. However, changes might be made
in order to take advantage of ``reusable'' classes that are already available (and
which may need to be added using generalization-specialization structures), as
well as changes needed to improve performance, accommodate the programming
language that will be used to implement the system (and which, for example,
might not support the kind of inheritance that might be shown on the class
diagram produced during object oriented analysis), and to connect the problem
domain classes to other components (perhaps, most notably, the data
management component).
b.Human Interaction Component
Coad and Yourdon assume that a graphical user interface will be used for the
system that's to be developed. Their ``human interaction'' component includes
classes for windows and their components. You should be able to use (and
customize) classes from a ``Graphical User Interface'' class library, in order to
develop many of the classes needed for this component of your system.
Graphical user interface libraries are currently not standardized (at all), so the
details concerning them will vary from system to system. However, the Java user
interface library is currently regarded as being well designed, and information
about it is freely available.
c.Task Management Component
A task can be defined as a process, or a ``stream of activity.'' Certain kinds of
systems require multiple tasks, including (but not limited to) systems that need to
monitor or control multiple devices simultaneously, systems with certain kinds of
user interfaces, and systems that can be used by multiple users, simultaneously.
Coad and Yourdon give a small set of properties or types of tasks that can be used
to identify the services that their classes must provide, and provide a very simple
``template'' (or pattern) for a task management subsystem, consisting of a whole-
36
part structure, showing that a ``Task Coordinator'' object has zero or more ``Task''
objects as components, and can send messages to them.
Again, you can Coad and Yourdon's book for additional details.
d.Data Management Component
The data management component ``provides the infrastructure for the storage
and retrieval of objects from a data management subsystem.'' It might provide an
interface with a relational or object-oriented data base system.
Coad and Yourdon give a small amount of information for the design of this
component, assuming that a ``flat file'' system will be used for storage, that a
relational data base package will be used, and, finally, under the assumption that
an object-oriented data base package will be used.
5. Elaborate the various testing methods of Agile Process model in detail (14)
Soln:-
The meaning of Agile is swift or versatile. "Agile process model" refers to a
software development approach based on iterative development.
Agile model is a combination of incremental and iterative process models.
This model focuses on the users satisfaction which can be achieved with quick
delivery of the working software product.
Agile model breaks the product into individual iterations.
Every iteration includes cross functional teams working on different areas such
as planning, requirements, analysis, design, coding, unit testing and acceptance
testing.
At the end of an iteration working product shows to the users.
37
With every increment, features are incremented and the final increment hold
all the features needed by the customers.
The iterations in agile process are shorter in duration which can vary from 2
weeks to 2 months.
1.AGILE TESTING METHODS
1. Scrum
2. Crystal
3. Dynamic Software Development Method(DSDM)
4. Feature Driven Development(FDD)
5. Lean Software Development
6. eXtreme Programming(XP)
1.Scrum
SCRUM is an agile development process focused primarily on ways to manage
tasks in team-based development conditions.
There are three roles in it, and their responsibilities are:
o Scrum Master: The scrum can set up the master team, arrange the meeting and
42