0% found this document useful (0 votes)
12 views

Lecture 08

The document discusses UML class diagrams and their notations. It describes what a class diagram is, what classes and relationships are, and provides examples of different types of relationships like inheritance, association, aggregation and composition. It also covers other concepts like attributes, operations, multiplicity and visibility.

Uploaded by

seokahchoi480sm
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Lecture 08

The document discusses UML class diagrams and their notations. It describes what a class diagram is, what classes and relationships are, and provides examples of different types of relationships like inheritance, association, aggregation and composition. It also covers other concepts like attributes, operations, multiplicity and visibility.

Uploaded by

seokahchoi480sm
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 46

System Analysis

and Design
CSE 4004

Ms. Hansamali Paul


Lecturer
Dept. of ICT,
Faculty of Technology
University of Sri Jayewardenepura
UML – Class Diagrams
IN UML
What is a Class Diagram?

In software engineering, a class diagram in the Unified Modelling Language (UML)


is a type of static structure diagram that describes the structure of a system by
showing the system's classes, their attributes, operations (or methods), and the
relationships among objects.

1. A UML class diagram is made up of:


A set of Classes and
a. A set of relationships between classes
What is a Class?

A class is an entity that determines how an object will behave and what the object will
contain. In other words, it is a blueprint or a set of instruction to build a specific type
of object.
Class Diagram Notations

Class Name
The name of the class appears in the first partition.

Class Attributes

Attributes are shown in the second partition.


The attribute type is shown after the colon.
Attributes map onto member variables (data members) in code.

Class Operations (Methods)

Operations are shown in the third partition. They are services the class provides.
The return type of a method is shown after the colon at the end of the method signature.
The return type of method parameters is shown after the colon following the parameter
name.
Operations map onto class methods in code
Class Diagram Notations

Relationships
A class may be involved in one or more relationships with other classes. A relationship can
be one of the following types:

Inheritance
Association
Aggregation
Composition
Class Diagram Notations
Represents an "is-a" relationship.
An abstract class name is shown in
italics.

SubClass1 and SubClass2 are


specializations of Super Class.

A solid line with a hollow


arrowhead that point from the
child to the parent class
Class Diagram Notations
Association

A structural link between two peer


classes.

There is an association between Class1


and Class2

A solid line connecting two classes

The classes are aware of their


relationship with each other.
Class Diagram Notations
Aggregation

A special type of association.


It represents a "part of" relationship.

Class2 is part of Class1.


Many instances (denoted by the *) of Class2 can be associated with Class1.

Objects of Class1 and Class2 have separate lifetimes.

A solid line with an unfilled diamond at the association end connected to the class of composite

Ex: the child and parent can exist independently.


Class Diagram Notations
Composition

A special type of aggregation where parts are


destroyed when the whole is destroyed.

Objects of Class2 live and die with Class1.

Class2 cannot stand by itself.

A solid line with a filled diamond at the


association connected to the class of composite
Multiplicity
How many objects of each class take part in the relationships and multiplicity can be
expressed as:

1. Exactly one - 1
2. Zero or one - 0..1
3. Many - 0..* or *
4. One or more - 1..*
5. Exact Number - e.g. 3..4 or 6
6. Or a complex relationship - e.g. 0..1, 3..4, 6.* would mean any number of objects
other than 2 or 5
Visibility
Example
Example
Software Tesing
Software Testing

Software testing is a method to check whether the actual software


product fulfils the expected requirements and to ensure that software
product is defect free.

It involves execution of software components using manual or


automated tools to evaluate whether it is bug free or not
Software Testing

The primary purpose of software testing is to identify errors, gaps or


missing requirements in comparison to actual requirements.

The testing team executes the software with an intention of finding


error in it and a successful test is one that finds errors.
Need and importance of software testing

Find bugs or errors in the developed software.


Resolve bugs before delivery of software
Save your money for the long term as if bugs are caught in the earlier stage of
software testing then it costs less to fix.
Security and satisfaction after deployment.
Testing
White box testing
It is a software testing technique in which internal structure, design and
coding of software are tested.

It is done to verify the flow of input-output in the software and to


improve design, usability and security.

In this testing, programming skills are required to design test cases.


White box testing

In white box testing, code is visible to the testers so it is also called


clear box testing, open box testing, transparent box testing and glass
box testing.

It focuses on checking of predefined inputs against expected and


desired outputs,
White box testing

In white box testing various tests are performed, like;


path testing
Loop testing
Condition testing
Memory consumption testing
Performance testing
Black box testing

It is a software testing technique in which the functionalities of


software are tested without having knowledge of internal code
structure, implementation details and internal paths.

