Software Architecture


This readings is about mainly software architecture and we have to answer one question which is ¿why is software architecture so important? Software architecture, also known as high-level design is top level defined, this means that we will know how the components will work, however we will known how are they made, it is macro, not micro. It will identify all the key software modules, identify which components will communicate with each other, thus it will map the Problem domain to a Solution domain.

It is so important to define a software architecture that if we do it correctly we will have a high level of maneuverability, it is important to note that we don't need a lot of information, the design after all comes after the requirements have been established.

Architecture will help us to define the following characteristics:
Validation:  With the architecture we can check that the system will meet all the requirements. We can check that it is feasible to build. We can ensure that design is consistent. The architecture ensures that there will be no duplication of work.

Communication: We use the architecture specification to communicate the design to all the interested parties. The documentation should always be kept up to date.

Discriminate: The architecture help us to make decisions, for example it identifies build versus decisions, determines whether a database is required and clarifies the error handling strategy. It will help to identify the areas that will be dangerous within the project.
We talk then about the components and the connections any architecture should have, components are any object, process, library, database or a third party product, software architecture will define the visibility of the object in order to know which other components will communicate with it. The connections identifies all the inter-component connections and describe their properties, it may be synchronous or asynchronous which mean if the process has to wait for it to terminate or not.

A key business to software architecture is to enable the addition of feature without major effort giving it the ability to sustain changes and ensure the application remains stable on its changes, it is important to know that a key feature of architecture is its simplicity.

Comentarios

Entradas populares