Software Requirements Specifications (SRS) and Agile Development
Q 1. Write a Software Requirement Specification as per SRS IEEE template for the scenario.
A system is to be developed for scheduling the courses in the MCA program, based on the input about classrooms, lecture times, and time preferences of the different instructors.
Q 2 Write SRS in IEEE format for an event management system. The overall functioning is as follows.
- Booking of venue
- Registration of vendors
- Assigning vendors
- Generating quotations
Q 3. Draw the use case and class diagram for a placement agency site which provides the facility for the
candidate to register with their academic details, personal details & skill sets. Organizations can also register with their requirements. Searching facility is provided for searching for jobs as well as candidates.
Q 4.
a) Draw an Activity diagram for registering a billing complaint to MSEB.
b) Draw a State Transition Diagram for a toy Robot, with the following functionalities.
- When the Robot is SWITCHED ON, it should greet as per the time (Morning, Afternoon, etc.)
- It should behave as per your order – “Walk Straight”, “Run”, and “Stop”.
- Set time for the robot.
- After 6 pm, it SWITCHES ON its own lights.
- When the battery is down, it gives an indication for charging it by saying “Battery Down?”. Similarly, after the charging is complete, it says “Battery Full”.
Q 5. Draw the User Interface Screen to lodge a grievance against noise pollution in your neighborhood on the government noise pollution grievance redressal and monitoring system.
Q.6. Discuss Elements of GUI Design.
Structural elements[edit]
Graphical user interfaces use visual conventions to represent the generic information shown. Some conventions are used to build the structure of the static elements on which the user can interact, and define the appearance of the interface.
Window[edit]
Main article: Window (computing)
A window is an area on the screen that displays information, with its contents being displayed independently from the rest of the screen. A container window encloses other windows or controls. When it is moved or resized, the enclosed items move, resize, reorient, or are clipped by the container window.
- A browser window
- Text terminal
- A child window
- A message window, Menu[edit]
Menus allow the user to execute commands by selecting from a list of choices. Options are selected with a mouse or other pointing device within a GUI. A keyboard may also be used. Menus are convenient because they show what commands are available within the software. This limits the amount of documentation the user reads to understand the software.[2]
- A menu bar[4]
- A menu
- A context menu
- Menu extras
Icons[edit]
An icon is a small picture that represents objects such as a file, program, web page, or command. They are a quick way to execute commands, open documents, and run programs. Icons are also very useful when searching for an object in a browser list, because in many operating systems all documents using the same extension will have the same icon.
Controls (or widgets)[edit]
Main article: Widget (GUI)
Interface elements known as graphical control elements, controls
widgets are software components that a computer user interacts with through direct manipulation to read or edit information about an application.
Tabs[edit]
A tab is typically a rectangular small box which usually contains a text label or graphical icon associated with a view pane.
When activated the view pane, or window, displays widgets associated with that tab; groups of tabs allow the user to switch quickly between different widgets.
Interaction elements[edit]
Some common idioms for interaction have evolved in the visual language used in GUIs.
Interaction elements are interface objects that represent the state of an ongoing operation or transformation,
either as visual remainders of the user intent (such as the pointer), or as affordances showing places where the user may interact.
Cursor[edit]
Main article: Cursor (user interface)
A cursor is an indicator used to show the position on a computer monitor or other display device that will respond to input from a text input or pointing device.
Pointer[edit]
Main article: Pointer (user interface)
The pointer echoes movements of the pointing device, commonly a mouse or touchpad. The pointer is the place where actions take place that are initiated through direct manipulation gestures such as click, touch and drag.
Insertion point[edit]
The caret, text cursor or insertion point represents the point of the user interface where the focus is located. It represents the object that will be used as the default subject of user-initiated commands such as writing text, starting a selection or a copy-paste operation through the keyboard.
Selection[edit]
A selection is a list of items on which user operations will take place. The user typically adds items to the list manually, although the computer may create a selection automatically.
Adjustment handle[edit]
A handle is an indicator of a starting point for a drag and drop operation. Usually, the pointer shape changes when placed on the handle, showing an icon that represents the supported drag operation.
Q.7. Write the difference between Agile and Scrum.
Q.8. What are the 12 manifesto of Agile development?
The principles behind the Agile Manifesto.
The 12 Agile Manifesto principles, expanding on the original manifesto, include:
- The highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- The project team welcomes changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- The process builds projects around motivated individuals, giving them the environment and support they need, and trusts them to get the job done.
- A face-to-face conversation is the most efficient and effective method of conveying information to and within a development team.
- Working software is the most important measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should maintain a constant pace indefinitely.
- Pay continuous attention to technical excellence, and good design enhances agility.
- Simplicity is essential. This is the art of maximizing the amount of work not done.
- Self-organizing teams produce the best architectures, requirements, and designs.
- At regular intervals, the team reflects on how to become more effective and adjusts its behavior accordingly.
Q.9. Write a short note on Feature Driven Development (FDD).
Feature-driven development (FDD) is a customer-centric software development methodology known for short iterations and frequent releases. Like Scrum, FDD requires the customer, also known as the project business owner, to attend the initial design meeting and iteration retrospectives.
Steps of feature-driven development
Feature-driven development is made up of five basic process steps:
- Develop a model – The overall model is created by the chief architect, or another professional leading the project, by identifying the scope and context of the system.
- Build a list of features – Developers brainstorm a list of potential items that would be useful to users and could be completed along a set timeline for release. Each feature should be manageable within a timeframe of around two weeks.
- Plan out each feature – Features are organized by how long they take to create and how important they are to the client. Ownership of each feature is also assigned.
- Design each feature – The actual details of each feature are produced, inspected and finalized.
- Build each feature – After the design is improved, the completed feature is added to the official build for delivery to the client.
Software Requirement Specification (SRS) for Courier Management System
1. Introduction
1.1 Purpose
The purpose of this document is to outline the software requirements for the development of a Courier Management System (CMS). The CMS will facilitate the efficient management and tracking of courier services, optimizing the entire process from package creation to delivery.
1.2 Scope
The Courier Management System will cover the following key functionalities:
- User registration and authentication
- Package creation and tracking
- Route optimization
- Delivery status updates
- Reporting and analytics
2. Overall Description
2.1 Product Perspective
The CMS will operate as a standalone system, interacting with external services for location-based data and maps. It will integrate with databases for user information and transaction history.
2.2 Product Features
- User Management
- User Registration and Authentication
- User Roles: Customer, Administrator, Delivery Personnel
- Package Management
- Package Creation with Sender and Recipient Information
- Package Tracking with Real-time Updates
- Package Editing and Cancellation
- Route Optimization
- Automatic Assignment of Delivery Personnel
- Optimization of Delivery Routes
- Delivery Status Updates
- Real-time Notifications to Customers
- Delivery Confirmation
- Reporting and Analytics
- Transaction History
- Delivery Performance Metrics
- Creates and tracks packages
- Receives notifications and updates
- Monitors and analyzes system performance
- Resolves issues and disputes
3. System Features
3.1 User Registration and Authentication
- Users can register with the system using valid email addresses.
- Secure authentication mechanisms, such as password hashing, will be implemented.
3.2 Package Management
- Users can create new packages, providing sender and recipient details.
- Real-time package tracking with status updates.
- Package editing and cancellation features.
3.3 Route Optimization
- Automatic assignment of delivery personnel based on location and workload.
- Optimization of delivery routes to minimize time and resources.
3.4 Delivery Status Updates
- Real-time notifications to customers about package status.
- Delivery personnel can update the system with delivery confirmation.
3.5 Reporting and Analytics
- Transaction history for users.
- Performance metrics for delivery routes.
4. External Interface Requirements
4.1 User Interfaces
- Intuitive web interface for customers and administrators.
- Mobile interface for delivery personnel.
4.2 Hardware Interfaces
- The system will be hosted on [specified hardware].
- Integration with barcode scanners for package tracking.
4.3 Software Interfaces
- Integration with [mapping service] for route optimization.
- Database integration for user information and transaction history.
5. Non-Functional Requirements
5.1 Performance Requirements
- System response time: [specified time].
- Concurrent user handling: [number of users].
5.2 Security Requirements
- Data encryption for user information.
- Secure authentication and authorization mechanisms.
5.3 Reliability and Availability
- System availability: [specified percentage].
- Regular backups and data recovery procedures.
5.4 Maintainability
- Easily extensible for future updates and features.
- Code documentation for maintainability.
6. Appendices
7.1 Glossary
- List of terms and definitions used in the document.
7.2 References
- List of documents and sources referenced in the SRS.
This Software Requirements Specification is subject to change as the project progresses. All stakeholders are encouraged to review and provide feedback for continuous improvement.
Software Requirements Specification
Product Name: Library Management System
Date:
1. Introduction
1.1 Purpose
This document describes the software requirements for the Library Management System (LMS). The LMS is a web-based application that will allow librarians and library users to manage the library’s collection of books and other resources.
1.2 Scope
The LMS shall include the following features:
- Book management: Librarians shall be able to add, edit, and delete books from the library’s collection.
- User management: Librarians shall be able to add, edit, and delete user accounts.
- Circulation management: Librarians and library users shall be able to check out and check in books.
- Search: Librarians and library users shall be able to search the library’s collection for books by title, author, genre, and other criteria.
- Reporting: Librarians shall be able to generate reports on the library’s collection, circulation, and users.
1.3 Audience
This document is intended for the following audience:
- Librarians
- Library users
- Software developers
2. Functional Requirements
2.1 Book Management
The LMS shall allow librarians to:
- Add new books to the library’s collection by entering the book’s title, author, genre, publication date, ISBN, and other relevant information.
- Edit existing books in the library’s collection by updating the book’s information.
- Delete books from the library’s collection.
2.2 User Management
The LMS shall allow librarians to:
- Add new user accounts to the library by entering the user’s name, email address, and other relevant information.
- Edit existing user accounts in the library by updating the user’s information.
- Delete user accounts from the library.
2.3 Circulation Management
The LMS shall allow librarians and library users to:
- Check out books from the library by entering the book’s barcode and the user’s library card number.
- Check in books to the library by entering the book’s barcode and the user’s library card number.
- View the due dates for checked out books.
- Renew checked out books.
2.4 Search
The LMS shall allow librarians and library users to search the library’s collection for books by title, author, genre, and other criteria.
2.5 Reporting
The LMS shall allow librarians to generate reports on the library’s collection, circulation, and users. These reports shall include the following:
- A list of all books in the library’s collection
- A list of all checked out books
- A list of all overdue books
- A list of all users who have checked out books
- A list of all users who have overdue books
3. Non-Functional Requirements
3.1 Performance
The LMS shall be able to handle the following concurrent users:
- 100 librarians
- 1000 library users
The LMS shall be able to process the following number of requests per second:
- 100 book check out requests
- 100 book check in requests
- 100 book search requests
3.2 Security
The LMS shall implement the following security measures:
- All user passwords shall be stored in encrypted form.
- Only authorized users shall be able to access the LMS.
- All communication between the LMS and users shall be encrypted.
3.3 Usability
The LMS shall have a user-friendly interface that is easy for both librarians and library users to use.
4. Implementation Constraints
The LMS shall be implemented using the following technologies:
- Programming language: Python
- Web framework: Django
- Database: PostgreSQL
5. Acceptance Criteria
The LMS shall be accepted when it meets the following criteria:
- All functional requirements are implemented and tested.
- All non-functional requirements are met.
- The LMS is installed and configured on the library’s servers.
- The LMS is documented and trained to the library staff.
6. Glossary
- Book: A printed or electronic publication containing text or illustrations or a combination of both, used as a reference or textbook or for pleasure reading.
- Librarian: A person who
