Abstract

You have a better chance of finding a solution if you understand the problem. —From teaching experience SOFTWARE ARCHITECTURE—THE CENTER PLACE OF SOFTWARE DEVELOPMENT Software architecture is the highest level of a software system definition that can include subsystems with their own architectures. The main question is how deep one should go into the nested abstractions to define software architecture. The general answer is to stop right before implementation details that can be considered “private” parts of the design. More visible and exposed “public” containers, components, and connectors of the system with their run-time behavior and relationships comprise software architecture. Software architecture has its own worlds of “what,” “why,” and “how”. The what world is mostly inhabited by industry standards, tools, and modules. The how world is about development process, design patterns, and architectural styles. The why world is a map between requirements criteria and the worlds of what and how. Design patterns [1, 2] and architectural styles [3] are very close by their nature but different in their scope and manners. Both are symbol names and concepts that describe approaches to common development problems. Multiple architectural views work as light projectors helping us to see the systems from different sides by eyes of different parties interested in the product. ARCHITECTURAL ELEMENTS, STYLES, VIEWS, AND LANGUAGES Most of today's enterprise applications are built with object-oriented architecture , in which system components encapsulate data and behavior and communicate via messages. Components, containers, and connectors are basic elements of the architecture.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call