Lab Print
Lab Print
Lab Print
LAB MANUAL
Semester : VI
Department : CSE
Regulation : 2021
3
INTRODUCTION
OBJECT-ORIENTED ANALYSIS AND DESIGN (OOAD)
Object oriented analysis and design is a software engineering approach which models
the system as interacting objects. Each object represents a system entity which plays a
vital rolein building of that system.
Analysis
1. Analysis emphasizes an investigation of the problem and requirements, rather
than asolution.
2. “Analysis” is a broad term, best qualified, as in requirements analysis(an
investigation of the requirements) or object-oriented analysis(an investigation of the
domain objects)
3. Analysis means do the right thing.
Design
1. The design emphasizes a conceptual solution (in software and hardware) that fulfills
the requirements, rather than its implementation. For example, a description of a
database schema and software objects.
2. Design ideas often exclude low level or “obvious” details.
3. Design means do the thing right.
Software Engineering
Software Engineering is the process of designing, developing, testing, and maintaining
software. It is a systematic and disciplined approach to software development that aims to create
high-quality, reliable, and maintainable software.
4
ExNo.1 IDENTIFY A SOFTWARE SYSTEM THAT NEEDS TO BE DEVELOPED
AIM
To develop a problem statement for the suggested domain of mini-project.
PROBLEM STATEMENT
A problem statement is a clear concise description of the issue(s) that need(s) to be
addressed by a problem solving team. It is used to center and focus the team at the beginning,
keeps the team on track during the effort, and is used to validate that the effort delivered an
outcome that solves the problem statement. It has a specific form:
Vision - What is the problem? This should explain why the team is needed
Issue Statement - one or two sentences that describe the problem using specific issues.
It is not a "lack of a solution" statement.
Method - the process that will get followed to solve the problem.
The primary purpose of a problem statement is to focus the attention of the problem solving
team. However, if the focus of the problem is too narrow or the scope of the solution too
limited, the creativity and innovativeness of the solution can be stifled. A good problem
statement should answer these questions:
1. What is the problem? This should explain why the team is needed.
2. Who has the problem or who is the client/customer? This should explain who needs
the solution and who will decide the problem has been solved.
3. What form can the resolution be? What is the scope and limitations (in time, money,
resources, and technologies) that can be used to solve the problem?
5
RESULT
6
Ex No.2 (a) PROJECT CREATION USING USING STARUML
AIM
To create a project using starUML
StarUML
StarUML is an open-source modeling software that supports the Unified Modeling Language
(UML) framework. It provides several types of diagrams and lets users generate code in multiple
languages. With its help, developers can create designs, concepts, and coded solutions. However, users
should note that this isn’t a simple program and is aimed at expert developers.
StarUML free download is designed to help users get an overview of their solution before its
completion. The tool also supports complex modeling through Model Driven Architecture (MDA)
and third-party plugins.
PROCEDURE
Creating New Project
In order to work on a new software development, a new project must be created. You may start with a
completely empty project or with a new project that has been initialized according to a specific
approach.
Procedure for Creating New Project #2 – Select New Project Dialog Box:
Opening Project
In order to work on a saved project, the project file must be opened. If the project includes more than
one unit, all the related units will also be loaded with the project.
7
2. At the Open Project dialog box, select a project file (.UML) and click the [Open] button.
Saving Project
Closing Project:
8
RESULT
Thus a new project, users and new groups are created and the privileges are assigned for the project
created and connected in starUML
9
Ex No.2 (b) CREATION OF SOFTWARE REQUIREMENT SPECIFICATION
AIM
To Document the Software Requirements Specification (SRS) for the identified system
REQUIREMENT ANALYSIS
The purpose of system requirement analysis is to obtain a through and detailed
understanding of business needs as defined in project organization and captured in business
case and to break if down into discrete requirements, which are then clearly defined, reviewed
and agree upon with the customers and decision makers. During the system requirement
analysis the framework for the application is developed and providing the foundation for
future design and development efforts.
Requirement analysis is also called as requirement engineering which is the process of
determining user expectation for new or modified project. These features are called
requirement it must be quantifiable. In software engineering such requirement are often
called as functional specification.
SCOPE
The System provides an online interface to the user where they can fill in their personal details.
10
The authority concerned with the issue of passport can use this system to reduce his workload
and process the application in a speedy manner. Provide a communication platform between the
applicant and the administrator Transfer of data between the Passport Issuing Authority and the
Local Police for verification of applicant's information.
System Features and Requirements
FUNCTIONALREQUIREMENTS
Functional requirements are the requirements that the end user specifically demands as basic
facilities that the system should offer .All these functionalities need to be necessarily
incorporated into the system as a part of the contract.
These are represented or stated in the form of input to be given to the system, the operation
performed and the output expected. They are the requirements stated by the user which one can
see directly in the final product, unlike the non-functional requirements.
Example:
What are the features that we need to design for this system?
What are the edge cases we need to consider, if any, in our design?
NONFUNCTIONALREQUIREMENTS
Non functional requirements, which help ensure that a product will work the way users and
other stakeholders expect it to, can be just as important as functional ones.
These may include:
Performance requirements
Safety requirements
Security requirements
Usability requirements
Scalability requirements
SOFTWARE INTERFACE
1. Front End Client - The applicant and Administrator online interface is built using
Microsoft Visual Basic 6.0.
2. Back End–MS Access database
HARDWARE INTERFACE
The server is directly connected to the client systems. The client systems have access to
the database in the server.
11
RESULT
Thus the requirements specification, requirement views and packages for the project
created in rational administrator using rational requisite pro is analyzed successfully.
12
UNIFIED MODELING LANGUAGE
DESIGN
Design has the great impact on the overall success of the software development
projects. A large pay off is associated with creating a good design up from before writing a
single code, while this is due to all programming classes and objects understand approach
even more good design usually simplifies the implementation and maintenance. During design
phase we must evaluate the model to actual objects that can be perform the required tasks.
There is a shift in emphasis from the application domain to implementation. The classes
during analysis provides as a framework for design phases.
MODELING
Building a model for a software system prior to its construction is as essential as having a
blueprint for building a large building. Good models are essential for communication among
project teams. A modeling language must include
Model elements-fundamental modeling concepts and semantics.
Notation-visual rendering of model elements.
Guidelines-expression of usage within the trade
The use of visual notation to represent or model a problem can provide us several benefits
relating to clarity, familiarity, maintenance and simplification.
UNIFIED MODELING LANGUAGE
The Unified Modeling Language (UML) is a language for specifying, visualizing,
constructing, and documenting the artifacts of software systems and its components. The
UML is a graphical language with sets of rules and semantics. The rules and semantics of a
model are expressed in English, in a form known as object constraint language (OCL). OCL is a
specification language that uses simple logic for specifying the properties of a system. The
UML is not intended to be a visual programming language in the sense of having all the
necessary visual and semantic support to replace programming languages.
UML DIAGRAMS
UML defines nine graphical diagrams
Use-case diagram
Class diagram
13
Behavior Diagram
Interaction Diagram
Sequence Diagram
Collaboration diagram
State chart diagram
Activity diagram
Implementation diagram
Component diagram
Deployment diagram.
StarUML
StarUML is open-source modeling software that supports the Unified Modeling Language
(UML) framework.
It provides several types of diagrams and lets users generate code in multiple languages. With
its help, developers can create designs, concepts, and coded solutions. However, users should
note that this isn’t a simple program and is aimed at expert developers.
StarUML free download is designed to help users get an overview of their solution before its
completion.
The tool also supports complex modeling through Model Driven Architecture (MDA) and third-
party plugins.
While it may not be suitable for beginners, StarUML stands out amongst its competitors like
ArgoUML, CASE Studio, and Rationale.
14
Ex No.3 UML- USE CASE DIAGRAM
AIM
To identify Use Cases and develop the Use Case model for the identified requirements
using starUML
USE CASE DIAGRAM
A use-case diagram is a graph of actors, a set of use cases enclosed by a system
boundary, communication (participation) associations between the actors and the usecases,
and generalization among the use cases. It shows the relationship among the actors and use
cases within a system .Use case diagram is used during the analysis phase of a project. They
separate the system into actors and use cases. Actor represents the roles that can be played by
user of the system. Use case describes the behavior of the system.
1. Use cases. A use case describes a sequence of actions that provide something of
measurable value to an actor and is drawn as a horizontal ellipse.
2. Actors. An actor is a person, organization, or external system that plays a role in one
or more interactions with your system. Actors are drawn as stick figures.
3. Associations. Associations between actors and use cases are indicated in use case
diagrams by solid lines. An association exists whenever an actor is involved with an
interaction described by a use case.
4. System boundary boxes (optional).A rectangle around the use cases is called the
system boundary box and is used to indicate the scope of the system.
5. Packages (optional). Packages are UML constructs that enable you to organize model
elements (such as use cases) into groups.
RELATIONSHIPS IN USE CASE DIAGRAM
Three relationships are supported among use cases by the UML standard, which
describes graphical notation for these relationships.
1. Include(<<include>>)
A given use case may include another. The first use case often depends on the
outcome of the included use case. This is useful for extracting truly common behaviors
from multiple use cases into a single description.
15
2. Extend(<<extend>>)
A given use case, (the extension) may extend another. This relationship
indicates that the behavior of the extension use case may be inserted in the extended
use case under some conditions. This can be useful for dealing with special cases, or in
accommodating new requirements during system maintenance and extension.
3. Generalization
A generalization/ specialization relationship exists among use cases. A given use
case may be specialized form of an existing use case. The notation is a solid line ending in a
hollow triangle drawn from the specialized to the more general use case. This resembles the
object- oriented concept of sub-classing, in practice it can be both useful and effective to factor
common behaviors, constraints and assumptions to the general use case, describe them once,
and deal same as except details in the specialized cases.
PROCEDURE
1. Identify distinct actors and use cases.
2. The external actors are placed to the left of the use case and the internal actors to the
right.
3. Open starUML enterprise edition and right click on the project then select usecase
view to create a new workspace for the diagram.
4. Name the diagram and draw the diagram using the symbols present in starUML
enterprise edition according to the identified actors and use cases
5. Draw the relationship between the use cases and actors as extend, include and
generalization types using the symbols.
16
RESULT
Thus the use case diagram is drawn successfully using starUML for the identified
requirements.
17
Ex No.4 UML-CLASS DIAGRAM
AIM
To identify conceptual classes and develop a domain model with UML Class diagram
using starUML.
CLASS DIAGRAM
In the Unified Modeling Language (UML), a class diagram is a collection of static
modeling elements, such as classes and their relationships, connected as a graph to each other
and to their contents; their internal structures, and their relationships to other classes.
A class is drawn as a rectangle with three components separated by horizontal
lines. The top name compartment holds the class name, other general properties of the class,
such as attributes, are in the middle compartment, and the bottom compartment holds a list
of operations. Either or both the attribute and operation compartments may be suppressed.
A separator line is not drawn for a missing compartment if a compartment is
suppressed; no inference can be drawn about the presence or absence of elements in it. The
class name and other properties should be displayed in up to three sections. A stylistic
convention of UML is to use an italic font for abstract classes and a normal (roman) font for
concrete classes.
PROCEDURE
1. Identify the classes that are taking part in the diagram.
2. Open the starUML and select logical view.
3. Select class diagram, specify the attributes, operations or methods.
4. Create the class diagram for the project.
5. Explicitly denote the relation between classes by generalizations, associations,
multiplicities and cardinalities.
6. Save the file.
18
RESULT
Thus the class diagram is drawn successfully using starUML for the identified
requirements.
19
Ex No.5 UML- SEQUENCE AND COLLABORATION DIAGRAMS
AIM
To draw sequence and collaboration diagrams for the identified scenarios and the
Interaction between objects using starUML.
INTERACTION DIAGRAM
Sequence diagram describes the behavior of the system by viewing the
interaction between the system and its environment. It represents the class at
the top and their lifetime, their interactions as relations.
A collaboration diagram, also called a communication diagram or interaction diagram,
is an illustration of the relationships and interactions among software objects in the Unified
Modeling Language (UML).
PROCEDURE
SEQUENCE DIAGRAM
1. Identify the initiator of the process.
2. Associate each actor with a class whether it uses or provides services.
3. Each actor is represented as a rectangle.
4. The sequence of flow is denoted by the name of the operations to be done.
5. The actors are separated by vertical dashed lines and sequence flow is indicated
through arrows.
6. Open the starUML enterprise edition.
7. Select logical view and sequence diagram.
8. Create the sequence diagrams, showing the interaction between the objects and
environmental.
9. Save the file.
COLLABORATION DIAGRAM
1. Select first an element where a new Communication Diagram to be contained as a child.
2. Select Model | Add Diagram | Communication Diagram in Menu Bar or select Add Diagram
| Communication Diagram in Context Menu.
20
RESULT
Thus the sequence and the collaboration diagrams for the identified scenarios and the
interaction between objects are drawn successfully using starUML for the requirements.
21
Ex No.6 (a) UML-STATE CHART DIAGRAM
AIM
To draw the state chart diagram for the identified requirements using starUML
22
RESULT
Thus the state chart diagram is drawn for the identified requirements successfully
using starUML for the requirements.
23
Ex No.6 (b) UML-ACTIVITY DIAGRAM
AIM
To draw activity the diagram for the identified requirements using starUML
ACTIVITY DIAGRAM
An activity diagram is a variation or special case of a state machine, in which the states
are activities representing the performance of operations and the transitions are triggered by
the completion of the operations. Unlike state diagrams that focus on the events occurring to a
single object as it responds to messages, an activity diagram can be used to model an entire
business process. The purpose of an activity diagram is to provide a view of flows and what is
going on inside a use case or among several classes.
An activity is shown as a round box, containing the name of the operation. When an
operation symbol appears within an activity diagram or other state diagram, it indicates the
execution of the operation. Executing a particular step within the diagram represents a state
within the execution of the overall method. It may be applied to any purpose such as
visualizing the steps of a computer algorithm, but is considered especially useful for
visualizing business workflows and processes, or use cases. Some of the outstanding notation
includes parallel activities, swim lanes, and action-object flow relationship. An activity
diagram allows the reader to see the system execution and how it changes direction based
upon different conditions and stimuli.
PROCEDURE
1. Identify the activities, association, conditions and constraints.
2. Name the correct alternative types.
3. It is essential for the diagram to have a start and end points.
4. Open the necessary tools from starUML and select usecase view.
5. Select activity diagram and create activity diagram for requirements of project using
the tools.
6. Save the file.
24
RESULT
Thus the activity diagram is drawn successfully using starUML for the requirements.
25
Ex No.7 IMPLEMENTATION OF THE SYSTEM AS PER THE DETAILED DESIGN
AIM:
To implement the user interface layer, domain layer and technical services layer for
the given project.
26
the other kind of technical services are not always being explicitly thought of as being part of
any particular layer.
PROCEDURE
1. Create class diagram and component diagram for the given project using starUML
2. Right click on component diagram and select the software needed to generate code.
3. Right click on class diagram and assign created component with this class.
4. Generate code from tool menu and create a form. Then a window appears with
provision to type coding.
5. Type the coding and execute the form.
RESULT
Thus the user interface, domain and technical services layer for the given project was
developed and tested for the given project.
27
Ex No.8 CREATION OF TEST PLAN AND TEST CASES
AIM
To create Test the software system for all the scenarios identified as per the use case diagram
PROCEDURE
Test Plan Document:
1. Test plan document contains all the catalog information of test strategies, objectives, schedule,
estimations and resources required to complete the project.
2. A “Test Case” refers to the actions required to verify a specific feature or functionality in
software testing.
Test Case Design Template:
Test Case Description: Test Steps: Expected Pre Pass/Fail: Remarks:
ID: Results: Requisites:
28
RESULT
Thus new test plan, test case, test case folder are created successfully.
29
Ex No.9 IMPROVE THE REUSABILITY AND MAINTAINABILITY OF THE SOFTWARE
SYSTEM BY APPLYING APPROPRIATE DESIGN PATTERNS
AIM
To improve the reusability and maintainability of the software system by applying
appropriate design patterns.
Pattern
Pattern is a named and well-known problem/solution pair that can be applied in
new contexts, with advice on how to apply it in novel situations and discussion of its trade-
offs implementations, variations, and so forth.
Naming a pattern, design idea, or principle has the following advantages:
• It supports chunking and incorporating that concept into our understanding and
memory.
• It facilitates communication.
GRASP patterns
Creator Pure Fabrication
Information Expert Indirection
Low Coupling Polymorphism
Controller Protected variations
High Cohesion
A. Name: Creator
Problem: Who should be responsible for creating a new instance of some class?
Solution: Assign class B the responsibility to create an instance of class A if one of these is true
• B contains or aggregates A (in a collection)
• B records A
• B closely uses A
• B has the initializing data for A that will be passed to A when it is created
B is a creator of A objects.
If more than one option applies, usually prefer a class B which aggregates or contains class A.
B. Name: Information Expert
Problem: What is a general principle of assigning responsibilities to objects?
30
Solution: Assign a responsibility to the information expert - the class that has the information
necessary to fulfill the responsibility.
C. Name: Low Coupling
Problem: How to support low dependency, low change impact, and increased reuse?
Solution: Assign a responsibility so that coupling remains low. Use this principle to evaluate
alternatives
D. Name: High Cohesion
Problem: How to keep objects focused, understandable, and manageable, and as a side effect,
support Low Coupling?
Solution: Assign responsibilities so that cohesion remains high. Use this to evaluate
alternatives.
E. Name: Controller
Problem: What first object beyond the UI layer receives and coordinates ("controls") a system
operation?
– A controller is the first object beyond the UI layer that is responsible for
receiving or handling a system operation message.
– System operations were first explored during the analysis of SSD.
– These are the major input events upon our system.
Solution: Assign the responsibility to a class representing one of the following choices:
– Represents the overall "system," a "root object," a device that the software is
running within, or a major subsystem these are all variations of a facade
controller.
– Represents a use case scenario within which the system event occurs, often
named <UseCase Name>Handler, <UseCase Name> Coordinator, or
<UseCase Name> Session .
• Use the same controller class for all system events in the same use case
scenario.
• A session is an instance of a conversation with an actor.
31
RESULT
Thus the reusability of the software system by applying appropriate design pattern
have been maintained and improved.
32
Ex No.10 IMPLEMENT THE MODIFIED SYSTEM AND TEST IT FOR VARIOUS
SCENARIOS
AIM:
To implement the modified system as per the identified design patterns and test it for
various scenarios.
USER INTERFACE LAYER
This layer provides the user interface (UI) within a composite application. To increase
user productivity, user interfaces should support easy adoption. The limitations on the UI
design resulting from the capabilities of the underlying components should not be seen as
constraints, but rather as some help to provide consistent UIs.
User interfaces consume Web services either from the business logic layer or the back-
end layer to retrieve and update data. They do not contain any business logic. UI and business
logic decoupling is implemented by using services of the business logic layer only. User
interfaces are integrated in the overall composite process by being wrapped into a callable
object.
DOMAIN LAYER
A domain layer also known as the business logic layer (BLL) is a software engineering
practice of compartmentalizing. The business logic layer is usually one of the tiers in a
multitier architecture. It separates the business logic from other modules, such as the data
access layer and user interface. By doing this, the business logic of an application can often
withstand modifications or replacements of other tiers. For example, in an application with a
properly separated business logic layer and data access layer, the data access layer could be
rewritten to retrieve data from a different database, without affecting any of the business
logic. This practice allows software application development to be more effectively split into
teams, with each team working on a different tier simultaneously.
TECHNICAL SERVICES LAYER
The Infrastructure Layer may be partitioned into different levels (high-level or low-
level technical services). Though, it is not unusual that developers only consider the
persistence (data access) and therefore only talk about the Persistence Layer or the Data
Access Layer (instead of an Infrastructure Layer or Technical services Layer).
33
RESULT
Thus the modified system as per the identified design pattern is implemented and
tested for various scenarios.
34
CONTENT BEYOND THE SYLLABUS
Ex No.11 UML- PACKAGE DIAGRAM
AIM
To draw the partial layered, logical architecture diagram with UML package diagram
notation for identified the user interface, domain objects, and technical services.
PACKAGE DIAGRAM
35
PROCEDURE
1. Select the starUML enterprise edition.
2. Select the logical view and open the class diagram, from the tools displayed in the class
diagram window select the package tool.
3. Using the package tool the outer layer package and the inner software package along
with the dependencies between the packages are drawn.
4. Save the file.
36
RESULT
Thus the partial layered, logical architecture diagram with UML package diagram
notation for identified the user interface, domain objects, and technical services package
diagram is drawn using starUML.
37
Ex No.12 COMPONENT AND DEPLOYMENT DIAGRAMS
AIM
To draw component and deployment diagrams for the identified requirements using
starUML.
38
DEPLOYMENT DIAGRAM
1. Identify the node and Relationships among nodes
2. Visualize hardware topology of a system.
3. Describe the hardware components used to deploy software components.
4. Describe runtime processing nodes.
5. Select starUML and open the specificproject.
6. Select deployment view of the project and draw the diagram along with the device
node and environment node using the appropriate tools.
39
RESULT
Thus the component and the deployment diagrams are drawn successfully
using starUML.
40
41