Oose Record
Oose Record
1
In this, non-functional attributes are explained that are required by software system for better
performance. An example may include Security, Portability, Reliability, Reusability, Application
compatibility, Data integrity, Scalability capacity, etc.
Preliminary Schedule and Budget
In this, initial version and budget of project plan are explained which include overall time duration
required and overall cost required for development of project.
Appendices
In this, additional information like references from where information is gathered, definitions of some
specific terms, acronyms, abbreviations, etc. are given and explained.
Uses of SRS document
Development team require it for developing product according to the need.
Test plans are generated by testing group based on the describe external behaviour.
Maintenance and support staff need it to understand what the software product is supposed to
do.
Project manager base their plans and estimates of schedule, effort and resources on it.
customer rely on it to know that product they can expect.
As a contract between developer and customer.
in documentation purpose.
Risk management:
To develop a risk management Gantt chart in software engineering, identify project risks, map them to
specific tasks, allocate resources and timelines for mitigation, and then visualize this information in a
Gantt chart format to proactively manage and address potential issues.
2
Regular Progress Updates:
Track the progress of tasks and activities and update the Gantt chart accordingly.
Monitor Risk Status:
Regularly review the status of identified risks and adjust mitigation plans as needed.
Communicate Changes:
Keep stakeholders informed about any changes to the project plan or risk status.
Adapt and Iterate:
Be prepared to adapt the Gantt chart and risk management plan as the project progresses and new
information becomes available.
Project Plan:
Once a project is found to be possible, computer code project managers undertake project design.
Project designing is undertaken and completed even before any development activity starts. Project
designing consists of subsequent essential activities: Estimating the subsequent attributes of the
project:
Project size: What’s going to be the downside quality in terms of the trouble and time needed to
develop the product?
Cost: What proportion is it reaching to value to develop the project?
Duration: How long is it to reach design plate amended development?
Effort: What proportion of effort would be required?
The effectiveness of the following design activities relies on the accuracy of those estimations.
planning force and alternative resources
workers organization and staffing plans
Risk identification, analysis, and abatement designing
Miscellaneous arrangements like quality assurance plans, configuration, management
arrangements, etc.
Precedence ordering among project planning activities:
3
The different project-connected estimates done by a project manager have already been mentioned.
The below diagram shows the order in which vital project coming up with activities is also
undertaken. It may be simply discovered that size estimation is the 1st activity. It’s conjointly the
foremost basic parameter supported that all alternative coming up with activities square measure
dispensed, alternative estimations like the estimation of effort, cost, resource, and project length
also are vital elements of the project coming up with.
A Context Diagram, also known as a Level 0 Data Flow Diagram (DFD), is a high-level overview of a
system, showing it as a single process with its interactions with external entities.
4
High-Level View:
It provides a broad, abstract view of the system, focusing on its boundaries and interactions with the
outside world.
Single Process:
The entire system is represented as a single process (a circle).
External Entities:
The diagram shows the entities that interact with the system, such as users, other systems, or
databases.
Data Flows:
Incoming and outgoing arrows represent the data flowing into and out of the system.
How to Draw a Context Diagram:
1. Identify the System: Determine the name of the system you're modeling.
2. Draw the Process: Create a circle and label it with the system's name.
3. Identify External Entities: Determine the entities that interact with the system (e.g., users, other
systems).
4. Draw External Entities: Represent these entities as rectangles or other shapes around the process
circle.
5. Show Data Flows: Draw arrows connecting the external entities to the process circle, indicating the
data flowing in and out of the system.
6. Label Data Flows: Label the arrows with the names of the data being exchanged.
Example:
Imagine a system for managing online orders.
System: "Online Order Management System"
External Entities: "Customer", "Supplier", "Database"
Data Flows:
o "Customer" sends "Order Request" to "Online Order Management System"
o "Online Order Management System" sends "Order Confirmation" to "Customer"
o "Online Order Management System" sends "Order Details" to "Supplier"
o "Supplier" sends "Shipment Details" to "Online Order Management System"
o "Online Order Management System" sends "Order History" to "Database"
o "Database" sends "Customer Information" to "Online Order Management System"
3. Identify the user interface, domain objects, and technical services. Draw the
partial layered, logical architecture diagram with UML package diagram
notation.
UML package diagrams are often used to illustrate the logical architecture of a system-
the layers, subsystems, packages . A layer can be modeled as a UML package; It is part of the
Design Model and also be summarized as a view in the Software Architecture Document.
5
Logical Architecture is the large scale organization of the software classes into packages
subsystem and layers It is called logical architecture because there’s no decision about how
these elements are deployed across different operating system processes or across physical
computers in a network.
Layer is a coarse grained grouping of classes , packages, or subsystems that has cohesive
responsibility for major aspect of the system .
Strict layered architecture - a layer only calls upon the services of the layer directly
below it. This design is common in network protocol stacks, but not in information systems
Relaxed layered architecture -a higher layer calls upon several lower layers. For example, the
UI layer may call upon its directly subordinate application logic layer, and also upon elements of a
lower technical service layer, for logging and so forth.
6
Elements
Name Symbol Description
Package package can group anything:
classes, other packages, use
cases
7
WHEN TO USE PACKAGE DIAGRAMS
8
Auditorium – Auditorium is a place where any events or guest lecture happens. This class
contains the details of it.
Attributes :
CollegeManagement – CollegeName, City, ContactNumber
Department – DepartmentId, DepartmentName, HODName, TotalStaffs,TotalStudents
Student – StudentId, StudentName, Gender, Year, ClassId
Staff – StaffId, StaffName, DepartmentId, Salary
Classroom – ClassId, Section, DepartmentId
Canteen – InchargeId, ItemsList, AvailableList
Library – LibraryId, LibrarianName, BookSection, TotalBooks
Bus – BusId, BusNumber, DriverName, Destination, TotalSeats
Hostel – StudentId, BlockNumber, RoomNumber
Parking – SlotId, VehicleNumber, VehicleOwnerName
Auditorium – AuditoriumName, EventsList, Date, Time, TotalSeats, DepartmentId
Methods :
1. CollegeManagement :
Open() – This method tells whether the college is open or not.
CollegeDetails() – This method contains the college details like name, its location and contact
number.
2. Department :
DepartmentDetails() – This method contains the department name and its corresponding Head
of the department name, the total students count of each department.
ShowEvents() – This method is to show any events in a particular department.
3. Student :
StudentDetails() – This method contains all the information about each and every student in
the college.
PayFees() – This method contains the payment status of each student.
IsPresent() – This method shows whether the student is present to the college on a particular
date.
4. Staff :
StaffDetails() – This method contains the details of both teaching as well as non-teaching staff
along with their salary details.
5. Classroom :
ClassroomDetails() – This method shows the details of each classroom and to which
department the classroom belongs.
IsOccupied() – This method tells whether the classroom is occupied or not
6. Canteen :
ShowItems() – This method shows the items which are present in the canteen
Buy() – This method is used to buy any item in the college canteen.
7. Library :
LibraryDetails() – This method contains the details of the library inside the college
SearchBooks() – This method is used to search any book in the library.
LendBooks() – This method is to get the book from the library.
ReturnBooks() – This method is used to contain the details of the returned book.
PayFine() – This method contains the details to pay the fine.
8. Bus :
BusDetails() – This method contains the details of buses like area details, bus name and the
driver details.
SeatsAvailability() – This method shows the details of available seats in a particular bus.
9. Hostel :
HostelDetails() – This method contains the details of the hostel like the number of blocks,
warden details, food details etc.
CheckIn() – This method is to check whether the student is present at the hostel or not.
CheckOut() – This method is to check whether the student is checked out from the hostel or not
when they are in the outstation.
10. Parking :
ParkVehicle() – This method is used to store the details of vehicles that are parked inside the
college.
11. Auditorium:
BookEvents() – This method is to book the auditorium for conducting the events.
Relationship :
9
1. Inheritance :
Inheritance is the practice of acquiring the required properties from one class to another class.
The class which acquires the properties is known as the child class. The class which allows its
properties to be acquired is known as the parent class. It is simply known as the Parent-child
relationship. Ie. “Is-a” relationships
Here, the below classes follow inheritance
Student – UGStudent and PGStudent
Staff – TeachingStaff and NonTeachingStaff
Hostel – BoysHostel and GirlsHostel
Student – UG Student and PG Student :
UG Student and PG student are child classes of students and UG is a student and PG student is a
student.
Staff – Teaching staff and Non teaching staff :
Teaching staff and Non teaching staff are child classes of Staff. Teaching staff is a staff and Non-
teaching staff is also a staff.
Hostel – BoysHostel and GirlsHostel :
BoysHostel and GirlsHostel are child classes of hostels. BoysHostel is a hostel and GirlsHostel is a
hostel.
2. Aggregation :
In Aggregation, Class A and Class B are dependent on each other which indicates that A has an
instance of B and B has an instance of B, but they are not physically contained inside each other. In
simple terms, Class B can exist without Class A. It follows “has-a” relationship.
Here, the below classes follow aggregation,
College management and hostel
College management and parking.
They follow aggregation because the hostel and parking can exist without College.
3. Composition :
In composition, Class A and Class B are dependent on each other which indicates that class A has an
instance of class B inside class A. In other words, class B is physically contained inside class A. So
class B cannot exist without class A. It follows a “has-a” relationship.
Here,
College management and department
College management and auditorium
College management and classroom
follows composition.
Because the department, auditorium and classroom cannot exist without college management and
are physically composed inside the college management.
4. Association :
In Association, one class is not committed to the other class in any means, but both of the classes
use each other and function in their own respective spaces. It follows the “using” relation.
Here,
Student and staff
follow association because the student uses staff and the staff uses students
5. Unidirectional Association :
In unidirectional Association, two classes are related in some ways, but only one class makes use of
the other class whereas the other class is not benefited from the relationship. Class A can call Class
B whereas Class B cannot call Class A.
Here,
Student and Classroom
Student and Library
Teachers and Library
Student and Bus
10
Student and Auditorium
Student and Canteen
follows unidirectional association because the classroom , library, bus, auditorium and Canteen are
being used by students whereas on the other hand classroom, library, bus, auditorium and Canteen
are not benefited by the relationship with students. So they follow unidirectional association.
Notations:
Class Diagram :
11
5. Identify the business activities and develop an UML Activity diagram.
Activity diagram is another important diagram in UML to describe the dynamic aspects of the system.
12
Activity diagram is basically a flowchart to represent the flow from one activity to another activity. The
activity can be described as an operation of the system.
The control flow is drawn from one operation to another. This flow can be sequential, branched, or
concurrent. Activity diagrams deal with all type of flow control by using different elements such as
fork, join, etc
The basic purposes of activity diagrams are similar to other four diagrams. It captures the dynamic
behavior of the system. Other four diagrams are used to show the message flow from one object to
another but activity diagram is used to show message flow from one activity to another.
Activity is a particular operation of the system. Activity diagrams are not only used for visualizing the
dynamic nature of a system, but they are also used to construct the executable system by using
forward and reverse engineering techniques. The only missing thing in the activity diagram is the
message part.
It does not show any message flow from one activity to another. Activity diagram is sometimes
considered as the flowchart. Although the diagrams look like a flowchart, they are not. It shows
different flows such as parallel, branched, concurrent, and single.
Activity diagrams are mainly used as a flowchart that consists of activities performed by the system.
Activity diagrams are not exactly flowcharts as they have some additional capabilities. These
additional capabilities include branching, parallel flow, swimlane, etc.
Before drawing an activity diagram, we must have a clear understanding about the elements used in
activity diagram. The main element of an activity diagram is the activity itself. An activity is a function
performed by the system. After identifying the activities, we need to understand how they are
associated with constraints and conditions.
Activities
Association
Conditions
Constraints
Once the above-mentioned parameters are identified, we need to make a mental layout of the entire
flow. This mental layout is then transformed into an activity diagram.
Following is an example of an activity diagram for order management system. In the diagram, four
activities are identified which are associated with conditions. One important point should be clearly
understood that an activity diagram cannot be exactly matched with the code. The activity diagram is
made to understand the flow of activities and is mainly used by the business users
13
Send order by the customer
Receipt of the order
Confirm the order
Dispatch the order
After receiving the order request, condition checks are performed to check if it is normal or special
order. After the type of order is identified, dispatch activity is performed and that is marked as the
termination of the process.
6. Using the identified scenarios find the interaction between objects and represent
them using UML Interaction diagrams.
From the term Interaction, it is clear that the diagram is used to describe some type of interactions
among the different elements in the model. This interaction is a part of dynamic behavior of the
system.
14
This interactive behavior is represented in UML by two diagrams known as Sequence
diagram and Collaboration diagram. The basic purpose of both the diagrams are similar.
Sequence diagram emphasizes on time sequence of messages and collaboration diagram emphasizes
on the structural organization of the objects that send and receive messages.
The purpose of interaction diagrams is to visualize the interactive behavior of the system. Visualizing
the interaction is a difficult task. Hence, the solution is to use different types of models to capture the
different aspects of the interaction.
Sequence and collaboration diagrams are used to capture the dynamic nature but from a different
angle.
As we have already discussed, the purpose of interaction diagrams is to capture the dynamic aspect of
a system. So to capture the dynamic aspect, we need to understand what a dynamic aspect is and how
it is visualized. Dynamic aspect can be defined as the snapshot of the running system at a particular
moment
We have two types of interaction diagrams in UML. One is the sequence diagram and the other is the
collaboration diagram. The sequence diagram captures the time sequence of the message flow from
one object to another and the collaboration diagram describes the organization of objects in a system
taking part in the message flow.
Following things are to be identified clearly before drawing the interaction diagram
Following are two interaction diagrams modeling the order management system. The first diagram is a
sequence diagram and the second is a collaboration diagram
The sequence diagram has four objects (Customer, Order, SpecialOrder and NormalOrder).
The following diagram shows the message sequence for SpecialOrder object and the same can be used
in case of NormalOrder object. It is important to understand the time sequence of message flows. The
message flow is nothing but a method call of an object.
The first call is sendOrder () which is a method of Order object. The next call is confirm () which is a
method of SpecialOrder object and the last call is Dispatch () which is a method of SpecialOrder object.
15
The following diagram mainly describes the method calls from one object to another, and this is also
the actual scenario when the system is running.
The second interaction diagram is the collaboration diagram. It shows the object organization as seen
in the following diagram. In the collaboration diagram, the method call sequence is indicated by some
numbering technique. The number indicates how the methods are called one after another. We have
taken the same order management system to describe the collaboration diagram.
Method calls are similar to that of a sequence diagram. However, difference being the sequence
diagram does not describe the object organization, whereas the collaboration diagram shows the
object organization.
To choose between these two diagrams, emphasis is placed on the type of requirement. If the time
sequence is important, then the sequence diagram is used. If organization is required, then
collaboration diagram is used.
16
Where to Use Interaction Diagrams?
We have already discussed that interaction diagrams are used to describe the dynamic nature of a
system. Now, we will look into the practical scenarios where these diagrams are used. To understand
the practical application, we need to understand the basic nature of sequence and collaboration
diagram.
The main purpose of both the diagrams are similar as they are used to capture the dynamic behavior
of a system. However, the specific purpose is more important to clarify and understand.
Sequence diagrams are used to capture the order of messages flowing from one object to another.
Collaboration diagrams are used to describe the structural organization of the objects taking part in
the interaction. A single diagram is not sufficient to describe the dynamic aspect of an entire system,
so a set of diagrams are used to capture it as a whole.
Interaction diagrams are used when we want to understand the message flow and the structural
organization. Message flow means the sequence of control flow from one object to another. Structural
organization means the visual organization of the elements in a system.
7. Implement the technical services layer and the domain objects layer
17
Technical services layer:
To implement a technical services layer, you should focus on encapsulating business logic, separating
concerns, and creating a clear interface for interacting with other layers, typically the presentation and
data access layers.
18
Improved Maintainability: The separation of concerns makes the code easier to maintain and
update.
Enhanced Testability: The service layer can be easily tested in isolation.
Increased Reusability: Services can be reused across different parts of the application.
Better Scalability: The service layer can be scaled independently of other layers.
Simplified Development: The service layer makes it easier to develop and manage complex
applications.
5. Tools and Technologies
Programming Languages: Java, Python, C#, JavaScript, etc.
Frameworks: Spring (Java), ASP.NET (C#), Node.js (JavaScript), etc.
Databases: MySQL, PostgreSQL, MongoDB, etc.
Dependency Injection Frameworks: Spring (Java), Autofac (C#), etc.
19
Use repositories to abstract data access and provide a layer between the domain layer and the data
access layer.
1. Component Diagram
20
Purpose: Component diagrams are primarily used to represent the high-level structure of a
software system in terms of its components and their relationships. They focus on the
organization and modularization of the software system.
Elements: Component diagrams include components, interfaces, connectors, and
dependencies.
Components: These represent the major building blocks or modules of the system. They can
be physical or logical entities, such as classes, packages, or even entire subsystems.
Interfaces: These define the contracts or APIs that components expose to interact with each
other.
Connectors: Connectors show how components interact or communicate with each other.
Examples include associations, dependencies, and aggregations.
Use Cases: Component diagrams are used during the design phase to illustrate the system’s
architecture, the relationships between components, and their interfaces. They help in
understanding the system’s structure and how it’s organized.
Deployment Diagram
Purpose: Deployment diagrams focus on the physical deployment of software components and
their relationships to hardware and other software elements. They are used to model the
system’s deployment architecture, including servers, nodes, and communication pathways.
Elements: Deployment diagrams include nodes, artifacts, and associations.
Nodes: These represent hardware or software processing elements, such as servers,
workstations, or even devices like routers or printers.
Artifacts: Artifacts are the actual software components or files deployed on nodes, such as
executable files, libraries, or databases.
Associations: Associations show the relationships between nodes and artifacts, indicating
which components are deployed on which nodes.
Use Cases: Deployment diagrams are typically used during the implementation phase and
system deployment. They help in planning and visualizing how software components are
distributed across the physical infrastructure, including servers, networks, and other resources.
21
9. Draw the state chart diagram.
State chart diagram is one of the five UML diagrams used to model the dynamic nature of a system.
They define different states of an object during its lifetime and these states are changed by events.
State chart diagrams are useful to model the reactive systems. Reactive systems can be defined as a
system that responds to external or internal events.
22
State chart diagram describes the flow of control from one state to another state. States are defined as
a condition in which an object exists and it changes when some event is triggered. The most important
purpose of State chart diagram is to model lifetime of an object from creation to termination.
State chart diagrams are also used for forward and reverse engineering of a system. However, the
main purpose is to model the reactive system.
State chart diagram is used to describe the states of different objects in its life cycle. Emphasis is
placed on the state changes upon some internal or external events. These states of objects are
important to analyze and implement them accurately.
State chart diagrams are very important for describing the states. States can be identified as the
condition of objects when a particular event occurs.
Before drawing a State chart diagram we should clarify the following points −
Following is an example of a State chart diagram where the state of Order object is analyzed
The first state is an idle state from where the process starts. The next states are arrived for events like
send request, confirm request, and dispatch order. These events are responsible for the state changes
of order object.
During the life cycle of an object (here order object) it goes through the following states and there may
be some abnormal exits. This abnormal exit may occur due to some problem in the system. When the
entire life cycle is complete, it is considered as a complete transaction as shown in the following figure.
The initial and final state of an object is also shown in the following figure.
23
Where to Use State chart Diagrams?
From the above discussion, we can define the practical applications of a State chart diagram. State
chart diagrams are used to model the dynamic aspect of a system like other four diagrams discussed
in this tutorial. However, it has some distinguishing characteristics for modeling the dynamic nature.
State chart diagram defines the states of a component and these state changes are dynamic in nature.
Its specific purpose is to define the state changes triggered by events. Events are internal or external
factors influencing the system.
State chart diagrams are used to model the states and also the events operating on the system. When
implementing a system, it is very important to clarify different states of an object during its life time
and State chart diagrams are used for this purpose. When these states and events are identified, they
are used to model it and these models are used during the implementation of the system.
If we look into the practical implementation of State chart diagram, then it is mainly used to analyze
the object states influenced by events. This analysis is helpful to understand the system behavior
during its execution.
24