Software Requirements CMSC 345 Version 111 1 Whats
- Slides: 28
Software Requirements CMSC 345, Version 1/11 1
What’s the big deal about requirements? The Tree Swing Project CMSC 345, Version 1/11 2
CMSC 345, Version 1/11 3
CMSC 345, Version 1/11 4
CMSC 345, Version 1/11 5
CMSC 345, Version 1/11 6
Requirements Engineering Requirements are…a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system. - Ian Sommerville and Pete Sawyer Understanding what you intend to build before you’re done building it - Karl Wiegers CMSC 345, Version 1/11 7
Typical Requirements Activities 1) 2) 3) 4) 5) System scope definition Requirements elicitation Requirements specification Open issues Documentation System Requirements Specification (SRS) 6) 7) Validation Requirements management CMSC 345, Version 1/11 8
1) System Scope Definition What’s in, what’s out n Tree Swing n ¨ Do we supply the tree? ¨ Do we supply the hanging mechanism? ¨ If not, how do we “interface” with them? n Developer Responsibilities ¨ Anything inside of the system ¨ Any interfaces to external systems CMSC 345, Version 1/11 9
2) Requirements Elicitation n From whom? • Automatic Teller Machine (ATM) ¨ Stakeholders • Blackboard n customer • my. UMBC (for you to do) n developers n maintainers n end-users n … anyone else with a stake in the successful development and use of the system n How? ¨ ¨ ¨ Interviews Workshops/meetings Surveys Apprentice with the end-user Prototyping CMSC 345, Version 1/11 10
3) Requirements Specification n What makes a requirement good? ¨ What do we specify in a requirement? ¨ How do we express it? ¨ How do we know it’s “good? ” CMSC 345, Version 1/11 11
Online Intro Programming Language Course n The system shall provide quick feedback to quiz responses. ¨ The system shall provide feedback to quiz responses within 0. 1 seconds. n The system shall provide a comprehensive help feature for the programming language’s syntax. ¨ The system shall provide a help feature for all programming language syntax defined in “Introduction to Java Programming. ” n The system shall be user friendly. ¨ Don’t bother with this one! These requirements are not testable. CMSC 345, Version 1/11 12
Online Intro Programming Language Course The system shall be user friendly. n The system shall check for user input errors. n The quiz questions collection shall not be corrupted upon system failure. n These requirements are obvious. CMSC 345, Version 1/11 13
Online Intro Programming Language Course n The system shall allow the user to take chapter quizzes, providing feedback after a quiz is completed and allowing the user to re-try any incorrect or incomplete problems. ¨ The system shall allow the user to take chapter quizzes. ¨ The system shall provide feedback after a quiz is completed. ¨ The system shall allow the user to re-try any incorrect or incomplete problems. This requirement is an amalgamation of requirements. CMSC 345, Version 1/11 14
Online Intro Programming Language Course The system should provide a table of contents for the online help feature. ¨ The system shall provide a table of contents for the online help feature. n Avoid vague words such as “should, ” “may, ” “rapid, ” “often, ” “robust, ” “optimize, ” “intuitive, ” “efficient” ¨ Besides, they’re not testable either This requirement is weakly worded. CMSC 345, Version 1/11 15
Online Intro Programming Language Course n The system shall allow a course administrator to grant course privileges to course users. He/she can then grant other lower level privileges. ¨ The system shall allow a course administrator to grant course privileges to course users. ¨ The system shall allow a course administrator to grant … This requirement is ambiguous. CMSC 345, Version 1/11 16
Characteristics of Good Requirements (Pfleeger) n Are the requirements … ¨ correct? ¨ consistent? ¨ complete? ¨ realistic? ¨ all needed by the customer? ¨ verifiable? ¨ traceable? CMSC 345, Version 1/11 17
Requirements Expression n *Natural language ¨ n Structured natural language ¨ n *Use case specification Formal specification language ¨ n English, etc. Backus-Naur Diagrams Data flow diagram ¨ State diagram ¨ *Use case diagram ¨ n *These are the ones that I want you to be concerned with. Tables Decision tables ¨ State transition tables ¨ CMSC 345, Version 1/11 18
Functional vs. Non-functional Requirements n Remember services and constraints? ¨ Functional (FR) Services Describes an interaction between the system and its environment (Pfleeger) n Gets the user closer to his/her end goal (Mitchell) n ¨ Non-functional (NFR) Constraints A restriction on the system that limits our choices for constructing a solution to the problem (Pfleeger) n Is domain-independent (Mitchell) n CMSC 345, Version 1/11 19
Examples – Let’s Classify These n Online Intro Programming Language Course ¨ The system shall provide feedback to quiz responses within 0. 1 seconds. ¨ The system shall provide a help feature for all programming. ¨ The help feature shall use the language syntax defined in “Introduction to Java Programming. ” ¨ The system shall allow the user to take chapter quizzes. ¨ The system shall provide feedback after a quiz is completed. ¨ The system shall allow the user to re-try any incorrect or incomplete problems. FR or NFR? CMSC 345, Version 1/11 20
Typical NFR Categories n n n Reliability/availability Security Documentation Training User interface Performance/response time Development standards See the “Trigger Questions” on Blackboard, Documents Compatibility Info button Portability Scalability Extensibility Other “ilities” (http: //en. wikipedia. org/wiki/Ilities) CMSC 345, Version 1/11 21
Let’s Categorize These NFRs n n n The user interface shall be text-based. User interface The system shall be password protected. Security A User Manual shall be provided. Documentation The system shall allow a minimum of 1, 000 simultaneous users. Load The system shall be available 24 hours per day, 7 days per week. Availability A single five-hour classroom training session shall be provided. Training CMSC 345, Version 1/11 22
Customer Constraints Conditions that the customer absolutely insists on n Examples: n ¨ Particular hardware ¨ Particular operating system ¨ Particular user interface standards CMSC 345, Version 1/11 23
4) Open Issues n Anything that has not been decided or resolved by the “end” of the requirements phase ¨ Document Description of the issue n Resolution plan n Resolution date n ¨ Be honest CMSC 345, Version 1/11 24
5) Typical Documentation n System Requirements Specification (SRS) ¨ Introductory material n What will be presented in the document? n Who is the intended audience? n What references were used for writing the document? n Who needs the system? n Why do they need it? What needs will it fulfill? ¨ System scope ¨ Functional and non-functional requirements ¨ Customer constraints ¨ Open issues ¨ Deliverables See the SRS template on Blackboard, Document Info button CMSC 345, Version 1/11 25
6) Validation n n Establishing that the requirements will meet the customer’s needs Developer and customer review Review by other stakeholders Are the requirements ¨ correct? ¨ consistent? ¨ complete? ¨ realistic? ¨ all needed by ¨ verifiable? ¨ traceable? CMSC 345, Version 1/11 These were the earlier characteristics of a “good” requirement. the customer? 26
7) Requirements Management n n Prioritize Configuration management ¨ Applies to many things: n n n source code documents requirements other … Document or requirements numbering scheme Tools ¨ Source code n ¨ Documents n ¨ CVS (open source), Subversion (open source), Visual Source. Safe (Microsoft), others CVS (open source), RCS (open source), Google Docs, others Requirements n spreadsheet, database, custom tools CMSC 345, Version 1/11 27
References § § § Pfleeger, Shari L. , Software Engineering: Theory and Practice. 2 nd ed. 2001, Upper Saddle River: Prentice Hall. Sommerville, Ian and Pete Sawyer, Requirements Engineering: A Good Practice Guide. 1997: Wiley. Wiegers, Karl, When Telepathy Won’t Do: Requirements Engineering Key Practices. Cutter IT Journal, 2000. Wiegers, Karl Wiegers Describes 10 Requirements Traps to Avoid, Software Testing and Quality Engineering, 2000. 2(1). CMSC 345, Version 1/11 28
- 000 111 000
- Configuration management version control
- Softeng 350
- Digital clock in c++ using class
- Comp 345
- Comp 345 final
- Byk 307
- Comp345
- Comp 345
- Comp 345
- Himno 345
- Fromme361
- 345 king william street adelaide
- Compsci 345
- Deborah amdur
- Compsci 345
- A-345-k
- Compsci 345
- Test 345
- Softeng 350
- Software requirements specification definition
- Domain requirements
- Inverse requirements in software engineering
- System requirements document
- Requirements discovery techniques in software engineering
- Requirements engineering process
- Domain requirements
- External requirements in software engineering
- Seven distinct tasks to requirements engineering