0% found this document useful (0 votes)
15 views5 pages

BSC IT Unit5

Object Oriented Software Engineering (OOSE), developed by Ivar Jacobson in 1992, is a software design methodology that utilizes use cases and organizes software around classes and objects. It includes Object Oriented Analysis (OOA) and Object Oriented Design (OOD), focusing on modeling functional requirements and encapsulating data and behaviors. Additionally, the document discusses software testing types and levels, emphasizing the importance of ensuring software correctness and performance through various testing methodologies.

Uploaded by

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

BSC IT Unit5

Object Oriented Software Engineering (OOSE), developed by Ivar Jacobson in 1992, is a software design methodology that utilizes use cases and organizes software around classes and objects. It includes Object Oriented Analysis (OOA) and Object Oriented Design (OOD), focusing on modeling functional requirements and encapsulating data and behaviors. Additionally, the document discusses software testing types and levels, emphasizing the importance of ensuring software correctness and performance through various testing methodologies.

Uploaded by

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

UNIT – V

Object Oriented Software Engineering


Object Oriented Software Engineering (OOSE) is a software design
technique that is used in software design in object-oriented programming.

OOSE is developed by Ivar Jacobson in 1992. OOSE is the first object-oriented


design methodology that employs use cases in software design. OOSE is one of the
precursors of the Unified Modeling Language (UML)

Classes and objects are fundamental building blocks of an Object – Oriented


Software Engineering. We organize software as a collection of discrete objects that
incorporate both data structures and behaviours.

Object – Oriented Analysis : Object Oriented Analysis (OOA) is the first


technical activity performed as part of object oriented software engineering. OOA
introduces new concepts to investigate a problem. It is based in a set of basic
principles, which are as follows-
1. The information domain is modeled.
2. Behavior is represented.
3. Function is described.
4. Data, functional, and behavioral models are divided to uncover greater detail.
5. Early models represent the essence of the problem, while later ones provide
implementation
details.

The purpose of any analysis activity in the software life-cycle is to create a model
of the system's functional requirements that is independent of implementation
constraints.
The main difference between object-oriented analysis and other forms of analysis
is that by the object-oriented approach we organize requirements around objects,
which integrate both behaviors (processes) and states (data) modeled after real
world objects that the system interacts with. In other or traditional analysis
methodologies, the two aspects: processes and data are considered separately. For
example, data may be modeled by ER diagrams, and behaviors by flow
charts or structure charts.
Object – Oriented Design: In the object-oriented design method, the system
is viewed as a collection of objects (i.e., entities). The state is distributed among
the objects, and each object handles its state data. For example, in a Library
Automation Software, each library representative may be a separate object with its
data and functions to operate on these data. The tasks defined for one purpose
cannot refer or change data of other objects. Objects have their internal data which
represent their state. Similar objects create a class. In other words, each object is a
member of some class. Classes may inherit features from the superclass.

The different terms related to object design are:

1. Objects: All entities involved in the solution design are known as objects.
For example, person, banks, company, and users are considered as objects.
Every entity has some attributes associated with it and has some methods to
perform on the attributes.
2. Classes: A class is a generalized description of an object. An object is an
instance of a class.
3. Messages: Objects communicate by message passing. Messages consist of
the integrity of the target object, the name of the requested operation, and
any other action needed to perform the function.
4. Abstraction: Abstraction is the removal of the irrelevant and the
amplification of the essentials.
5. Encapsulation: Encapsulation is also called an information hiding concept.
The data and operations are linked to a single unit. Encapsulation not only
bundles essential information of an object together but also restricts access
to the data and methods from the outside world.
6. Inheritance: OOD allows similar classes to stack up in a hierarchical
manner where the lower or sub-classes can import, implement, and re-use
allowed variables and functions from their immediate superclasses.This
property of OOD is called an inheritance.
7. Polymorphism: OOD languages provide a mechanism where methods
performing similar tasks but vary in arguments, can be assigned the same
name. This is known as polymorphism, which allows a single interface is
performing functions for different types.
Testing : Software testing is a process of identifying the correctness of software
by considering its all attributes (Reliability, Scalability, Portability, Re-usability,
Usability) and evaluating the execution of software components to find the
software bugs or errors or defects.

Types of Software testing


1. Manual Testing: The process of checking the functionality of an application
as per the customer needs without taking any help of automation tools is known as
manual testing. While performing the manual testing on any application, we do not
need any specific knowledge of any testing tool, rather than have a proper
understanding of the product so we can easily prepare the test document.

Manual testing can be further divided into three types of testing, which are as
follows:

o White box testing


o Black box testing

2. Automation testing: Automation testing is a process of converting any


manual test cases into the test scripts with the help of automation tools, or any
programming language is known as automation testing. With the help of
automation testing, we can enhance the speed of our test execution because here,
we do not require any human efforts. We need to write a test script and execute
those scripts

Black – box testing: It is carried out to test functionality of the program. It is


also called ‘Behavioral’ testing. The tester in this case, has a set of input values and
respective desired results. On providing input, if the output matches with the
desired results, the program is tested ‘ok’, and problematic otherwise.In this testing
method, the design and structure of the code are not known to the tester, and
testing engineers and end users conduct this test on the software.

White – box testing: It is conducted to test program and its implementation, in


order to improve code efficiency or structure. It is also known as ‘Structural’
testing.

In this testing method, the design and structure of the code are known to the tester.
Programmers of the code conduct this test on the code.The below are some White-
box testing techniques:
 Control-flow testing - The purpose of the control-flow testing to set up test
cases which covers all statements and branch conditions. The branch
conditions are tested for both being true and false, so that all statements can
be covered.
 Data-flow testing - This testing technique emphasis to cover all the data
variables included in the program. It tests where the variables were declared
and defined and where they were used or changed.

Testing Levels
Testing itself may be defined at various levels of SDLC. The testing process runs
parallel to software development. Before jumping on the next stage, a stage is
tested, validated and verified.
Testing separately is done just to make sure that there are no hidden bugs or issues
left in the software. Software is tested on various levels –
Unit testing: While coding, the programmer performs some tests on that unit of
program to know if it is error free. Testing is performed under white-box testing
approach. Unit testing helps developers decide that individual units of the
program are working as per requirement and are error free.
Integration testing: Even if the units of software are working fine individually,
there is a need to find out if the units if integrated together would also work
without errors. For example, argument passing and data updation etc.
System testing: The software is compiled as product and then it is tested as a
whole. This can be accomplished using one or more of the following tests:
 Functionality testing - Tests all functionalities of the software against the
requirement.
 Performance testing - This test proves how efficient the software is. It
tests the effectiveness and average time taken by the software to do desired
task. Performance testing is done by means of load testing and stress testing
where the software is put under high user and data load under various
environment conditions.
 Security & Portability - These tests are done when the software is meant
to work on various platforms and accessed by number of persons.
Acceptance testing: When the software is ready to hand over to the customer it
has to go through last phase of testing where it is tested for user-interaction and
response. This is important because even if the software matches all user
requirements and if user does not like the way it appears or works, it may be
rejected.
 Alpha testing - The team of developer themselves perform alpha testing by
using the system as if it is being used in work environment. They try to find
out how user would react to some action in software and how the system
should respond to inputs.
 Beta testing - After the software is tested internally, it is handed over to the
users to use it under their production environment only for testing purpose.
This is not as yet the delivered product. Developers expect that users at this
stage will bring minute problems, which were skipped to attend.
Regression testing: Whenever a software product is updated with new code,
feature or functionality, it is tested thoroughly to detect if there is any negative
impact of the added code. This is known as regression testing.

You might also like