Software Engineering Unit 3
Software Engineering Unit 3
SOFTWARE ENGINEERING
UNIT 3
Introduction to UML: The design model: Developing use cases, Relationships, class diagrams,
associations, generalizations, object diagram, Dynamic modeling – State diagrams, Sequence
diagrams, Collaboration diagrams, Activity diagrams etc. Logical and physical architecture –
Component diagram, Deployment diagrams etc. Case Studies: Courseware management system,
ATM, Airline reservation System.
INTRODUCTION
Models are representations of reality which help simplify the reality. It is not different in the
software development field. The software under development can be complex. So the models of
software can be used. One such modeling technique is the Unified Modeling Language.
Models are created to represent reality in a simplified way. They provide a structure for problem
solving. They help in understanding how one can proceed with the problem at hand. They also
allow to experiment with multiple solutions. Since the models are created before the actual
development of the system, we can understand different possibilities, problems, options etc. This
also leads to decrease in the development costs. Since the time will not be wasted in trials and
errors the product will be ready in lesser time. Models also help manage the complexity of the
problem so the planning of the development, allocation of the resources like machines,
programmers, testers can be done easily.
UML
The Unified Modeling language, popularly known as the UML is a visual modeling language
that helps system developers to create blueprints that captures their vision in a standard, easy to
understand form, and gives a mechanism to effectively share and communicate their visions with
others.
The Object Management Group gives the formal definition of the UML as The UML is a
graphical language for specifying, visualizing, constructing and documenting the artifacts of
the software system.
Specifying – UML provides the means to model precisely, unambiguously and completely the
system in question.
Constructing - UML provides the ‘design’ dimension to the models built. These are language
independent and can be implemented in any programming language.
Documenting – every software project involves a lot of documentation from the inception phase
to the deliverables.
Modeling
There is a difference between a UML model and the set of diagrams of a system. A diagram is a
partial graphic representation of a system’s model. The model also contains documentation that
drives the model elements and diagrams (such as written use cases).
UML diagrams are not only made for developers but also for business users, common people,
and anybody interested to understand the system. The system can be a software or non-software
system. Thus it must be clear that UML is not a development method rather it accompanies with
processes to make it a successful system.
Object-Oriented Concepts
UML can be described as the successor of object-oriented (OO) analysis and design. An object
contains both data and methods that control the data. The data represents the state of the object.
A class describes an object and they also form a hierarchy to model the real-world system. The
hierarchy is represented as inheritance and the classes can also be associated in different ways as
per the requirement. Objects are the real-world entities that exist around us and the basic
concepts such as abstraction, encapsulation, inheritance, and polymorphism all can be
represented using UML. UML is powerful enough to represent all the concepts that exist in
object-oriented analysis and design. UML diagrams are representation of object-oriented
concepts only. Thus, before learning UML, it becomes important to understand OO concept in
detail.
USE-CASE MODEL
The Use-case model is defined as a model which is used to show how users interact with the
system in order to solve a problem. As such, the use case model defines the user's objective, the
interactions between the system and the user, and the system's behavior required to meet these
objectives.
Various model elements are contained in use-case model, such as actors, use cases, and the
association between them.
We use a use-case diagram to graphically portray a subset of the model in order to make the
communication simpler. There will regularly be a numerous use-case diagram which is related to
the given model, each demonstrating a subset of the model components related to a specific
purpose. A similar model component might be appearing on a few use-case diagrams; however,
each use-case should be consistent. If, in order to handle the use-case model, tools are used then
this consistency restriction is automated so that any variations to the component of the model
(changing the name, for instance) will be reflected automatically on each use-case diagram,
which shows that component.
Actor
Use Case
Associations
Actor
Usually, actors are people involved with the system defined on the basis of their roles. An actor
can be anything such as human or another external system.
Use Case
The use case defines how actors use a system to accomplish a specific objective. The use cases
are generally introduced by the user to meet the objectives of the activities and variants involved
in the achievement of the goal.
Associations
Associations are another component of the basic model. It is used to define the associations
among actors and use cases they contribute in. This association is called communicates-
association.
Subject
Use-Case Package
Generalizations
Generalizations
Dependencies
Subject
The subject component is used to represent the boundary of the system of interest.
Use-Case Package
We use the model component in order to structure the use case model to make simpler the
analysis, planning, navigation, and communication. Suppose there are various actors or use
cases. In that case, we can also use use-case packages in order to further structure the use-case
model in much the similar way we use directories or folders to organize the information on our
hard-disk.
For various reasons, we divide the use-case model into the use-case packages, containing:
Generalizations
Generalizations mean the association between the actors in order to help re-use of common
properties.