1 / 18

SOFTWARE ENGINEERING LECTURE 3

SOFTWARE ENGINEERING LECTURE 3. Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements are independent of the implementation tools, programming paradigm, etc.

airlia
Download Presentation

SOFTWARE ENGINEERING LECTURE 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOFTWARE ENGINEERING LECTURE 3 • Today: Requirements Analysis • Requirements tell us what the system should do - not how it should do it. • Requirements are independent of the implementation tools, programming paradigm, etc. • However, the requirements are then analysed with the intended implementation methodology in mind.

  2. THE BASIC WATERFALL MODEL Requirements analysis Design Implementation Testing Maintenance

  3. PROTOTYPING FOR REQUIREMENT ANALYSIS Requirements analysis - V&V Design - V&V Quick Design - V&V Implementation - V&V Quick Implementa-tion - V&V Testing - V&V V&V = Verification and Validation Maintenance - V&V

  4. REQUIREMENTS ANALYSIS • Aims at producing a requirements specification. • Is generally the most crucial phase of an average software project - if it succeeds then a complete failure is unlikely. • The requirements specification can be used as a basis for a contract. • If so, then the requirements specification will also be eventually used to evaluate if the software fulfills the requirements.

  5. … REQUIREMENTS ANALYSIS • First the requirements must somehow be extracted. • As users generally can not work with formal specifications, natural language specifications must often be used. • Then the requirements must be documented to be used in the later stages of software development. Now a more formal specification method may be possible.

  6. TYPICAL DOCUMENTS • Basic textual document, e.g. according to the ANSI/IEEE Standard 830 – will be discussed later. • A conceptual model of the domain. • A description of the processes, e.g. a data flow diagram. • A textual description of the use cases – will be discussed later.

  7. FORMAL LANGUAGES • Usually much too difficult to understand even for an above average user. • You may be able to verify the system, but how can you verify the requirements? • They are usually used for critical well-defined systems and/or concurrent processing, which is notoriously difficult to handle.

  8. GRAPHICAL LANGUAGES • Examples: - Entity-Relationship (ER) model for conceptual description- Data Flow diagrams for process description • Simple languages (like the above) work well in practice • In requirement specification, they should be used to model the application domain and the processes.

  9. GOOD REQUIREMENTS SPECIFICATION QUALITIES • Complete • Accurate • Unambiguous • Verifiable (How can you verify ”user friendliness”?) • Consistent • Modifiable (also the requirements change) • Traceable (where has each requirement come from?)

  10. OVERALL STRUCTURE FOR REQ. SPEC. (Ansi/IEEE Standard 830) • 1. Introduction 1.1. Purpose 1.2. Scope 1.3. Definitions, Acronyms and Abbreviations 1.4. References 1.5. Overview2. General Description 2.1. Product Perspective 2.2. Product Functions 2.3. User Characteristics 2.4. General Constraints 2.5. Assumptions and Dependencies3. Specific Requirements

  11. ANSI/IEEE: Specific requirements • 3. Specific requirements 3.1. Functional Requirements 3.2. External Interface Requirements 3.3. Performance Requirements 3.4 Design Constraints 3.4.1. Standards Compliance 3.4.2. Hardware Limitations … 3.5. Attributes 3.5.1. Security 3.5.2. Maintainability … 3.6. Other Requirements 3.6.1. Data Base …

  12. ANSI/IEEE: Specific requirements • 3. Specific requirements 3.1. Functional Requirements 3.2. External Interface Requirements 3.3. Performance Requirements 3.4 Design Constraints 3.4.1. Standards Compliance 3.4.2. Hardware Limitations … 3.5. Attributes 3.5.1. Security 3.5.2. Maintainability … 3.6. Other Requirements 3.6.1. Data Base … • 4. Extensions (acceptance criteria, other material...)

  13. ANSI/IEEE: FUNCTIONAL REQUIREMENTS • 3.1. Functional Requirements 3.1.1. Functional Requirement 1 3.1.1.1 Introduction 3.1.1.2 Inputs 3.1.1.3 Processing 3.1.1.4 Outputs 3.1.2 Functional Requirement 2 … 3.1.n Functional Requirement n • A typical way to express the requirements is ”The system shall” – ”Järjestelmän on ...” • Use cases (coming later) describe functionalities

  14. REQUIREMENTS SPECIFICATION - AN EXAMPLE • http://www.fsai.fh-trier.de/~federhen/dippaper/docu/11_Software_Requirements_Sp.html

  15. TECHNIQUES FOR GETTING THE REQUIREMENTS FROM USERS • Asking- Interview- Questionnaire- ”Brainstorming” sessions • Analysing an existing system- We must understand how the new system will differ from any old such system • Analysing the environment- e.g. process analysis • Prototyping- Gives best feedback and more formal specifications but can be expensive

  16. REQUIREMENTS ANALYSIS - What can go wrong? • Missing specifications- Happens often- Experience helps- Sometimes it is impossible to notice • Contradictions- Do not document the same thing many times- Integrate different users’ views with the users • Noise- Do not include material which does not contain relevant information

  17. REQUIREMENT SPECIFICATION - What can go wrong? (2) • Documenting a solution rather than the problem- If the users know some information technology, they want to start solving the problem as they express it.- Many formal (also graphical) methods tend to direct the process into this. • Unrealistic requirements- Although we model the problem rather than the solution, it is good to have some idea of what is possible.

  18. WHO SHOULD DO REQUIREMENT SPECIFICATION? • Someone who can communicate with the users • Someone who has experience • Someone who knows similar systems and/or the application area • Someone who knows what is possible and how (and how much work is roughly needed).

More Related