Resumo Sobre a Importância da Arquitetura de Software no Desenvolvimento de Sistemas de Software
Por: moragom • 4/10/2020 • Dissertação • 1.934 Palavras (8 Páginas) • 271 Visualizações
Resumo
1.Introdução
Os sistemas de software vem evoluindo com o passar dos tempos, e com tal crescimento vem demandando muito mais atribuições, análises e atribuições de requisitos.
Pode-se dizer que os softwares atuais, não se resumem somente a sua base de dados e linguagem, por exemplo, mas sua estrutura como um todo, desde análise de requisitos, até uma arquitetura de elaborada, seu desempenho e diversos fatores, que irão estar intimamente relacionados à organização global do sistema de software o qual será objeto de estudo deste artigo.
2.Evolução tecnológica
Ao longo de séculos, o homem tem buscado respostas a muitas questões que lhe vêm à mente, bem como encontrado soluções a uma enorme gama de problemas que lhe são apresentados. Já o século XXI é vislumbrado como século do conhecimento onde a informação está presente em todo o mundo, as fronteiras de tempo e espaço já não parecem mais existir, e passamos a viver num mundo caracterizado cada vez mais por uma interdependência global.
Vemos diversas tecnologias que surgiram no século passado, desde os primeiros esforços para construir o primeiro computador (ENIAC1) de propósito geral completamente eletrônico que ocorreu na Universidade da Pensilvânia (EUA), entre 1942 e 1945. Durante a década de 50, até quase metade da década de 1960, havia uma produção limitada de software e naquela época o tamanho dos programas eram geralmente pequenos.
Mas, ao longo do tempo, o software passa a constituir uma tecnologia chave, sendo usada em muitas áreas, desde aplicações financeiras e comerciais a aplicações complexas, tais como controle de usinas de energia e missões espaciais.
Aos poucos, a indústria de computadores passa a ser um dos ramos de negócios mais competitivos do planeta e o componente de software torna-se a força prevalecente em termos de inovação tecnológica.
Apesar da importância que esta nova tecnologia passa a ter na época, inexiste ferramentas oferecendo suporte ao desenvolvimento de software e pouco se conhece sobre seu processo de desenvolvimento.
E daí vem a ideia central de engenharia de software, que é a de fazer uso de princípios de engenharia a fim de produzir a baixo custo, softwares que operem corretamente e com eficiência em equipamentos, onde quer que o software seja instalado.
Face à necessidade de lidar com sistemas de software cada vez maiores e mais complexos, a técnica de abstração foi utilizada objetivando reconhecer padrões, analisar e especificar sistemas.
3. A Natureza dos Sistemas de Software
O software não se restringe apenas aos programas de computadores associados com uma aplicação, mas também engloba toda a documentação necessária para instalação, uso, desenvolvimento e manutenção dos programas.
Todavia, uma avaliação mais geral da qualidade e quão bem projetado é um sistema, requer a identificação de atributos os quais desejaríamos encontrar num software bem arquitetado.
Geralmente, a confiabilidade de software é definida em termos de comportamento estatístico, ou seja, da probabilidade de que o software irá operar como desejado ao longo de um período especificado de tempo.
A exemplo de outros sistemas, software é sujeito a mudanças regulares e, portanto, torna-se importante que o software seja codificado e documentado de modo a não incorrer em custos proibitivos.
Percebe-se que, embora um sistema de software possa deteriorar-se, requerendo novas versões a fim de atender a natureza evolutiva dos sistemas e a demanda por novas características, ele não sofre de desgaste como ocorre com outros dispositivos e sistemas.
Hardware, por exemplo, desgasta-se com o decorrer do tempo pela ação de uso indevido, acúmulo de poeira e funcionamento em temperaturas elevadas.
Contudo, apesar de podermos, hoje em dia, trabalhar a nível de componentes, ainda não podemos encomendar um componente de software da forma que fazemos com o hardware.
Como exemplo, poderíamos citar o uso de componentes reutilizáveis de interfaces gráficas, que permitem a criação de janelas, menus e outras formas de interação com usuário.
Apesar dos avanços alcançados até o presente momento em termos de reusabilidade, tem havido um crescimento continuado tanto em termos de tamanho quanto da complexidade dos sistemas de software.
4. O que é Arquitetura de Software?
Para entender a complexidade e o tamanho de sistemas, engenheiros de software têm feito uso de princípios de projeto como, por exemplo, a ocultação de informações.
Primeiro, é importante ser capaz de reconhecer estruturas comuns utilizadas em sistemas já desenvolvidos possibilitando aos projetistas de software compreender as relações existentes entre sistemas e desenvolver novos sistemas baseados em variações de sistemas antigos.
Fica claro que a estrutura global ou, mais propriamente, a arquitetura de software constitui-se num fator de suma importância no projeto de sistemas de software de grande porte.
Baseado em discussões realizadas no Software Engineering Institute da Carnegie Mellon University, David Garlan e Dewayne Perry [Garlan 95] definiram arquitetura de software como: “A estrutura dos componentes de um programa/sistema, seus inter-relacionamentos, e princípios e diretrizes, guiando o projeto e evolução ao longo do tempo.” Arquitetura de software é uma área relativamente nova dentro da engenharia de software.
Este tópico não havia despertado o interesse de pesquisadores e profissionais até o final da década de 80 quando, Mary Shaw [Shaw 89] aponta a necessidade de considerar o nível organizacional ou arquitetural dos sistemas.
Em seguida, em meados da década de 90, foi publicado o livro seminal sobre arquitetura de software de Mary Shaw e David Garlan [Shaw 96] que tratou de muitas questões desta nova área.
Desde suas origens, quando descrições qualitativas de organizações de sistemas eram consideradas como úteis, a arquitetura de software tem amadurecido ao longo da última década, buscando englobar e explorar notações, ferramentas e técnicas de análise.
Também, tem-se observado sobreposição e interação da pesquisa de arquitetura de software com trabalhos sobre reuso, baseado em componentes, projeto de software, classes de componentes, análise de programas e linhas de produto.
5. A Necessidade e o Papel da Arquitetura de Software
...