BAHIR DAR UNIVERSITY
BAHIR DAR INSTITUTE OF TECHNOLOGY
Faculty of Computing
Object Oriented Software Engineering Assignment
Samuel.A
1|P ag e
Assignment Overview:
The purpose of this assignment is to create a detailed Software Design Document (SDD) for a
project based on a Requirement Analysis Document (RAD). This assignment will guide you
through creating a software design that transforms the requirements into a blueprint for
development. By following the standard template for requirement analysis, you will ensure that all
functional and non-functional requirements are captured and aligned with the project objectives.
Assignment Instructions:
1. Project Title:
Provide a clear and concise title for the project. It should represent the primary objective or
function of the software.
Example: "Online Library Management System"
2. Objective:
Describe the main goal of the software project and its purpose.
Example Objective: "The objective of this project is to design and implement an Online Library
Management System that automates library processes, including book issuance, return, inventory
management, and member management."
3. Requirement Analysis Document (RAD) Template:
The RAD should include the following sections:
3.1 Introduction
Provide a brief overview of the project and the stakeholders involved. Discuss the scope of the
software project, including limitations.
Content Example:
Project Overview: Online Library Management System.
Stakeholders: Librarians, students, admin staff.
Scope: The system covers book inventory, user management, borrowing, and return
management.
3.2 Functional Requirements
List the core functions that the software must perform. Break these down into use cases or user
stories.
2|P ag e
Example Functional Requirements:
The system must allow users to search for books by title, author, or subject.
The system must allow users to borrow and return books.
The system must track due dates and overdue books automatically.
The system must send notifications for book availability and overdue reminders.
3.3 Non-Functional Requirements
List the non-functional requirements such as performance, usability, security, and scalability.
Example Non-Functional Requirements:
The system should handle up to 1000 concurrent users.
The system should be accessible on both desktop and mobile devices.
User data must be encrypted to ensure privacy.
The response time should be less than 2 seconds for search queries.
3.4 System Requirements
Outline the hardware and software prerequisites needed to run the software.
Example System Requirements:
Hardware: At least 8 GB RAM, Intel i5 Processor, 500 GB HDD.
Software: MySQL database, Java-based web server, modern browser (Chrome, Firefox).
3.5 Use Case Diagram
Create a visual diagram to illustrate the interactions between users (actors) and the system. Tools
like Lucidchart, Draw.io, or UML diagram tools can be used.
Example: A use case diagram showing how the librarian adds a new book, students search for
books, and the system processes borrow requests.
4. Software Design Document (SDD) Structure
Using the RAD as the foundation, create the SDD, which includes the following sections:
4.1 System Architecture
Describe the architecture of the system, including the components, modules, and how they interact.
Choose an appropriate architecture, such as client-server, microservices, or monolithic
architecture.
Example:
3|P ag e
The system follows a three-tier architecture: Presentation Layer (UI), Business Logic
Layer, and Database Layer.
Technologies used: HTML/CSS (frontend), Java (backend), MySQL (database).
4.2 Class Diagrams
Create UML class diagrams to represent the structure of the system and its objects. Define classes,
their attributes, methods, and relationships (inheritance, association).
Example: Class diagrams for:
Book: Attributes: ISBN, Title, Author, Subject. Methods: AddBook(), BorrowBook(),
ReturnBook().
User: Attributes: UserID, Name, Role. Methods: RegisterUser(), BorrowBook(),
ReturnBook().
4.3 Database Design
Design the database schema, showing tables, fields, primary keys, and foreign keys. Ensure it
aligns with the functional requirements of the system.
Example Database Schema:
Books table: book_id (PK), title, author, availability_status.
Users table: user_id (PK), name, email, role.
Transactions table: transaction_id (PK), book_id (FK), user_id (FK), borrow_date,
due_date, return_date.
4.4 Sequence Diagrams
Create sequence diagrams to demonstrate the interaction between different components of the
system for specific use cases. For example, the sequence of events when a user borrows a book.
Example:
User requests book > System checks availability > Book is issued > Database is updated.
4.5 UI Design
Design wireframes or mockups for key interfaces, such as login pages, search pages, and user
dashboards.
Example:
Wireframe of the main dashboard showing a search bar, book listing, and borrowing
history.
4|P ag e
4.6 Algorithms & Pseudocode
Outline any core algorithms that the software will use, such as search algorithms or data
processing. Include pseudocode if needed.
Example:
A search algorithm that looks for books by matching keywords in the title or author fields.
4.7 Security Measures
Describe the security features that will protect the software from common vulnerabilities like SQL
injection, cross-site scripting, and data breaches.
Example:
User Authentication: Implement JWT (JSON Web Tokens) for secure login.
Data Encryption: Use AES encryption for sensitive user information.
5. Testing Plan
Describe the testing strategy you will use to ensure the software meets the specified requirements.
Include both functional and non-functional testing methods such as unit testing, integration testing,
and performance testing.
Example Testing Plan:
Unit Testing: Test individual modules, such as the book search functionality.
Integration Testing: Test the interaction between the business logic and the database.
Performance Testing: Ensure the system handles 1000 concurrent users without slowing
down.
6. Conclusion
Summarize how the design adheres to the requirements specified in the RAD and how the system
architecture, components, and design decisions ensure that the system will meet user needs
effectively.
Submission Guidelines:
Submit the assignment as a PDF document, including all diagrams and pseudocode.
Use appropriate tools for diagrams such as Enterprise Architect, or any UML design
software.
Ensure the document is well-organized and clearly labeled.
Assessment Criteria:
5|P ag e
Clarity and completeness of the requirement analysis.
Correctness and detail of the software design, including diagrams.
Alignment of the design with the specified functional and non-functional requirements.
Adherence to the SDD structure and best practices.
Testing strategy and project timeline.
6|P ag e