<< Chapter < Page Chapter >> Page >

Custo e benefício

Como os recursos financeiros para se desenvolver o software sãolimitados, cada decisão arquitetural deve ter seu custo e o benefício proporcionadoanalisados e, com base nessa análise, priorizados ou até mesmo descartados.Essa análise deve levar em conta o ambiente de desenvolvimento em questão:capacidades do time de desenvolvimento, ferramentas disponíveis para o reusoe os objetivos do software.

Vida útil

O design de sistemas de grande vida útil deve priorizardiferentes atributos de qualidade se os compararmos com o design de sistemasde vida mais curta, como protótipos. No primeiro tipo de sistemas, atributosde manutenibilidade e portabilidade são mais valorizados; no segundo, sãopriorizados atributos de eficiência e funcionalidade.

Agenda de lançamento

O design do software é muito dependente de como ele vaiser disponibilizado a público. Por exemplo, se o software será disponibilizadoem fases distintas que englobarão diferentes conjuntos de funcionalidades, ele deveser dividido de modo que funcione sem as partes que ainda não foram disponibilizadas,mas que também facilite tanto a modificabilidade, uma vez que é desejável que novas funcionalidadessejam adicionadas com menor esforço, quanto a interoperabilidade entre diferentesversões, que eventualmente ocorrerá. Já se o software será disponibilizadosem possibilidade de posterior atualização, como acontece em muitos sistemas embarcados,preocupações de modificabilidade e interoperabilidade entre versões podemser descartadas.

Design arquitetural para qualidade de software

A principal responsabilidade do arquiteto é a de conceber o design quepossibilite ao software ser construído de modo que satisfaça os requisitos dequalidade impostos pelos stakeholders. Para que o processo de design arquiteturaltenha sucesso, é essencial que o arquiteto conheça os objetivos do software, ou seja,conheça os requisitos funcionais e de qualidade para os quais ele está projetando. Alémdisso, ele deve conhecer tanto as técnicase práticas de design arquitetural que podem ajudá-lo na concepção da arquitetura. Eledeve também conhecer como documentar a arquitetura projetada, uma vez que é precisocomunicá-la aos outros membros do time de desenvolvimento.

Neste capítulo, nós aprendemos sobre os objetivos que devem ser alcançadospelo design da arquitetura e esperamos que o leitor agora seja capaz de:

  • Identificar o que são atributos de qualidade e qual é suainfluência na arquitetura de software;
  • Relacionar atributos de qualidade com algumas decisões arquiteturaisque os proporcionam; e
  • Entender quais os atributos de qualidade se relacionam e como elesse relacionam.

A seguir, apresentaremos técnicas e práticas de design que o arquitetodeve conhecer para projetar sistemas com determinados atributos de qualidade. Porfim, no capítulo seguinte, apresentaremos como documentar o design arquitetural.

Referências

Requisitos funcionais e não-funcionais

Os livros Software Engineering [link] , de Sommerville, Requirements Engineering: Processes and Techniques [link] , de Sommerville e Kotonya, Software Engineering: A Practitioner's Approach [link] , de Pressman, dedicam alguns capítulos a este assunto.No entanto, o foco desses livros é no papel dos requisitos de softwareno processo de desenvolvimento. Já o artigo Defining Non-Functional Requirements [link] , de Malan e Bredemeyer, é mais voltado à influênciados requisitos na arquitetura.

Diferenças entre requisitos funcionais e não-funcionais

A discussão sobre a inexistência de diferenças práticasentre requisitos funcionais e não-funcionais pode ser encontrada tanto no livro Requirements Engineering: Processes and Techniques [link] , de Sommerville e Kotonya, quanto no artigo Distinctions Between Requirements Specificationand Design of Real-Time Systems [link] , de Kalinsky e Ready, e no livro Real-Time Systems: Design Principles forDistributed Embedded Applications [link] , de Kopetz. Essa discussão se mostra bastante presenteem sistemas de tempo-real porque os requisitos de desempenho definem afuncionalidade desses sistemas – ao contrário do que encontramos, por exemplo,em sistemas de informação, onde os requisitos de desempenho são consideradosrequisitos não-funcionais.

Atributos de qualidade

Bass et al , no livro Software Architecture in Practice [link] , mostra o papel dos atributos de qualidade naarquitetura de software. Além dele, Gorton faz uma pequena introdução aeste assunto ao tratar do estudo de caso presente em Essential Software Architecture [link] . Os livros Software Systems Architecture [link] , de Rozanski e Woods, e Code Complete [link] , de Steve McConnell, também dedicam seções aosatributos de qualidade de software, sendo o primeiro em nível de designarquitetural e o segundo em nível de design detalhado.

Atributos de negócio

Por fim, podemos encontrar informações sobre atributos de qualidadede negócio nos livros Software Architecture in Practice [link] , de Bass et al , e Beyond Software Architecture [link] , de Hohmann.

Questions & Answers

Difference between voluntary and non voluntary
Robert Reply
how possible science can explain natural occuring
David Reply
why qualitative method
David
using hypothetical examples from contemporary society discuss sociological imaginations
Orient Reply
Using Social Identity Theory, explain how group membership influences individual behavior and intergroup dynamics. Provide examples of how in-group favoritism and out-group bias manifest in real-world scenarios, such as in schools, workplaces, or communities. What strategies can be employed to mitigate negative intergroup behaviors rooted in social identity?
Adejumobi Reply
of course group membership can contribute in influencing an individual behaviour this is because when ever an individual associate with other group members he or she try to adopt their behaviour in one way or the other because human beings are very dynamic
Faiza
introduction to sociology
Hussain Reply
Sociology is the scientific study of the society. It's about studying man in groups at the complex form.
Prince
start new n questions too
Emmaunella Reply
Good evening everyone
JOE
what does secularization means
Munashe
summarize halerambos & holbon
David Reply
the Three stages of Auguste Comte
Clementina Reply
what are agents of socialization
Antonio Reply
socialazatio
Alkasim
sociology of education
Nuhu Reply
definition of sociology of education
Nuhu
definition of sociology of education
Emmaunella
what is culture
Abdulrahim Reply
shared beliefs, values, and practices
AI-Robot
What are the two type of scientific method
ogunniran Reply
I'm willing to join you
Aceng Reply
what are the scientific method of sociology
Man
what is socialization
ogunniran Reply
the process wherein people come to understand societal norms and expectations, to accept society's beliefs, and to be aware of societal values
AI-Robot
scientific method in doing research
ogunniran
defimition of sickness in afica
Anita
Cosmology
ogunniran
Hmmm
ogunniran
send
Alkasim
sendggg
Alkasim
list and explain the terms that found in society
REMMY Reply
list and explain the terms that found in society
Mukhtar
what are the agents of socialization
Antonio
Family Peer group Institution
Abdulwajud
I mean the definition
Antonio
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Arquitetura de software. OpenStax CNX. Jan 05, 2010 Download for free at http://cnx.org/content/col10722/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Arquitetura de software' conversation and receive update notifications?

Ask