0% found this document useful (0 votes)
16 views

Lecture 8 Software Requirements For Software Engineering

The document discusses software requirements which are the first stage of software development where users' needs are established. It defines different types of requirements including functional, non-functional, domain, user, and system requirements. It also explains the difference between software requirements and requirement engineering which is the systematic process of documenting requirements through analysis.

Uploaded by

alnymyb12345
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Lecture 8 Software Requirements For Software Engineering

The document discusses software requirements which are the first stage of software development where users' needs are established. It defines different types of requirements including functional, non-functional, domain, user, and system requirements. It also explains the difference between software requirements and requirement engineering which is the systematic process of documenting requirements through analysis.

Uploaded by

alnymyb12345
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Software Engineering

Lecture 8:
Software Requirements

Department of Computer Science


College of1 Science
Software Requirements
• The first stage of software development is to establish exactly what the users of the system
want. .‫المرحلة األولى من تطوير البرمجيات هي تحديد ما يريده مستخدمو النظام بالضبط‬
• This stage call the Software requirements.
• Requirements: The process of establishing the services that the customer requires from a
system and the constraints under which it operates and is developed.
• The requirements can be clear or hidden, known or unknown, expected or unexpected
from customer’s point of view.

Department of Computer Science


College of2 Science
Software Requirements
According to the IEEE, ‘Requirement is a condition of capability, needed by a
user to solve a problem or achieve an objective’.
In general, requirements can be classified as following :
• Functional Requirements.
• Non-Functional Requirements.
• Domain Requirements.
• User Requirements.
• System Requirements.
• External Requirements
Department of Computer Science
College of3 Science
Functional requirements
1. Functional requirements: are the services which the end users expect the
final product to provide. These requirements focus on the functionality of the
software components that build the system.
• Expressing such type of requirements done in some ways like
• Natural language,
• Structured or
• Formatted languages

Department of Computer Science


College of4 Science
Non-Functional requirements
2. Non-Functional requirements are the constraints imposed on the system and
can be classified as
1. Product requirements: These requirements specify product behavior.
Example include performance requirements on how fast the system must
execute and how much memory it requires.

1. Organizational requirements: These requirements are derived from policies


and procedures in the customers and developers organization. Example include
process standards that must be used.

1. External requirements: These may include interoperability requirements that


define how the system interacts with systems in other organizations.

Department of Computer Science


College of5 Science
Domain Requirements
3. Domain Requirements: Some requirements are specific to an application
domain e.g. hospital, banking, marketing etc.
• These requirements are not user specific and can be identified from that
domain model.
• For example, in a hospital there will always be requirements concerning
Doctors, Staff, Departments and Patients etc.

Department of Computer Science


College of6 Science
User Requirements
4. User Requirements: User requirements define the information or material that
is input into the business process, and the expected information or material as
outcome from interacting with the business process (system), specific to
accomplish the user’s business goal.
User requirements: statements of what services the system is expected to provide to the users
and the constraints under which it must operate, in a natural language plus diagrams.
Statements in natural language (NL) plus diagrams of the services the system
provides and its operational constraints. Written for customers are written from the
user’s point-of-view. Department of Computer Science
College of7 Science
System Requirements
5. System Requirements: A structured document setting out detailed descriptions of
the system services.
Written as a contract between client (customer) and contractor (service provider)
‫العقد بين العميل والمقاول‬

Department of Computer Science


College of8 Science
Software Requirements
6. External requirements: from factor external to the system and its development
process
 Regulatory requirements: What must be done for the system to be used by a
regulator.
.‫ما يجب القيام به حتى يتم استخدام النظام من قبل الجهة التنظيمية‬
 Ethical requirements: Ensure the system will be acceptable to its user and the
general public.
‫ التأكد من أن النظام سيكون مقبوالً للمستخدم وعامة الناس‬:‫المتطلبات األخالقية‬
 Legislative requirements: Ensure the system operates within the law.
‫ التأكد من عمل النظام ضمن القانون‬:‫المتطلبات التشريعية‬

Department of Computer Science


College of9 Science
‫الفرق بين‬
• Software Requirements ‫متطلبات البرمجيات‬

• Requirement Engineering ‫هندسة المتطلبات‬

10
Requirement Engineering
• The systematic process of documenting requirements through an interactive
cooperative process of analyzing a problem is called ‘Requirement Engineering’.
."‫العملية المنهجية لتوثيق المتطلبات من خالل عملية تعاونية تفاعلية لتحليل المشكلة تسمى "هندسة المتطلبات‬
• The requirements engineer must always try to gather complete, precise, and
detailed specifications of system requirements .
.‫يجب أن يسعى مهندس المتطلبات دائ ًما إلى جمع المواصفات الكاملة والدقيقة والمفصلة لمتطلبات النظام‬
• Requirements Engineering: is a sub-discipline of software engineering that is
concerned with determining the goals, functions, and constraints of software
systems.

