22it404 Asd Uml Unit 1
22it404 Asd Uml Unit 1
2
Please read this disclaimer before proceeding:
This document is confidential and intended solely for the educational purpose of
RMK Group of Educational Institutions. If you have received this document through
email in error, please notify the system manager. This document contains proprietary
information and is intended only to the respective group / learning community as
intended. If you are not the addressee you should not disseminate, distribute or
copy through e-mail. Please notify the sender immediately by e-mail if you have
received this document by mistake and delete this document from your system. If
you are not the intended recipient you are notified that disclosing, copying,
distributing or taking any action in reliance on the contents of this information is
strictly prohibited.
3
22IT404
APPLICATION SYSTEM DESIGN WITH UML
Dr. M.Jayaprakash
Date : 10-01-2024
4
1.TABLE OF CONTENTS
SLIDE
S.NO. CONTENTS
NO.
1 CONTENTS 5
2 COURSE OBJECTIVES 9
19 1.3.1.2 V MODELS 33
5
Table of Contents SLIDE
S.NO. CONTENTS
NO.
22 INTRODUCTION TO AGILITY 39
29 ASSIGNMENT 1- UNIT 1 63
35 ASSESSMENT SCHEDULE 72
6
2. COURSE OBJECTIVES
7
3. PRE REQUISITES
PRE-REQUISITE CHART
CS8494-SOFTWARE
ENGINEERING
20IT502-OBJECT
ORIENTED SYSTEM DESIGN
CS8491-DATA STRUCTURES
8
4. ASD WITH UML SYLLABUS LTPC
OBJECTIVES:
3003
9
List of Exercise/Experiments
1.Document the Software Requirements Specification
(SRS) for the identified system
1.DrawrelevantStateChartandActivityDiagramsforthesam
esystem.
2. Develop UML Component and Deployment diagram
10
UNIT V DESIGN PATTERNS 9+6
Design Patters – SOLID Principle – Standard
Architecture Principles - Java Blue Print Patterns –
Structural. Behavioural and Creational Patterns –
Reference Implementations
List of Exercise/Experiments
11
5.COURSE OUTCOME
Cognitive/
Expected
Course Affective Level
Course Outcome Statement Level of
Code of the Course
Attainment
Outcome
Course Outcome Statements in Cognitive Domain
To understand business problem Apply
C404.1 60%
statement in object-oriented notation K3
Covert the analysis phase to design Analyse
C404.2 60%
modeling. K4
Identify various scenarios based on Understand
C404.3 software requirements 60%
K2
Implement Static diagrams and Apply
C404.4 Dynamic modeling using UML 60%
K3
Modeling
To build an extendable and scalable Analyse
C404.5 60%
solution using Design patterns K4
Develop and implement simple Apply
C404.6 applications that make use of classes, 60%
K3
packages and interfaces
Course Outcome Statements in Affective domain
12
6.CO-PO/PSO MAPPING
P P P P P P P P P P P P PS PS PS
Course O O O O O O O O O O O O O O O
Outcomes 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3
(Cos)
K3
K K A
K4 K5 /K A2 A3 A3 A3 A3 A2 K3 K3 K3
3 5 3
5
K
C305.1 3 2 1 1 3 3 3 3 3
3
K
C305.2 3 3 2 2 3 3 3 3 3
4
K
C305.3 2 1 2 3 3 3
2
5
K
C305.4 3 2 1 1 3 3 3 3 3
3
K
C305.5 3 3 2 2 3 3 3 3 3
4
K
C305.6 3 2 1 1 3 3 2 2 2
3
A
C305.7 3
2
A
C305.8 2 2 2 3
2
A
C305.9 3 3 3 3 3
3
C305 3 3 2 2 3 1 1 1 3 3 3 3 3 3 3
13
UNIT I
INTRODUCTION TO AN OBJECT-ORIENTED
TECHNOLOGIES AND UML
14
LECTURE PLAN – UNIT I
UNIT I INTRODUCTION TO AN OBJECT-ORIENTED TECHNOLOGIES AND UML
Sl.N
o
PROPOSED ACTUAL
NO OF LECTURE LECTURE PERTAININ TAXONOMY MODE OF
TOPIC
PERIODS G CO(s) LEVEL DELIVERY
PEROID PERIOD
Introduction to
02-01-2024
1 Software 1 02-01-2024 CO1 K2 MD1
Engineering
03-01-2024
Software Process 1 CO1 K2 MD1
2
Software
Development 1 04-01-2024 CO1 K2 MD1
3
Process models
Introduction to
Agility 1 05-01-2024 CO1 K3 MD1
4
Description of
the real world
5 06-01-2024
using the 1 CO1 K3 MD1
Objects
Model.
Classes,
6 inheritance and
multiple 09-01-2024
1 CO1 K2 MD1
configurations. -
Quality software
characteristics
10-01-2024
Agile process 1 CO1 K2 MD1
7
Introduction
to the UML 1
11-01-2024
CO1 K2 MD1
8
Language
Elements of
9 12-01-2024
the language 1 CO1 K2 MD1
15
LECTURE PLAN – UNIT I
Description
1
of the real
world using 1 22-01-2024 CO1 K2 MD1
the Objects
Model.
Classes,
inheritance and
2 multiple 22-01-2024
1 CO1 K2 MD1
configurations. -
Quality software
characteristics
The process
3 of Object
Oriented 1 22-01-2024 CO1 K2 MD1
software
development
Description
of Design 1 24-01-2024 CO1 K3 MD1
4
Patterns
5 28-01-2024
Lab Exercise 1 1 CO1 K3 MD1
6
Lab Exercise 2 29-01-2024
1 CO1 K2 MD1
16
LECTURE PLAN – UNIT I
17
ACTIVITY BASED LEARNING – UNIT I
18
ACTIVITY BASED LEARNING – UNIT I
QUIZ- LINK
Unit I:
Software Engineering:
https://quizizz.com/join/quiz/5ea2c608298254001d6fa416/start?from=s
oloLinkShare&referrer=5f16995403ff63001f3fdbba
SDLC:
https://quizizz.com/join/quiz/58f4d29f4d8adb1000732aec/start?from=so
loLinkShare&referrer=5f16995403ff63001f3fdbba
Software process Models:
https://quizizz.com/join/quiz/59dbd6bd3f22201000c481f8/start?from=so
loLinkShare&referrer=5f16995403ff63001f3fdbba
https://quizizz.com/join/quiz/5e10a684b2c152001bbdae63/start?from=s
oloLinkShare&referrer=5f16995403ff63001f3fdbba
19
Test Yourself
a. Spiral model.
b. Waterfall model.
c. Prototyping model
20
UNIT I
INTRODUCTION
The Computer has been used for commercial purposes. With every aspect of
computer development, software engineers have been tasked to solve larger and
complex programs and in a cost effective and efficient manner. Also the development
and maintenance of software product has become an important criterion.
What is Software?
Software is
1. instructions (Computer programs) that when executed provide desired
features, function and performance;
2. Data structures that enable the programs to adequately manipulate
information; and
3. Document that describe the operation and use of the programs
Characteristics of Software
21
Embedded software is the software that resides within a product or system and
is used to implement and control features and functions for the end user and
for the system itself. Eg: microwave oven, Air Conditioner, washing machine etc
The software should deliver the required functionality and performance to the user
and should be maintainable, dependable and usable.
Efficiency: Software should not make any wasteful use of system resources such
as memory and processor cycles. Efficiency therefore includes responsiveness,
processing time, memory utilization, etc.
Usability: Software must be usable, without undue effort, by the type of user for
whom it is designed. This means that it should have an appropriate user interface
and adequate documentation
22
SOFTWARE ENGINEERING:
Definitions:
23
Software engineering is a knowledge acquisition
activity. In modeling the application and solution
domain, software engineers collect data, organize it
into information, and formalize it into knowledge.
Knowledge acquisition is not sequential, as a single
piece of additional data can invalidate complete
models.
24
Object-oriented methods combine the application domain and
solution domain modeling activities into one. The application
domain is first modeled as a set of objects and relationships. This
model is then used by the system to represent the real-world
concepts it manipulates. A train traffic control system includes train
objects representing the trains it monitors. A stock trading system
includes transaction objects representing the buying and selling of
commodities. Then, solution domain concepts are also modeled as
objects. The set of lines used to depict a train or a financial
transaction are objects that are part of the solution domain. The idea
of object-oriented methods is that the solution domain model is a
transformation of the applicationdomain model.
25
Need For Software Engineering
Ability to solve complex programming problems
Higher productivity
tools
methods
Process
a “quality” focus
26
Any engineering approach (including software engineering) must rest on an
Software engineering process is the glue that holds the technology layers
The software process forms the basis for management control of software
projects and establishes the context in which technical methods are applied,
work products (models, documents, data, reports, forms, etc.) are produced,
managed.
Software engineering methods provide the technical “how to’s” for building
software.
support.
methods.
27
1.3 SOFTWARE PROCESS
Software engineering methods rely on a set of basic principles that govern each
area of the technology and include modeling activities and other descriptive
techniques.
A process is a collection of activities, actions, and tasks that are performed when
some work product is to be created.
28
Defining a Framework Activity:
For complex Projects, the communication activity might have six distinct
actions: inception, elicitation, elaboration, negotiation, specification, and
validation.
Prioritize requirements.
Choose the task sets that achieve the goal and still maintain quality and agility.
29
1.3.1.ProcessFlow:
Process flow describes how the framework activities and the actions and tasks
that occur within each framework activity are organized with respect to sequence
and time
30
An evolutionary process flow executes the activities in a circular manner.
Each evolution leads to a more complete version of the software.
A parallel process flow executes one or more activities in parallel with other
activities.
31
PRESCRIPTIVE PROCESS MODELS
Waterfall Model
Incremental Models
Incremental Model
RAD Model
Evolutionary Models
Prototyping
Spiral Model
Specialized Models
Component Based Model
Formal Models
32
1.4.1 PRESCRIPTIVE PROCESS MODELS
Prescriptive process models focus on detailed definition, identification, and
application of process activities and tasks.
Their intent is to improve system quality, make projects more manageable, make
delivery dates and costs more predictable, and guide teams of software engineers
as they perform the work required to build a system.
33
1.4.1.1 Waterfall Model
This model is used for developing projects where the requirements are
well defined and reasonably stable, it leads to a linear fashion.
Phases:
Problems/ Drawbacks:
The linear model can accommodate iteration, but it does so indirectly which
can cause confusion as the project team proceeds.
34
It is difficult for the customer to state all requirements explicitly.
The customer must have patience. A working version of the program will not be
available until late in the project time span. A major blunder, if undetected until
the working program is reviewed, can be disastrous
The linear nature of the classic life cycle leads to “blocking states” in which
some project team members must wait for other members of the team to
complete dependent tasks. The time spent waiting can exceed the time spent on
productive work. The blocking states tend to be more prevalent at the beginning
and end of a linear sequential process.
Reference Video
https://www.youtube.com/watch?v=U5Q3TFi9LRA
35
It can serve as a useful process model in situations where requirements are
fixed and work is to proceed to completion in a linear manner
1.4.2 V-Model
A variation of waterfall model is referred as V model which includes the
quality assurance actions associated with communication, modeling and early
code construction activities.
Team first moves down the left side of the V to refine the problem
requirements.
Once code is generated, the team moves up the right side of the V,
performing a series of tests that validate each of the models created.
Fig : V Model
36
1.4.1.3. INCREMENTAL PROCESS MODELS
Incremental models construct a partial implementation of a total system and
then slowly add increased functionality
The first increment is the core product with many supplementary features.
The plan addresses the modification of the core product to better meet the
needs of the customer and includes additional features and functionality.
This process is repeated following the delivery of each increment, until the
complete product is produced.
It should be noted that the process flow for any increment can incorporate
the prototyping paradigm.
Business Modeling
Data Modeling
The information collected from business modeling is refined into a set of data
objects that are significant for the business
38
Process Modeling
The data object that is declared in the data modeling phase is transformed to
achieve the information flow necessary to implement a business function
Application Generation
Automated tools are used for the construction of the software, to convert process
and data models into prototypes
As prototypes are individually tested during every iteration, the overall testing
time is reduced in RAD.
39
Advantages
Reduced cost.
Disadvantages
In this model, a set of core product and requirements is well understood, but
the software.
40
Two types of evolutionary approaches are there namely
Prototyping and
Spiral models.
PROTOTYPING
The process of building a preliminary design, trying it out, refining it,
and trying again has been called an iterative process of systems
development.
By interacting with the prototype, users can get a better idea of their
information requirements.
When to use:
Customer defines a set of general objectives but does not identify detailed
requirements or the developer may not be sure of the efficiency of an algorithm.
Phases:
41
A quick plan for prototyping and modeling is determined.
Quick design focuses on a representation of those aspects the software that will
be visible to end users.
Quick
plan
communication
Modeling
Quick design
Deployment
delivery & Construction
feedback of prototype
42
SPIRAL MODEL
Spiral model couples the iterative nature of prototyping with the systematic
aspects of the waterfall model
43
The first circuit in the clockwise direction might result in the product
specification; subsequent passes around the spiral might be used to develop a
prototype and then progressively more sophisticated versions of the software.
After each iteration, the project plan has to be refined. Cost and schedule are
adjusted based on feedback. Also, the number of iterations will be adjusted by
project manager.
Good to develop large-scale system as software evolves as the process progresses and
risk should be understood and properly reacted to.
First concern is that prototyping poses a problem to project planning because of the
uncertain number of cycles required to construct the product.
Second, it does not establish the maximum speed of the evolution. If the evolution
occurs too fast, without a period of relaxation, it is certain that the process will fall into
chaos. On the other hand, if the speed is too slow then productivity could be affected.
Third, software processes should be focused on flexibility and extensibility rather than
on high quality. The speed of the development should be prioritized over zero defects.
Extending the development in order to reach high quality could result in a late delivery
of the product when the opportunity niche has disappeared.
Reference Video
https://www.youtube.com/watch?v=DRDD7UWX2y4
44
Need for Object Oriented Programming
• These modules can then be used for representing the individual real life
entities known as objects.
• Modularity
• Scalability
• Data hiding
• Java, C#, Simula, JavaScript, Python, C++, Visual Basic .NET, Ruby,
programming languages.
Object Oriented Programming
Refer: https://www.youtube.com/watch?v=qwS-BCOCB-A
Objects
• Objects are real-world entity such as book, cat, house, pencil, person, etc. Any things we
see, that could be differentiated from another is called object. Objects should have a well
defined boundary. An object consists of:
Examples of Object
Every object has its own set of properties, which defines the state of the object and its own
behavior. The properties (data) and the behaviors (methods or function that operate on the
data) are combined into a single unit, so that the data can be accessed only by those
functions and not by the outside world.
Object
The value assigned to the properties defines the state of an object and also differentiate
one object from the other.
Breed = Dachshund
Age = 1
Color = Coral
Size = Small
Breed = Bulldog
Age = 3
Color = Brown
Size = Big
Breed = Bulldog
Age = 2
Color = Black
Size = Medium
Train
Properties Behavior
−Train No. −reserveticket()
−Train Name −cancelticket()
−No. of seat −checkavailability()
reserveticket()
Class
Abstraction
• Inheritance
Types of Inheritance
Multi-level Inheritance
Single Class A
Inheritance
Class A
Class B
Class B
Class C
Polymorphism
Method overloading is defining more than one method using same name but having
different number or type of parameters. Method overriding the redefine the base class
functions in a derived class.
Object Oriented Programming Vs Procedural Programming
1. Basic building blocks are object and 1. Basic building blocks are function
its object centric and its algorithm centric
Refer:
https://drive.google.com/file/d/1RjO6Q8PHd9hTkY3Uogz4eVc35UHI
O224/view?usp=sharing
Class
fields;
methods;
constructors;
This is a class declaration. The class body (the area between the
braces) contains all the code that provides for the life cycle of the
objects created from the class:
• The name of the class's parent (superclass), if any, preceded by the keyword extends. A
class can only extend (subclass) one parent.
Objects
Objects are basic concepts of Object Oriented Programming which revolve around the real
life entities. A Java program creates many objects, interact by invoking methods.
Through these object interactions, a program can carry out various tasks, such as
implementing a GUI, running an animation, or sending and receiving information over a
network. Once an object has completed the work for which it was created, its resources are
recycled for use by other objects.
Creating Object
• A software object maintains its state in variables and implements its behaviour with
methods.
Syntax:
ClassName objectName = new ClassName();
Example:
2. Instantiation: The new keyword is a Java operator that creates the object.
Methods
Syntax :
[access-specifier] [modifier] return-type function-name ([parameter list])
{
body of the function/method;
}
1. Access specifier
3. Return-Type
It specifies the type of value that the return statement of the function
returns. It may be any valid Java data type. If no value is being returned,
we use the return type as void.
4. Function-name
The name of the function should be a valid Java identifier. The naming
conventions generally followed for method names are:
✔ It should be meaningful.
For example:
✔ printReportCard()
✔ getMarks()
• The method name should generally begin with a verb followed by one
or more nouns.
For example:
✔ readData
✔ findFile
✔ calculateInterestAmount
5. Parameter list
The body of the Java method should be enclosed within curly braces{}
containing all the code to perform operations and tasks .
static members
In Java, static members are those which belong to the class which can be
accessed without instantiating the class. The static keyword can be used
with methods, fields, classes (inner/nested), blocks.
Constructors
Syntax:
class ClassName
{
ClassName()
{
// Initialization Statements;
}
}
• Parameterized Constructors
61
software crisis
The software crisis refers to the recurring problems in system
development caused by software development issues that
cause the entire system to be late, over budget, not
responsive to user and customer requirements, and difficult to
use, maintain, and enhance. The term was coined in the late
1960s to describe the difficulties in writing useful and efficient
computer programs in the required time. The crisis was due
to the rapid increases in computer power and the complexity
of the software, which led to many software problems
because existing methods were inadequate. The crisis
prompted the development of structured programming and
software engineering principles. The software crisis
underscores the importance of process refinement,
collaboration, and adaptable methodologies, shaping modern
software engineering practices. There is no single solution to
the crisis, but software engineering is a disciplined and
quantifiable approach that can help prevent software crises.
62
1. Some proposed solutions to the software crisis include:Reduction
in software over budget: Implementing cost-effective strategies
and efficient project management techniques can help reduce the
financial burden of software development projects
63
1.6 INTRODUCTION TO AGILITY
What is Agility?
It involves the customer in the development team and works to eliminate the
“us and them” attitude that continues to pervade many software projects
It recognizes that planning in an uncertain world has its limits and that a
project plan must be flexible.
Agility can be applied to any software process but it is essential that the
process should support incremental delivery strategy that gets working
software to the customer as rapidly as feasible for the product type and
operational environment.
64
Fig: Development schedule
Agility Principles
Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a
development team is face–to–face conversation.
65
Working software is the primary measure of progress.
Simplicity – the art of maximizing the amount of work not done – is essential.
At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.
Human Factors
The key traits that must exist among the people on an agile team are:
Competence.
Common focus.
Collaboration.
Decision-making ability.
Self-organization.
66
Agile Process
Each build is incremental in terms of features and the final build holds all the
features required by the customer.
Planning
Requirements Analysis
Design
Coding
Testing
67
Advantages:
Disadvantages
Note:
69
UNIT I UML AND USE CASE DIAGRAMS
Introduction
Object Oriented analysis and design skills are essential for the creation of
well-designed, robust, and maintainable software using OO technologies and
languages such as Java or C#.
objects.
Define Use Cases : Requirements analysis may include stories or scenarios
of how people use the application; these can be written as use cases. They are a
popular tool in requirements analysis. For example, the Play a Dice Game use case:
Play a Dice Game: Player requests to roll the dice. System presents results:
If the dice face value totals seven, player wins; otherwise, player loses.
Notice that although in the real world a player rolls the dice, in the
software design the DiceGame object "rolls" the dice (that is, sends messages to
Die objects). Software object designs and programs do take some inspiration from
real-world domains, but they are not direct models or simulations of the real
world.
iv) Define Design Class Diagrams: a static view of the class definitions
is usefully shown with a design class diagram. This illustrates the attributes and
methods of the classes.
3.Behaviour Diagram
a. Interaction Diagram
b. State Chart Diagram –describes the states and state transitions of the
system.
4.Implementation Diagram
The same UML class diagram notation can be used to draw pictures of
concepts in the real world or software classes in Java.
77
Software engineering concepts depicted as a UML class diagram
78
Participants and Roles
Developing a software system requires the collaboration of many
people with different backgrounds and interests. The client orders
and pays for the system. The developers construct the system. The
project manager plans and budgets the project and coordinates the
developers and the client. The end users are supported by the
system. We refer to all the persons involved in the project as
participants. We refer to a set of responsibilities in the project or
the system as a role. A role is associated with a set of tasks and is
assigned to a participant. The same participant can fill multiple
roles.
79
Systems and Models
We use the term system as a collection of interconnected parts. Modeling is
a way to deal with complexity by ignoring irrelevant details. We use the
term model to refer to any abstraction of the system. A
TicketDistributor for an underground train is a system. Blueprints
for the TicketDistributor, schematics of its electrical wiring, and
object models of its software are models of the TicketDistributor.
Note that a development project is itself a system that can be modeled. The
project schedule, its budget, and its planned deadlines are models of the
development project.
Work Products
80
Delivery is an activity whose purpose is to install the
system at an operational location. Management is an activity
whose purpose is to monitor and control the project such that it
meets its goals (e.g., deadline, quality, budget). Activities can be
composed of other activities. The delivery activity includes a
software installation activity and an operator training activity.
Activities are also sometimes called phases
A task represents an atomic unit of work that can be
managed: A manager assigns it to a developer, the developer
carries it out, and the manager monitors the progress and
completion of the task. Tasks consume resources, result in work
products, and depend on work products produced by other
tasks.
Resources are assets that are used to accomplish work.
Resources include time, equipment, and labor. When planning a
project, a manager breaks down the work into tasks and assigns
them to resources.
81
Notations, Methods, and Methodologies
A notation is a graphical or textual set of rules for representing a
model. The Roman alphabet is a notation for representing words.
UML (Unified Modeling Language [OMG, 2009]), the notation we
use throughout this book, is a notation for representing object-
oriented models. The use of notations in software engineering is
common and predates object-oriented concepts. Data flow diagrams
[De Marco, 1978] is a notation for representing systems in terms of
data sources, data sinks, and data transformations. Z [Spivey, 1989]
is a notation for representing systems based on set theory.
A method is a repeatable technique that specifies the steps
involved in solving a specific problem. A recipe is a method for
cooking a specific dish. A sorting algorithm is a method for ordering
elements of a list. Rationale management is a method for justifying
change. Configuration management is a method for tracking change.
A methodology is a collection of methods for solving a class of
problems and specifies how and when each method should be used.
A seafood cookbook with a collection of recipes is a methodology
for preparing seafood if it also contains advice on how ingredients
should be used and what to do if not all ingredients are available.
Royce’s methodology [Royce, 1998], the Object Modeling
Technique (OMT [Rumbaugh et al., 1991]), the Booch methodology
[Booch, 1994], and Catalysis [D’Souza & Wills, 1999] are object-
oriented methodologies for developing software.
82
Software development methodologies decompose the process into
activities. OMT provides methods for three activities: Analysis,
which focuses on formalizing the system requirements into an
object model, System Design, which focuses on strategic decisions,
and Object Design, which transforms the analysis model into an
object model that can be implemented. The OMT methodology
assumes that requirements have already been defined and does not
provide methods for eliciting requirements. The Unified Software
Development Process also includes an Analysis activity and treats
System Design and Object Design as a single activity called Design.
The Unified Process, unlike OMT, includes a Requirements Capture
activity for eliciting and modeling requirements. Catalysis, while
using the same notations as the Unified Process, focuses more on
reuse of design and code using patterns and frameworks. All of
these methodologies focus on dealing with complex systems.
Software Development activities deal with the complexity
by constructing and validating models of the application
domain or the system. Development activities include
• Requirements Elicitation
• Analysis
• System Design
• Object Design
• Implementation
• Testing
83
Introduction to the UML Language Standards
84
System development focuses on three
different models of the system
The functional model, represented in UML with use
case diagrams, describes the functionality of the system
from the user’s point of view.
• The object model, represented in UML with class
diagrams, describes the structure of the system in
terms of objects, attributes, associations, and
operations. During requirements and analysis, the
object model starts as the analysis object model and
describes the application concepts relevant to the
system. During system design, the object model is
refined into the system design object model and
includes descriptions of the subsystem interfaces.
During object design, the object model is refined into
the object design model and includes detailed
descriptions of solution objects.
• The dynamic model, represented in UML with
interaction diagrams, state machine diagrams, and
activity diagrams, describes the internal behavior of
the system. Interaction diagrams describe behavior as
a sequence of messages exchanged among a set of
objects, whereas state machine diagrams describe
behavior in terms of states of an individual object and
the possible transitions between states. Activity
diagrams describe behavior in terms control and data
flows.
85
Elements of UML Language
86
USECASE Diagram
Use cases are used during requirements elicitation and
analysis to represent the functionality of the system. Use
cases focus on the behavior of the system from an external
point of view. A use case describes a function provided by
the system that yields a visible result for an actor. An actor
describes any entity that interacts with the system (e.g., a
user, another system, the system’s physical environment).
The identification of actors and use cases results in the
definition of the boundary of the system, that is, in
differentiating the tasks accomplished by the system and the
tasks accomplished by its environment. The actors are
outside the boundary of the system, whereas the use cases
are inside the boundary of the system.
For example, Figure 2-1 depicts a use case diagram for a
simple watch. The WatchUser actor may either consult
the time on their watch (with the ReadTime use case) or
set the time (with the SetTime use case). However, only
the WatchRepairPerson actor can change the battery
of the watch (with the ChangeBattery use case).
87
The above diagram shows the UML use case diagram which
describes the functionality of a simple watch. The WatchUser
actor may either consult the time on her watch (with the
ReadTime use case) or set the time (with the SetTime use
case). However, only the WatchRepairPerson actor can
change the battery of the watch (with the ChangeBattery
use case). Actors are represented with stick figures, use cases
with ovals, and the boundary of the system with a box enclosing
the use cases
CLASS DIAGRAM
Class diagrams are used to describe the structure of the
system. Classes are abstractions that specify the
common structure and behavior of a set of objects.
Objects are instances of classes that are created,
modified, and destroyed during the execution of the
system. An object has state that includes the values of its
attributes and its links with other objects.
Class diagrams describe the system in terms of
objects, classes, attributes, operations, and their
associations. For example, Figure 2-2 is a class diagram
describing the elements of all the watches of the
SimpleWatch class. These watch objects all have an
association to an object of the PushButton class, an
object of the Display class, an object of the Time
class, and an object of the Battery class. The
numbers on the ends of associations denote the number
of links each SimpleWatch object can have with an
object of a given class. For example, a SimpleWatch
has exactly two PushButtons, one Display, two
Batteries, and one Time. Similarly, all
PushButton, Display, Time, and Battery
objects are associated with exactly one SimpleWatch
object.
88
A UML class diagram describing the elements of a simple
watch.
89
Interaction Diagrams
90
A UML sequence diagram for the Watch. The left-most
column represents the timeline of the WatchUser actor
who initiates the use case. The other columns represent the
timeline of the objects that participate in this use case.
Object names are underlined to denote that they are
instances (as opposed to classes). Labeled arrows are stimuli
that an actor or an object sends to other objects.
91
1. Activity Diagrams
92
Activity Diagrams
An activity diagram describes the behavior of a system in terms
of activities. Activities are modeling elements that represent the
execution of a set of operations. The execution of an activity
can be triggered by the completion of other activities, by the
availability of objects, or by external events. Activity diagrams
are similar to flowchart diagrams in that they can be used to
represent control flow (i.e., the order in which operations occur)
and data flow (i.e., the objects that are exchanged among
operations). For example, Figure 2-5 is an activity diagram
representing activities related to managing an Incident.
Rounded rectangles represent activities; arrows between
activities represent control flow; thick bars represent the.
synchronization of the control flow. The activity diagram of
Figure 2-5 depicts that the AllocateResources,
CoordinateResources, and DocumentIncident can
be initiated only after the OpenIncident activity has been
completed. Similarly, the ArchiveIncident activity can be
initiated only after the completion of AllocateResources,
Coordinate–Resources, and DocumentIncident.
These latter three activities, however, can occur concurrently.
93
An example of a UML activity diagram. Activity diagrams
represent behavior in terms of activities and their
precedence constraints. The completion of an activity
triggers an outgoing transition, which in turn may initiate
another activity.
94
The process of Object Oriented software
development.
The process of Object-Oriented software development
involves several phases, including object-oriented analysis,
object-oriented design, and object-oriented
implementation and testing
95
The key principles of Object-Oriented Programming (OOP) are:
96
Description of Design Patterns
Design patterns are formalized best practices that provide
solutions to common problems in software design. They are like
pre-made blueprints that can be customized to solve recurring
design problems in specific contexts
97
creational design patterns
Some examples of creational design patterns include:
98
Structural design patterns
Structural design patterns are concerned with how classes and objects can be
composed to form larger structures. They simplify the structure by identifying
relationships and focusing on how classes inherit from each other and how they
are composed from other classes
Adapter Pattern: Adapts one interface for a class into one that a client
expects
Composite Pattern: A tree structure of objects where every object has the
same interface
99
Behavioural design patterns
Behavioural design patterns in software engineering are concerned
with algorithms and the assignment of responsibilities between
objects. They identify common communication patterns among
objects, thus increasing flexibility in carrying out communication
100
Template Method Pattern: Defines the skeleton of an
algorithm in a method, deferring some steps to
subclasses. Algorithms can be selected on the fly, using
inheritance
101
ASSIGNMENT – UNIT I
102
PART A- UNIT-1
Risk management.
Software Quality Assurance
Formal Technical Reviews.
Measurement.
Validation represents the set of activities that ensure that the software
that has been built is satisfying the customer requirements
103
PART A- UNIT-1
Most software is custom built rather than being assembled from components
Planning: This activity establishes a plan for the software engineering work that
follows. It describes the technical tasks to be conducted, the risks that are likely,
the resources that will be required, the work products to be produced, and a work
schedule.
Modeling: This activity encompasses the creation of models that allow the
developer and the customer to better understand software requirements and the
de sign that will achieve those requirements.
104
PART A- UNIT-1
Disadvantages:
This method is well designed but shorter program may get suffered.
Many believe it is impossible to make one stage of the projects life cycle perfect.
Difficult to estimate time and cost for each stage of the development process.
Blocking states
105
PART A- UNIT-1
(1) For large, but scalable projects, RAD requires sufficient human resources to
create the right number of RAD teams;
(2) If developers and customers are not committed to the rapid-fire activities
necessary to complete the system in a much abbreviated time frame, RAD
projects will fail;
(5) RAD may not be appropriate when technical risks are high (e.g., when a new
application makes heavy use of new technology).
11. What are the pros and cons of iterative development model? (K2),CO2
Advantages:
Disadvantages
106
PART A- UNIT-1
Heterogeneity challenge
If the communication is not proper then the software product that gets
developed will not be the up to the mark.
If the risk assessment is done properly then only the successful product can be
obtained.
Spiral model
Concurrent Development
107
PART A- UNIT-1
108
17. What are the main Categories of (GoF) Pattern?
109
PART B- UNIT 1
1. Explain iterative waterfall and spiral model for software life cycle and various
activities in each phase. (K2), CO2
6.Explain the process model that combines the elements of waterfall and iterative
fashion(K2), CO2
a)Waterfall model
b)Spiral model
c)RAD model
8.Explain in detail the various Software Development life cycle processes. (k2),CO2
110
SUPPORTIVE ONLINE COURSES – UNIT I
https://swayam.gov.in/explorer?searchText=software+engineering
https://www.coursera.org/learn/software-processes
https://www.coursera.org/specializations/software-development-
lifecycle
https://www.coursera.org/learn/software-design-development-
life-cycle
111
REAL TIME APPLICATION- UNIT I
As per the KPMG Survey, on average, about 70 % of all IT-related projects fail to
meet their objectives, and one of the main reason is the selection of the wrong
software development process/model.
Just selecting a model that suits your criteria can avoid these problems.
For example, if requirements are all clear and written down, you might have to
choose a different model if requirements are not clear and constant changes are
expected.
Waterfall
Probably the oldest and most straightforward SDLC (software development life
cycle) development model, Waterfall follows a sequential model (like a waterfall)
with requirements analysis, design, coding, testing and implementation in such a
manner that the development does not move to next phase until the previous
phase is completed. That is why it is called the linear sequential software
development life cycle.
Iterative
Repetition is the keyword for the iterative model. Instead of having clear and
known requirements or waiting for them, a team starts development on the
known features, tests and then evaluate further requirements, develops, tests and
so on until the whole thing is done.
Agile
Agile, the most widely used software development methodology is Agile, has
become the industry standard, be it software development, App development or
Game development.
112
CONTENT BEYOND SYLLABUS – UNIT I
ProWorkflow
Jira
113
ASSESSMENT SCHEDULE
Name of the
S.NO Start Date End Date Portion
Assessment
114
PRESCRIBED TEXT BOOKS AND REFERENCE BOOKS
TEXT BOOKS:
REFERENCES:
115
Mini Project Suggestion
To develop a mini-project by using the following Use Cases listed
below:
Use Case 1
POS (Point of Sale) Terminal
Features to be handled:-
1. Order Entry,
2. Item Management and Categorization,
3. Tax Calculation,
4. Payment Mode, Payment Status, User Management
Use Case 2
Hotel Room Management
Features to be handled:-
1. Rooms type and Category
2. Check in and Check Out
3. Room occupation Status
4. Room Service Request
5. Guests Management and allocation Room 6. Billing Calculation,
User management
Use Case 3
Banking Portal
1. Funds Transfer within Same Bank, Intra Bank
2. Forex Conversion
3. Bene Management
4. Customer and Accounts Management 5. Funds Transfer Transaction
Status
116
Use Case 4
Mobile Phone Service Center
1. Mobile Phone Parts Management
2. Mobile Phone Models
3. Service Request Registration
4. Service Request Status Check
5. Service Request Engineer Allocation 6. Payment
7. Customer Management
117
MINI PROJECT SUGGESTIONS
Problem Statement:
It needs to maintain the record of all the students and staff of an Institution.
View Results
Generate Reports:
118
MINI PROJECT SUGGESTIONS
2. Quiz System
Problem Statement:
Registration/SignIn
119
MINI PROJECT SUGGESTIONS
Problem Statement:
It needs to maintain the record of all the train details, station details and
passenger details of a particular train.
Registration/SignIn
Book Tickets
Cancel Tickets
Payment
120
MINI PROJECT SUGGESTIONS
4.Expert System
Problem Statement:
It needs to maintain the record of all the symptoms and its prescribed medicines.
Registration/SignIn
121
MINI PROJECT SUGGESTIONS
Problem Statement:
It needs to maintain the record of all the courses, seats available, course
instructors and duration.
Generate Reports:
122
MINI PROJECT SUGGESTIONS
Problem Statement:
Generate Reports:
123
Thank you
Disclaimer:
This document is confidential and intended solely for the educational purpose of
RMK Group of Educational Institutions. If you have received this document through
email in error, please notify the system manager. This document contains proprietary
information and is intended only to the respective group / learning community as
intended. If you are not the addressee you should not disseminate, distribute or
copy through e-mail. Please notify the sender immediately by e-mail if you have
received this document by mistake and delete this document from your system. If
you are not the intended recipient you are notified that disclosing, copying,
distributing or taking any action in reliance on the contents of this information is
strictly prohibited.
124