It is entirely based on software requirements and specifications and


mainly focuses on input and output of software.
Black box testing

For example:

We use an Operating system, a website, or our own custom


application and we can perform black box testing by just focusing on
the inputs and outputs without knowing the internal code
/implementation.
Black box testing
For example:
We use an Operating system, a website, or our own custom application
and we can perform black box testing by just focusing on the inputs
and outputs without knowing the internal code /implementation.

It is also known as behavioral testing or specification based testing


Grey box testing
It is a combination of black box and white box testing.

In this technique, the tester tests the software with partial knowledge of
the internal working structure.

This type of testing is mainly used in web-based applications as if any


error is caught by the tester, then it is resolved in real time.
Types of Software testing

Functional Testing Non Functional Testing


Unit testing Performance testing: load,
Integration testing stress, scalability etc.
system testing Usability testing
regression testing Compatibility testing
user acceptance testing
Functional testing
It is a type of black box testing in which the testers identify what an
application is supposed to do and runs a series of tests to make sure that
the software performs as expected.

The tester will check all the components systematically against


requirement specifications. It involves testing of user interface, APIs,
database, security, Client/Server communication etc.
Functional testing
The testing can be done either manually or using automation.
Functional testing is executed before non-functional testing.
Functional testing basically involves (levels of functional testing)
Unit testing
Integration testing
System testing
Regression testing
User acceptance tesing
Functional testing
Unit Testing
In this testing, the tester tests every individual unit or module of the
software.
It is carried during the coding phase of software development.
It is typically done by the developer.
It is done to ensure each module is working correctly
Functional testing
Unit Testing
Example: a restaurant needs an app that helps customers order at their
tables without a server. The developer would create a unit test to
examine the “add to order” function. Other individual functions such as
“remove from order” or “submit order” would also go under unit testing.
Functional testing
Integration Testing
It is the second level of functional testing and is done after the unit testing.
During the development of the software, two or more modules are integrated
with each other to work together as a group. So, in integration testing we test
this group od modules as a whole.
It is done to test the data flow between dependent modules or interaction
between two features/modules.
Functional testing
Integration Testing
Example: A banking app has a function where users can set up a saving
account. It includes a money-transferring capability from their main
account to the saving account. As they are separate modules, testers need
to perform integration testing to ensure that the transactions happen
smoothly and correctly between the two.
Functional testing
System Testing
It is the third level of functional testing and is done after integration
testing.
In system testing, the tester validates the complete and fully integrated
software product.
The purpose of a system test is to evaluate the end-to-end system
specifications.
Functional testing
System Testing
Example: a fitness app was created with capabilities such as setting up
and tracking monthly fitness goals, consolidating fitness and wellness
metrics, building personalized exercise sessions, and smart-watch
integration,... Each of these functions will be assessed individually as
well as all together in system testing.
Functional testing
Regression Testing
Whenever any change in a software is made, it may be possible that
other areas within the software have been affected by this change.

In regression testing the tester verifies that a fixed bug has not adversely
affected the existing features of software.
Functional testing
Regression Testing

Example: A food delivery app added a function to help users add


multiple promotions on top of each other. A regression test needs to be
done to make sure the checkout and payment process is not affected .
Functional testing
User Acceptance Testing
It is the last level of functional testing.
It verifies whether the software is fulfilling the initial goals according to
the requirements.
It performed by the end user or the client to verify/accept the software
before the deployment of software for production.
Functional testing
User Acceptance Testing
It is the last level of functional testing.
It verifies whether the software is fulfilling the initial goals according to
the requirements.
It performed by the end user or the client to verify/accept the software
before the deployment of software for production.
Non - Functional testing
In this testing, the tester tests the software for non-functional aspects like
security, efficiency, usability, flexibility. Portability and much more.
It is performed to optimize the software for client/ users before
production.
It helps to improve the product behavior and technology used.
Non - Functional testing
Performance Testing
Performance testing refers to look out performance symptoms and issues
of the software like slow response, long load time, easy overloading,
poor scalability, high CPU and disk usage etc.

We also test the software with work load in order to measure performance
as the work load increases.
Non - Functional testing
Usability Testing
Usability testing is also known as User Experience Testing and is a
method to measure how easy and user-friendly a software is.
A few number of target users use the software to expose usability
defects.
It mainly focuses on user’s ease of using the software, flexibility of
software and ability of software to meet its objectives.
Non - Functional testing
Compatibility Testing
In compatibility testing, we check the functionality of software on
different hardware platforms, networks and browsers to find out whether
it is working as expected or not.
The software must be adaptive for all kind of the users irrespective of
what device they use, that is what we test in compatibility testing.
Thank You

You might also like