.‫ هو تخصص فرعي من هندسة البرمجيات يهتم بتحديد أهداف ووظائف وقيود أنظمة البرمجيات‬:‫هندسة المتطلبات‬

Department of Computer Science


College 11
of Science
Requirement Engineering
• The Requirement Engineering Process consists of five main activities

1. Feasibility study, ،‫دراسة الجدوى‬

2. Requirements Elicitation,‫ استنباط المتطلبات‬،

3. Requirements Specification, ،‫مواصفات المتطلبات‬

4. Requirements Validation‫التحقق من صحة المتطلبات‬

5. Requirements Document (Software Requirements Specification, SRS)

) ‫وثيقة المتطلبات (مواصفات متطلبات البرمجيات‬ Department of Computer Science


College 12
of Science
Requirement Engineering ‫هندسة المتطلبات‬
Feasibility Study
Requirements
Elicitation Requirements
Specification Requirements
Feasibility Report Validation
System
User & System
Models Requirements
Requirements
Document

Department of Computer Science


College 13
of Science
1) Feasibility study
• First stage is examine the feasibility of the project, that the proposed project
will be useful to the organization or not. ‫ وهل سيكون المشروع المقترح مفيدًا للمنظمة أم‬،‫فحص جدوى المشروع‬
‫ال‬

• Following are the main feasibility tests: ‫اختبارات الجدوى الرئيسية‬


1. Operational Feasibility.‫الجدوى التشغيلية‬
2. Technical Feasibility..‫الجدوى الفنية‬
3. Economic Feasibility..‫الجدوى االقتصادية‬
• The output of this phase should be a feasibility study report that should contain
adequate comments and recommendations for management about whether or
not the project should be undertaken.
‫يجب أن يكون مخرج هذه المرحلة عبارة عن تقرير دراسة جدوى يجب أن يحتوي على تعليقات وتوصيات كافية لإلدارة حول ما إذا كان ينبغي تنفيذ‬
.‫ال‬of‫أم‬Computer
Department ‫ المشروع‬Science
College 14
of Science
2) Requirements Elicitation

• If the feasibility report is positive towards undertaking the project, next phase starts

with gathering requirements from the user. Analysts and engineers communicate with

the client and end-users to know their ideas on what the software should provide and

which features they want the software to include. The goal of the requirements phase

is to elicit (extract) the requirements from the user. ‫الحصول على(استنباط او استخالص) المتطلبات من المستخدم‬
• This is usually achieved by the development of diagrams then user reviews the
diagrams to determine if the software developer has understood the requirements.
‫ذلك عادةً من‬
.‫خالل تطوير الرسوم البيانية ثم يقوم المستخدم بمراجعة الرسوم البيانية لتحديد ما إذا كان مطور البرنامج قد فهم المتطلبات‬Department of ‫تحقيق‬ ‫ يتم‬Science
Computer
College 15
of Science
2) Requirements Elicitation

• A process activities of the elicitation and analysis process are:


1. Requirements discovery: This is the process of interacting with the user in the
system to collect their requirements. This requirement discovery involve the
Interviewing, Scenarios, Questionnaires or prototyping to collect the
requirement from the users.
‫ يتضمن اكتشاف المتطلبات إجراء المقابالت أو السيناريوهات أو االستبيانات أو‬.‫ هي عملية التفاعل مع المستخدم في النظام لجمع متطلباته‬:‫اكتشاف المتطلبات‬
.‫النماذج األولية لجمع المتطلبات من المستخدمين‬

2. Requirements classification and organization: This activity takes the


unstructured collection of requirements, groups related requirements and organizes
them into rational clusters.
.‫ ويجمع المتطلبات ذات الصلة وينظمها في مجموعات متماسكة‬،‫ يأخذ هذا النشاط المجموعة غير المنظمة من المتطلبات‬:‫تصنيف المتطلبات وتنظيمها‬

Department of Computer Science


College 16
of Science
2) Requirements Elicitation
3. Requirements prioritization and negotiation: where multiple users are
involved, requirements will conflict. This activity is concerned with
prioritizing requirements, and finding and resolving requirements conflicts
through negotiation.
،‫ يهتم هذا النشاط بتحديد أولويات المتطلبات‬.‫ سوف تتعارض المتطلبات‬،‫ عندما يشارك عدة مستخدمين‬:‫تحديد أولويات المتطلبات والتفاوض عليها حت ًما‬
.‫وإيجاد وحل تعارض المتطلبات من خالل التفاوض‬

4. Requirements documentation: The requirements are documented.


