Page 126 - Software and Systems Requirements Engineering in Practice
P. 126

94   S o f t w a r e   &   S y s t e m s   R e q u i r e m e n t s   E n g i n e e r i n g :   I n   P r a c t i c e


                         As  previously  mentioned,  depending  on  the  starting  point,
                      several different types of models (e.g., business, feature, goal, analysis,
                      design, implementation) may be used. As we descend to lower and
                      lower levels within a business, feature, goal, or analysis model, we
                      include more detail.
                         The  lowest  level  in  an  analysis  model  consists  of  testable  use
                      cases, as described with scenarios, flowcharts, and state diagrams.
                      The lower-level use cases and requirements are the same except for
                      phrasing. For example, the use case might be “schedule a patient for
                      a followup visit”; with the corresponding requirement being “It shall
                      be  possible  to  schedule  a  patient  for  a  followup  visit  using  the
                      scheduling system.” It is important to define the lowest use case level
                      from the perspectives of both semantics and mechanics in order to
                      determine when a model is complete. For example, a definition of use
                      case completeness might include these considerations:
                          •  An individual use case shall be considered terminal (e.g., no
                             further decomposition) when it has no included or extending
                             use cases.
                          •  It has been defined with state or activity diagrams describing
                             both successful and unsuccessful outcomes.
                          •  It  provides  sufficient  information  for  the  creation  of  test
                             cases.
                          •  Its  documentation  is  suitable  for  use  as  a  requirement
                             definition.
                          •  It has been given a special stereotype of terminal use case (see
                             Figure 4.7).
                          •  A nonterminal concrete use case shall be considered complete
                             when  it  meets  all  the  quality  assurance  checks  for  a
                             nonterminal use case, and all of the leaf use cases that are
                             included or extend it have been defined and are complete.
                          •  A nonterminal abstract use case shall be considered complete
                             when  all  of  the  concrete  use  cases  reachable  from  it  are
                             complete.  By  reachable  we  mean  by  traversing  the  graph
                             consisting of nodes (use cases) and edges (dependencies, e.g.,
                             “includes,” “extends”).

                      Extracting Requirements from the Model
                      Prior to starting elicitation and analysis, it is necessary to understand
                      how model(s) will be used on a project. If models are only to be used
                      for background context and to provide information for testers, less
                      formality  is  required.  However,  if  models  are  to  be  mined  for
                      requirements  and  metrics,  or  if  various  artifacts  are  to  be
                      semiautomatically  generated  from  the  model,  then  a  more  formal
                      approach  is  needed.  Since  a  properly  crafted  model  is  an  acyclic
   121   122   123   124   125   126   127   128   129   130   131