# SE2 - lesson 04 #### Elisabeta di Nitto ##### 15 October 2015 ## Requirement analisys pt.II The boundary between the world and the machine may vary The purpose of a RE activity is: - Identify the __goals__ of the project - Explore alternative ways of satisfying the goals - Evaluate strenght and risks of each alternative, to select the most appropriate ### Requirement Analisys and Specification Document - RASD - It is used as a *baseline* for __software evaluation__ #### Stakeholders of the RASD - Customers & users - System analysts, requirements analysts - Developers, Programmers - Testers - Project managers It tipically has a __multilevel structure__, and it's defined by IEEE standard 1. __Introduction__ - Purpose - Scope: Identifies the product and the application domain - Definitions, acronyms, abbreviations - Reference documents - Overview 2. __Overall Description__ - Product perspecive: Describes all esxternal interfaces (system, user, hardware, ...) - Produt functions 3. __Specific Requirements__: the body of the document ### section 3: Specific Requirements 3.1 __External interface requirements__ - 3.1.1 User interfaces - 3.1.2 H 3.2 __Functional Requirements__ 3.3 __Performance Requirements__ 3.4 __Design Constraints__ 3.5 __Software System Attributes__ 3.6 __Other Requirements__ ### Target qualities for a RASD - __Completeness__ - __Pertinence__ - __Consistency__ - __Unambiguity__ - __Feasibility__ - __Comprehensibility__ - __Good Structuring__ - __Modifiability__ - __Traceability__ ### Functional Requirements bad examples > The system shall validate and accept credit cards and cashier's checks. High priority. Two requirements are expressed together. > The system shall process all mouse clicks very fast to ensure users do not have to wait This requirement is not specific, it doesn't give a measure of "fast" > The user must have Adobe Acrobat installed It is a constraint, not a requirement. ### Types of requirements - __Functional requirements__ - __Nonfunctional requirements__ - __Constraints__ While functional requirements have to be provided by the end user, Nonfunctional requirements are __independend of the application domain__ Nonfunctional requirements are also calles __QoS requirements__ ### Project initiation An important step is making an __Interview__ with the customers