The document discusses software requirements and requirements engineering. It introduces concepts like user requirements, system requirements, functional requirements, and non-functional requirements. It explains how requirements can be organized in a requirements document and the different types of stakeholders who read requirements. The document also discusses challenges in writing requirements precisely and provides examples of requirements specification for a library system called LIBSYS.
This document provides an overview of a requirements specification (SRS) for a software engineering project. It defines what an SRS is, its purpose, types of requirements it should include, its typical structure, characteristics of a good SRS, and benefits of developing an SRS. The SRS is intended to clearly define the requirements for a software product to guide its design and development.
Architecture design in software engineeringPreeti Mishra
The document discusses software architectural design. It defines architecture as the structure of a system's components, their relationships, and properties. An architectural design model is transferable across different systems. The architecture enables analysis of design requirements and consideration of alternatives early in development. It represents the system in an intellectually graspable way. Common architectural styles structure systems and their components in different ways, such as data-centered, data flow, and call-and-return styles.
This document discusses functional and non-functional requirements. Functional requirements describe the behavior of a system and support user goals, while non-functional requirements describe how the system works and make it more usable. Functional requirements should include data descriptions, screen operations, workflows, and access controls. Non-functional requirements should cover usability, reliability, performance, and supportability. Non-functional requirements are further classified into categories like process, delivery, implementation, and external constraints.
This document discusses different process models used in software development. It describes the key phases and characteristics of several common process models including waterfall, prototyping, V-model, incremental, iterative, spiral and agile development models. The waterfall model involves sequential phases from requirements to maintenance without iteration. Prototyping allows for user feedback earlier. The V-model adds verification and validation phases. Incremental and iterative models divide the work into smaller chunks to allow for iteration and user feedback throughout development.
The document defines an SRS as the official statement of what system developers should implement, providing a complete description of the system behavior. An SRS precisely defines the software product and is used to understand requirements to design the software. It includes the purpose, product scope, features, interfaces, and other functional and non-functional requirements. The SRS benefits include establishing agreement between customers and suppliers, reducing development effort, and providing a baseline for validation.
This document discusses requirements modeling in software engineering. It covers creating various models during requirements analysis, including scenario-based models, data models, class-oriented models, flow-oriented models, and behavioral models. These models form the requirements model, which is the first technical representation of a system. The document provides examples of writing use cases and constructing a preliminary use case diagram for a home security system called SafeHome. It emphasizes that requirements modeling lays the foundation for software specification and design.
The systematic use of proven principles, techniques ,languages and tools for the cost-effective analysis ,documentation and on-going evolution of user needs and the external behavior of a system to satisfy those user needs.
Requirement Elicitation
Facilitated Application Specification Technique(FAST)
Quality Function Deployment
USE-CASES
The document discusses the software design process. It begins by explaining that software design is an iterative process that translates requirements into a blueprint for constructing the software. It then describes the main steps and outputs of the design process, which include transforming specifications into design models, reviewing designs for quality, and producing a design document. The document also covers key concepts in software design like abstraction, architecture, patterns, modularity, and information hiding.
This document provides an overview of a requirements specification (SRS) for a software engineering project. It defines what an SRS is, its purpose, types of requirements it should include, its typical structure, characteristics of a good SRS, and benefits of developing an SRS. The SRS is intended to clearly define the requirements for a software product to guide its design and development.
Architecture design in software engineeringPreeti Mishra
The document discusses software architectural design. It defines architecture as the structure of a system's components, their relationships, and properties. An architectural design model is transferable across different systems. The architecture enables analysis of design requirements and consideration of alternatives early in development. It represents the system in an intellectually graspable way. Common architectural styles structure systems and their components in different ways, such as data-centered, data flow, and call-and-return styles.
This document discusses functional and non-functional requirements. Functional requirements describe the behavior of a system and support user goals, while non-functional requirements describe how the system works and make it more usable. Functional requirements should include data descriptions, screen operations, workflows, and access controls. Non-functional requirements should cover usability, reliability, performance, and supportability. Non-functional requirements are further classified into categories like process, delivery, implementation, and external constraints.
This document discusses different process models used in software development. It describes the key phases and characteristics of several common process models including waterfall, prototyping, V-model, incremental, iterative, spiral and agile development models. The waterfall model involves sequential phases from requirements to maintenance without iteration. Prototyping allows for user feedback earlier. The V-model adds verification and validation phases. Incremental and iterative models divide the work into smaller chunks to allow for iteration and user feedback throughout development.
The document defines an SRS as the official statement of what system developers should implement, providing a complete description of the system behavior. An SRS precisely defines the software product and is used to understand requirements to design the software. It includes the purpose, product scope, features, interfaces, and other functional and non-functional requirements. The SRS benefits include establishing agreement between customers and suppliers, reducing development effort, and providing a baseline for validation.
This document discusses requirements modeling in software engineering. It covers creating various models during requirements analysis, including scenario-based models, data models, class-oriented models, flow-oriented models, and behavioral models. These models form the requirements model, which is the first technical representation of a system. The document provides examples of writing use cases and constructing a preliminary use case diagram for a home security system called SafeHome. It emphasizes that requirements modeling lays the foundation for software specification and design.
The systematic use of proven principles, techniques ,languages and tools for the cost-effective analysis ,documentation and on-going evolution of user needs and the external behavior of a system to satisfy those user needs.
Requirement Elicitation
Facilitated Application Specification Technique(FAST)
Quality Function Deployment
USE-CASES
The document discusses the software design process. It begins by explaining that software design is an iterative process that translates requirements into a blueprint for constructing the software. It then describes the main steps and outputs of the design process, which include transforming specifications into design models, reviewing designs for quality, and producing a design document. The document also covers key concepts in software design like abstraction, architecture, patterns, modularity, and information hiding.
Formal Specification in Software Engineering SE9koolkampus
This document discusses formal specification techniques for software. It describes algebraic techniques for specifying interfaces as abstract data types and model-based techniques for specifying system behavior. Algebraic specifications define operations and their relationships, while model-based specifications represent the system state using mathematical constructs like sets and sequences. Formal specification finds errors earlier and reduces rework, though it requires more upfront effort. The document also provides an example of formally specifying an air traffic control system and insulin pump.
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)IrtazaAfzal3
A prescriptive process model is a model that describes "how to do" according to a certain software process system. ... Prescriptive models are used as guidelines or frameworks to organize and structure how software development activities should be performed, and in what order.
The document discusses organization and team structures for software development organizations. It explains the differences between functional and project formats. The functional format divides teams by development phase (e.g. requirements, design), while the project format assigns teams to a single project. The document notes advantages of the functional format include specialization, documentation, and handling staff turnover. However, it is not suitable for small organizations with few projects. The document also describes common team structures like chief programmer, democratic, and mixed control models.
The document discusses the waterfall model of software development. It describes the five phases of the waterfall model as requirements gathering and analysis, design, coding, testing, and maintenance. It provides details on the activities in each phase, including documenting requirements, designing logical modules, writing code, testing software, and maintaining the system. The waterfall model is advantageous for small projects but inflexible if requirements change, as it is a sequential process where each phase must be completed before the next.
This document discusses several software design techniques: stepwise refinement, levels of abstraction, structured design, integrated top-down development, and Jackson structured programming. Stepwise refinement is a top-down technique that decomposes a system into more elementary levels. Levels of abstraction designs systems as layers with each level performing services for the next higher level. Structured design converts data flow diagrams into structure charts using design heuristics. Integrated top-down development integrates design, implementation, and testing with a hierarchical structure. Jackson structured programming maps a problem's input/output structures and operations into a program structure to solve the problem.
This document discusses function-oriented software design. It explains that function-oriented design represents a system as a set of functions that transform inputs to outputs. The chapter objectives are to explain function-oriented design, introduce design notations, illustrate the design process with an example, and compare sequential, concurrent and object-oriented design strategies. Topics covered include data-flow design, structural decomposition, detailed design, and a comparison of design strategies.
This document provides an overview of software maintenance. It discusses that software maintenance is an important phase of the software life cycle that accounts for 40-70% of total costs. Maintenance includes error correction, enhancements, deletions of obsolete capabilities, and optimizations. The document categorizes maintenance into corrective, adaptive, perfective and preventive types. It also discusses the need for maintenance to adapt to changing user requirements and environments. The document describes approaches to software maintenance including program understanding, generating maintenance proposals, accounting for ripple effects, and modified program testing. It discusses challenges like lack of documentation and high staff turnover. The document also introduces concepts of reengineering and reverse engineering to make legacy systems more maintainable.
The document discusses the spiral model of software development. The spiral model is an iterative approach that combines prototyping and aspects of the waterfall model. It was defined by Barry Boehm in 1988 as a way to address risks through iterative evaluation and improvement of prototypes. The spiral model is best for medium to high risk projects where requirements are complex or expected to change. It involves evaluating prototypes, defining new prototypes based on learnings, and repeating this process until the final product is delivered.
The document discusses key aspects of developing a software requirements specification (SRS) document. It notes that the SRS serves as a contract between developers and customers, detailing functional and non-functional requirements without specifying solutions. An effective SRS is unambiguous, complete, verifiable, consistent, modifiable, traceable and usable for subsequent development and maintenance phases. The document provides examples of both good and bad SRS qualities.
The document discusses software requirements and specifications. It explains that requirements engineering is the process of establishing customer requirements for a system. Requirements can range from high-level abstract statements to detailed functional specifications. Both types of statements may be called requirements. The document also discusses different types of requirements like user requirements, system requirements, functional requirements, and non-functional requirements. It provides examples and explanations of each. The structure and intended users of a requirements document are also covered.
The document discusses important concepts for effective software project management including focusing on people, product, process, and project. It emphasizes that defining project scope and establishing clear objectives at the beginning of a project are critical first steps. Finally, it outlines factors for selecting an appropriate software development process model and adapting it to the specific project.
Testing is the process of identifying bugs and ensuring software meets requirements. It involves executing programs under different conditions to check specification, functionality, and performance. The objectives of testing are to uncover errors, demonstrate requirements are met, and validate quality with minimal cost. Testing follows a life cycle including planning, design, execution, and reporting. Different methodologies like black box and white box testing are used at various levels from unit to system. The overall goal is to perform effective testing to deliver high quality software.
The document discusses various aspects of software project management including project planning activities like estimation, scheduling, staffing, and risk handling. It describes different project organization structures like functional organization and project organization. It also discusses different team structures like chief programmer teams, democratic teams, and mixed teams. The document emphasizes the importance of careful project planning and producing a software project management plan document. It also discusses considerations for staffing a project team and attributes of a good software engineer.
Software Requirements in Software Engineering SE5koolkampus
The document introduces software requirements and describes how they are used to define what a system should do. It explains that requirements can be functional or non-functional, and discusses how requirements are organized in documents. Requirements describe the services and constraints for the system from the perspectives of users and developers.
The document discusses requirements analysis and specification in software engineering. It defines what requirements are and explains the typical activities involved - requirements gathering, analysis, and specification. The importance of documenting requirements in a Software Requirements Specification (SRS) document is explained. Key sections of an SRS like stakeholders, types of requirements (functional and non-functional), and examples are covered. Special attention is given to requirements for critical systems and importance of non-functional requirements.
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
Full clear download( no error formatting) at: https://goo.gl/XmRyGP
software engineering a practitioner's approach 8th edition pdf free download
software engineering a practitioner's approach 8th edition ppt
software engineering a practitioner's approach 6th edition pdf
software engineering pressman 9th edition pdf
software engineering a practitioner's approach 9th edition
software engineering a practitioner's approach 9th edition pdf
software engineering a practitioner's approach 7th edition solution manual pdf
roger s. pressman
The document discusses different software engineering process models including:
1. The waterfall model which is a linear sequential model where each phase must be completed before moving to the next.
2. Prototyping models which allow requirements to be refined through building prototypes.
3. RAD (Rapid Application Development) which emphasizes short development cycles through reuse and code generation.
4. Incremental models which deliver functionality in increments with early increments focusing on high priority requirements.
5. The spiral model which has multiple iterations of planning, risk analysis, engineering and evaluation phases.
The document discusses use case diagrams in object oriented design and analysis. It defines use cases as descriptions of system functionality from a user perspective. Use case diagrams depict system behavior, users, and relationships between actors, use cases, and other use cases. The key components of use case diagrams are described as actors, use cases, the system boundary, and relationships. Common relationships include association, extend, generalization, uses, and include. An example use case diagram for a cellular telephone is provided to illustrate these concepts.
This document discusses software requirements and how to document them. It covers the concepts of functional and non-functional requirements, user requirements versus system requirements, and how requirements can be organized in a requirements document. Different ways of specifying requirements are described, including natural language, structured language, tables, and graphical models. The document also discusses issues like ambiguity, completeness, and consistency in requirements.
Formal Specification in Software Engineering SE9koolkampus
This document discusses formal specification techniques for software. It describes algebraic techniques for specifying interfaces as abstract data types and model-based techniques for specifying system behavior. Algebraic specifications define operations and their relationships, while model-based specifications represent the system state using mathematical constructs like sets and sequences. Formal specification finds errors earlier and reduces rework, though it requires more upfront effort. The document also provides an example of formally specifying an air traffic control system and insulin pump.
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)IrtazaAfzal3
A prescriptive process model is a model that describes "how to do" according to a certain software process system. ... Prescriptive models are used as guidelines or frameworks to organize and structure how software development activities should be performed, and in what order.
The document discusses organization and team structures for software development organizations. It explains the differences between functional and project formats. The functional format divides teams by development phase (e.g. requirements, design), while the project format assigns teams to a single project. The document notes advantages of the functional format include specialization, documentation, and handling staff turnover. However, it is not suitable for small organizations with few projects. The document also describes common team structures like chief programmer, democratic, and mixed control models.
The document discusses the waterfall model of software development. It describes the five phases of the waterfall model as requirements gathering and analysis, design, coding, testing, and maintenance. It provides details on the activities in each phase, including documenting requirements, designing logical modules, writing code, testing software, and maintaining the system. The waterfall model is advantageous for small projects but inflexible if requirements change, as it is a sequential process where each phase must be completed before the next.
This document discusses several software design techniques: stepwise refinement, levels of abstraction, structured design, integrated top-down development, and Jackson structured programming. Stepwise refinement is a top-down technique that decomposes a system into more elementary levels. Levels of abstraction designs systems as layers with each level performing services for the next higher level. Structured design converts data flow diagrams into structure charts using design heuristics. Integrated top-down development integrates design, implementation, and testing with a hierarchical structure. Jackson structured programming maps a problem's input/output structures and operations into a program structure to solve the problem.
This document discusses function-oriented software design. It explains that function-oriented design represents a system as a set of functions that transform inputs to outputs. The chapter objectives are to explain function-oriented design, introduce design notations, illustrate the design process with an example, and compare sequential, concurrent and object-oriented design strategies. Topics covered include data-flow design, structural decomposition, detailed design, and a comparison of design strategies.
This document provides an overview of software maintenance. It discusses that software maintenance is an important phase of the software life cycle that accounts for 40-70% of total costs. Maintenance includes error correction, enhancements, deletions of obsolete capabilities, and optimizations. The document categorizes maintenance into corrective, adaptive, perfective and preventive types. It also discusses the need for maintenance to adapt to changing user requirements and environments. The document describes approaches to software maintenance including program understanding, generating maintenance proposals, accounting for ripple effects, and modified program testing. It discusses challenges like lack of documentation and high staff turnover. The document also introduces concepts of reengineering and reverse engineering to make legacy systems more maintainable.
The document discusses the spiral model of software development. The spiral model is an iterative approach that combines prototyping and aspects of the waterfall model. It was defined by Barry Boehm in 1988 as a way to address risks through iterative evaluation and improvement of prototypes. The spiral model is best for medium to high risk projects where requirements are complex or expected to change. It involves evaluating prototypes, defining new prototypes based on learnings, and repeating this process until the final product is delivered.
The document discusses key aspects of developing a software requirements specification (SRS) document. It notes that the SRS serves as a contract between developers and customers, detailing functional and non-functional requirements without specifying solutions. An effective SRS is unambiguous, complete, verifiable, consistent, modifiable, traceable and usable for subsequent development and maintenance phases. The document provides examples of both good and bad SRS qualities.
The document discusses software requirements and specifications. It explains that requirements engineering is the process of establishing customer requirements for a system. Requirements can range from high-level abstract statements to detailed functional specifications. Both types of statements may be called requirements. The document also discusses different types of requirements like user requirements, system requirements, functional requirements, and non-functional requirements. It provides examples and explanations of each. The structure and intended users of a requirements document are also covered.
The document discusses important concepts for effective software project management including focusing on people, product, process, and project. It emphasizes that defining project scope and establishing clear objectives at the beginning of a project are critical first steps. Finally, it outlines factors for selecting an appropriate software development process model and adapting it to the specific project.
Testing is the process of identifying bugs and ensuring software meets requirements. It involves executing programs under different conditions to check specification, functionality, and performance. The objectives of testing are to uncover errors, demonstrate requirements are met, and validate quality with minimal cost. Testing follows a life cycle including planning, design, execution, and reporting. Different methodologies like black box and white box testing are used at various levels from unit to system. The overall goal is to perform effective testing to deliver high quality software.
The document discusses various aspects of software project management including project planning activities like estimation, scheduling, staffing, and risk handling. It describes different project organization structures like functional organization and project organization. It also discusses different team structures like chief programmer teams, democratic teams, and mixed teams. The document emphasizes the importance of careful project planning and producing a software project management plan document. It also discusses considerations for staffing a project team and attributes of a good software engineer.
Software Requirements in Software Engineering SE5koolkampus
The document introduces software requirements and describes how they are used to define what a system should do. It explains that requirements can be functional or non-functional, and discusses how requirements are organized in documents. Requirements describe the services and constraints for the system from the perspectives of users and developers.
The document discusses requirements analysis and specification in software engineering. It defines what requirements are and explains the typical activities involved - requirements gathering, analysis, and specification. The importance of documenting requirements in a Software Requirements Specification (SRS) document is explained. Key sections of an SRS like stakeholders, types of requirements (functional and non-functional), and examples are covered. Special attention is given to requirements for critical systems and importance of non-functional requirements.
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
Full clear download( no error formatting) at: https://goo.gl/XmRyGP
software engineering a practitioner's approach 8th edition pdf free download
software engineering a practitioner's approach 8th edition ppt
software engineering a practitioner's approach 6th edition pdf
software engineering pressman 9th edition pdf
software engineering a practitioner's approach 9th edition
software engineering a practitioner's approach 9th edition pdf
software engineering a practitioner's approach 7th edition solution manual pdf
roger s. pressman
The document discusses different software engineering process models including:
1. The waterfall model which is a linear sequential model where each phase must be completed before moving to the next.
2. Prototyping models which allow requirements to be refined through building prototypes.
3. RAD (Rapid Application Development) which emphasizes short development cycles through reuse and code generation.
4. Incremental models which deliver functionality in increments with early increments focusing on high priority requirements.
5. The spiral model which has multiple iterations of planning, risk analysis, engineering and evaluation phases.
The document discusses use case diagrams in object oriented design and analysis. It defines use cases as descriptions of system functionality from a user perspective. Use case diagrams depict system behavior, users, and relationships between actors, use cases, and other use cases. The key components of use case diagrams are described as actors, use cases, the system boundary, and relationships. Common relationships include association, extend, generalization, uses, and include. An example use case diagram for a cellular telephone is provided to illustrate these concepts.
This document discusses software requirements and how to document them. It covers the concepts of functional and non-functional requirements, user requirements versus system requirements, and how requirements can be organized in a requirements document. Different ways of specifying requirements are described, including natural language, structured language, tables, and graphical models. The document also discusses issues like ambiguity, completeness, and consistency in requirements.
The document outlines the software requirements engineering process, which includes gathering requirements from stakeholders, documenting them in a software requirements specification (SRS), and validating the requirements. It discusses the different types of requirements like functional, non-functional, and domain requirements. It also describes various techniques used for eliciting requirements, such as interviews, surveys, questionnaires, task analysis, domain analysis, brainstorming, and prototyping.
The document discusses key aspects of requirements engineering including types of requirements, the requirements engineering process, and techniques used in requirements elicitation and analysis. It describes user requirements, system requirements, functional requirements, non-functional requirements, and domain requirements. The requirements engineering process involves activities like feasibility studies, requirements elicitation and analysis, requirements specification, validation, and management. Requirements elicitation and analysis techniques include requirements discovery, classification and organization, prioritization and negotiation, and documentation.
The document discusses key aspects of requirements engineering including types of requirements, the requirements engineering process, and techniques used in requirements elicitation and analysis. It describes user requirements, system requirements, functional requirements, non-functional requirements, and domain requirements. The requirements engineering process involves activities like feasibility studies, requirements elicitation and analysis, requirements specification, validation, and management. Requirements elicitation and analysis techniques include requirements discovery, classification, prioritization, documentation, and dealing with issues that can arise.
The document discusses software requirements engineering. It describes what requirements are, different types of requirements including functional and non-functional requirements. It explains the requirements engineering process which includes activities like elicitation, analysis, validation and management. It also discusses modeling techniques used for requirements like prototyping and functional modeling using data flow diagrams. The requirements specification document is the key output which defines what the system needs to do at a high level without describing how it will be implemented.
The document discusses various types of software requirements including functional requirements, non-functional requirements, interface requirements, and design and constraints requirements. It provides details on each type of requirement such as how functional requirements define the basic facilities the system should offer and how non-functional requirements relate to quality constraints. The document also covers requirement engineering processes like elicitation, analysis, specification, verification and validation, and management. Overall, the document provides an overview of different classifications of software requirements and the requirement engineering lifecycle.
This document discusses software requirements and how they should be organized. It covers topics such as functional and non-functional requirements, user requirements, system requirements, and how requirements can be specified. Requirements can range from abstract high-level statements to detailed specifications. Both functional and non-functional requirements are important, and there are different types of each. Requirements should be written clearly and precisely to avoid ambiguity and ensure the system meets user needs.
This document discusses requirement analysis in software engineering. It defines requirements as descriptions of a system's services and constraints. Requirement engineering is the process of finding, analyzing, documenting, and checking requirements. User requirements describe desired system functions and constraints in natural language for non-technical users. System requirements provide more technical details of how the system will implement the user requirements and are used by software engineers. Requirements can be functional, specifying system services, or non-functional, specifying constraints like performance or reliability.
The document discusses requirement engineering, which refers to the process of defining, documenting, and maintaining requirements in the engineering design process. It involves understanding customer needs, assessing feasibility, specifying solutions clearly, and managing requirements as the system is developed. The requirement engineering process involves 5 steps: feasibility study, requirement elicitation and analysis, software requirement specification, validation, and management. It provides details on each step, including the goals, models used, and techniques. It also discusses types of requirements like functional, non-functional, and domain requirements. Finally, it defines software quality assurance as activities that ensure processes, procedures, and standards are suitable and implemented correctly to assure software quality.
This document discusses requirements engineering (RE) and requirements elicitation. It defines requirements as conditions or capabilities needed by users. Requirements can be functional (specifying system functions) or non-functional (specifying quality attributes). The RE process involves eliciting, analyzing, specifying, verifying, and managing requirements. Requirements elicitation is the first critical task, which discovers requirements from stakeholders through understanding their needs, domain, and problems. Elicitation works to produce requirements documents and other artifacts. Challenges to elicitation include scope issues, volatility of requirements over time, and difficulties in stakeholders communicating their needs clearly.
Software Engineering- Requirement Elicitation and SpecificationNishu Rastogi
The document discusses the process of requirements engineering for software development. It involves four main steps:
1) Feasibility study to determine if the project is possible.
2) Requirements gathering by communicating with clients and users to understand what the software should do.
3) Creating a software requirements specification (SRS) document that defines system functions and constraints.
4) Validating requirements to ensure they are clear, consistent, and can be implemented.
The document discusses software requirement specification and the requirement engineering process. It describes how requirements are elicited from stakeholders, analyzed for consistency and completeness, and specified in a requirements document. The key activities in requirements engineering include requirements elicitation, analysis, validation, and management, which are iterative processes.
The document discusses key concepts in software requirements engineering including requirements, requirements engineering activities, and types of requirements. It defines a requirement as a statement that captures stakeholder needs and must be met for a system to solve a problem. Requirements engineering involves eliciting, analyzing, specifying, and managing requirements throughout the system development lifecycle. There are functional requirements that define what a system should do and non-functional requirements relating to qualities like performance, security, and usability. The document outlines common requirements engineering processes such as elicitation, analysis, specification, and management.
This document provides an overview of requirements engineering for software development. It defines requirements as descriptions of the services a system should provide and constraints under which it operates. Requirements can be functional, describing what a system should do, or non-functional, describing properties like performance or security. The document discusses best practices for writing requirements, including avoiding ambiguity and ensuring requirements are complete and consistent. It also describes the purpose and typical structure of a software requirements specification document.
The document discusses system requirements and requirements engineering. It defines requirements as statements that identify the essential needs of a system. There are various types of requirements including functional requirements, which describe what a system should do, and non-functional requirements, which define properties like usability, reliability and performance. The requirements life cycle involves eliciting, organizing, analyzing and documenting requirements. Requirements must be traceable, necessary, unambiguous and testable.
The document discusses different types of requirements for software systems including:
- User requirements written from the user's perspective
- System requirements that expand on user requirements for system design
- Software design specification requirements that provide an implementation-oriented description for developers
- Functional requirements that describe system services/functions, and non-functional requirements (NFRs) that define overall system qualities
Some examples of NFRs discussed are performance, reliability, usability, efficiency, maintainability, portability, scalability, and security. The document also describes problems with natural language requirements and different classifications of NFRs.
This document provides an overview of requirements engineering concepts from lectures 7 and 8, including:
1. It defines software requirements according to IEEE standards and discusses the requirements engineering process.
2. It outlines the different types of requirements like functional, non-functional, user, and system requirements and provides examples.
3. It explains the importance of requirements for stakeholders like customers, project managers, engineers and testers and why comprehensive requirements are needed.
INTRODUCTION to software engineering requirements specificationskylan2
The document discusses software requirements and their importance. It defines requirements as specifications of what a system should implement. Requirements include functional requirements that describe system services and non-functional requirements that constrain the system or development process. User requirements are high-level descriptions written for users, while system requirements provide more detailed specifications. An effective software requirements specification establishes agreements between customers and developers, reduces defects, and provides a baseline for project planning, validation, and future enhancements.
This document discusses IoT data processing topologies and considerations. It begins by explaining the types of structured and unstructured data in IoT. It then discusses the importance of processing based on urgency and describes on-site, remote, and collaborative processing topologies. The document also covers IoT device design factors and processing offloading considerations including location, decision making, and other criteria.
This document discusses IoT sensing and actuation. It defines transduction as the process of energy conversion from one form to another. Sensors convert various forms of energy into electrical signals, while actuators convert electrical signals into various forms of energy, typically mechanical energy. The document describes different types of sensors and their characteristics like resolution, accuracy, and precision. It also discusses sensor errors and deviations. Finally, it categorizes sensing into four types - scalar sensing, multimedia sensing, hybrid sensing, and virtual sensing - based on the nature of the environment being sensed.
The document discusses the emergence of the Internet of Things (IoT). It describes how IoT has evolved from early technologies like automated teller machines and smart meters to modern applications across various domains. It also outlines the key characteristics of IoT and the complex interdependencies between IoT and related technologies like machine-to-machine communication, cyber physical systems, and the web of things. Finally, it explains the four planes that enable IoT - services, local connectivity, global connectivity, and processing - and how technologies like edge/fog computing facilitate IoT implementation.
This C program defines functions to add numbers to a queue and display the numbers in reverse order. The add() function takes user input of up to 5 numbers and stores them in an array. The display() function prints the numbers from the end of the array to the beginning to reverse the order, with front and rear pointers used to track the start and end of the queue. The main() function calls add() to populate the queue, then calls display() to print the numbers in reversed order.
The program implements a deque (double-ended queue) using pointers in C language. It defines a node structure with data and link fields. Functions are written to add elements to both front and rear of the deque, delete from front and rear, and display the deque. The main function tests the implementation by performing sample operations on the deque and displaying the results.
The C program takes a string as input from the user, stores each character in a stack data structure, and then pops the characters off the stack to display the reversed string. It uses functions to push each character onto the stack, and then calls a display function that pops the characters off the stack and prints them, outputting the reversed input string.
This C program accepts a singly linked list of integers as input, sorts the elements in ascending order, then accepts an integer to insert into the sorted list at the appropriate position. It includes functions to create and display the linked list, sort the elements, and insert a new element while maintaining the sorted order.
This C program accepts two singly linked lists as input and prints a list containing only the elements common to both lists. It contains functions to create and display the lists, as well as a common_elements function that iterates through both lists, comparing elements and printing any matches. The main function calls list_create twice to populate the lists, display_list to output the lists, and common_elements to find and print the common elements.
This C program creates a linked list of student records with name and roll number. It includes functions to create the list by adding elements, display the list, and delete an element from the list by roll number. Pointers are used to link the elements of the list and dynamically allocate memory for new elements. The main function provides a menu to call these functions and manage the list.
The document describes a C program that takes a paragraph of text as input and outputs a list of words and the number of occurrences of each word. The program creates a structure with fields to store each word and its occurrence count. It accepts input character by character, separates words by spaces, counts occurrences by comparing to existing words, and outputs the final word-count list.
This program multiplies two sparse matrices in C. It takes in two matrices from the user and converts them to sparse form by removing all zero values and storing the row, column, and value of non-zero elements. It then performs the multiplication by iterating through each non-zero element in the first matrix and matching columns with row elements in the second matrix, summing the products of the values at matched indices into the result matrix. Finally, it prints out the sparse and result matrices.
This C program accepts student enrollment numbers, names, and aggregate marks. It ranks the students based on their marks, with the highest marks earning rank 1. The program then prints the enrollment number, name, mark, and rank of each student in ascending order of rank.
This C program concatenates two strings entered by the user. It first allocates memory for the two input strings and a third string to hold the concatenated output. It then uses a for loop to copy the first string into the output string, leaves a space, and copies the second string into the remaining portion using another for loop. The concatenated string is then printed.
This C program accepts two strings as input and checks if the second string is a substring of the first string. If it is a substring, the program outputs the starting and ending locations of each occurrence of the substring in the main string. If the substring is not found, the program outputs "Not substring". It uses a while loop to iterate through the strings and compare characters to find substring matches and their positions.
The program accepts the order and elements of two matrices as input from the user. It then multiplies the matrices and stores the product in a third matrix. The product matrix is then printed to the screen. The program checks that the matrices can be multiplied by verifying that the number of columns of the first matrix matches the number of rows of the second.
This document provides an introduction to information security. It outlines the objectives of understanding information security concepts and terms. The document discusses the history of information security beginning with early mainframe computers. It defines information security and explains the critical characteristics of information, including availability, accuracy, authenticity, confidentiality and integrity. The document also outlines approaches to implementing information security and the phases of the security systems development life cycle.
Decolonizing Universal Design for LearningFrederic Fovet
UDL has gained in popularity over the last decade both in the K-12 and the post-secondary sectors. The usefulness of UDL to create inclusive learning experiences for the full array of diverse learners has been well documented in the literature, and there is now increasing scholarship examining the process of integrating UDL strategically across organisations. One concern, however, remains under-reported and under-researched. Much of the scholarship on UDL ironically remains while and Eurocentric. Even if UDL, as a discourse, considers the decolonization of the curriculum, it is abundantly clear that the research and advocacy related to UDL originates almost exclusively from the Global North and from a Euro-Caucasian authorship. It is argued that it is high time for the way UDL has been monopolized by Global North scholars and practitioners to be challenged. Voices discussing and framing UDL, from the Global South and Indigenous communities, must be amplified and showcased in order to rectify this glaring imbalance and contradiction.
This session represents an opportunity for the author to reflect on a volume he has just finished editing entitled Decolonizing UDL and to highlight and share insights into the key innovations, promising practices, and calls for change, originating from the Global South and Indigenous Communities, that have woven the canvas of this book. The session seeks to create a space for critical dialogue, for the challenging of existing power dynamics within the UDL scholarship, and for the emergence of transformative voices from underrepresented communities. The workshop will use the UDL principles scrupulously to engage participants in diverse ways (challenging single story approaches to the narrative that surrounds UDL implementation) , as well as offer multiple means of action and expression for them to gain ownership over the key themes and concerns of the session (by encouraging a broad range of interventions, contributions, and stances).
8+8+8 Rule Of Time Management For Better ProductivityRuchiRathor2
This is a great way to be more productive but a few things to
Keep in mind:
- The 8+8+8 rule offers a general guideline. You may need to adjust the schedule depending on your individual needs and commitments.
- Some days may require more work or less sleep, demanding flexibility in your approach.
- The key is to be mindful of your time allocation and strive for a healthy balance across the three categories.
How to Create User Notification in Odoo 17Celine George
This slide will represent how to create user notification in Odoo 17. Odoo allows us to create and send custom notifications on some events or actions. We have different types of notification such as sticky notification, rainbow man effect, alert and raise exception warning or validation.
(𝐓𝐋𝐄 𝟏𝟎𝟎) (𝐋𝐞𝐬𝐬𝐨𝐧 3)-𝐏𝐫𝐞𝐥𝐢𝐦𝐬
Lesson Outcomes:
- students will be able to identify and name various types of ornamental plants commonly used in landscaping and decoration, classifying them based on their characteristics such as foliage, flowering, and growth habits. They will understand the ecological, aesthetic, and economic benefits of ornamental plants, including their roles in improving air quality, providing habitats for wildlife, and enhancing the visual appeal of environments. Additionally, students will demonstrate knowledge of the basic requirements for growing ornamental plants, ensuring they can effectively cultivate and maintain these plants in various settings.
CapTechTalks Webinar Slides June 2024 Donovan Wright.pptxCapitolTechU
Slides from a Capitol Technology University webinar held June 20, 2024. The webinar featured Dr. Donovan Wright, presenting on the Department of Defense Digital Transformation.
How to Create a Stage or a Pipeline in Odoo 17 CRMCeline George
Using CRM module, we can manage and keep track of all new leads and opportunities in one location. It helps to manage your sales pipeline with customizable stages. In this slide let’s discuss how to create a stage or pipeline inside the CRM module in odoo 17.
Post init hook in the odoo 17 ERP ModuleCeline George
In Odoo, hooks are functions that are presented as a string in the __init__ file of a module. They are the functions that can execute before and after the existing code.
2. Objectives
• To introduce the concepts of user requirements
and system requirements
• To describe functional and non-functional
requirements
• To explain how software requirements may be
organised in a requirements document
Prof. Loganathan R., CSE, HKBKCE 2
3. Requirements engineering
• The process of finding out, analysing,
documenting, and checking the services that the
customer requires from a system and its
operational constraints is called RE.
• Requirement may range from a high-level abstract
statement of a service or of a system constraint to
a detailed mathematical functional specification.
Prof. Loganathan R., CSE, HKBKCE 3
4. Requirements abstraction (Davis)
“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 pre-defined.
The requirements must be written so that several
contractors can bid for the contract, offering, perhaps,
different ways of meeting the client organisation’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.”
Prof. Loganathan R., CSE, HKBKCE 4
5. Types of requirement
• User requirements (high level abstract requirements)
– Statements in natural language plus diagrams of what
services the system provides and its operational
constraints. Written for customers.
• System requirements (description of what system should do)
– A structured document(also called functional specification)
setting out detailed descriptions of the system’s functions,
services and operational constraints. Defines what should
be implemented so may be part of a contract between
client and contractor.
Prof. Loganathan R., CSE, HKBKCE 5
6. Definitions and specifications
User requirement Definition
1. LIBSYS shall keep track of all data required by copyright licensing
1. agencies in INDIA and elsewhere
System Requirements Specification
1.1 On making a request for a document from LIBSYS, the requestor shall be
presented with a form that records details of user and the request made
.
1.2 LIBSYS request forms shall be stored on the system for 5 years from the
date of the request.
1.3 All LIBSYS request forms must be indexed by user, by the name of the
.
material requested and by the supplier of the request
.
1.4 LIBSYS shall maintain a log of all requests that have been made to the
system.
1.5 For material where authors lending rights apply, loan details shall be sent
monthly to copyright licensing agencies that have registered with LIBSYS.
Prof. Loganathan R., CSE, HKBKCE 6
7. Requirements readers
Client Managers
System End-Users
User
Client Engineers
Requirements
Contractor Managers
System Architect
System End-Users
System Client Engineers
Requirements System Architect
Software Developers
Prof. Loganathan R., CSE, HKBKCE 7
8. Functional and non-functional requirements
• Software system requirements are classified as:
• Functional requirements
– Statements of services the system should provide, how the
system should react to particular inputs and how the system
should behave in particular situations(and sometimes what it
should NOT do).
• Non-functional requirements
– constraints on the services or functions offered by the system
such as timing constraints, constraints on the development
process, standards, etc. Apply to the system as whole.
• Domain requirements
– Requirements that come from the application domain of the
system and that reflect characteristics of that domain.
Prof. Loganathan R., CSE, HKBKCE 8
9. Functional requirements
• Describe what the system should do.
• Depend on the type of software, expected users
and the type of system where the software is
used.
• Functional user requirements may be high-level
statements of what the system should do but
functional system requirements should describe
the system services in detail, its i/o, exceptions
and so on.
Prof. Loganathan R., CSE, HKBKCE 9
10. Example: The LIBSYS system
• A library system that provides a single interface to
a number of databases of articles in different
libraries.
• Users can search for, download and print these
articles for personal study.
Prof. Loganathan R., CSE, HKBKCE 10
11. Examples of functional requirements of LIBSYS
• The user shall be able to search either all of the
initial set of databases or select a subset from it.
• The system shall provide appropriate viewers for
the user to read documents in the document
store.
• Every order shall be allocated a unique identifier
(ORDER_ID) which the user shall be able to copy
to the account’s permanent storage area.
Prof. Loganathan R., CSE, HKBKCE 11
12. Requirements imprecision
• Problems arise when requirements are not
precisely stated.
• Ambiguous requirements may be interpreted in
different ways by developers and users.
• Consider the term ‘appropriate viewers’
– User intention - special purpose viewer for each
different document type;
– Developer interpretation - Provide a text viewer that
shows the contents of the document.
Prof. Loganathan R., CSE, HKBKCE 12
13. Requirements completeness and consistency
• In principle, requirements should be both
complete and consistent.
• Completeness
– All services required by the user should be defined.
• Consistent
– Requirements should NOT have conflicts or
contradictions in the descriptions.
• In practice, it is impossible to produce a complete and consistent
requirements document.
Prof. Loganathan R., CSE, HKBKCE 13
14. Non-functional requirements
• Related to emergent properties and constraints .
Emergent properties are reliability, response time,
storage requirements and so on. Constraints are
I/O device capability, data representations, etc.
• Process requirements may also be specified
mandating a particular CASE system, programming
language or development method.
• Non-functional requirements may be more critical
than functional requirements. If these are not
met, the system is useless.
Prof. Loganathan R., CSE, HKBKCE 14
15. Non-functional requirement types
• Product requirements
– Specify product behaviour. E.g. execution speed, memory
required, reliability (failure rate), portability requirements,
usability requirements, etc.
• Organisational requirements
– Derived from customer and developer organisational policies
and procedures. e.g. process standards used, implementation
requirements, delivery requirements, etc.
• External requirements
– Derived from factors which are external to the system and its
development process e.g. interoperability requirements,
legislative requirements, ethical requirements etc.
Prof. Loganathan R., CSE, HKBKCE 15
17. LIBSYS Non-functional requirements
• Product requirement
8.1 The user interface for LIBSYS shall be implemented as simple HTML without
frames or Java applets.
• Organisational requirement
9.3.2 The system development process and deliverable documents shall conform
to the process and deliverables defined in XYZCo-SP-STAN-95.
• External requirement
7.6.5 The system shall not disclose any personal information about customers
apart from their name and reference number to the operators of the system.
Prof. Loganathan R., CSE, HKBKCE 17
18. Problems in non-functional requirements
• Non-functional requirements may be very difficult to
state precisely and imprecise requirements may be
difficult to verify.
• Goal
– A general intention of the user such as ease of use, recovery
from failure, etc.
• Verifiable non-functional requirement
– A statement using some measure that can be objectively tested.
• Goals are helpful to developers as they convey the
intentions of the system users.
Prof. Loganathan R., CSE, HKBKCE 18
19. Examples
• A system goal
– The system should be easy to use by experienced controllers and should be
organised in such a way that user errors are minimised.
• A verifiable non-functional requirement
– Experienced controllers shall be able to use all the system functions after a
total of two hours training. After this training, the average number of errors
made by experienced users shall not exceed two per day.
Prof. Loganathan R., CSE, HKBKCE 19
20. Requirements Measures
Property Measure
Processed transactions/second
Speed User/Event response time
Screen refresh time
M Bytes
Size
Number of ROM chips
Training time
Ease of use
Number of help frames
Mean time to failure
Probability of unavailability
Reliability
Rate of failure occurrence
Availability
Time to restart after failure
Robustness Percentage of events causing failure
Probability of data corruption on failure
Percentage of target dependent statements
Portability
Number of target systems
Prof. Loganathan R., CSE, HKBKCE 20
21. Requirements interaction
• Conflicts between different non-functional
requirements are common in complex systems.
• Example :Spacecraft system
– To minimise weight, the number of separate chips in
the system should be minimised.
– To minimise power consumption, lower power chips
should be used.
– However, using low power chips may mean that more
chips have to be used. Which is the most critical
requirement?
Prof. Loganathan R., CSE, HKBKCE 21
22. Domain requirements
• Derived from the application domain and describe
system characteristics and features that reflect the
domain.
• Domain requirements be new functional
requirements, constraints on existing
requirements or define specific computations.
• If domain requirements are not satisfied, the
system may be unworkable.
Prof. Loganathan R., CSE, HKBKCE 22
23. Example of LIBSYS domain requirements
• There shall be a standard user interface to all
databases which shall be based on the Z39.50
standard.
• Because of copyright restrictions, some
documents must be deleted immediately on
arrival. Depending on the user’s requirements,
these documents will either be printed locally on
the system server for manually forwarding to the
user or routed to a network printer.
Prof. Loganathan R., CSE, HKBKCE 23
24. Example : Train protection system
• Computation of deceleration to stop the train:
The deceleration of the train shall be computed as:
Dtrain = Dcontrol + Dgradient
where Dgradient is 9.81ms2 * compensated gradient/alpha
and where the values of 9.81ms2 /alpha are known for
different types of train.
• Problem: Since it is written in application domain
language its difficult to understand by s/w
engineers.
Prof. Loganathan R., CSE, HKBKCE 24
25. Domain requirements problems
• Understandability
– Requirements are expressed in the language of the
application domain;
– This is often not understood by software engineers
developing the system.
• Implicitness
– Domain specialists understand the area so well that
they do not think of making the domain requirements
explicit.
Prof. Loganathan R., CSE, HKBKCE 25
26. User requirements
• Should describe functional and non-functional
requirements in such a way that they are
understandable by system users who don’t have
detailed technical knowledge.
• User requirements are defined using natural
language, tables and diagrams as these can be
understood by all users.
Prof. Loganathan R., CSE, HKBKCE 26
27. Problems with natural language(UR)
• Lack of clarity
– Precision is difficult without making the document
difficult to read.
• Requirements confusion
– Functional and non-functional requirements tend to be
mixed-up.
• Requirements amalgamation
– Several different requirements may be expressed
together.
Prof. Loganathan R., CSE, HKBKCE 27
28. A user requirement for accounting
system in LIBSYS
4..5 LIBSYS shall provide a financial accounting
system that maintains records of all payments
made by users of the system. System managers
may configure this system so that regular users
may receive discounted rates.
Prof. Loganathan R., CSE, HKBKCE 28
29. A user requirement for Editor grid in LIBSYS
2.6 Grid facilities To assist in the positioning of entities on a
diagram, the user may turn on a grid in either centimetres or
inches, via an option on the control panel. Initially, the grid is off.
The grid may be turned on and off at any time during an editing
session and can be toggled between inches and centimetres at
any time. A grid option will be provided on the reduce-to-fit view
but the number of grid lines shown will be reduced to avoid
filling the smaller diagram with grid lines.
Prof. Loganathan R., CSE, HKBKCE 29
30. Requirement problems
• Database requirements includes both conceptual and
detailed information
– Describes the concept of a financial accounting system that is to
be included in LIBSYS;
– However, it also includes the detail that managers can configure
this system - this is unnecessary at this level.
• Grid requirement mixes three different kinds of
requirement
– Conceptual functional requirement is the need for a grid. It
presents rationale for this
– Non-functional requirement of grid units (inches/cm)
– Non-functional UI requirement grid switching(on/off)
Prof. Loganathan R., CSE, HKBKCE 30
31. Definition of an editor grid facility
• Grid requirements are rewritten to focus on the
essential system feature
2.6.1 Grid facilities
The editor shall provide a grid facility where a matrix of horizontal
and vertical lines provide a background to the editor window. This
grid shall be a passive grid where the alignment of entities is the user's
responsibility.
Rationale: A grid helps the user to create a tidy diagram with well-
spaced entities. Although an active grid, where entities 'snap-to'
grid lines can be useful, the positioning is imprecise. The user is the
best person to decide where entities should be positioned.
Specification: ECLIPSE/WS/Tools/DE/FS Section 5.6
Source: Ray Wilson, Glasgow Office
Prof. Loganathan R., CSE, HKBKCE 31
32. Guidelines for writing User Requirements
• Invent a standard format and use it for all
requirements.
• Use language in a consistent way. Use shall for
mandatory requirements, should for desirable
requirements.
• Use text highlighting(Bold, Italic or Colour) to
identify key parts of the requirement.
• Avoid the use of computer jargon.
Prof. Loganathan R., CSE, HKBKCE 32
33. System requirements
• More detailed specifications of system functions,
services and constraints than user requirements.
• They are intended to be a basis for designing the
system.
• They may be incorporated into the system
contract.
• Natural Language(NL) is often used to write
system requirements specification as well as user
requirements.
Prof. Loganathan R., CSE, HKBKCE 33
34. Inseparable : Requirements and design
• In principle, requirements should state what the
system should do and the design should describe
how it does this.
• In practice, requirements and design are
inseparable
– A system architecture may be designed to structure the
requirements;
– The system may inter-operate with other systems that
generate design requirements;
– The use of a specific design may be a domain
requirement.
Prof. Loganathan R., CSE, HKBKCE 34
35. Problems with NL specification(Sys Req.)
• Ambiguity
– The readers and writers of the requirement must
interpret the same words in the same way. NL is
naturally ambiguous so this is very difficult.
• Over-flexibility
– The same thing may be said in a number of different
ways in the specification.
• Lack of modularisation
– NL structures are inadequate to structure system
requirements.
Prof. Loganathan R., CSE, HKBKCE 35
36. Notations for requirements specification
• These can be used as alternatives to NL specification
Notation Description
Structured natural This approach depends on defining standard forms or templates to express the
language requirements specification.
Design description This approach uses a language like a programming language but with more
languages abstract features to specify the requirements by defining an operational model
of the system. This approach is not now widely used although it can be useful
for interface specifications.
Graphical notations A graphical language, supplemented by text annotations is used to define the
functional requirements for the system. An early example of such a graphical
language was SADT. Now, use-case descriptions and sequence diagrams are
commonly used .
Mathematical These are notations based on mathematical concepts such as finite-state
specifications machines or sets. These unambiguous specifications reduce the arguments
between customer and contractor about system functionality. However, most
customers don’t understand formal specifications and are reluctant to accept it
as a system contract.
Prof. Loganathan R., CSE, HKBKCE 36
37. Structured Language Specifications
• The freedom of the requirements writer is limited
by a predefined template for requirements.
• All requirements are written in a standard way.
• The terminology used in the description may be
limited.
• The advantage is that the most of the
expressiveness of natural language is maintained
but a degree of uniformity is imposed on the
specification.
Prof. Loganathan R., CSE, HKBKCE 37
38. Form-based Approach
• One or more standard forms/templates are
designed to express the requirements. It should
include the following information.
– Description of the function or entity.
– Description of inputs and where they come from.
– Description of outputs and where they go to.
– Indication of what other entities required.
– Description of action to be taken.
– Pre and post conditions what must be true before & after function call(if
appropriate).
– Description the side effects (if any) of the function.
Prof. Loganathan R., CSE, HKBKCE 38
39. Form-based specification Example
Insulin Pump/Control Software/SRS/3.3.2
Function Compute insulin dose: Safe sugar level
Description Computes the dose of insulin to be delivered when the current measured sugar level is
in the safe zone between 3 and 7 units
Inputs Current sugar reading (r2), the previous two readings (r0 and r1)
Source Current sugar reading from sensor. Other readings from memory.
Outputs CompDose – the dose in insulin to be delivered
Destination Main control loop
Action CompDose is zero if the sugar level is stable or falling or if the level is increasing but the
rate of increase is decreasing. If the level is increasing and the rate of increase is
increasing, then CompDose is computed by dividing the difference between the current
sugar level and the previous level by 4 and rounding the result. If the result, is rounded
to zero then CompDose is set to the minimum dose that can be delivered.
Requires Two previous readings so that the rate of change of sugar level can be computed.
Pre-condition The insulin reservoir contains at least the maximum allowed single dose of insulin
Post-condition r0 is replaced by r1 then r1 is replaced by r2
Side-effects None
Prof. Loganathan R., CSE, HKBKCE 39
40. Tabular specification
• Used to supplement natural language.
• Particularly useful when you have to define a number of possible
alternative courses of action.
• Example : Tabular specification of computation
Condition Action
Sugar level falling (r2 < r1) CompDose = 0
Sugar level stable (r2 = r1) CompDose = 0
Sugar level increasing and rate of increase
CompDose = 0
decreasing ((r2-r1)<(r1-r0))
CompDose = round ((r2-r1)/4)
Sugar level increasing and rate of increase
If rounded result = 0 then
stable or increasing. ((r2-r1) ≥ (r1-r0))
CompDose = MinimumDose
Prof. Loganathan R., CSE, HKBKCE 40
41. Graphical models
• Graphical models are most useful when you need to show
how state changes or where you need to describe a
sequence of actions.
• Example Sequence diagrams
• These show the sequence of events that take place during
some user interaction with a system.
• Read them from top to bottom to see the order of the
actions that take place.
• Cash withdrawal from an ATM
– Validate card : By checking the card number and user’s PIN
– Handle request : user requests are handled. Query database for withdrawal
– Complete transaction: return the card and deliver cash & receipt.
Prof. Loganathan R., CSE, HKBKCE 41
42. Sequence diagram of ATM withdrawal
ATM Database
Card
Card number
Card OK
PIN request
PIN
Option menu Validate card
<<exception>>
invalid card
Withdraw request Balance request
Balance
Amount request
Amount Handle request
Debit (amount)
<<exception>>
Debit response
Insufficient cash
Card
Card removed
Complete
Cash transaction
Cash removed
Receipt
42
Prof. Loganathan R., CSE, HKBKCE
43. Interface specification
• Most systems must operate with other systems
and the operating interfaces must be specified as
part of the requirements.
• Three types of interface may have to be defined
– Procedural interfaces : APIs;
– Data structures : Passed from one subsystem to another
– Data representations (ordering of bits) : for existing
subsystem
• Formal notations(Program Design Language - PDL)
are an effective technique for interface
specification.
Prof. Loganathan R., CSE, HKBKCE 43
45. The Software Requirements Document
• The requirements document is the official
statement of what is required of the system
developers.
• Should include both a definition of user
requirements and a specification of the system
requirements.
• It is NOT a design document. As far as possible, it
should set of WHAT the system should do rather
than HOW it should do it
Prof. Loganathan R., CSE, HKBKCE 45
46. Users of a requirements document
Specify the requirements and
read them to check that they
System meet their needs. They
Customers specify changes to the
requirements
Use the requirements
document to plan a bid for
Managers the system and to plan the
system development process
Use the requirements to
System understand what system is to
Engineers be developed
Use the requirements to
System Test develop validation tests for
Engineers the system
Use the requirements to help
System
understand the system and
Maintenance
the relationships between its
Engineers parts
46
Prof. Loganathan R., CSE, HKBKCE
47. IEEE requirements standard
• Defines a structure for a requirements document.
1. Introduction.
1.1 Purpose of the requirements document
1.2 Scope of the product
1.3 Definition, acronyms & abbreviations
1.4 References
1.5 Overview of the remainder of the document
2. General description.
2.1 Product perspective
2.2 Product functions
2.3 User characteristics
2.4 General constraints
2.5 Assumptions & dependencies
3. Specific requirements.(covers functional, non-functional & interface requirements)
4. Appendices.
5. Index.
Prof. Loganathan R., CSE, HKBKCE 47
48. Requirements document structure
• Organisation for a requirements document based on IEEE standard
– Preface : Defines expected readership, version history & changes in each version
– Introduction : Describes the needs of the system
– Glossary : Defines technical terms used in the document
– User requirements definition : Describes services provided & non-
functional requirements
– System architecture : Presents high level overview of system
– System requirements specification : Describes functional & non-
functional requirements in detail
– System models : Provides 1 or more system models
– System evolution : Describes anticipated changes
– Appendices
– Index
Prof. Loganathan R., CSE, HKBKCE 48