If2036 sw requirement


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

If2036 sw requirement

  1. 1. IF2036 Rekayasa Perangkat Lunak Software Requirement Sem II 2012/2013
  2. 2. Requirements Engineering helps software engineers better understand the problems they are trying to solve produce a written understanding of the customers problem begins during the software engineering communication activity and continues into the modeling activity * SEPA 6th ed, Roger S. Pressman 2 IF2036 RPL - SW Requirement
  3. 3. What is a Requirement ? It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification Requirements may serve a dual function:  May be the basis for a bid for a contract - therefore must be open to interpretation  May be the basis for the contract itself - therefore must be defined in detail Both these statements may be called requirements * Software Engineering 7th ed, Ian Sommerville 3 IF2036 RPL - SW Requirement
  4. 4. Types of Requirement User requirements  Statements in natural language plus diagrams of the services the system provides and its operational constraints  Written for customers System requirements  A structured document setting out detailed descriptions of the system’s functions, services and operational constraints  Defines what should be implemented so may be part of a contract between client and contractor * Software Engineering 7th ed, Ian Sommerville 4 IF2036 RPL - SW Requirement
  5. 5. Definitions and Specifications User requir ement definition 1. The softw are m ust pr ovide a means of representing and 1. accessing e xternal files cr ea ted b y other tools . Sy stem requir ements specification 1.1 The user should be pr ovided with facilities to define the ty pe of 1.2 external files . 1.2 Each e xternal file ty pe ma y have an associa ted tool w hich m a y be 1.2 applied to the file . 1.3 Each e xternal file ty pe ma y be repr esented as a specific icon on 1.2 the user’ s displa y. 1.4 Facilities should be pr o vided for the icon r epresenting an 1.2 external file ty pe to be defined b y the user . 1.5 When a user selects an icon r epr esenting an e xternal file, the 1.2 effect of that selection is to apply the tool associated with the ty pe of 1.2 the external file to the file represented by the selected icon. * Software Engineering 7th ed, Ian Sommerville 5 IF2036 RPL - SW Requirement
  6. 6. User Requirements Should describe functional and non-functional requirements in such a way that they are understandable by system users who don’t have detailed technical knowledge User requirements are defined using natural language, tables and diagrams as these can be understood by all users * Software Engineering 7th ed, Ian Sommerville 6 IF2036 RPL - SW Requirement
  7. 7. Problems with natural language Lack of clarity  Precision is difficult without making the document difficult to read Requirements confusion  Functional and non-functional requirements tend to be mixed-up Requirements amalgamation  Several different requirements may be expressed together * Software Engineering 7th ed, Ian Sommerville 7 IF2036 RPL - SW Requirement
  8. 8. System Requirements More detailed specifications of system functions, services and constraints than user requirements They are intended to be a basis for designing the system They may be incorporated into the system contract System requirements may be defined or illustrated using system models * Software Engineering 7th ed, Ian Sommerville 8 IF2036 RPL - SW Requirement
  9. 9. Functional and Non-Functional Requirements Functional requirements  Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations Non-functional requirements  constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc Domain requirements  Requirements that come from the application domain of the system and that reflect characteristics of that domain * Software Engineering 7th ed, Ian Sommerville 9 IF2036 RPL - SW Requirement
  10. 10. Functional Requirements  Describe functionality or system services  Depend on the type of software, expected users and the type of system where the software is used  Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail * Software Engineering 7th ed, Ian Sommerville 10 IF2036 RPL - SW Requirement
  11. 11. Functional Requirement – Examples(Library System – LIBSYS) The user shall be able to search either all of the initial set of databases or select a subset from it The system shall provide appropriate viewers for the user to read documents in the document store Every order shall be allocated a unique identifier (ORDER_ID), which the user shall be able to copy to the account’s permanent storage area 11 IF2036 RPL - SW Requirement
  12. 12. Non-functional Requirements Examples (Library System – LIBSYS) Product requirement 8.1 The user interface for LIBSYS shall be implemented as simple HTML without frames or Java applets Organisational requirement 9.3.2 The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN-95 External requirement 7.6.5 The system shall not disclose any personal information about customers apart from their name and reference number to the operators of the system * Software Engineering 7th ed, Ian Sommerville 12 IF2036 RPL - SW Requirement
  13. 13. NF Requirements MeasuresProperty MeasureSpeed Processed transactions/second User/Event response time Screen refresh timeSize M Bytes Number of ROM chipsEase of use Training time Number of help framesReliability Mean time to failure Probability of unavailability Rate of failure occurrence AvailabilityRobustness Time to restart after failure Percentage of events causing failure Probability of data corruption on failurePortability Percentage of target dependent statements Number of target systems * Software Engineering 7th ed, Ian Sommerville13 IF2036 RPL - SW Requirement
  14. 14. Requirements Interaction Conflicts between different non-functional requirements are common in complex systems Spacecraft system  To minimise weight, the number of separate chips in the system should be minimised.  To minimise power consumption, lower power chips should be used.  However, using low power chips may mean that more chips have to be used. Which is the most critical requirement? * Software Engineering 7th ed, Ian Sommerville 14 IF2036 RPL - SW Requirement
  15. 15. Domain Requirements Derived from the application domain and describe system characteristics and features that reflect the domain Domain requirements can be a new functional requirements, constraints on existing requirements or define specific computations If domain requirements are not satisfied, the system may be unworkable * Software Engineering 7th ed, Ian Sommerville 15 IF2036 RPL - SW Requirement
  16. 16. Domain Requirements Problems Understandability  Requirements are expressed in the language of the application domain  This is often not understood by software engineers developing the system Implicitness  Domain specialists understand the area so well that they do not think of making the domain requirements explicit * Software Engineering 7th ed, Ian Sommerville 16 IF2036 RPL - SW Requirement
  17. 17. Requirements Completeness and Consistency  In principle, requirements should be both complete and consistent  Complete; they should include descriptions of all facilities required  Consistent; there should be no conflicts or contradictions in the descriptions of the system facilities  In practice, it is impossible to produce a complete and consistent requirements document * Software Engineering 7th ed, Ian Sommerville 17 IF2036 RPL - SW Requirement
  18. 18. Requirements Imprecision  Problems arise when requirements are not precisely stated  Ambiguous requirements may be interpreted in different ways by developers and users  Consider the term ‘appropriate viewers’  User intention - special purpose viewer for each different document type  Developer interpretation - Provide a text viewer that shows the contents of the document * Software Engineering 7th ed, Ian Sommerville 18 IF2036 RPL - SW Requirement
  19. 19. Guidelines for Writing Requirements Invent a standard format and use it for all requirements Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements Use text highlighting to identify key parts of the requirement Avoid the use of computer jargon * Software Engineering 7th ed, Ian Sommerville 19 IF2036 RPL - SW Requirement
  20. 20. Alternatives to NL specificationNotation DescriptionStructured natural This approach depends on defining standard forms or templates to express thelanguage requirements specification.Design This approach uses a language like a programming language but with more abstractdescription features to specify the requirements by defining an operational model of the system.languages This approach is not now widely used although it can be useful for interface specifications.Graphical A graphical language, supplemented by text annotations is used to define thenotations functional requirements for the system. An early example of such a graphical language was SADT. Now, use-case descriptions and sequence diagrams are commonly used .Mathematical These are notations based on mathematical concepts such as finite-state machines orspecifications sets. These unambiguous specifications reduce the arguments between customer and contractor about system functionality. However, most customers don’t understand formal specifications and are reluctant to accept it as a system contract. * Software Engineering 7th ed, Ian Sommerville 20 IF2036 RPL - SW Requirement
  21. 21. The Requirements Document The requirements document is the official statement of what is required of the system developers Should include both a definition of user requirements and a specification of the system requirements It is NOT a design document.  As far as possible, it should set of WHAT the system should do rather than HOW it should do it * Software Engineering 7th ed, Ian Sommerville 21 IF2036 RPL - SW Requirement
  22. 22. Users of a Requirements Document Specify the requirem ents and read them to check that they Sy stem customers meet their needs. T hey specify changes to the requirements Use the requirements docum ent to plan a bid for Managers the sy stem and to plan the sy stem development process Sy stem Use the requirem ents to eng ineers understand what sy stem is to be developed Sy stem test Use the requirem ents to eng ineers develop validation tests for the sy stem Sy stem Use the requirements to help maintenance understand the sy stem and eng ineers the relationships between its par ts* Software Engineering 7th ed, Ian Sommerville 22 IF2036 RPL - SW Requirement
  23. 23. IEEE Requirements Standard Defines a generic structure for a requirements document that must be instantiated for each specific system  Introduction  General description  Specific requirements  Appendices  Index * Software Engineering 7th ed, Ian Sommerville 23 IF2036 RPL - SW Requirement
  24. 24. Requirements DocumentStructure  Preface  Introduction  Glossary  User requirements definition  System architecture  System requirements specification  System models  System evolution  Appendices  Index * Software Engineering 7th ed, Ian Sommerville 24 IF2036 RPL - SW Requirement
  25. 25. Requirement Engineering Tasks Inception  software engineers use context-free questions to establish a basic understanding of the problem, the people who want a solution, the nature of the solution, and the effectiveness of the collaboration between customers and developers Elicitation  find out from customers what the product objectives are, what is to be done, how the product fits into business needs, and how the product is used on a day to day basis Elaboration  focuses on developing a refined technical model of software functions, features, and constraints using the information obtained during inception and elicitation * SEPA 6th ed, Roger S. Pressman 25 IF2036 RPL - SW Requirement
  26. 26. Requirement Engineering Tasks(2)  Negotiation  requirements are categorized and organized into subsets, relations among requirements identified, requirements reviewed for correctness, requirements prioritized based on customer needs  Specification  written work products produced describing the function, performance, and development constraints for a computer-based system  Requirements validation  formal technical reviews used to examine the specification work products to ensure requirement quality and that all work products conform to agreed upon standards for the process, project, and products 26 IF2036 RPL - SW Requirement
  27. 27. Requirements Checking  Validity. Does the system provide the functions which best support the customer’s needs?  Consistency. Are there any requirements conflicts?  Completeness. Are all functions required by the customer included?  Realism. Can the requirements be implemented given available budget and technology  Verifiability. Can the requirements be checked? * Software Engineering 7th ed, Ian Sommerville 27 IF2036 RPL - SW Requirement
  28. 28. Requirements Validation Techniques  Requirements reviews  Systematic manual analysis of the requirements  Prototyping  Using an executable model of the system to check requirements  Test-case generation  Developing tests for requirements to check testabilitys * Software Engineering 7th ed, Ian Sommerville 28 IF2036 RPL - SW Requirement