Skip to content

Latest commit

 

History

History
120 lines (64 loc) · 6 KB

File metadata and controls

120 lines (64 loc) · 6 KB

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors Visitors

Don't forget to hit the ⭐ if you like this repo.

Module 4: Requirements Engineering

Group dunno

  1. GOH JING YANG
  2. LOO JIA CHANG
  3. TIEW CHUAN SHEN

Module 4: Requirements Engineering

Contents:

Requirement Engineering

Requirement engineering is the process of eliciting, analyzing, documenting, validating, and managing the requirements of a software system. It involves defining the needs and constraints of the system, identifying stakeholders, and specifying the functional and non-functional requirements.

The goal of requirement engineering is to ensure that the software system meets the needs of its users and stakeholders, and is delivered on time, within budget, and with the required quality.

Types of Requirements

There are several types of requirements in software development, including:

  • Functional requirements: These specify what the system should do, and are typically described in terms of inputs, processes, and outputs.

  • Non-functional requirements: These specify how the system should perform, and include constraints on factors such as performance, reliability, usability, and security.

  • User requirements: These specify what the user wants the system to do, and are typically described in non-technical language.

  • System requirements: These specify how the system should behave, and are typically described in technical language.

Functional and Non-functional Requirements

Functional requirements describe what the system should do, while non-functional requirements describe how well the system should do it. Here are some examples of functional and non-functional requirements:

  • Functional requirement: The system shall allow users to create new accounts.
  • Non-functional requirement: The system shall process user requests within 3 seconds.

Requirements Specification

Requirements specification is the process of documenting the requirements of a software system. It typically involves creating a software requirements specification (SRS) document that includes a description of the system's features, functionality, and performance, as well as any constraints and assumptions.

Here is an example of what a requirements specification might look like:

Requirements Engineering Processes

Requirements engineering is a process that involves several phases, including:

  • Requirements elicitation: This involves gathering requirements from stakeholders, such as users, customers, and domain experts.

  • Requirements analysis: This involves analyzing the requirements to ensure that they are complete, consistent, and feasible.

  • Requirements specification: This involves documenting the requirements in a software requirements specification (SRS) document.

  • Requirements validation: This involves verifying that the requirements are correct, complete, and consistent.

  • Requirements management: This involves tracking changes to the requirements throughout the software development lifecycle.

Here is an example of how to use requirement engineering in a software development project:

# Import requirement engineering module
import requirement_engineering

# Elicit requirements from stakeholders
requirements = requirement_engineering.elicit_requirements()

# Analyze requirements for feasibility and completeness
feasibility = requirement_engineering.analyze_feasibility(requirements)
completeness = requirement_engineering.analyze_completeness(requirements)

# Document requirements in a software requirements specification (SRS) document
requirement_engineering.document_requirements(requirements, 'software_requirements_specification.docx')

# Validate requirements with stakeholders
requirement_engineering.validate_requirements(requirements)

# Manage requirements throughout the software development lifecycle
requirement_engineering.manage_requirements(requirements)

Notes

Others

The Importance of Software Engineering

Software engineering is an essential field of study that deals with the design, development, and maintenance of software applications. It plays a vital role in the development and success of modern technology. Here are some of the reasons why software engineering is important:

Contribution 🛠️

Please create an Issue for any improvements, suggestions or errors in the content.

You can also contact me using Linkedin for any other queries or feedback.

Visitors