Blueprint to success

The software architecture is a depiction of the system to understand how it will behave. It is the blueprint for both the system and the project developing it, defining the work assignments by design and implementation teams.

96ae190a9fd41bdd5b430eeee2049a1f
Pinimg

It seeks to build a bridge between business requirements and technical requirements by understanding use cases, and then finding ways to implement those use cases in the software. By building effective architecture, you can identify design risks and solve them early in the development process. It divides in 4 types:

  • Business architecture − Defines the strategy of business, governance, organization, and key business processes within an enterprise and focuses on the analysis and design of business processes.
  • Application (software) architecture − Serves as the blueprint for individual application systems, their interactions, and their relationships to the business processes of the organization.
  • Information architecture − Defines the logical and physical data assets and data management resources.
  • Information technology (IT) architecture − Defines the hardware and software building blocks that make up the overall information system of the organization.

RESOURCES: Tutorialspoint


Software Architecture

The software architecture is a process of declaring the components of a software, such as the requirements and functionality of it. Also, software architecture includes the quality attributes such as performance, security, and manageability. It is important, because it can reach a better communication between the customer and the software engineers.

software20architecture_en

In the software architecture, decisions are made in order to follow a schedule. This structure is very helpful to follow the tasks or steps to reach the final product. It can reduce the lapse time of the project because of the organization. The architecture is supposed to be redacted in a way in which all of the involved people can understand.

The architecture can be divided in four statements: the creation of a understanding system, create accessible knowledge and accessible decisions, have an efficient development, and  reduce the risks while completing tasks. Not all the architectures leave you in the best way to success, but it is a great tool or guide.

Retrieved from https://msdn.microsoft.com/en-us/library/ee658098.aspx .


Software Architecture

8383077596_0693e2ba3a_o.jpg

3

We have talked a little about Software Design, and to be more specific we have talked about UML. This diagrams tools help us to design our general idea of understandig how software is going to behave.

Software Architecture is a little bit different. In a Software Architecture diagram, you show the “skeleton” of your software, is like thinking in layers were you separate by layer the functionality and each layer is intercomunicates with the others surrounding them by priority or programming level.

Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. It involves a series of decisions based on a wide range of factors, and each of these decisions can have considerable impact on the quality, performance, maintainability, and overall success of the application.

 

Architecture comprises the frameworks, tools, programming paradigms, component-based software engineering standards, high-level principles.

The goal of architecture is to identify the requirements that affect the structure of the application. Good architecture reduces the business risks associated with building a technical solution.

Key Architecture Principles

Consider the following key principles when designing your architecture:

  • Build to change instead of building to last. Consider how the application may need to change over time to address new requirements and challenges, and build in the flexibility to support this.
  • Model to analyze and reduce risk. Use design tools, modeling systems such as Unified Modeling Language (UML), and visualizations where appropriate to help you capture requirements and architectural and design decisions, and to analyze their impact. However, do not formalize the model to the extent that it suppresses the capability to iterate and adapt the design easily.
  • Use models and visualizations as a communication and collaboration tool. Efficient
    app.PNG
    Continue reading "Software Architecture"