SlideShare a Scribd company logo
1 of 13
Download to read offline
Software Engineering UNIMAK
1
Unit-2
2.0 Software Requirements
The requirements for software are the descriptions of what the software should do, the services
that it provides and the constraints on its operation. These requirements reflect the needs of
customers for software that serves a certain purpose such as controlling a device, placing an
order, or finding information. The process of finding out, analyzing, documenting and checking
these services and constraints is called requirements engineering (RE), or software requirements
are description of features and functionalities of the target system. Requirements convey the
expectations of users from the software product. The requirements can be clear or hidden, known
or unknown, expected or unexpected from client’s point of view.
The term ‘requirement’ is not used consistently in the software industry. In some cases, a
requirement is simply a high-level, abstract statement of a service that a system should provide
or a constraint on a system. At the other extreme, it is a detailed, formal definition of a system
function. Davis (1993) explains why these differences exist:
If a company wishes to let a contract for a large software development project, it must define its
needs in a sufficiently abstract way that a solution is not predefined. The requirements must be
written so that several contractors can bid for the contract, offering, perhaps, different ways of
meeting the client organization’s needs. Once a contract has been awarded, the contractor must
write a system definition for the client in more detail so that the client understands and can
validate what the software will do. Both of these documents may be called the requirements
document for the system.
Some of the problems that arise during the requirements process are a result of failing to make a
clear separation between these different levels of description. Davis distinguish between them by
using the term ‘user requirements’ to mean the high-level abstract requirements and ‘system
requirements’ to mean the detailed description of what the system should do.
Software Engineering UNIMAK
2
1. User Requirement
User requirements are statements, in a natural language plus diagrams, of what services the
system is expected to provide to system users and the constraints under which it must operate.
2. System Requirement
System requirements are more detailed descriptions of the software system’s functions, services,
and operational constraints. The system requirements document (sometimes called a functional
specification) should define exactly what is to be implemented. It may be part of the contract
between the system buyer and the software developers.
Different levels of requirements are useful because they communicate information about the
system to different types of reader. The figure below illustrates the distinction between user and
system requirements.
Example: This example is from a mental health care patient management system (MHC-PMS)
show how a user requirement may be expanded into several system requirements. You can see
from the figure that the user requirement is quite general. The system requirements provide more
specific information about the services and functions of the system that is to be implemented.
User Requirement Definition
System Requirements Specification
1. The MHC-PMS shall generate monthly management reports showing the cost of
drugs prescribed by each clinic during that month.
the cost of drugs prescribed by each clinic during that month.
1. On the last working day of each month, a summary of the drugs prescribed, their
cost, and the prescribing clinics shall be generated.
2. The system shall automatically generate the report for printing after 17.30 on the last
working day of the month.
3. A report shall be created for each clinic and shall list the individual drug names, the
total number of prescriptions, the number of doses prescribed, and the total cost of
the prescribed drugs.
4. If drugs are available in different dose units (e.g., 10 mg, 20 mg) separate reports shall
be created for each dose unit.
5. Access to all cost reports shall be restricted to authorized users listed on a
management access control list.
Software Engineering UNIMAK
3
2.0 Functional and non-functional Requirement
Software system requirements are often classified as functional requirements or non-functional
requirements.
2.1 Functional Requirement
The functional requirements for a system describe what the system should do. These
requirements depend on the type of software being developed, the expected users of the software,
and the general approach taken by the organization when writing requirements. When expressed
as user requirements, functional requirements are usually described in an abstract way that can
be understood by system users. However, more specific functional system requirements describe
the system functions, its inputs and outputs, exceptions, etc., in detail.
Functional system requirements vary from general requirements covering what the system
should do to very specific requirements reflecting local ways of working or an organization’s
existing systems. Here are examples of functional requirements.
Example-1
 Search option given to user to search from various invoices.
 User should be able to mail any report to management.
 Users can be divided into groups and groups can be given separate rights.
 Should compile business rules and administrative functions.
