Buscar

Software Architecture

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais