Anda di halaman 1dari 5

Arquitetura de Software - Estudo

https://sistemaswebcet2012@googlegroups.com

Arquitetura de Software

O computador tem se tornado um companheiro e sido uma ferramenta fundamental em nosso cotidiano.

Aproximadamente quatro dcadas atrs, software constitua uma pequena, seno nfima, parcela dos sistemas computacionais quando comparado ao hardware. Naquela poca, os custos de desenvolvimento e manuteno de software eram desprezveis. Hoje, porm, software responsvel por significativa poro de sistemas computacionais. Por exemplo: no uso domstico, fazemos uso de processadores de texto e planilhas eletrnicas. Podemos tambm exemplificar seu uso no controle e superviso de sistemas de gerao/distribuio de energia bem como em sistemas de telecomunicaes, onde ele encarregado do roteamento e controle de milhares de ligaes telefnicas. Entretanto, medida que os sistemas tornavam-se maiores e mais complexos, outros fatores, como desempenho e qualidade, passaram a ser considerados tambm. Tais fatores esto intimamente relacionados organizao global do sistema de software.

Evoluo tecnolgica

A busca incessante do conhecimento uma caracterstica peculiar do ser humano. Dentre as tecnologias que surgiram no sculo passado, pode-se destacar os primeiros esforos para construir o primeiro computador (ENIAC). Entretanto, pouco a pouco, o software passou a construir uma tecnologia-chave, sendo usado nas mais diversas reas, desde aplicaes financeiras e comerciais a aplicaes complexas, tais como controle de usinas de energia e misses espaciais. Aos poucos, a indstria de computadores passou a ser um dos ramos de negcios mais competitivos do planeta e o componente software tornou-se a fora prevalecente em termos de inovao tecnolgica. A ideia central da engenharia de software a de fazer uso de princpios de engenharia a fim de produzir, a baixo custo, softwares que operem corretamente e com eficincia em equipamentos onde sejam instalados. Assim, medida que a tecnologia de software conquistava espao, diversos paradigmas de engenharia de software e programao surgiram. Face necessidade de lidar com sistemas de software cada vez maiores e mais complexos, a tcnica de abstrao foi utilizada objetivando reconhecer padres, analisar e especificar

Marcelo Dias 11/03/2013

Arquitetura de Software - Estudo


https://sistemaswebcet2012@googlegroups.com

sistemas. De fato, o desenvolvimento de tcnicas de abstrao tem sido uma das principais fontes de melhorias nas prticas de programao.

A Natureza dos Sistemas de Software

Quando um sistema pode ser considerado como bem arquitetado (isto , concebido e desenvolvido utilizando-se princpios de engenharia)?

O termo software no se restringe apenas aos programas de computadores associados a uma aplicao, mas tambm envolve toda a documentao necessria para instalao, uso, desenvolvimento e manuteno dos programas. H dois atributos importantes que merecem nossa ateno: confiabilidade e manutenibilidade. Geralmente, a confiabilidade de software definida em termos de comportamento estatstico, ou seja, da probabilidade de que o software operar como desejado ao longo de um perodo especfico de tempo. A confiabilidade um importante atributo da qualidade de software, implicando que a aplicao associada a ele realizar suas funes como esperado. A exemplo de outros sistemas, o software sujeito a mudanas regulares e, portanto, torna-se importante que o software seja codificado e documentado de modo a no incorrer em custos proibitivos. Nesse contexto a manutenibilidade possui dois aspectos distintos: a necessidade de reparo e evoluo dos sistemas. Um sistemas de software precisar de reparo se existirem defeitos que pedem correo. Por outro lado, os sistemas podem evoluir a fim de satisfazer novos requisitos de usurios. Alm disso, importante observar que existem duas formas bsicas de (componentes de) software: cdigo executvel ou no-executvel. A reusabilidade um atributo importante em componentes de software com elevada qualidade. Como exemplo, poderamos citar a utilizao de componentes reutilizveis de interfaces grficas que permitem a criao de janelas, menus e outras formas de interao com o usurio.

