REQUIREMENTS ENGINEERING
STRUCTURED & UNSTRUCTURED PROGRAMMING
Structured programming languages: Structured Programming is a type of programming that
generally converts large or complex programs into more manageable and small pieces of code.
These small pieces of codes are usually known as functions or modules or sub-programs of large
complex programs. It is known as modular programming and minimizes the chances of function
affecting another. Eg. C, C++, JAVA etc.
Unstructured programming languages: Unstructured programming languages do not have such
specific rules or structures. They are typically written as a series of commands or statements, which
are executed from top to bottom. Eg. BASIC, Fortran, COBOL etc.
REQUIREMENTS ENGINEERING
Requirements engineering concentrates on following activities;
Understand the concepts of user and system requirements
Understand the differences between functional and nonfunctional software requirements
Understand how requirements may be organized in a software requirements document
Understand the principal requirements engineering activities of elicitation, analysis and
validation, and the relationships between these activities
Understand why requirements management is necessary and how it supports other
requirements engineering activities.
What is Requirements Engineering?
Requirements engineering is the process of identifying, eliciting, analyzing, specifying, validating,
and managing the needs and expectations of stakeholders for a software system.
, FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS
Software system requirements are often classified as functional requirements or nonfunctional
requirements:
Functional requirements:
These are statements of services the system should provide, how the system should react to
particular inputs, and how the system should behave in particular situations. In some cases, the
functional requirements may also explicitly state what the system should not do.
Key characteristics of functional requirements include:
Feature Descriptions: Functional requirements describe the features and capabilities that
the software should possess. These features are often expressed in terms of inputs,
processes, and outputs. Eg. In Hospital Software for every patients, unique ID must be
provided for identification.
Behavioral Specifications: They specify the expected behavior of the software under
different conditions. This includes how the system should respond to user input, process
data, and produce output.
User Interactions: Functional requirements often detail the interactions between the user
and the software. This includes specifying the user interface, navigation, and any input
mechanisms.
Data Handling: They define how the software should handle data, including storage,
retrieval, and manipulation of information. This may involve specifying data formats, data
validation rules, and database interactions.
External Interfaces: Functional requirements may describe interactions with external
systems, services, or components. This ensures that the software can integrate seamlessly
with other parts of the overall system.
Security Requirements: They outline security features and measures that need to be
implemented to protect the software and its data. This can include access control,
authentication, and encryption.
Constraints: Constraints, such as hardware limitations or environmental factors, are often
included in functional requirements to provide boundaries for the development team.
, Use Cases and User Stories: Functional requirements are often expressed in the form of
use cases or user stories, which describe specific scenarios of how users will interact with
the system and what functionality they expect.
Functional requirements are typically documented in a requirements specification document, and
they serve as the basis for the software development process. They provide a clear and detailed
understanding of what needs to be implemented and help stakeholders, including developers,
testers, and project managers, align their efforts toward building a system that meets the desired
functionality and user expectations.
Non-functional requirements:
Non-functional requirements are essential for ensuring the overall performance, usability,
reliability, and maintainability of a software system.
Non-functional requirements can be broadly classified in to product requirements, organizational
requirements and external requirements.