Example-2
Requirements for the MHC-PMS system, used to maintain information about patients receiving
treatment for mental health problems:
1. A user shall be able to search the appointments lists for all clinics.
2. The system shall generate each day, for each clinic, a list of patients who are expected to
attend appointments that day.
3. Each staff member using the system shall be uniquely identified by his or her employee
number.
Software Engineering UNIMAK
4
These functional user requirements define specific facilities to be provided by the system. These
have been taken from the user requirements document.
2.2 Non-functional Requirement
Non-functional requirements, as the name suggests, are requirements that are not directly
concerned with the specific services delivered by the system to its users. They may relate to
growing system properties such as reliability, response time, and store tenancy. Alternatively,
they may define constraints on the system implementation such as the capabilities of I/O devices
or the data representations used in interfaces with other systems.
Non-functional requirements, such as performance, security, or availability, usually specify or
constrain characteristics of the system as a whole. Non-functional requirements are often more
critical than individual functional requirements. System users can usually find ways to work
around a system function that doesn’t really meet their needs.
However, failing to meet a non-functional requirement can mean that the whole system is
unusable. For example, if an aircraft system does not meet its reliability requirements, it will not
be certified as safe for operation; if an embedded control system fails to meet its performance
requirements, the control functions will not operate correctly.
Although it is often possible to identify which system components implement specific functional
requirements (e.g., there may be formatting components that implement reporting requirements),
it is often more difficult to relate components to non-functional requirements. The
implementation of these requirements may be diffused throughout the system. There are two
reasons for this:
1. Non-functional requirements may affect the overall architecture of a system rather than
the individual components. For example, to ensure that performance requirements are
met, you may have to organize the system to minimize communications between
components.
2. A single non-functional requirement, such as a security requirement, may generate a
number of related functional requirements that define new system services that are
Software Engineering UNIMAK
5
required. In addition, it may also generate requirements that restrict existing
requirements.
Examples
 Security
 Logging
 Storage
 Configuration
 Performance
 Cost
 Interoperability
 Flexibility
 Disaster recovery
 Accessibility
Non-functional requirements arise through user needs, because of budget constraints,
organizational policies, the need for interoperability with other software or hardware systems, or
external factors such as safety regulations or privacy legislation.
2.2 Requirement Engineering Process
The process to gather the software requirements from client, analyze, and document them is
known as requirement engineering. The goal of requirement engineering is to develop and
maintain sophisticated and descriptive ‘System Requirements Specification’ document.
It is a four step process, which includes
1. Feasibility Study
2. Requirement Gathering
3. Software Requirement Specification
4. Software Requirement Validation
Software Engineering UNIMAK
6
1. Feasibility study
When the client approaches the organization for getting the desired product developed, it comes
up with a rough idea about what all functions the software must perform and which all features
are expected from the software.
Referencing to this information, the analysts do a detailed study about whether the desired
system and its functionality are feasible to develop. This feasibility study is focused towards goal
of the organization. This study analyzes whether the software product can be practically
materialized in terms of implementation, contribution of project to organization, cost constraints,
and as per values and objectives of the organization. It explores technical aspects of the project
and product such as usability, maintainability, productivity, and integration ability.
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.
2. Requirement Gathering
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.
3. Software Requirement Specification (SRS)
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.
The requirements received from client are written in natural language. It is the responsibility of
the system analyst to document the requirements in technical language so that they can be
comprehended and used by the software development team.
Software Engineering UNIMAK
7
SRS should come up with the following features:
 User Requirements are expressed in natural language.
 Technical requirements are expressed in structured language, which is used inside the
organization.
 Design description should be written in Pseudo code.
 Format of Forms and GUI screen prints.
 Conditional and mathematical notations for DFDs etc.
4. Software Requirement Validation
After requirement specifications are developed, the requirements mentioned in this document are
validated. User might ask for illegal, impractical solution or experts may interpret the
requirements inaccurately. This results in huge increase in cost if not compressed in the budget.
Requirements can be checked against the following conditions:
 If they can be practically implemented
 If they are valid and as per functionality and domain of software
 If there are any ambiguities
 If they are complete
 If they can be demonstrated
2.3 Requirement Elicitation and Management
This is the process of deriving the system requirements through observation of existing systems,
discussions with potential users and procurers, task analysis, and so on. This may involve the
development of one or more system models and prototypes. These help you understand the
system to be specified.
Requirement elicitation process can be depicted using the following diagram
Software Engineering UNIMAK
8
 Requirements gathering - The developers discuss with the client and end users and
know their expectations from the software.
 Organizing Requirements - The developers prioritize and arrange the requirements in
order of importance, urgency and convenience.
 Negotiation & discussion - If requirements are ambiguous or there are some conflicts in
requirements of various stakeholders, it is then negotiated and discussed with the
stakeholders. Requirements may then be prioritized and reasonably compromised. The
requirements come from various stakeholders. To remove the ambiguity and conflicts,
they are discussed for clarity and correctness. Unrealistic requirements are negotiated
reasonably.
 Documentation - All formal and informal, functional and non-functional requirements
