# System Analysis and Design

The SAD practicals contain a report for the software development process of a project, and the UML diagrams for the project.

## Unified Modeling Language (UML)

The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems.

The UML diagrams include:

1. [Structure Diagrams](#structure-diagrams)
   * [Class Diagram](#class-diagram)
   * [Object Diagram](#object-diagram)
   * [Component Diagram](#component-diagram)
   * [Deployment Diagram](#deployment-diagram)
2. [Behavior Diagrams](#behavior-diagrams)
   * [Use Case Diagram](#use-case-diagram)
   * [Activity Diagram](#activity-diagram)
   * [State Machine Diagram](#state-machine-diagram)
   * [Sequence Diagram](#sequence-diagram)

**Note:** _The UML diagrams are taken from the KEC publication book._

## Structure Diagrams

The structure diagrams are used to show the static structure of the system. They include the class diagram, object diagram, component diagram, and deployment diagram.

* #### Class Diagram

The class diagram is used to show the classes and their relationships in the system. It is used to show the static structure of the system.

The class diagram for **"Library Management System"** is shown below:

![Class Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-c643215e03bc1f39f012963f0ffb0ef6833b6b99%2Fclass_diagram.jpg?alt=media)

* #### Object Diagram

The object diagram is used to show the objects and their relationships in the system. It is used to show the static structure of the system.

The object diagram for **"Library Management System"** is shown below:

![Object Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-e259e84b9b1cb1c69a4773c76aeff7d6471fb5d0%2Fobject_diagram.png?alt=media)

* #### Component Diagram

The component diagram is used to show the components and their relationships in the system. It is used to show the static structure of the system.

The component diagram for **"Library Management System"** is shown below:

![Component Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-d1d9e3cc8346f7f53bec3ccc69b130156a185795%2Fcomponent_diagram.png?alt=media)

* #### Deployment Diagram

The deployment diagram is used to show the deployment of the system. It is used to show the static structure of the system.

It shows the hardware and software components of the system and the relationships between them.

![Deployment Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-5e2f63fc6d342caa823c2267bf203fcadc748c72%2Fdeployment_diagram.png?alt=media)

## Behavior Diagrams

The behavior diagrams are used to show the dynamic behavior of the system. They include the use case diagram, activity diagram, state machine diagram, and sequence diagram.

* #### Use Case Diagram

The use case diagram is used to show the use cases of the system. It is used to show the interactions between the system and its users.

The use case diagram for **"Library Management System"** is shown below:

![Use Case Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-6271c2cc35add169074a544d079cfa03e3beda22%2Fuse_case_diagram.png?alt=media)

* #### Activity Diagram

The activity diagram is used to show the flow of activities in the system. It is used to show the dynamic structure of the system.

The activity diagram for **"Library Management System"** is shown below:

![Activity Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-77ec2414f96f9fda7898230b38dcdc470a4d1f41%2Factivity_diagram.png?alt=media)

* #### State Machine Diagram

The state machine diagram is used to show the states of an object and the transitions between the states. It is used to show the dynamic behavior of the system.

The state machine diagram for **"Library Management System"** is shown below:

![State Machine Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-552e7daa409545a9269fd021b07ed137740035ca%2Fstate_diagram.png?alt=media)

* #### Sequence Diagram

The sequence diagram is used to show the interactions between the objects in the system. It is used to show the dynamic behavior of the system.

The sequence diagram for **"Library Management System"** is shown below:

![Sequence Diagram](https://1701689154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlhGYIl7VJdlGnlsVvVWa%2Fuploads%2Fgit-blob-c2136347507241cac1bbb47771d050c93ea4d32f%2Fsequence_diagram.png?alt=media)
