ࡱ> Y LDbjbjWW ,== ;9]8L`XRhh( VVVV:IVWW$Y[XuXh V V *CV | "f^URRequirements Analysis & Specification What is it? The first step in the development of any software system Particularly important in the development of Large & Very Large software systems where the mental manageability skills of a single person are inadequate for the size of the task The users' needs must be carefully identified and documented - an iterative process Definition Document describing the wants & needs of the clients/users The Process The phase is a WHAT phase rather than a HOW phase 'WHAT' questions are answered during this phase WHAT are the users' needs? WHAT is the current system, if there is one? WHAT are the constraints on the current & future systems? Resist the temptation to answer the HOW questions Requirements are both functional .describing function or service and non-functional describing system constraints such as time, money, platforms, etc. The Result/Output of the Phase is a Requirements Specification Document ( RSD ) It should reflect a mutual understanding between client & developer of the work to be completed and the various details surrounding that completion The RSD provides the basis between client & developer and for compliance testing - did we develop the right system? Contents An RSD should be: Unambiguous No room for interpretation Complete All the components should be described Verifiable 'Yes, this is what we want!' Consistent It shouldn't contradict itself Modifiable Adding future additions Traceable Backwards - where did the requirement come from Forwards - through all future phases Useable Reference document to future phases Requirement Analysis & Specification documents are read by different types of readers, therefore, the document should also be readable in different 'audience modes' Requirements Analysis Definition Client Managers End Users What the users' want Client Engineers Contractors 3rd Parties Development Architects Analysts Designers Requirements Specification Document End Users What the users' are to be given Client Engineers Development Architects Designers Developers What needs implementing Requirements Analysis & Specification has 4 Main Stages Feasibility Study Requirements Analysis Requirements Definition Requirements Specification Stages are iterative Feasibility Study Evaluates the ability to satisfy: a) identified user needs using the current software hardware & software technologies b) the constraints of the users' organisation - including budgetary constraints It may be that as part of the project, a new piece of hardware is developed Requirements Analysis Questions to be asked who are the people involved and what are their backgrounds? ( user analysis ) what is the current system ( if there is one ), what equipment constraints exist and what are the functions to be incorporated? ( environmental analysis ) when must the system be completed and what are the various timetables for changing over to the new system - installation, testing, training, etc ( project management ) what is the anticipated impact in terms of personnel, training, etc.? ( organisational analysis ) why is the new system being developed? ( reasoning ) what are the constraints in terms of costs, etc? Answers are gathered via interviews, observations, etc. Assessment of system goals are also required - cut costs, reduce errors, etc. The Requirements Specification should: completely specify technical requirements available equipment new equipment required specify constraints and functions specify what should be done in exceptional cases error processing in safety critical systems specify performance requirements Response times Storage & compression Requirements Specification should detail what the system will do ( again, notice WHAT rather than HOW ) and what the operational constraints are The Requirements Specification Document should be: understandable to client & developer ; & the language/descriptions used should be suitable for both parties agreed upon by the client and developer 'Yes, this is what we want!' 'Yes, we can do all this for you!' It should: state all functions to be performed list the functionality to be provided state all constraints that affect the system provide testable criteria for acceptance list qualities of the desired system ranked in terms of importance ( and how to measure them ) state the default conditions what the system can expect as the norm state error conditions & their resolution The document may contain: An introduction including general goals Documentation of the current system current physical current logical data dictionary file structures Documentation of the proposed system proposed physical proposed logical functional specifications ( services to be provided ) data dictionary file structures non-functional requirements ( constraints ) feasibility ( including estimates of time, money & personnel ) system evolution assumptions ( anticipated changes and their resolutions ) Glossary List of terms used with an explanation of what they mean Customer sign-off Actual space for client to sign printed copy Preliminary user manual Screen shots System Admin Guide The RSD should specify: the external system behaviour remember WHAT not HOW the constraints on the implementation It should be easy to change & serve as a reference document during future phases Acceptable responses to undesired events should be described Preparing an RSD A number of methodologies Natural language is used for most of it May be ambiguous & open to interpretation More structured methods may be used for more complex parts - diagrams, etc. Once the document is written, all parties should review it Requirements Analysis requirement feature of system or system function used to fulfill systems purpose focus on customer & problem, not solutions requirements definition document (customer) requirements specification document (programmer) Types of Requirements functional requirements implementation independent inputs, outputs, process, error handling non-function requirements (constraints) implementation dependent physical environment interfaces user & human factors functionality documentation data resources security quality assurance Validation of Requirements? correct? consistent? (free from conflict) complete? externally - all desired properties are present internally - no undefined references realistic? each requirement describes something needed by customer verifiable? (testable) traceable? Requirements Definition Document general purpose of system system background & objectives description of approach detailed characteristics of proposed system (data & functionality) system operating environment F.A.S.T. (Facilitated Application Specification Technique) problem definition meeting between customers & developers at neutral site rules for participation & preparation established agenda suggested (brain storming) facilitator appointed definition mechanism (sheets, flip charts, wall boards, stickers) goal is to identify problem, propose elements of solution, negotiate different approaches, specify preliminary set of requirements QFP (Quality Function Deployment) customer needs technical requirement normal requirements (minimal functional & performance requirements) expected requirements (important & implicit requirements) exciting requirements Functional Deployment (Value of Required Functions) Information Deployment (Data Objects Planned or Consumed by System) Task Deployment (Product Behavior Operating Environment) Value Analysis (Relative Priorities for Requirements) customer interviews observation surveys historic data Customer Voice Table extracts expected requirements derive exciting requirements Analysis Principles information domain of problem must be presented & understood models depicting system information, function, and behaviors should be developed models & problem must be partitioned in manner that uncovers detail in layers analysis proceeds from essential information toward implementation detail Specification Principles separate functionality from implementation a process-oriented specification language is needed specification must encompass system containing the software component specification encompasses system environment system specification = cognitive model specification must be operational specification must be tolerant of incompleteness & easy to add to specification must be localized & loosely coupled Requirements Review goals & objects review compare requirements to goals & objectives consider system operating environment assess & document all risks in system development operation discuss testing procedures Evaluating Specification Techniques requirements understandable to nave users requirements for basis for design & testing *automated requirements checking? requirements form external view of system technique aid in organizing and structuring requirements? *tool for prototyping? *automatic test case generation from requirements appropriate for application? Requirements Specification Methods data modeling data object tables are determined (attributes = fields) object = [record] normalization rules given instance of data object, use one value for attribute? attributes represent elementary items when more than one attribute is used to identify object, they describe some "key" all non-ID attributes represent some characteristic of instance name by key E-R diagram (Entity-Relationship) hierarchical data structure HIPO chart (Hierarchy Input Output chart) strength show function weakness no mechanism for non-functional requirements no checking mechanism data flow diagrams (DFDs) control flow diagrams (CFDs) decision table finite state machine set of machine states, S S0 S, start state F S, final states input symbols e transition function (NOTATION GOES HERE) event table vertical axis  system modes or states horizontal axis  events table entries  action Petri Net Structured Analysis & Design Technique (SADT) structured analysis structured analysis activity diagram structured analysis data diagram design technique explains how to interpret results of structured analysis (control issues) structured system analysis use data flow diagrams use data dictionaries pseudocode algorithms (control information) relational data tables indicate data relations requirements dictionary (a.k.a. data dictionary) all system elements dictionary format name alias where used & how (producer & consumer relations) content & description (notation for representation) supplementary information ERPP risks / unknowns inspiring use customer requirements technology interfaces risks in using ERPP premature delivery premature design selection features in prototype can get lost in final product there is tendency to choose efficiency over modifiability requirements analysis what when cost competition reuse risk contingencies rewards design conversion of requirements into algorithms & data structures implementation & testing code / test / debug final spin cycle each module is evaluated leave as is rewritten replaced with existing code discarded as no longer needed reimplementation symptoms prototype spaghetti code *prototype cannot be extended to meet full user requirements work to fix work to start again Software Engineering Requirements Analysis Stating problem to be solved & requirements which exist that define a successful solution to the problem Specification Complete specification of the technical requirements for the system including precisely what system is supposed to do and the operational constraints Often serves as a performance contract between developer & customer Results of this phase embodied in a requirements specification document Important that this document communicates information clearly, accurately & completely 5 W & 1 H Questions Who? What? When? Where? Why? How? Functional Requirements Described by data-flow diagrams, activity specifications & data dictionary Describe how system should behave given certain input Non-functional Requirements Requirements or restrictions posed by the customer or the problem Do not relate directly to functions or operations to be performed by the system Points to note when writing non-functional requirements: Should be written so that they can be empirically verified once system is created Avoid vague statements For example,"system must respond quickly" - difficult to verify Non-functional Requirements Points to be Considered User Interface & Human Factors Documentation Hardware Considerations Performance Characteristics Error Handling & Extreme Conditions System Interfacing Quality Issues System Modifications Physical Environment Security Issues Resources & Management Issues Requirements Specification Specifications should clearly, completely & consistently specify the technical requirements for the system, including software, hardware & manual components Developing the Requirements Specification Document - 1 Check List The document should be readily understandable by both the customer & the developer The conditions stated in the document should be mutually agreeable to both developer & customer The specification must precisely state all functions to be performed by the proposed system Developing the Requirements Specification Document - 2 The specification must state all constraints which affect the proposed system The document must provide testable criteria for acceptance of the system The qualities of the desired system should be listed, together with their relative importance, and how these qualities will be measured or tested Default & error conditions should be stated whenever necessary Contents of the Requirements Specification Document - 1 General Goals Provides a description of problem to be solved & the proposed solution Should be written at a general, introductory level For small systems, 1 to 2 pages sufficient Description of Current System using DFDs, process descriptions etc. Description of Proposed System using DFDs, process descriptions etc. Contents of the Requirements Specification Document - 2 Glossary Dictionary of words & terms used, along with definitions Should include all words, phrases & abbreviations used in document which might not be known to readers of the document Final Section Contract between customer & developer Summarises aspects of project such as deadlines, contractual obligations, etc. Evaluating the Requirements Specification Primary technique available is the review Review An evaluation of technical material by a group of people working together Goal To obtain accurate information concerning status and/or quality of the technical material May be formal or informal http://www.cs.clemson.edu/%7Ekjhay/CpSc472/Week1/index.htm http://dragon.seowon.ac.kr/%7Eyklee/course_mtrl/method/slide/week2/index.htm http://dragon.seowon.ac.kr/%7Eyklee/course_mtrl/method/slide/week3/index.htm http://dragon.seowon.ac.kr/%7Eyklee/course_mtrl/method/slide/week5/index.htm http://www2.ics.hawaii.edu/~johnson/413/lectures/5.2.html Page  PAGE 2 (Alex Fleming, 2001 Page  PAGE 26 V X ,7RCc +,78EF  X!!!!! " "J"L"j"""""",###$$7$^%v%''''B)d)****8,:,`,b,,,----.. . .]0a033J4L4~4444OJQJ 0JOJQJ0JOJQJ5>*0J>*H*X&2kq|%@m2u[  A &2kq|%@m2u[  A L i t  ý{xrxlxfc` " E o    :       I      %A L i t   A B  # 8 I U a x    A B  # 8 I U a x   . Z h z a )٬|vspjd^   '   k       D        $  . Z h z a )wQ 1[o)wQ 1[o&5K8{9f 2\v{uolf` s   T }        a    B zY$&5K8{9f 2\vv(:K Wa*H^#=e-yvpjgd H   =     ^ k   6br Y  %(:K Wa*H^#=e-95Q{  & F @&  & F @&  & F+@& & F @&  & F p@&  & F+ & F,-95Q{ %7S\}ü~qdWJGC<    ~   V   _   i   n   |           +      +   +       \+  +   , %7S\}!8Cd~Pc & F@&  & F+ & F@&  & F+@& & F@&  & F @& }!8Cd~PcF0 ,!X!!L"".#X#zwuuqjc`]W ,         }                +                            +   +      F0 ,!X!!L"".#X#r####$$$8$u$$% & F@&  & F, & F@&  & F+ & F@& X#r####$$$8$u$$%^%w%%%&I&p&&&'''3'^'''''*(V(x(»yrkhd]V                                                     ,   ,   ,  ,  ,  %^%w%%%&I&p&&&'''3'^'''''*(V(x(((( & F@&  & F@&  & F@&  & F@& x((((%)B)e)s))))*5****+>+G+V+_++++++yrkd]VOHA          +   +   +   +   +        +  7      0   V  +   +   +                  (%)B)e)s))))*5****+>+G+V+_+++++++2, & F+@& & F@&  & F+@& & F@&  & F@& ++2,\,,,,-d----.0.U.v....//I/y/////ǿxqjc\UND   +  , +  + +  * +  ) +  ( +  ' +  &   +  % +  $ +  # +  " +  !     +  +  +      +   +   +   +   +     2,\,,,,-d----.0.U.v....//I/y//// & F@&  & F+ & F@&  & F+@&/// 0A0[0]0b00000000&1`1v1|11111111 & F@&  & F+ & F@ @& // 0A0[0]0b00000000&1`1v1|1111111ƾ}ume]UME+  9+  8+  7+  6+  5+  4+  3+  2          +  1+  0+  /+  .+  -~            111102Z2|22223N33324v4x4z4|4~4445555z6{667»ynk`U/  D/  C.  B          +  A           +  @ +  ? +  >'+  =e+  <l+  ;u+  :11102Z2|22223N33324v4x4z4|4~4445555 & F@&  & Fp@&  & F+45555{6]7u771828M88889999:;;;;==>>@@AABDDDDD D!D"D#D$D=D>DDDEDGDHDIDLD6 j60JmH j0JU0J5CJ5CJ5CJ5CJ55CJ 25z6{667^7v7{777777771828N88889l999 & F4 & F3 & F2 & F1 & F0 & F/ & F.7^7v7{777777771828N88889l99999ƻ򥚔~xmbWLF 4  Su3  R3  Qm2  P n2  O1  N g2  M1  L1  K1  J1  I1  H1  G1  F0  E999:%:=:Y:}:::::::;;;;;F<<==:===c>> & F2 & F1 & F59:%:=:Y:}:::::::;;;;;F<<==:=ɾysh]RGA A2  c2  b2  a1  ` H1  _5  ^5  ]5  \$5  [35  ZF5  Yj5  X5  W5  V5  U5  T:===c>>>>>0?c?????@O@X@@AA>>>0?c?????@O@X@@AABLD%')+-.024689<>@CE )v-}X#x(+/179:= _PID_GUIDAN{348473C3-D3B3-11D5-ABB6-00C0DFEA7724}  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuwxyz{|}Root Entry FN%ؚH31TableG\WordDocument,SummaryInformation(vDocumentSummaryInformation8~CompObjjObjectPoolH3H3  FMicrosoft Word Document MSWordDocWord.Document.89q