are documented and made available for next phase processing.
2.3.1 Requirement Elicitation Techniques
There are various ways to discover requirements. Some of them are listed below
 Interviews
 Surveys
 Questionnaires
 Task analysis
 Domain Analysis
 Brainstorming
 Prototyping
 Observation
2.4 Software Prototyping
A prototype is an initial version of a software system that is used to demonstrate concepts, try out
design options, and find out more about the problem and its possible solutions. Rapid, iterative
development of the prototype is essential so that costs are controlled and system stakeholders can
experiment with the prototype early in the software process.
Software Engineering UNIMAK
9
A software prototype can be used in a software development process to help anticipate changes
that may be required:
1. In the requirements engineering process, a prototype can help with the elicitation and
validation of system requirements.
2. In the system design process, a prototype can be used to explore particular software
solutions and to support user interface design.
Software prototypes allow users to see how well the software supports their work. They may get
new ideas for requirements, and find areas of strength and weakness in the software. They may
then propose new system requirements. Furthermore, as the prototype is developed, it may reveal
errors and omissions in the requirements that have been proposed.
A software prototype may be used while the software is being designed to carry out design
experiments to check the feasibility of a proposed design. For example, a database design may be
prototyped and tested to check that it supports efficient data access for the most common user
queries. Prototyping is also an essential part of the user interface design process. Because of the
dynamic nature of user interfaces, textual descriptions and diagrams are not good enough for
expressing the user interface requirements. Therefore, rapid prototyping with end-user
involvement is the only sensible way to develop graphical user interfaces for software systems.
2.4.1 Prototyping in the software process------Presentation Assignment
2.4.2 Rapid Prototyping Techniques -----------Presentation Assignment
2.4.3 User Interface Prototyping
User Interface (UI) is an important part of any software or hardware or hybrid system. Software
is widely accepted if it is
 Easy to operate
 Quick in response
 Effectively handling operational errors
 Providing simple yet consistent user interface
Software Engineering UNIMAK
10
User acceptance majorly depends upon how user can use the software. UI is the only way for
users to perceive the system. A well performing software system must also be equipped with
attractive, clear, consistent, and responsive user interface. Otherwise the functionalities of
software system cannot be used in a convenient way. A system is said to be good if it provides
means to use it efficiently. User interface requirements are briefly mentioned below
 Content presentation
 Easy Navigation
 Simple interface
 Responsive
 Consistent UI elements
 Feedback mechanism
 Default settings
 Purposeful layout
 Strategical use of color and texture.
 Provide help information
 User centric approach
 Group based view settings.
2.5 Software document
The software requirements document (sometimes called the software requirements specification
or SRS) is an official statement of what the system developers should implement. It should
include both the user requirements for a system and a detailed specification of the system
requirements. Sometimes, the user and system requirements are integrated into a single
description. In other cases, the user requirements are defined in an introduction to the system
requirements specification. If there are a large number of requirements, the detailed system
requirements may be presented in a separate document.
Requirements documents are essential when an outside contractor is developing the software
system. However, agile development methods argue that requirements change so rapidly that a
requirements document is out of date as soon as it is written, so the effort is largely wasted.
Software Engineering UNIMAK
11
Rather than a formal document, approaches such as Extreme Programming (Beck, 1999) collect
user requirements incrementally and write these on cards as user stories. The user then prioritizes
requirements for implementation in the next increment of the system.
For business systems where requirements are unstable, I think that this approach is a good one.
However, I think that it is still useful to write a short supporting document that defines the
business and dependability requirements for the system; it is easy to forget the requirements that
apply to the system as a whole when focusing on the functional requirements for the next system
release.
The requirements document has a diverse set of users, ranging from the senior management of
the organization that is paying for the system to the engineers responsible for developing the
software. Figure below, shows outline of a software document.
Chapter Description
Preface This should define the expected readership of the document and describe
its version history, including a rationale for the creation of a new version
and a summary of the changes made in each version.
Introduction This should describe the need for the system. It should briefly describe
the system’s functions and explain how it will work with other systems.
It should also describe how the system fits into the overall business or
strategic objectives of the organization commissioning the software.
Glossary This should define the technical terms used in the document. You should
not make assumptions about the experience or expertise of the reader.
User requirements
definition
Here, you describe the services provided for the user. The non-functional
system requirements should also be described in this section. This
description may use natural language, diagrams, or other notations that
are understandable to customers. Product and process standards that must
be followed should be specified.
Software Engineering UNIMAK
12
System architecture This chapter should present a high-level overview of the anticipated
system architecture, showing the distribution of functions across system
modules. Architectural components that are reused should be highlighted.
System models This might include graphical system models showing the relationships
between the system components, the system, and its environment.
Examples of possible models are object models, data-flow models, or
semantic data models.
System evolution This should describe the fundamental assumptions on which the system
is based, and any anticipated changes due to hardware evolution,
changing user needs, and so on. This section is useful for system
designers as it may help them avoid design decisions that would
constrain likely future changes to the system.
Appendices These should provide detailed, specific information that is related to the
application being developed; for example, hardware and database
descriptions. Hardware requirements define the minimal and optimal
configurations for the system. Database requirements define the logical
organization of the data used by the system and the relationships between
data.
Index Several indexes to the document may be included. As well as a normal
alphabetic index, there may be an index of diagrams, an index of
functions, and so on.
Software Engineering UNIMAK
13
2.6 Software Analysis
Software analysis and design includes all activities, which help the transformation of
requirement specification into implementation. Requirement specifications specify all functional
and non-functional expectations from the software. These requirement specifications come in the
shape understandable documents, to which a computer has nothing to do.
Software analysis and design is the intermediate stage, which helps human readable requirements
to be transformed into actual code.
Let us see few analysis and design tools used by software designers
 Data Flow Diagram
 Structured English
 Pseudo-Code
 Decision Tables
 Entity-Relationship Model
 Data Dictionary
 Hierarchical Input Process Output (HIPO) Diagram----Presentation Assignment
 Structure Charts---------Presentation Assignment
