Software for the most part are highly complex and expensive engineering solution. Therefore building them right the first time is extremely valuable to the stake holders. As any other complex structure, taking the time to plan in advance and remove as many road blocks as possible has proven over the years to be a great strategy. Most software engineering follow a Software Development Life Cycle (SDLC). Regardless of the project management methodology or development preference, Requirement Analysis and Modeling have consistently stood as top most priorities and that for obvious reasons. One cannot develop a system without knowing what the system is intended for. [1]
To ensure that the requirements are collected efficiently and to foresee the conceptual functionalities of the software to be developed, several modeling approaches are available. Among the industry favorite we have interaction diagrams, state charts and operation specification. In this article, we will define all three methods and evaluates the potential overlapping areas in order to discover the benefits of utilizing these tools.
An interaction diagram also known as communication or collaboration diagram is a graphical illustration of the different relationships and potential interactions among objects within a system. Its main purpose is to show how a group of object classified by role and functionalities collaborate in some behavior. [2]
Figure 1: Interaction Diagram
Like the interaction diagram, the state chart is also concerned about the objects defined within the system. But unlike any other graphical language, the state chart focuses on the different states that the object takes throughout its life cycle. State charts are heavily used in modeling dynamic aspect or the lifetime of a system. [3]
Figure 2: State Chart Diagram
Unlike the chart state and the interaction diagram that are mainly focused on how the object behaves either through the course of time or in relation with other objects within the system, the Operation specification approach looks at how the object operates within a defined ecosystem that includes objects and actors. Apply to model driven development, a well design modeled operation specification diagram could help speed up the development process. According to Jodi, to achieve a 100% code-generation of a software system we need to fully specify during the modeling phase the behavior of all required system operations (e.g. using some kind of action language, as the one provided by the UML). [4]
Figure 3: Operation Specification Diagram
Every Software project is unique in functional and non-functional requirements with unique preferable design approach. In their disparities in objectives and approaches, most software systems in addition to having behavioral and operational needs to be addressed, also have dynamic state changes and collaborative relationships among objects that need to be dissected and analyzed on a clear illustrations that are unique to the characters observed. In that sense, all three representations are not only important but essential to the success of the project. However, considering that the operation specification is mainly used to better understand and generate the behavioral models, it could be bypassed on smaller non-model driven development projects where the requirement are gathered efficiently.
this is my comment