Software Engineering: Requirements Gathering - CP317 PDF

Summary

This PDF document presents lecture slides for CP317 Software Engineering, focusing on requirement gathering techniques. Topics covered include requirement prioritization with the MOSCOW method, categorization into business, user, and system requirements, and the FURPS method. The document provides valuable insights into the crucial aspects of software development, including the importance of understanding requirements and how to manage them effectively.

Full Transcript

CP317 Software Engineering week 2-1: Requirement gathering, part-1 Shaun Gao, Ph.D., P.Eng. Agenda Review week 1 topics Introduction The reasons why requirements are important The characteristics of good requirements The MOSCOW method for prioritizing requirem...

CP317 Software Engineering week 2-1: Requirement gathering, part-1 Shaun Gao, Ph.D., P.Eng. Agenda Review week 1 topics Introduction The reasons why requirements are important The characteristics of good requirements The MOSCOW method for prioritizing requirements Requirement categorization Business/ user/ system Functional requirements vs. non-functional requirements FURPS and FURPS+ methods for categorizing requirements Summary Review week 1-2 Documentation Document change control Types of documentations Project management Concept Project management tools PERT charts Critical path methods Gantt charts Difference between PERT and Gantt Software Cost Estimation Models COCOMO, Static Single Variable Model, Static Multi-Variable Model Risk management Concept Introduction Requirements Definition: a requirement is a singular documented physical or functional need that particular design, product or process aims to satisfy. In software engineering, requirements are documented customer needs or features that a computer system aims to satisfy. Introduction – cont. Requirement gathering is the most important part of SE. Why requirements are important? To understand what we are going to do Accountability and responsibility We build software systems for customers Reputation and integrity Getting accurate requirements is crucial Earnest and meticulous and no assumption Introduction – cont. Why requirements are important in software engineering? https://www.c-sharpcorner.com/ Think – Pair – Share what skills are required for understanding requirements in SE? Hard skills soft skills Characters of good requirements Use of Correct Terms Shall = requirement Will = facts or declaration of purpose Should = goal Example System Requirements The system shall operate at a power level of 12 voltage The software shall acquire data from the sensors that are located at the motor The data structure shall contain a linked list. Characters of good requirements –cont. How to prioritize requirements MOSCOW method Why do requirements need prioritization Requirements prioritization How to categorize requirements Requirement categorization is to group requirements into meaningful clusters. Business requirements Business requirements lay out the project’s high-level goals. They explain what the customer hopes to achieve with the project. Example: Automated Teller Machine (ATM) cash withdraw deposit a transfer of money balance inquiry …… How to categorize requirements – cont. User requirements User requirements describe how the software product of the project will be used by the end users. Example: ATM required to insert an ATM card enter a personal identification number (PIN) amount selection …… How to categorize requirements – cont. System requirements System requirements are the configuration that a system must have in order for a hardware or software application to run smoothly and efficiently such that to achieve business requirements and user requirements. Example: ATM Touch screen or keypad Computer languages, python, C++, C#,… Physical measurements – size …… How to categorize requirements – cont. Requirements How to categorize requirements – cont. Functional requirements Functional requirements are detailed statements of the project’s desired capabilities. Examples of functional requirements Business Rules. Transaction corrections, adjustments and cancellations. Administrative functions. Authentication. Authorization levels. Audit Tracking. External Interfaces. Certification Requirements. How to categorize requirements – cont. Non-functional requirements Non-functional requirements are statements about the quality of the product’s behavior or constraints on how it produces a desired results. Examples – based on IEEE-Std 830 - 1993 Performance requirements Operational requirements Resource requirements Verification requirements Acceptance requirements Documentation requirements Security requirements Portability requirements How to categorize requirements – cont. Functional requirements vs. Non-functional requirements FURPS FURPS is an acronym for categorizing the system requirements. Functionality requirement Usability requirement Reliability requirement Performance requirement Supportability requirement Developed by HP. FURPS+ FURPS+ Functionality requirement Usability requirement Reliability requirement Performance requirement Supportability requirement Design constraints Implementation requirements Interface requirements Physical requirements An Example of FURPS Summary Requirements The reasons why requirements are important The characteristics of good requirements The MOSCOW method for prioritizing requirements Requirement categorization Business/ user/ system Functional vs. non-functional requirements FURPS and FURPS+ methods for categorizing requirements Difference between requirement prioritization and categorization Announcement Group for project. Please find a group as soon as possible by end of January. Please let me know if you need help.

Use Quizgecko on...
Browser
Browser