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

u
                                                             i
                                                          e
                                                           q
                                                              r
                                                               e
                                             a
                                            h
                                                        R
                                                    4
                                                 e
                                                  r

                                           C
                                                     :
                                                t
                                               p
                                                                m
                                                                            l
                                                                           e
                                                                         d
                                                                             i
                                           C h a p t e r   4 :      R e q u i r e m e n t s   M o d e l i n g      77 77
                                                                              g
                                                                             n
                                                                        o
                                                                    t
                                                                   n
                                                                 e

                                                                     s
                                                                       M
                      complex processes that can be difficult to understand, even for a subject
                      matter  expert.  Some  very  simple  modeling  needs  can  be  inferred
                      from the need for abstraction:
                          •  Process  models  should,  in  general,  be  understandable  by
                             viewers who are not experts in the domain being described
                             (there are, of course, exceptions, such as views of complex,
                             domain-specific information).
                          •  Models should be coherent. That is, there should be no holes
                             or discontinuities. For example, when describing how a bank
                             customer cashes a check, the reader should be able to traverse
                             views easily from the point where the customer enters the
                             bank until the customer is handed money.
                          •  Tools used to create and view models should be easy to use
                             and should enable processes, not cause difficulties.
                         Modeling tools and techniques must work in the context of the
                      organization and project where they are being used. For example, if
                      requirements are being elicited in a distributed fashion, then the tools
                      should support distributed requirements elicitation.
                         For our purposes, a model can be defined as “A representation of
                      a system that allows for investigation of the properties of the system
                      and, in some cases, prediction of future outcomes.” We can infer then
                      that requirements models can be used to
                          •  Provide  views  that  allow  us  to  understand  product
                             requirements precisely.
                          •  Provide views that show generalizations or simplify complex
                             relationships between requirements.
                          •  Describe the context or background in which a product will
                             be used.
                         In systems and software engineering, modeling for analysis has
                      very  different  goals  than  modeling  for  design.  Martin  Fowler  has
                      stated  about  software  design:  “The  fundamental  driver  behind
                      [graphical modeling languages] is that programming languages are
                      not at a high enough level of abstraction to facilitate discussions about
                      design” [Fowler 2004]. This chapter concerns itself with the use of
                      models  for  elicitation  and  analysis.  In  requirements  engineering,
                      elicitation and analysis models are specifically used to
                          •  Provide aids for the elicitation of customer needs.
                          •  Clearly  define  customer  processes  and  the  context  for  any
                             products being developed.
                          •  Provide  a  vision  for  how  a  product  might  be  used  after
                             completion and deployment.
   103   104   105   106   107   108   109   110   111   112   113