2.7 Software modeling------Presentation Assignment
2.7.1 Data model----------Presentation Assignment
2.7.2 Functional model----Presentation Assignment
2.7.3 Behavioral Model---Presentation Assignment
2.8 Structured Analysis—Reading Assignment

More Related Content

What's hot

SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTESSOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTESsuthi
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysisasimnawaz54
 
Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)Ian Sommerville
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRupesh Vaishnav
 
Ch07-Moving into Design
Ch07-Moving into DesignCh07-Moving into Design
Ch07-Moving into DesignFajar Baskoro
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineeringMohammed Romi
 
8 Characteristics of good user requirements
8 Characteristics of good user requirements8 Characteristics of good user requirements
8 Characteristics of good user requirementsguest24d72f
 
Requirement Engineering Challenges in Development of Software Applications an...
Requirement Engineering Challenges in Development of Software Applications an...Requirement Engineering Challenges in Development of Software Applications an...
Requirement Engineering Challenges in Development of Software Applications an...Waqas Tariq
 
Comparative Development Methodologies
Comparative Development MethodologiesComparative Development Methodologies
Comparative Development Methodologiesguestc990b6
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineeringRa'Fat Al-Msie'deen
 
Information Technology - Module 4: Software and Information Systems Building ...
Information Technology - Module 4: Software and Information Systems Building ...Information Technology - Module 4: Software and Information Systems Building ...
Information Technology - Module 4: Software and Information Systems Building ...El Bucho
 
Requirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharyaRequirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharyaSharbani Bhattacharya
 
Introduction to BEA
Introduction to BEAIntroduction to BEA
Introduction to BEAGem WeBlog
 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesRajalakshmiSermadurai
 

What's hot (20)

SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTESSOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
Requirement analysis
Requirement analysisRequirement analysis
Requirement analysis
 
Business analyst
Business analystBusiness analyst
Business analyst
 
Ch7
Ch7Ch7
Ch7
 
Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
Ch07-Moving into Design
Ch07-Moving into DesignCh07-Moving into Design
Ch07-Moving into Design
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineering
 
8 Characteristics of good user requirements
8 Characteristics of good user requirements8 Characteristics of good user requirements
8 Characteristics of good user requirements
 
Requirement Engineering Challenges in Development of Software Applications an...
Requirement Engineering Challenges in Development of Software Applications an...Requirement Engineering Challenges in Development of Software Applications an...
Requirement Engineering Challenges in Development of Software Applications an...
 
Chap4 RE validation
Chap4 RE validationChap4 RE validation
Chap4 RE validation
 
Comparative Development Methodologies
Comparative Development MethodologiesComparative Development Methodologies
Comparative Development Methodologies
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineering
 
Information Technology - Module 4: Software and Information Systems Building ...
Information Technology - Module 4: Software and Information Systems Building ...Information Technology - Module 4: Software and Information Systems Building ...
Information Technology - Module 4: Software and Information Systems Building ...
 
Requirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharyaRequirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharya
 
Sda 2
Sda   2Sda   2
Sda 2
 
Introduction to BEA
Introduction to BEAIntroduction to BEA
Introduction to BEA
 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniques
 
