Monday, January 17, 2011

Requirement Engineering: Lecture # 2

Objectives:
To develop skills to identify stakeholders of software
To learn various kinds of requirements
To have clear concepts of what functional requirement is?
To have clear concepts of what Nonfunctional requirements are?

Exercise: Identifying Stakeholders
It is really important that you get requirements from all stakeholders because the system may fail because a stakeholder is not satisfied or he had some important requirements with him, which did not get captured and thus not implemented. Following exercises are there to bring you in a habit of deep thinking to identify stakeholders.
• I want to take all quizzes using a software. Who will be the stakeholders in this scenario?
Answer:
Stakeholders may include at least the following
• Students
• Teachers
• Academics/Management
• Lab Administrator

• I want to develop a software for automating traffic signals on the road
Answer:
Stakeholders may include at least the following
• Police
• Drivers
• Pedestrians
Ambulance and other emergency transport including VIP squads

• I want to develop a software for automating the railway signals
Stakeholders may include at least the following
• Train staff/operators
• Car drivers

Lecture Contents:

Kinds of software requirements
• Functional Requirements
• Non Functional Requirements
• Domain Requirements
• Inverse Requirements
• Design and Implementation Constraints

Functional Requirement
These are statements that describe what the system does. In other words these are the statement of services the system should provide. They identify
• Reaction to particular input
• Behavior in particular situation
Sequencing and parallelism should also be captured by functional requirement as well as the abnormal behavior, which is documented in the form of exception handling.
E.g. The system should allow user to search for books, CDs and journals available in library
E.g. The system should record basic information regarding all the financial products as well as basic information about the provider and product related documents including brochures and forms
While documenting any kind of requirement, it must be ensured that complete requirement is being captured so the chances of misinterpretation or different interpretation is minimized
Customers and developers usually focus all their attention on functional requirements

Non-Functional Requirement:
These do not deal with the actions system do, but they rather they deal with the quality attributes of the system. They contribute to the emergent behavior of the system.
Non functional requirements are often neglected by the developers and requirement engineers. However they should be given due share specially due to two important reasons
Like some functional requirements, Non functional requirements are so important that there absence will effect acceptance of the product by client. For example,
• A Point of Sale terminal at super store should allow operators to quickly generate receipts for customers. If it takes long the management might discard it.
• A system like ZABDESK may be discarded by management simply because it not secure enough and someone can breach in to change the marks

It is important to know the Nonfunctional requirement at a very early stage because these requirements are built into the architecture of the system. Almost all functional requirements can be added after the delivery as well but most of the Nonfunctional requirements cannot be added later. For example, high performance can only be achieved if the architecture is aimed at it, it cannot be added later.

No comments:

Post a Comment