O que Arquitetura de Software?

A estrutura dos componentes de um programa/sistema, seus interrelacionamentos, princpios e diretrizes guiando um projeto e evoluo ao longo do tempo.

Marcelo Dias 11/03/2013

Arquitetura de Software - Estudo


https://sistemaswebcet2012@googlegroups.com

O desenvolvimento de software no nvel arquitetural compreende questes estruturais, dentre as quais destacam-se: Seleo de alternativas de projeto; Escalabilidade e desempenho; Organizao e estrutura geral de controle; Protocolos de comunicao, sincronizao; Atribuio de funcionalidade a componentes de projeto

Torna-se cada vez mais evidente que processos de engenharia de software requerem projeto arquitetural de software. 1 - importante ser capaz de reconhecer estruturas comuns utilizadas em sistemas j desenvolvidos possibilitando aos projetistas de software compreender as relaes existentes entre sistemas e desenvolver novos sistemas com base em variaes de sistemas antigos. 2 - O entendimento de arquiteturas de software existentes permite aos engenheiros tomarem deciso sobre alternativas de projeto. 3 - Uma descrio arquitetural do sistema essencial a fim de analisar e descrever propriedades de um sistema complexo. 4 - O conhecimento de notaes formais para descrio de paradigmas arquiteturais permite que engenheiros possam apresentar novos projetos de sistemas para outras pessoas e instituies. Arquitetura de software o estudo da organizao global dos sistemas de software bem como do relacionamento entre subsistemas e componentes.

A necessidade e o papel da Arquitetura de Software Um sistema de software em elevado nvel de abstrao pode ser descrito atravs de subsistemas ou componentes distintos, sendo estes interrelacionados. A arquitetura pode: Atuar como uma estrutura a fim de atender aos requisitos de sistema; Ser utilizada como aspecto tcnico para o projeto de sistema bem como suporte na estimao de custos e na gerncia do processo; Servir de base para a anlise da consistncia e da dependncia; Prover suporte ao reuso.

O processo de desenvolvimento de um sistema de software vai desde a concepo do sistemas, quando requisitos so elicitados e analisados at sua concreta implementao. Na fase inicial do processo h um interesse em compreender a funcionalidade que o sistema dever prover sem que haja necessidade de se tomar qualquer deciso no nvel estrutural ou arquitetural.
Marcelo Dias 11/03/2013

Arquitetura de Software - Estudo


https://sistemaswebcet2012@googlegroups.com

(figura 1.1) Um arquiteto de software possui uma posio estratgica. Ele precisa ter conhecimento profundo do domnio onde o sistema a ser desenvolvido ser utilizado, das tecnologias relevantes e dos processos de desenvolvimento. Alm disso, o arquiteto de software dever ter um foco nas implicaes que os objetos organizacionais tero sobre as opes tcnicas, isto , uma viso global do sistema. Ele dever construir modelos para o problema em mos, buscando achar uma soluo e explorando abordagens alternativas. A documentao imprescindvel a fim de apresentar e discutir com os demais membros da equipe de desenvolvimento e com o gerente responsvel pelo projeto.

(tabela 1)

Estilos Arquiteturais

Qual a utilidade de termos estilos arquiteturais?

Cada estilo arquitetural oferece suporte a um conjunto de requisitos nofuncionais e atributos de projeto que permitem distinguir uma arquitetura de
Marcelo Dias 11/03/2013

Arquitetura de Software - Estudo


https://sistemaswebcet2012@googlegroups.com

outra. Por exemplo, considere o estilo arquitetural de camadas, o qual permite a definio de vrios nveis e implica um aumento da flexibilidade do sistema. Entretanto, essa caracterstica ocorre em detrimento de outra, isto , o desempenho do sistema. Este reduzido numa arquitetura de camadas. Note que o estilo mais apropriado a um sistema depender de seus requisitos, envolvendo requisitos funcionais e no-funcionais. (obs.: acompanhar pelo pdf disponvel no link da tabela 1).

(link 2)

Marcelo Dias 11/03/2013