Appendix D: IEEE 830 Sample
(only 2 functional areas shown out of the 23 in the original)
Software Requirements Specification
for
Photo Software
Version 2.0
Prepared by Michael Brown & Sheldon Linker
UMGC
31-August-2021
«Page Break»
Table of Contents
«Table of Contents»
Revision History
Name | Date | Reason for Changes | Version |
Michael Brown | 5-Apr-2021 | Initial document | 1.0 |
Sheldon Linker | 6-May-2019 | Slight modernization | 1.0.1 |
Sheldon Linker | 10-May-2021 | Modern best practice: No path to an error case | 1.1 |
Sheldon Linker | 31-Aug-2021 | Conversion to IEEE-830 format | 2.0 |
«Page Break»
1. Introduction
1.1. Purpose
Mitropoulos, Inc. is entering the highly completive digital camera market. Although this market is saturated with cheap products, Mitropoulos Inc. has located a third-world country that has not been tainted with labor laws, human rights and social programs. With this advantage Mitropoulos, Inc. can corner the market of low-end digital cameras. To help accomplish this goal, Mitropoulos, Inc. needs photo album editing software to accompany the cameras.
Mitropoulos, Inc. has contracted with Brown LLC to create photo album editing software. Brown LLC specializes in quality software with small feature sets. They also have an excellent track record for producing software on schedule, which is important to Mitropoulos, Inc.
This document is the Software Requirement Specification (SRS) for the photo album editing software. It will outline all of the agreed upon features of the software.
1.2. Document Conventions
There are no special typographical conventions. The sample images are shown in the Windows 8 user interface format. The look of the application will likely appear stylistically different on Windows 10 or other operating systems.
1.3. Intended Audience and Reading Suggestions
This document is intended for all stakeholders in the project — Those who will authorize it, those who will develop it, and those who will test it. An of course, the real audience is the set of students who will read this appendix.
1.4. Product Scope
The software to be created is photo album editing software. It will perform basic functions that will allow the actor to create multiple photo albums. Within a photo album they will be able to insert photos. The software also supports sub-albums, which can be used like chapters within the software.
1.5. References
Normally, I’d reference the initiating document in APA v7 format here, but the eMail asking me to participate in this book was not meant for distribution.
1.6. Definitions, Acronyms and Abbreviations (Glossary)
There are a variety of terms used in this SRS relating to the software being created. Most of the terms are self-explanatory and are common to physical photo albums. However, for completeness, all terms related to the software are provided.
- Album – an album is a selection of content at the highest level
- Content – content can be a photo or a sub-album
- Photo – a digital picture in JPEG or GIF format
- Slideshow – the automatic presentation of photos
- Sub-album – a collection of content within a album or sub-album
2. Overall Description
2.1. Product Perspective
This is new photo editing software for internal use.
2.2. Product Features
The photo editing software allows the actor to create virtual photo albums. The primary features are to allow the actor to create logical photo albums in the system. Each photo album can contain content, which consists of actual photos or sub-albums. A sub-album is a logical collection of content. Sub-albums can also contain content, which is photos or other sub-albums.
A second set of features allows the actor to change the photo albums. Order of content and albums is important in the photo album editing software. A set of features allows the actor to move albums or content up or down. Additional features allow the actor to copy, cut and paste photos. There is also a search feature that will allow the actor to search for photos bases on key words. Actors can change many characteristics of the pictures like contrast and brightness.
The final set of features allows the actor to create slideshows. A slideshow is an automated process of showing the photos. The actor can select background music that can be played. There are two types of slideshows. One type shows the pictures only once. A second type will continuously show the pictures until the actor terminates the feature.
- Create Album — Creates an album in the photo album library
- Delete Album — Deletes an album in the photo album library.
- …
2.3. User Classes and Characteristics
For this application, there is only one user class, and that is User. There are no privilege levels.
2.4. Operating Environment
OE-1: The software shall run on Windows, MacOS, and iOS, at least.
OE-2: The application shall present the native interface. (This document shows a Windows interface.)
2.5. Design and Implementation Constraints
DC-1: The system shall run either in native code, or in a built-in VM, such as .Net on Windows.
DC-2: The system shall support all commonly used image formats, including, at least, all the image formats which the Chrome browser can display.
2.6. User Documentation
Although the plan is that the application should be simple and straightforward enough that the user should need no documentation, there shall be a printable PDF distributed with the application explaining its features and usage.
2.7. Assumptions and Dependencies
AS-1: We assume that the user has knowledge of how standard PC features work, such as the mouse, keyboard, and standard Open and Save dialogs work.
DE-1: Since this software contains no device drivers of its own, it thus depends on image-capturing hardware having its own means of either getting the images onto the host system, or as acting as a file system connectable to the host system.
3. System Features
The basic functional areas of the system are as follow: (Note that since this is a sample, only 2 are shown.)
3.1. Create Album
An album is the top level of the storage hierarchy. This function allows the user to create a new album, which can then contain images.
3.2. Delete Album
This function allows the deletion of an album, along with any images attached to it. Deletion of a non-empty album will involve a warning dialog.
4. External Interface Requirements
4.1. User Interfaces Overview
The various functionalities below will each have their own interface screen designs, as shown below. (Note that only the screens for the first 2 examples are shown in this sample.)
These image show the menus, plus the main lay-out area, and the lay-out area without the menu, but with contents:
This image shows the album creating dialog, a typical error dialog, and a confirmation dialog:
4.2. Hardware Interfaces
N/A — There need not be any special hardware interfaces in the program, and the program may rely solely on the host operating system’s ability to load images from cameras and the like, or to show such devices as file systems.
4.3. Software Interfaces
N/A — This software does not directly communicate with other software.
5. System Features/Modules
The following provides a more in-depth explanation of the functional areas, including full requirements. Note that only 2 areas are shown here for purposes of example.
5.1. Create Album
5.1.1 Description and Priority
The primary focus of this product is to hold, organize, and contain imagery. Albums are the primary means on organizing the images. A user may create an album at any time, and there is no limit on the number of albums. Album names must be unique. Priority=High.
5.1.2 Stimulus/Response Sequences
Stimulus: From the Album menu, the user selects Create Album.
Response: The system displays the album creation dialog, as shown in §4. In the dialog, the Ok button starts in a disabled state.
Stimulus: The user enters, modifies, or deletes data in either of the top two text entry areas (name and date).
Response: At each operation, the fields are evaluated for validity, and the Ok button will enable or disable so as to be enabled when both fields contain valid data.
Stimulus: The user clicks Ok.
Response: If the name given is unique, then the name is added to the list of albums (and has no content). If the name is not unique, then the error alert as shown in §4 will display in a modal manner.
5.1.3 Functional Requirements
REQ-1.1: Upon the user choosing “Create Album” from the “Album” menu, the system shall display the album creation dialog as shown as “Create Album” in §4.1. The initial state of the “Ok” button shall be disabled.
REQ-1.2: As the user enters, modifies, or deletes data in the Name and/or Date fields, the validity of those two fields shall be reevaluated, and the the “Ok” button shall be enabled if and only if those two fields are valid.
REQ-1.3: Upon the user clicking “Ok”, or when using operating systems that link the “Return” or “Enter” button the the “Ok” button, pressing either of those keys, the system shall evaluate whether the album name is unique, and if so, shall add the ablum name, at the bottom, to the list of albums, in a persistent manner. If name is not unique, then the system shall display the “Duplicate Name” error alert, as depicted in §4.1.
5.2. Delete Album
5.2.1 Description and Priority
Anything created must be deletable. This function allows for the deletion of an album created above. Priority=Low.
5.2.2 Stimulus/Response Sequences
Stimulus: The user clicks on an album in the album list.
Response: The system will enable the Delete Album menu item if the album is empty, and disable the item otherwise.
Stimulus: From the Album menu, the user chooses Delete Album.
Response: The systems posts the confirmation dialog as shown in §4.
Stimulus: The user clicks Ok.
Response: The album is deleted, and removed from the list.
5.1.3 Functional Requirements
REQ-2.1: Upon each user action that changes the state of which album is selected (including starting the program), and upon each user action that changes the number of images in an album, the system shall revaluate whether the “Album” menu’s “Delete Album” menu item should be enabled, and shall enable that item if and only if there is exactly one album selected in the album list and that album is empty.
REQ-2.2: Upon the user selecting the “Delete Album” menu item, the system shall post the “Confirm” dialog, as depicted in §4.1.
REQ-2.3: Upon the user clicking “Ok”, the system shall remove the album from the list, in a persistent manner.
6. Nonfunctional Requirements
6.1. Performance
NF-1.1: Any operation that is expected to take 0.1s or less shall not post any sort of wait indicator.
NF-1.2: Any operation that is expected to take more than 0.1s, but less than 1s, shall post the system Wait cursor.
NF-1.3: Any operation that is expected to take 1s or more shall post a progress bar, count-down timer, or other system-appropriate wait/progress indicator.
6.2. Veracity
NF-2.1: The original image format shall be preserved.