A software analysis model compares abstract processes to the behavior of a program under development, aiming to find smaller patterns and appropriate design patterns. It provides a framework for thinking about a project and is intended for abstract analysis. Real-world examples are often used, but complications can occur for very large programs.
A software analysis model is a method of designing a computer program by equating abstract processes or models to the behavior of the program under development. The concept is to compare a type of pattern that works effectively in a given context, usually in the real world, and then apply the same logic and sometimes pattern terminology to the program you are designing. By evaluating the overall functioning of a program or module in this way, the goal is to find smaller patterns when analyzing the software and, potentially, appropriate design patterns to start working out the real implementation details. Unlike design patterns that are often used to help design implementation and code, a software analysis pattern is more intended to provide a framework for thinking about a project so that the complexities are better visualized. There is no formal definition for the use or development of a software analysis model, although several examples of models exist.
In the initial stages of software development, a software analysis model is intended to help structure the big picture of a program and how its parts relate to each other. The model is intended for abstract analysis, however, and not for working out the smallest details of an application, such as individual methods, variables or file formats. One reason for the abstraction is that the concept of a single software analysis model can be modified only slightly and then reused for other software that might, in fact, do a completely different task.
When developing the software analysis model, real-world examples are often used. An example would be using a post office as a software analysis model for a simple message server. In this example, the letters would represent a message and a stamp could represent some type of server validation. A mailbox becomes a message queue and collection and delivery times are linked to the sending and receiving processes. In this way the complex structure of the application can be abstracted and thought of in a more concrete way, such that the terminology of the source of the pattern can often translate into the names of the classes or components of the program itself during implementation.
Complications can occur when using a software analysis model, especially for very large programs. It is possible to oversimplify a program during development, so some subsystems may, during implementation, not fit strictly into the analytical model once built. Alternatively, a schema could be structured such that events within the program are modeled to match the schema and are clear, but may not necessarily be very efficient.
Protect your devices with Threat Protection by NordVPN