Flow Diagram Software

Software Architecture

What Is Software Architecture?


Computing systems are the most complex systems ever built. It involves studying the interaction between diverse hardware platforms and software artifacts with the environment of the placement of these applications. Software architecture is all about designing software components and making them work together.

The term "software architecture" is comparatively new to the computer science industry; however, the fundamentals of the term have been applied by engineers since mid 1980s. Previously, a set of box and line diagrams were used to explain software architecture, which was imprecise and disorganized. Since the 1990's efforts have been made to code the fundamental aspects of this subject. It was during the 90s that the initial styles, design patterns, description languages, best practices, and formal logic were developed. The principle of software architecture is based on the idea of decreasing complexity via abstraction and disintegration of concerns. However, the precise definition of the term "software architecture" is non existent. From the perspective of a software architecture user, software architecture gives instructions to take steps and perform tasks involved in a specialty area/interest of the user. Software architecture forms a central cohesive source of a successful software-intensive system. Software architecture is the base and attributes a system's qualities such as reliability and performance. A clearly documented and correctly designed architecture can be the linchpin for a project's success.

This field of study has gained popularity with increasing research on architectural styles, description languages, formal methods, and architecture documentation. Software architecture is described using Architecture description languages (ADLs). Numerous different organizations have developed several ADLs including Wright (developed by Carnegie Mellon), xADL (developed by UCI), Acme (developed by Carnegie Mellon), DAOP-ADL (developed by University of Málaga) and Darwin (developed by Imperial College London). Components, configuration and connectors are common elements of these languages.

Software architecture is usually organized in views. Some of the possible views are User action/feedback view, Concurrency/process/thread view, Code view, Functional/logic view, Physical/deployment view, and Development/structural view. Software architects design software, and their responsibilities include expressing the architectural vision, conceptualizing different architectural approaches and experimenting with the alternatives, creating models of specification documents, and validating the created architecture.

In conclusion, software architecture of a process or computing system is the structure of the system comprising software elements, properties of the elements, and the relationship between them. Software architecture also refers to documentation of a system. Documenting software architecture enables better business communication; it documents initial steps of high-level designs, and permits the reuse of patterns and design components of projects contributing to growth.

Flow Diagram Software >> Privacy Policies