BSC IT Unit5
BSC IT Unit5
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.
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.
Manual testing can be further divided into three types of testing, which are as
follows:
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.