Formal or informal requirements documents may produced.
.‫ قد يتم إنتاج وثائق المتطلبات الرسمية أو غير الرسمية‬.‫ تم توثيق المتطلبات‬:‫توثيق المتطلبات‬

Department of Computer Science


College 17
of Science
Sometimes
Conflicting
users not
requiremen
clear about
ts.
their needs.
Identifying Undefined
the critical boundaries
requiremen of the
ts. system.

Understand Eliciting
Meeting
ing large and
time and
and understandi
budget
complex ng user
constraints
system requirement
of the
requiremen s is difficult
customer.
ts. because:

Department of Computer Science


College 18
of Science
3) Requirements Specification
• The requirements received from client are written in natural language. It is the
responsibility of system analyst to document the requirements in technical
language so that they can be understood and useful by the software development
team.
• The ‘Requirement Specification’ activity is required to produce formal software
requirements models. .‫نماذج متطلبات البرمجيات الرسمية‬

Department of Computer Science


College 19
of Science
Requirements Validation
• This activity is usually defined as a process to ensure the constancy of

requirements model with respect to user’s needs. The validation is done for the

final model as well as for the intermediate models.


• Following steps should be followed while validating requirements
1. Ensure that the requirements are not conflicting‫ متضاربة‬with other
requirements.
2. Ensure that the requirements are complete in all respect.
3. Ensure that requirements are realistic..‫التأكد من أن المتطلبات واقعية‬
Department of Computer Science
College 20
of Science
Requirements Validation
• If the requirements are not validated properly, resultant errors in the requirements
definition needs a lot of rework and modifications. Some of the effective ways to
validate requirements are :
1. Reviews: end users and developers both study and consider the requirements.
2. Prototyping: an executable model of the product with minimal set of
requirements is built and is displayed to the customers. Customers use the
prototype to ensure that it meets their needs.
3. Test cases generation: From this, it is made sure that it is possible to design
test cases for each and every requirement documented otherwise there is a
need to reconsider the requirement.

Department of Computer Science


College 21
of Science
Requirements Document
• Software Requirement Analysis (SRA) ends with a document called ‘Software
Requirement Specification (SRS) which describes the complete external behavior
of the proposed software.
• SRS is a document created by system analyst after the requirements are collected
from various stakeholders.
• SRS defines how the intended software will interact with hardware, external
interfaces, speed of operation, response time of system, portability of software
across various platforms, maintainability, speed of recovery after crashing, Security,
Quality, Limitations etc.
Department of Computer Science
College 22
of Science
Requirements Document
• Advantages of ‘Software Requirement Specification (SRS)
1. SRS establishes the basis for agreement between the client and the supplier on
‘what the software product will do’.
2. SRS provides a reference for validation of the final product. The SRS helps to the
client to determine whether the software meets the requirements or not.
3. If we want a high quality final software that has few errors, we must begin with a
high quality SRS.
4. A high quality SRS reduces the development cost.

Department of Computer Science


College 23
of Science
SRS
• The basic issues that the SRS shall address are the following:
1. Functionality: What is the software supposed to do?
2. External interface: How dose the software interact with people, the
system's hardware, other hardware, and other software?
3. Performance. What is the speed, availability, response time, recovery time
of various software function.
4. Attributes: What are the portability, correctness, maintainability, security,
etc. considerations?
5. design constraints imposed on an implementation: Are there
Department ant24 Science
of Computer
College of Science
SRS
• Remember that there is no “Perfect SRS”. However, SRS should be:
1. Correct: each requirement represents something required by the target
system.
2. Unambiguous: every requirement in SRS has only one interpretation
3. Complete: everything the target system should do is included in SRS.
4. Verifiable: there exists some finite process with which a person/machine
can check that the actual as-built software product meets the requirements.
5. Consistent in behavior and terms.

Department of Computer Science


College 25
of Science
SRS
6. Understandable by customers.
7. Modifiable: changes can be made easily, completely and consistently.
8. Design independent: doesn't imply specific software architecture or algorithm.
9. Concise: ‫ مختصرا‬shorter is better.
10. Organized: requirements in SRS are easy to locate; related requirements are
together.
11. Traceable: each requirement is able to be referenced for later use (by the using
paragraph numbers, one requirement in each paragraph, or by using convention
for indication requirements)
Department of Computer Science
‫ أو باستخدام التقليد لمتطلبات اإلشارة‬،‫ أو متطلب واحد في كل فقرة‬،‫إلى كل متطلب الستخدامه الحقًا ( باستخدام أرقام الفقرات‬ ‫ يمكن الرجوع‬:‫تتبعه‬ ‫يمكن‬
College of Science
26
The End

Department of Computer Science


College 27
of Science

You might also like