The traditional approaches to software development identified and defined rigid flows of procedures to support business processes or activities. With these approaches, data is defined separately from the procedures that act upon that data. Consequently, systems developed using traditional approaches to software development are rigid and difficult to change. It’s often necessary to modify a large number of parts of the system just to implement a single, small change. These traditional approaches to software development are effective only in situations where requirements are specific and unlikely to change over time.
How can we then solve the complex problems of modern businesses who depend on agility and automation to compete in the global market? As most organizations have come to realize over the past few decades, the solution is to localize the impact of change across the system by representing the elements, behavior, and data of the business world as objects that interact with one another. This approach for analyzing and designing applications, systems, and businesses is referred to as object-oriented analysis and design (OOAD).
Object-oriented analysis groups elements that interact with one another to create a model that represents the functionality and objectives of the system as a whole.
Object-Oriented Analysis Versus Structured Analysis
Compared to other forms of analysis, such as structured analysis, object-oriented analysis integrates both behavior and data. Its main advantages include the focus on data, the way encapsulation helps develop tamper-proof systems, and the way modularity makes the management of complex systems easier.
However, systems that are procedural or computational in nature might be hindered by the restriction of functionality within objects, and the fact that the interfaces between the objects can’t be represented in a single diagram. This is where structured analysis shines, and where it still has its firm place.
Tasks in Object-Oriented Analysis
The main tasks in object-oriented analysis are:
Object interaction description
Object behavior definition
Object internals definition
To accomplish these tasks, it’s necessary to accurately elicit requirements from stakeholders, defining the problem to be solved. These requirements are usually described using use cases or user stories. Use cases list actions or event steps that define the interactions between a role and a system to achieve a goal while user stories shift the focus from writing about requirements to talking about them by using natural language to describe these requirements from the perspective of an end user.
Object-oriented analysis helps businesses deal with the inherent complexity of modern software systems that must support dynamic and ever-changing business activities and systems. While not without its shortcomings, its benefits are undeniable.