Reqdet
ReqdetReqdet
Reqdet
 

Similar to Software Requirements Specification Guide

Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements EngineeringEhsan Elahi
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements EngineeringHuda Alameen
 
Software Requrement
Software RequrementSoftware Requrement
Software RequrementSeif Shaame
 
Lecture 03
Lecture 03Lecture 03
Lecture 03Rana Ali
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineeringJennifer Polack
 
Requirement Engineering.pdf
Requirement Engineering.pdfRequirement Engineering.pdf
Requirement Engineering.pdfMuhammad Imran
 
Ch 2 types of reqirement
Ch 2  types of reqirementCh 2  types of reqirement
Ch 2 types of reqirementFish Abe
 
SEPM_MODULE 3.1 Req Eng.pptx
SEPM_MODULE 3.1 Req Eng.pptxSEPM_MODULE 3.1 Req Eng.pptx
SEPM_MODULE 3.1 Req Eng.pptxmokshithaM1
 
INTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationsINTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationskylan2
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
 
Hospital Management System Project
Hospital Management System ProjectHospital Management System Project
Hospital Management System ProjectSanjit Yadav
 
SE - Software Requirements
SE - Software RequirementsSE - Software Requirements
SE - Software RequirementsJomel Penalba
 
86One of the fi rst activities of an analyst is to determi.docx
86One of the fi rst activities of an analyst is to determi.docx86One of the fi rst activities of an analyst is to determi.docx
86One of the fi rst activities of an analyst is to determi.docxransayo
 

Similar to Software Requirements Specification Guide (20)

Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Unit 2.ppt
Unit 2.pptUnit 2.ppt
Unit 2.ppt
 
Software engg unit 2
Software engg unit 2 Software engg unit 2
Software engg unit 2
 
Se lec 4
Se lec 4Se lec 4
Se lec 4
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Software Requrement
Software RequrementSoftware Requrement
Software Requrement
 
Lecture 03
Lecture 03Lecture 03
Lecture 03
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Requirement Engineering.pdf
Requirement Engineering.pdfRequirement Engineering.pdf
Requirement Engineering.pdf
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Ch 2 types of reqirement
Ch 2  types of reqirementCh 2  types of reqirement
Ch 2 types of reqirement
 
SEPM_MODULE 3.1 Req Eng.pptx
SEPM_MODULE 3.1 Req Eng.pptxSEPM_MODULE 3.1 Req Eng.pptx
SEPM_MODULE 3.1 Req Eng.pptx
 
INTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationsINTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specifications
 
Lecture 1.pdf
Lecture 1.pdfLecture 1.pdf
Lecture 1.pdf
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4
 
SE-Unit II.pdf
SE-Unit II.pdfSE-Unit II.pdf
SE-Unit II.pdf
 
Hospital Management System Project
Hospital Management System ProjectHospital Management System Project
Hospital Management System Project
 
SE - Software Requirements
SE - Software RequirementsSE - Software Requirements
SE - Software Requirements
 
Se lec-uosl-8
Se lec-uosl-8Se lec-uosl-8
Se lec-uosl-8
 
86One of the fi rst activities of an analyst is to determi.docx
86One of the fi rst activities of an analyst is to determi.docx86One of the fi rst activities of an analyst is to determi.docx
86One of the fi rst activities of an analyst is to determi.docx
 

