3.2 Functional requirements 3.3 Performance requirements 3.4 Design constraints 3.5 Software system attributes 3.6 Other requirements 3.1.1 User interfaces 3.1.2 Hardware interfaces 3.1.3 Software interfaces 3.1.4 Communication interfaces 3.1 Interface requirements 3 Specific requirements Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se write a good one The RS, or SRS avoids many misunderstandings The RS is of special importance in outsourcing programming Eight good advice and some templates. There is no perfect specification, but you can Advice towards a good specification Costs: bad attitude against standards 3.2.1 Information flows 3.2.2 Process description 3.2.3 Data construct specification 3.2.4 Data dictionary 3.2 Functional requirements 3.2.1 Class1 3.2.1.1 Attributes 3.2.1.2 Functions .... 3.2.n Class n 3.2.n.1 Attributes 3.2.n.2 Functions 3.2 Classes Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se Developers can have a standard Finding the right standard Configure variants Periodically review 3.1 Interface requirements 3.1.1 User interfaces 3.1.2 Hardware interfaces 3.1.3 Software interfaces 3.1.4 Communication interfaces 3 Templates Benefits: Readers can reuse knowledge from previous RSs in understanding Writers’ checklist Tools can be adapted to generate RSs Define a standard document structure 3.3.1 Information flows 3.3.2 Process description 3.3.3 Data construct specification 3.3.4 Data dictionary 3.3 Functional requirements 3.3.1 Class1 3.3.1.1 Attributes 3.3.1.2 Functions .... 3.3.n Class n 3.3.n.1 Attributes 3.3.n.2 Functions 3.3 Classes 3.1 User interface requirements 3.2 Other interfaces 3.2.2 Hardware interfaces 3.2.3 Software interfaces 3.2.4 Communication interfaces Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se 2.3 User characteristics 2.4 General constraints 2.5 Assumptions and dependencies 2.6 Lower ambition levels 3 Specific requirements 4 Supporting information 4.1 Index 4.2 Appendices Customise the template 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms and abbreviations 1.4 References 1.5 Overview 2 Overall description 2.1 Product perspective 2.2 Product functions Table of contents 1 Introduction Template IEEE Std. 830 There are many readers of a RS: Customers Managers Software engineers Testers Maintenance staff Technical writers Subcontractors Kristian Sandahl, IDA krisa@ida.liu.se Part of introduction Types of reader Technical background needed Sections for different readers Sections skipped 1st time Order of section Dependence between section Takes an hour to write Explain how to use the document Kristian Sandahl, IDA krisa@ida.liu.se Can be downloaded from http://www.volere.co.uk/ (registration required, free for students) references Focus attention on critical and prioritised requirements Map to find specific requirements Better than forward Kristian Sandahl, IDA krisa@ida.liu.se relations Per chapter basis Though for large number of requirements Table of classification Graphic presentation with requirements in a list Highlight most important Include a summary of the requirements Kristian Sandahl, IDA krisa@ida.liu.se agreement Requires that top management have an Kristian Sandahl, IDA krisa@ida.liu.se Special document, section or part of introduction Helps change assessment Helps understanding Make a business case for the system Kristian Sandahl, IDA krisa@ida.liu.se PROJECT ISSUES 18. Open Issues 19. Off-the-Shelf Solutions 20. New Problems 21. Tasks 22. Cutover 23. Risks 24. Costs 25. User Documentation and Training 26. Waiting Room 27. Ideas for Solutions NON-FUNCTIONAL REQUIREMENTS 10. Look and Feel Requirements 11. Usability and Humanity Requirements 12. Performance Requirements 13. Operational Requirements 14. Maintainability and Support Requirements 15. Security Requirements 16. Cultural and Political Requirements 17. Legal Requirements PROJECT DRIVERS 1. The Purpose of the Project 2. Client, Customer and other Stakeholders 3. Users of the Product PROJECT CONSTRAINTS 4. Mandated Constraints 5. Naming Conventions and Definitions 6. Relevant Facts and Assumptions FUNCTIONAL REQUIREMENTS 7. The Scope of the Work 8. The Scope of the Product 9. Functional and Data Requirements The Volere RS template The Volere RS template Units Tolerance Value ranges Error values Name of entity Aliases Type Description Rationale Constraints Human-made indices are still better Kristian Sandahl, IDA krisa@ida.liu.se Easy to find support for automatic generation Kristian Sandahl, IDA krisa@ida.liu.se write a personal reflection. Ask a friend to criticize them writtenly, or different type. Continue writing about 10 requirements of Requirements will be changed Quite easy with tools Paper-based specifications needs some thinking: Loose-leaf binders Change bars Short, self-contained chapters Refer to labels, not pages Create table of contents Create index Home assignment Kristian Sandahl, IDA krisa@ida.liu.se newly hired personnel Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se It is worthwhile to buy professional training for word processor and common sense Meanwhile, use your standard templates of your Many, many readers justify the investment Make documents easy to change Relations Links Lay out the document for readability Help readers find information Kristian Sandahl, IDA krisa@ida.liu.se adherence Can develop into an ontology => massive information exchange, search and checking Often well-supported in tools Often forgotten in student-RSs Needs maintenance and terms in diagrams A glossary for variables and Readers and writers might have their own meaning of terms Requirements engineer develops a jargon that need to be explained Use a glossary, start with a standard one, adapt and maintain Highlight terms in the text that can be found in the glossary Use a data dictionary Define special terms Function Function It shall be possible to set different privileges for each participator in a course. The privileges are: add news, remove news, add files, remove files. ID (sorted) 10XX – Product level 20XX – Feature level 30XX – Function level 40XX – Component level Course Start Page The Course Start Page shall contain: Course Contents News, Link to Course Participators, Link to Course File Archive, Course Calendar, Link to Course Information, Link to Course Literature List, Link to Course Links, Link to Course Discussion Forum. Participator Privileges LEVEL 3 065 3 062 3 065 3 062 3 147 Change Privileges for Course Participators Related req. on the level below Discussion Forum Product Access Course Info Manage Course Participators Related req. on the level above 2 107 2 120 2 097 2 057 • 4 sections (Product-, Feature-, Function-, and Component level) • The req. present are the basis of the experiment (what you should base your answers on!) The requirements specification - 1 BESQ - www.bth.se/besq SERL - http://www.bth.se/tek/serl SIREN - http://www.siren.lth.se/ Department of Systems and Software Engineering School of Engineering Blekinge Institute of Technology Tony Gorschek & Mikael Svahnberg Experiment Design by - Experiment in Requirements Engineering Requirements Abstraction and Work-up Feature Function 3 147 3 065 3 062 3 060 3 059 3 058 3 069 3 148 2 057 2 057 3 059 2057 3 148 3 150 3 149 Manage Course Participators Course Participant Administration 2 057 2 057 2 057 2 057 2 057 1 118 2 057 What if a user is no longer a participator of any course? What should happen to his/her profile? What if I want to remove 100 users in one go? Course participators also include Course Tutors. 2 057 When conducting a course it is good to have access to the participants in the course. This enables quick and easy communication with them, and enables them to find and communicate with each other. The requirements specification - 2 It shall be possible to attach and manage participators to a course. Remove It shall be possible to remove users as Participators from participators from a course. Course Manage Course Participators 2 057 2 057 A structured way of working Access to Add and Remove Course Participators 3059 Access to Change Course Participator Role Access to Add and Remove Course Participators Change Privileges for Course Participators Course Start Page Contents Participator Privileges Course Participator Roles Remove Participators from Course Add Participators to Course Course Administration Contents Access to Change Course Participator Privileges Utilizing several levels of abstraction Requirements Abstraction Model Up to product level and down to function level RAM example