Baixe o app para aproveitar ainda mais
Prévia do material em texto
COEN 285 NAME: RICARDO GUIA HOMEWORK 3 These past few lectures we have discussed various software architecture engineering approaches with respect to design and design rationale. For this write up, go back to your notes the first week or two of class. With the knowledge you have gained so far, answer the following: 1. Describe the manner in which Software Architecture is a silver bullet. Software architecture is a silver bullet for the creation of software. First of all, the definition of software architecture in Wikipedia1: • Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. These structures are needed to reason about the software system. Each structure comprises software elements, relations among them, and properties of both elements and relations.[1] The architecture of a software system is a metaphor, analogous to the architecture of a building In addition, we need to highlight the difficulties that the silver bullet should solve: essential and accidental. The accidental difficulties (bugs, coding mistakes, platform, etc) are solved by the software architecture choosing and knowing the language and platform that is more appropriate for the system to be built. Basically is choosing better programming environments2. By the software architecture choice, we can have a better integration and every element talking in the same language (standard). Workstation3 is also another choice made by the software architecture that will improve the software performance Also, the software can be too complex and the software architect can make a better decision of buying or building. In some cases, buying would be the best choice because it can save a lot of time and the team can focus in other important parts related to the system. The essential difficulties are inherited in the nature (complexity, Conformity, changeability, and invisibility). For instance, the invisibility concern is defeated by the software architect, who knows the blueprints and has the skill to abstract the problem. 1 Definition from https://en.wikipedia.org/wiki/Software_architectureon 11/05/2105 2 Enviroment and tools http://worrydream.com/refs/Brooks-NoSilverBullet.pdf 11/20/2015 3 Workstations http://worrydream.com/refs/Brooks-NoSilverBullet.pdf 11/20/2015 Therefore, software architecture is a silver bullet in the sense that deals with the essential and accidental software difficulties. 2. Describe the manner in which Software Architecture is a not a silver bullet. Software architecture cannot be considered a silver bullet because it fails to meet some important points. Some points are in the difficulties inherit to the software and the ones related to the production of the softwares. Software architecture can be the silver bullet for some accidental errors, such as: coding, and choosing platform. However, it fails to solve the essential difficulties such as: complexity, conformity, visibility, and changeability. First, there is no limit for software complexity. You might want to build a software so complex that becomes impossible to architect. It is fairly easy to use the software architecture models (operational, data flow, etc) to build software. However when you have huge system with several interfaces there is no software architecture that will work. Second, it is not always possible to conform to all the business needs. Some systems have several business needs that make infeasible a software architecture solution. The stakeholders might want a really powerful system that the software architect will never be able to create. Third, softwares have changes and updates constantly. The software architect role is to preview all these changes and updates to create a software ready to accept all the modifications. However, it is impractical for the software architecture engineer to be aware of all this modification even with years of experience. Fourth, software is invisible. We can try to explain the software architecture definition as the process of building a house. However, the house to build is made by physical parts, something really different from a software. The software archicture can try to abstract what is being built but never will really visualize it. The table below summarizes all the essential difficulties and gives an example for each one: DIFFICULTIES Examples: Complexity huge system with a lot of interfaces Conformity complex business needs Changeability not expected changes and updates Visibility complex system hard to visualize Therefore, software architecture cannot be considered a silver bullet. Software architecture fails to solve the difficulties in the software. The essential difficulties are minimized by software architectures engineers but not solved, as we desire to be.
Compartilhar