Formalizing Operations And Relationships On Objects To Support Dynamic Refinement Of Process Models Instances
Michel Rueher · 2005
Enacting a software process requires a dynamic generation of the next activities to be peiformed (based upon a static predefined model). Most real software processes can only be: coded effectively if new object types can be created dynamically, and if existing types can be altered dynamically (new sub-processes have to be created and must be linked in dynamically). Che may argue that statically defined models are preferred by software project managers. However, it is very difficult to foresee the object types which actually fit the requirements of software engineers. The great amount of proposed models in the litterature shows also that it is very hard to get an agreement on the useful type of objects. That is why we suggest to offer flexilbility in adapting existing shells to specific needs. Such a high degree of dynamism requires the availability of detailed and manipulable informations concerning the objects and their interrelationships, so that changes can be precisely specified and the ripple effects of changes can be accurately determined and compensated for. Hence, we suggest representing the software process through a multiform object encapsulating the various data items generated by this process (i.e specifications, prototype, documentation, test cases, code,...). In order to allow an accurate analysis of actual experiments, we propose recording both the semantic operations performed on such objects and their inter-relationships [RLL88,RuM90]. There is a general agreement of products centred software processes but most approaches focus rather on large grain components (e.g. modules [Naf90]). We argue that effective controlling of the modifications and refinements of process models instances need to pay careful attention to fine level components of process models.