Using objects for systems analysis
Jeffrey Parsons, Yair Wand · Communications of the ACM · 1997
he object-oriented approach originated as a programming and software design discipline offering advantages such as reusability, extendibility and portability.Recently, object thinking has been applied extensively to systems analysis [1,3,4,8,10].It has even been claimed that "the real payoff (of the object-oriented approach) comes from addressing front-end conceptual issues, rather than back-end implementation issues" [10].However, in this evo-lution, programming concepts have crept into some analysis methods.This is demonstrated by statements such as: "Objects serve two purposes: They promote understanding of the real world and provide a practical basis for computer implementation" [10] or "An object is any thing, real or abstract, about which we store data and those methods that manipulate the data" [8].We believe that improper adaptation of programming concepts has impeded the successful application of object-oriented systems analysis.Systems analysis involves modeling a domain.It is therefore fundamentally different from software design, which is implementation-oriented.According to Kilov and Ross [7], "the library of generic programming concepts is at too low a level for analysis."Of course, object-oriented analysis provides input for designing software.Accordingly, software design objectives such as modularity and reuse could be seen as relevant during analysis.We argue, however, that this perspective may interfere with understanding the domain by drawing attention to implementation considerations.This can be detrimental to system success, since "focusing on implementation issues too early . . .often leads to an inferior product" [10]. By drawing on distinctive models of representation we are able to analyze the role of objects in domain modeling.This method leads to a clearer understanding of various aspects of the OO approach.