Recently uploaded

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Recently uploaded (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

Software Requirements Specification Guide

  • 1. Software Engineering UNIMAK 1 Unit-2 2.0 Software Requirements The requirements for software are the descriptions of what the software should do, the services that it provides and the constraints on its operation. These requirements reflect the needs of customers for software that serves a certain purpose such as controlling a device, placing an order, or finding information. The process of finding out, analyzing, documenting and checking these services and constraints is called requirements engineering (RE), or software requirements are description of features and functionalities of the target system. Requirements convey the expectations of users from the software product. The requirements can be clear or hidden, known or unknown, expected or unexpected from client’s point of view. The term ‘requirement’ is not used consistently in the software industry. In some cases, a requirement is simply a high-level, abstract statement of a service that a system should provide or a constraint on a system. At the other extreme, it is a detailed, formal definition of a system function. Davis (1993) explains why these differences exist: If a company wishes to let a contract for a large software development project, it must define its needs in a sufficiently abstract way that a solution is not predefined. The requirements must be written so that several contractors can bid for the contract, offering, perhaps, different ways of meeting the client organization’s needs. Once a contract has been awarded, the contractor must write a system definition for the client in more detail so that the client understands and can validate what the software will do. Both of these documents may be called the requirements document for the system. Some of the problems that arise during the requirements process are a result of failing to make a clear separation between these different levels of description. Davis distinguish between them by using the term ‘user requirements’ to mean the high-level abstract requirements and ‘system requirements’ to mean the detailed description of what the system should do.
  • 2. Software Engineering UNIMAK 2 1. User Requirement User requirements are statements, in a natural language plus diagrams, of what services the system is expected to provide to system users and the constraints under which it must operate. 2. System Requirement System requirements are more detailed descriptions of the software system’s functions, services, and operational constraints. The system requirements document (sometimes called a functional specification) should define exactly what is to be implemented. It may be part of the contract between the system buyer and the software developers. Different levels of requirements are useful because they communicate information about the system to different types of reader. The figure below illustrates the distinction between user and system requirements. Example: This example is from a mental health care patient management system (MHC-PMS) show how a user requirement may be expanded into several system requirements. You can see from the figure that the user requirement is quite general. The system requirements provide more specific information about the services and functions of the system that is to be implemented. User Requirement Definition System Requirements Specification 1. The MHC-PMS shall generate monthly management reports showing the cost of drugs prescribed by each clinic during that month. the cost of drugs prescribed by each clinic during that month. 1. On the last working day of each month, a summary of the drugs prescribed, their cost, and the prescribing clinics shall be generated. 2. The system shall automatically generate the report for printing after 17.30 on the last working day of the month. 3. A report shall be created for each clinic and shall list the individual drug names, the total number of prescriptions, the number of doses prescribed, and the total cost of the prescribed drugs. 4. If drugs are available in different dose units (e.g., 10 mg, 20 mg) separate reports shall be created for each dose unit. 5. Access to all cost reports shall be restricted to authorized users listed on a management access control list.
  • 3. Software Engineering UNIMAK 3 2.0 Functional and non-functional Requirement Software system requirements are often classified as functional requirements or non-functional requirements. 2.1 Functional Requirement The functional requirements for a system describe what the system should do. These requirements depend on the type of software being developed, the expected users of the software, and the general approach taken by the organization when writing requirements. When expressed as user requirements, functional requirements are usually described in an abstract way that can be understood by system users. However, more specific functional system requirements describe the system functions, its inputs and outputs, exceptions, etc., in detail. Functional system requirements vary from general requirements covering what the system should do to very specific requirements reflecting local ways of working or an organization’s existing systems. Here are examples of functional requirements. Example-1  Search option given to user to search from various invoices.  User should be able to mail any report to management.  Users can be divided into groups and groups can be given separate rights.  Should compile business rules and administrative functions. Example-2 Requirements for the MHC-PMS system, used to maintain information about patients receiving treatment for mental health problems: 1. A user shall be able to search the appointments lists for all clinics. 2. The system shall generate each day, for each clinic, a list of patients who are expected to attend appointments that day. 3. Each staff member using the system shall be uniquely identified by his or her employee number.
  • 4. Software Engineering UNIMAK 4 These functional user requirements define specific facilities to be provided by the system. These have been taken from the user requirements document. 2.2 Non-functional Requirement Non-functional requirements, as the name suggests, are requirements that are not directly concerned with the specific services delivered by the system to its users. They may relate to growing system properties such as reliability, response time, and store tenancy. Alternatively, they may define constraints on the system implementation such as the capabilities of I/O devices or the data representations used in interfaces with other systems. Non-functional requirements, such as performance, security, or availability, usually specify or constrain characteristics of the system as a whole. Non-functional requirements are often more critical than individual functional requirements. System users can usually find ways to work around a system function that doesn’t really meet their needs. However, failing to meet a non-functional requirement can mean that the whole system is unusable. For example, if an aircraft system does not meet its reliability requirements, it will not be certified as safe for operation; if an embedded control system fails to meet its performance requirements, the control functions will not operate correctly. Although it is often possible to identify which system components implement specific functional requirements (e.g., there may be formatting components that implement reporting requirements), it is often more difficult to relate components to non-functional requirements. The implementation of these requirements may be diffused throughout the system. There are two reasons for this: 1. Non-functional requirements may affect the overall architecture of a system rather than the individual components. For example, to ensure that performance requirements are met, you may have to organize the system to minimize communications between components. 2. A single non-functional requirement, such as a security requirement, may generate a number of related functional requirements that define new system services that are
  • 5. Software Engineering UNIMAK 5 required. In addition, it may also generate requirements that restrict existing requirements. Examples  Security  Logging  Storage  Configuration  Performance  Cost  Interoperability  Flexibility  Disaster recovery  Accessibility Non-functional requirements arise through user needs, because of budget constraints, organizational policies, the need for interoperability with other software or hardware systems, or external factors such as safety regulations or privacy legislation. 2.2 Requirement Engineering Process The process to gather the software requirements from client, analyze, and document them is known as requirement engineering. The goal of requirement engineering is to develop and maintain sophisticated and descriptive ‘System Requirements Specification’ document. It is a four step process, which includes 1. Feasibility Study 2. Requirement Gathering 3. Software Requirement Specification 4. Software Requirement Validation
  • 6. Software Engineering UNIMAK 6 1. Feasibility study When the client approaches the organization for getting the desired product developed, it comes up with a rough idea about what all functions the software must perform and which all features are expected from the software. Referencing to this information, the analysts do a detailed study about whether the desired system and its functionality are feasible to develop. This feasibility study is focused towards goal of the organization. This study analyzes whether the software product can be practically materialized in terms of implementation, contribution of project to organization, cost constraints, and as per values and objectives of the organization. It explores technical aspects of the project and product such as usability, maintainability, productivity, and integration ability. 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. 2. Requirement Gathering 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. 3. Software Requirement Specification (SRS) 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. The requirements received from client are written in natural language. It is the responsibility of the system analyst to document the requirements in technical language so that they can be comprehended and used by the software development team.
  • 7. Software Engineering UNIMAK 7 SRS should come up with the following features:  User Requirements are expressed in natural language.  Technical requirements are expressed in structured language, which is used inside the organization.  Design description should be written in Pseudo code.  Format of Forms and GUI screen prints.  Conditional and mathematical notations for DFDs etc. 4. Software Requirement Validation After requirement specifications are developed, the requirements mentioned in this document are validated. User might ask for illegal, impractical solution or experts may interpret the requirements inaccurately. This results in huge increase in cost if not compressed in the budget. Requirements can be checked against the following conditions:  If they can be practically implemented  If they are valid and as per functionality and domain of software  If there are any ambiguities  If they are complete  If they can be demonstrated 2.3 Requirement Elicitation and Management This is the process of deriving the system requirements through observation of existing systems, discussions with potential users and procurers, task analysis, and so on. This may involve the development of one or more system models and prototypes. These help you understand the system to be specified. Requirement elicitation process can be depicted using the following diagram
  • 8. Software Engineering UNIMAK 8  Requirements gathering - The developers discuss with the client and end users and know their expectations from the software.  Organizing Requirements - The developers prioritize and arrange the requirements in order of importance, urgency and convenience.  Negotiation & discussion - If requirements are ambiguous or there are some conflicts in requirements of various stakeholders, it is then negotiated and discussed with the stakeholders. Requirements may then be prioritized and reasonably compromised. The requirements come from various stakeholders. To remove the ambiguity and conflicts, they are discussed for clarity and correctness. Unrealistic requirements are negotiated reasonably.  Documentation - All formal and informal, functional and non-functional requirements are documented and made available for next phase processing. 2.3.1 Requirement Elicitation Techniques There are various ways to discover requirements. Some of them are listed below  Interviews  Surveys  Questionnaires  Task analysis  Domain Analysis  Brainstorming  Prototyping  Observation 2.4 Software Prototyping A prototype is an initial version of a software system that is used to demonstrate concepts, try out design options, and find out more about the problem and its possible solutions. Rapid, iterative development of the prototype is essential so that costs are controlled and system stakeholders can experiment with the prototype early in the software process.
  • 9. Software Engineering UNIMAK 9 A software prototype can be used in a software development process to help anticipate changes that may be required: 1. In the requirements engineering process, a prototype can help with the elicitation and validation of system requirements. 2. In the system design process, a prototype can be used to explore particular software solutions and to support user interface design. Software prototypes allow users to see how well the software supports their work. They may get new ideas for requirements, and find areas of strength and weakness in the software. They may then propose new system requirements. Furthermore, as the prototype is developed, it may reveal errors and omissions in the requirements that have been proposed. A software prototype may be used while the software is being designed to carry out design experiments to check the feasibility of a proposed design. For example, a database design may be prototyped and tested to check that it supports efficient data access for the most common user queries. Prototyping is also an essential part of the user interface design process. Because of the dynamic nature of user interfaces, textual descriptions and diagrams are not good enough for expressing the user interface requirements. Therefore, rapid prototyping with end-user involvement is the only sensible way to develop graphical user interfaces for software systems. 2.4.1 Prototyping in the software process------Presentation Assignment 2.4.2 Rapid Prototyping Techniques -----------Presentation Assignment 2.4.3 User Interface Prototyping User Interface (UI) is an important part of any software or hardware or hybrid system. Software is widely accepted if it is  Easy to operate  Quick in response  Effectively handling operational errors  Providing simple yet consistent user interface
  • 10. Software Engineering UNIMAK 10 User acceptance majorly depends upon how user can use the software. UI is the only way for users to perceive the system. A well performing software system must also be equipped with attractive, clear, consistent, and responsive user interface. Otherwise the functionalities of software system cannot be used in a convenient way. A system is said to be good if it provides means to use it efficiently. User interface requirements are briefly mentioned below  Content presentation  Easy Navigation  Simple interface  Responsive  Consistent UI elements  Feedback mechanism  Default settings  Purposeful layout  Strategical use of color and texture.  Provide help information  User centric approach  Group based view settings. 2.5 Software document The software requirements document (sometimes called the software requirements specification or SRS) is an official statement of what the system developers should implement. It should include both the user requirements for a system and a detailed specification of the system requirements. Sometimes, the user and system requirements are integrated into a single description. In other cases, the user requirements are defined in an introduction to the system requirements specification. If there are a large number of requirements, the detailed system requirements may be presented in a separate document. Requirements documents are essential when an outside contractor is developing the software system. However, agile development methods argue that requirements change so rapidly that a requirements document is out of date as soon as it is written, so the effort is largely wasted.
  • 11. Software Engineering UNIMAK 11 Rather than a formal document, approaches such as Extreme Programming (Beck, 1999) collect user requirements incrementally and write these on cards as user stories. The user then prioritizes requirements for implementation in the next increment of the system. For business systems where requirements are unstable, I think that this approach is a good one. However, I think that it is still useful to write a short supporting document that defines the business and dependability requirements for the system; it is easy to forget the requirements that apply to the system as a whole when focusing on the functional requirements for the next system release. The requirements document has a diverse set of users, ranging from the senior management of the organization that is paying for the system to the engineers responsible for developing the software. Figure below, shows outline of a software document. Chapter Description Preface This should define the expected readership of the document and describe its version history, including a rationale for the creation of a new version and a summary of the changes made in each version. Introduction This should describe the need for the system. It should briefly describe the system’s functions and explain how it will work with other systems. It should also describe how the system fits into the overall business or strategic objectives of the organization commissioning the software. Glossary This should define the technical terms used in the document. You should not make assumptions about the experience or expertise of the reader. User requirements definition Here, you describe the services provided for the user. The non-functional system requirements should also be described in this section. This description may use natural language, diagrams, or other notations that are understandable to customers. Product and process standards that must be followed should be specified.
  • 12. Software Engineering UNIMAK 12 System architecture This chapter should present a high-level overview of the anticipated system architecture, showing the distribution of functions across system modules. Architectural components that are reused should be highlighted. System models This might include graphical system models showing the relationships between the system components, the system, and its environment. Examples of possible models are object models, data-flow models, or semantic data models. System evolution This should describe the fundamental assumptions on which the system is based, and any anticipated changes due to hardware evolution, changing user needs, and so on. This section is useful for system designers as it may help them avoid design decisions that would constrain likely future changes to the system. Appendices These should provide detailed, specific information that is related to the application being developed; for example, hardware and database descriptions. Hardware requirements define the minimal and optimal configurations for the system. Database requirements define the logical organization of the data used by the system and the relationships between data. Index Several indexes to the document may be included. As well as a normal alphabetic index, there may be an index of diagrams, an index of functions, and so on.
  • 13. Software Engineering UNIMAK 13 2.6 Software Analysis Software analysis and design includes all activities, which help the transformation of requirement specification into implementation. Requirement specifications specify all functional and non-functional expectations from the software. These requirement specifications come in the shape understandable documents, to which a computer has nothing to do. Software analysis and design is the intermediate stage, which helps human readable requirements to be transformed into actual code. Let us see few analysis and design tools used by software designers  Data Flow Diagram  Structured English  Pseudo-Code  Decision Tables  Entity-Relationship Model  Data Dictionary  Hierarchical Input Process Output (HIPO) Diagram----Presentation Assignment  Structure Charts---------Presentation Assignment 2.7 Software modeling------Presentation Assignment 2.7.1 Data model----------Presentation Assignment 2.7.2 Functional model----Presentation Assignment 2.7.3 Behavioral Model---Presentation Assignment 2.8 Structured Analysis—Reading Assignment