Professional Documents
Culture Documents
UNIT-3
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 1
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 2
DESIGN ENGINEERING
1. Commences after 1st iteration of
Requirements Analysis
2. GOAL : To create design model that will
implement all customer requirements
correctly to his satisfaction.
3. INTENT: To develop High Quality Software
by applying a set of principles, concepts
and practices
4. COMPONENTS:
• Data Structures Design
• Architectural Design
• Interface Design
• Component Level Design
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 3
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 4
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 5
According to Davis(1995 ):
coupling
Annotational Note
1. Structural Things
2. Behavioral Things
3. Grouping Things
4. Annotational Things
Window Name
Origin
Size
Attributes
class
Open( )
Close( ) Operation
Move( )
Display( )
ISpelling
Interface
Withdraw money
Use case
Suspend()
Flush()
Active class
Component
Node
display
Message
State
Business rules
Package
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 129
4. Annotational Things
Note
Dependencies
• In the UML you can also create dependencies among many other
things, especially notes and packages.
• NAME:-
• An association can have a name, and you use that name to
describe the nature of the relationship.
1
Employee
manager
Responsible
worker
for 0..10
Association - Multiplicity
• A cricket team has 11 players. One of them is the
captain.
• A player can play only for one Team.
• The captain leads the team members.
Captain
Team
Member 1
Player 0..1
Team
10
11 member of 1
Captain
1
Leads
• GENERALIZATION:-
• A Generalization is relationship between a general thing( called
the Super class or parent) and a more specific kind of that
thing( called the Subclass or child).
Generalization
Realization
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 152
• Realization is sufficiently different from
dependency, generalization, and association
relationships that it is treated as a separate kind of
relationship.
1. Specifications
2. Adornments
3. Common Divisions
4. Extensibility mechanisms
1. Specifications:-
0..1 *
Employer Employee
3.Common Divisions
SpellingWizard.dll
ISpelling
1. Stereotypes
2. Tagged values
3. Constraints
• Stereotypes
add( ) {ordered}
remove( )
flush( )
Constraints
Extensibility Mechanisms
• Graphically, a stereotype is rendered as a name
enclosed by guillemots and placed above the name of
another element (eg, <<name>>)
HumiditySensor
2.Tagged values:-
Extend the semantics of a UML building block, allowing you to add new
rules, or modify existing ones.
Example:- you might want to constrain the EventQueue class so that all
additions are done in order.
Stereotype EventQueue
Tagged value
{version =3.2
<< Exception>> Author=egb }
Overflow
add( ) {ordered}
remove( )
flush( )
Constraints
Extensibility Mechanisms
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 194
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 195
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 196
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 197
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 198
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 199
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 200
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 201
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 202
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 203
Modeling Architecture Views using UML
• 4+1 Views of Software Architecture.
• UML plays an important role in defining different perspectives of a system. These
perspectives are:
System Testing
r s to
pe
Validation Testing
de w
co
oa ro
Br Nar
Integration Testing
Unit Testing
Code
Design
re to
nc ct
te
co stra
Requirements
Ab
System Engineering
Case1: You have to test the Login Page which is developed and sent to the testing team.
Login Page is dependent on Admin Page. But the Admin Page is not ready yet. To
overcome this situation developers write a dummy program which acts as an Admin
Page. This dummy program is Stub. Stubs are ‘Called Programs’.
Case2: You have to test Admin Page but the Login Page is not ready yet. To overcome this
situation developers write a dummy program which acts like the Login Page. This dummy
program is Driver. Drivers are ‘Calling programs’.
Advantage
•Only one round of SIT is required.
Disadvantage
•It is difficult to find the root cause of an error.
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 232
Incremental Integration Testing
• Incremental Testing is performed by
connecting two or more modules together
that are logically related.
• Later more modules are added and tested
for proper functionality.
• This is done until all the modules are
integrated and tested successfully.
• It’s further divided into Top-Down
Approach, Bottom-Up Approach, and
Sandwich Approach.
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 233
Top-Down Integration Testing
• The top-down approach starts by testing the top-most modules and
gradually moving down to the lowest set of modules one-by-one.
• Testing takes place from top to down following the control flow of the
software system.
• As there is a possibility that the lower level modules might not have been
developed while top modules are tested, we use stubs instead of those
not ready modules.
• For simple applications, stubs would simply return the control to their
superior modules. For complex applications, they would simulate the full
range of responses.
Disadvantages
•Requires several stubs
•Poor support for early release
•Basic functionality is tested at the end of the cycle
Disadvantages
•Requires several drivers
•Data flow is tested very late
•Need for drivers complicates test data
management
•Poor support for early release
•Key interfaces defects are detected late
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 237
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 238
Sandwich Integration Testing
• To overcome the limitations and to exploit the advantages
of top-down and bottom-up approaches, a hybrid approach
of integration testing is used.
• This approach is known as sandwich integration testing or
mixed integration testing. Here, the system is viewed as
three layers.
• Main target layer in the middle, another layer above the
target layer, and the last layer below the target layer.
• The top-down approach is used on the layer from the top to
the middle layer.
• The bottom-up approach is used on the layer from the
bottom to middle.
• Big bang approach is used for modules in the middle.
• This technique is also known as Equivalence Class Partitioning (ECP). In this technique, input values to the
system or application are divided into different classes or groups based on its similarity in the outcome.
• Hence, instead of using each and every input value, we can now use any one value from the group/class to
test the outcome. This way, we can maintain test coverage while we can reduce the amount of rework and
most importantly the time spent.
For Example:
As present in the above image, the “AGE” text field accepts only numbers
from 18 to 60. There will be three sets of classes or groups.
Blackbox Testing
#2) Boundary Value Analysis
• The name itself defines that in this technique, we focus on the values at boundaries as
it is found that many applications have a high amount of issues on the boundaries.
• Boundary refers to values near the limit where the behavior of the system changes. In
boundary value analysis, both valid and invalid inputs are being tested to verify the
issues.
For Example:
If we want to test a field where
values from 1 to 100 should be
accepted, then we choose the
boundary values: 1-1, 1, 1+1,
100-1, 100, and 100+1. Instead
of using all the values from 1 to
100, we just use 0, 1, 2, 99, 100,
and 101.
Blackbox Testing
#3.Cause effect graphing
Cause & Effect Graph
• This is basically a hardware testing technique adapted to software testing.
• This is a testing technique that aids in selecting test cases that logically relate Causes
•
• A “Cause” represents a distinct input condition that brings about an internal change
in the system.
following steps:
•Acceptance testing- During this testing, a tester literally has to think like
the client and test the software with respect to user needs, requirements,
business processes and determine whether the software can be handed
over to the client or not.
•Alpha testing- This type of testing is done at the developers’ site by
potential customers/users. Any problems encountered during this testing
are rectified by the developers then and there.
•Beta testing- Once the software passes the alpha testing stage, beta
testing is done at the user’s end.
•Regression testing- This testing is done after the desired changes or
modifications are made to the existing code. The code, when put to test,
may have certain errors that can be resolved by making essential
changes. The software is again put to test after these changes are made
to check whether the new code fulfils customer requirements or not.
•Usability Testing - To make sure the user's ease to use the application, flexibility
in handling controls and the ability of the system to meet its objectives.
•Migration Testing - Migration testing done to ensure that the software moved
from old system infrastructures to current system infrastructures without any
issues.
25/10/2022 D Sreevidya, Asst.Prof, CSE, MRU 264
The Art of Debugging
• Debugging is the process of fixing a bug in the
software.
• Debugging occurs as a consequence of successful
testing
Debugging has many benefits such as:
•It reports an error condition immediately.
•It also provides maximum useful information of data
structures and allows easy interpretation.
•Debugging assists the developer in reducing useless and
distracting information.
6. Fix & Validate: The final stage is the fix all the errors
and run all the test scripts to check if they all pass.
•The symptoms may not give clear indications about the cause. Defensive
programming can help reduce the distance between the cause and the effect
of an error.
•Symptoms may be difficult to reproduce. Replay is needed to better
understand the problem.