Escolar Documentos
Profissional Documentos
Cultura Documentos
Importante
É recomendável que todo artefato de software seja devidamente versionado, de modo a
facilitar a gestão de sua configuração e promover a sua manutenibilidade.
A partir dos anos 1970, veio à tona a chamada crise de software. Isso
porque surgiu uma crescente e acelerada demanda pelo desenvolvimento de
novos sistemas de software para apoiar diferentes finalidades. No entanto,
essa crescente demanda esbarrava em algumas grandes limitações da época,
como falta de visão de processo e produto, falta de pessoal qualificado,
carência de controle de qualidade da produção, carência de tecnologias de
suporte ao desenvolvimento. Tudo isso resultava em produtos com qualidade
frequentemente insatisfatória, não obstante o altíssimo custo de produção e o
significativo esforço de desenvolvimento investido.
2. Processo de Software
Apesar do uso do termo Pessoas
“engenharia”, cabe destacar a natureza
sociotécnica da área. Isso significa que
tanto as tecnologias utilizadas quanto
os indivíduos alocados possuem grande
influência no desenvolvimento de software. QeP
Ignorar qualquer uma dessas naturezas
é, portanto, um risco ao sucesso de um
projeto. Entretanto, é importante também Processos Tecnologia
observar que a qualidade do produto de
software também depende de um terceiro Figura 1: Aspectos fundamentais da qualidade do
produto de software.
aspecto o processo.
Importante
A qualidade do processo de software (e de sua execução) não determinam a qualidade do
produto final de software, embora sejam um caminho mais seguro para alcançar esse objetivo.
Importante
Um modelo de processo de software também é eventualmente chamado de modelo
de ciclo de vida. Entende-se que a grande diferença entre esses dois termos está na
preocupação de se enfatizar ora a existência de um modelo que irá ditar o ciclo de
desenvolvimento de um software, ora a existência de um modelo de onde um ou mais
processos de software serão instanciados. Entretanto, o termo “modelo de processo de
software” é o mais largamente adotado nas principais referências técnicas, tais como
Sommerville, 2010 e Pressman, 2005.
Definição de
requisitos
Projeto de sistema
e software
Implementação e
teste unitário
Integração e teste de
sistema
Operação e
manutenção
Modelagem de
Teste de aceitação
requisitos
Projeto da
Teste do sistema
arquitetura
Projeto dos
Teste de integração
componentes
Software
executável
Importante
Os processos de desenvolvimento de software que não são inspirados no Manifesto Ágil
[MANIFESTO] são, muitas vezes, chamados de tradicionais, embora isso não seja uma
terminologia largamente aceita. Por outro lado, é incorreto afirmar que tais processos não
sejam ágeis. Nesse sentido, chamar processos de desenvolvimento como o RUP e de “não
ágeis” também pode remeter a uma conotação pejorativa, não havendo evidências científicas
suficientes para suportar essa afirmação.
Modelo Incremental
Atividade simultâneas
Importante
Um dos maiores desafios da engenharia de software é garantir a rastreabilidade entre os
diferentes artefatos (requisitos, modelos, código-fonte, entre outros) gerados ao longo
do desenvolvimento do software. Garantir a rastreabilidade significa que cada artefato
desenvolvido em um projeto reflete, de maneira consistente, o mesmo produto de software
em diferentes níveis de abstração, o mesmo escopo.
A degradação de um produto de software pode ser percebida, por exemplo, na dificuldade
de se compreender a estrutura de um sistema ou na dificuldade de se realizar uma
pequena manutenção no código fonte. O excesso de degradação pode levar uma
organização a tomar medidas drásticas, tais como iniciar o desenvolvimento de um novo
sistema para substituir o atual.
Equipe #1 Equipe #2
Modelagem Modelagem
Negócio Negócio
Modelagem Modelagem
Processo Processo
Geração Geração
Testes Testes
2.5 Prototipação
Na engenharia de software, um protótipo consiste em uma versão
inicial de um sistema de software, cujo objetivo principal é demonstrar
conceitos e experimentar diferentes soluções. Protótipos também podem
ajudar a identificar alterações nos requisitos do sistema e identificar fragilidades.
Para os usuários, os protótipos contribuem para que os usuários verifiquem o
quanto o sistema dá suporte à realização de seu trabalho.
Prototipação
Modelo Espiral
Determinar objetivos,
alternativas e restrições Avaliar alternativas,
identificar, resolver riscos
Análise de
riscos
Análise de
riscos
Análise de
riscos Protótipo
Protótipo 3 operacional
Análise de Protótipo 2
REVISÃO riscos Protótipo 1
FOWLER, M., BECK, K., BRANT, J., OPDYKE, W., & ROBERTS,
D. Refactoring: improving the design of existing code. Addison-Wesley
Professional, 1999.