Chapter 3
Chapter 3
The emphasis of this chapter is on getting an idea of what the requirements are for the
intended software. Students who are doing a research related project would provide literature
survey for their problems. They are expected to understand the relevant papers and provide
summary of the existing work presented in each research paper. Such students should consult
their project supervisor for the detailed instructions related to this chapter.
You should write SRS in precise, clear and plain language so that it can be reviewed by a
business analyst or customer representative with minimal technical expertise. However it also
contains analytical models (use case diagrams, entity relationship diagrams, data dictionary
etc.), which can be used for the detailed design and the development of the software system.
The Functional Requirements Specification documents the operations and activities that a
system must be able to perform. The Functional Requirements Specification is described in
such a way that anyone from non-technical audience can understand. Readers should
understand the system, but no particular technical knowledge should be required to
understand the document.
Non-functional requirements cover all the remaining requirements, which are not covered by
the functional requirements. They specify criteria that judge the operation of a system, rather
than specific behaviors, for example: “Modified data in a database should be updated for all
users accessing it within 2 seconds”. Some typical non-functional requirements include
performance, scalability, availability, reliability, maintainability, usability and security.
Functional requirements describe what the system should do while non-functional
requirements describe how the system works. The Format for presenting these requirements
is given in Table 3-1 and Table 3-2.
Table 3-2 Non-Functional Requirement
A use case defines a set of use-case instances, where each instance is a sequence of actions a
system performs that yields an observable result of value to a particular actor. The
functionality of a system is defined by different use cases, each of which represents a specific
goal (to obtain the observable result of value) for a particular actor.
You should develop fully dressed use cases. One way of conceptualize correct use case is by
imaging the user interface of all the features of your project. This will help you to improve
your project well in time.
Alternative Flows: NA
Exceptions:
Sequence diagrams are created to show the sequence of events among user and the system to
complete an action / use case. A sample is presented in Fig 3.2.
You are required to provide SSD of all the uses cases that you have provided above.
Figure 3-2 Sample SDD
Part of your initial architectural modeling efforts, particularly for a business application, will
likely include the development of high-level domain model as you see in Fig. 3.3. This model
should be very slim, capturing the main business entities and the relationships between them.
Some people consider this type of model to be an initial requirements model instead of an
initial architecture model.
User Interface (UI) Design focuses on anticipating what users might need to do and ensuring
that the interface has elements that are easy to access, understand, and use to facilitate those
actions. UI brings together concepts from interaction design, visual design, and information
architecture.
You should describe the UI design in such a way that it remains simple and consistent along
different views. Common GUI elements are shown in the Fig. 3.4. You should describe the
UI design of each page.
Figure 3-6 Example Login Page UI Design