Aula 7 - Leitura complementar
6 pág.

Aula 7 - Leitura complementar


DisciplinaProcessos de Desenvolvimento de Software2.883 materiais19.435 seguidores
Pré-visualização2 páginas
CURSO: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
DISCIPLINA: PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
PROF.: JANETE AMARAL/ DAVID 
FALCÃO
TURNO: VISTO
TURMA: SALA: 
TECNOLÓGICO ALUNO: 
DATA: ___/___/___ LEITURA COMPLEMENTAR
CONSTRUÇÃO DE SOFTWARE
TRADUÇÃO SWEBOK
INTRODUÇÃO
O termo Construção de Software refere-se à criação detalhada do trabalho do software através da 
combinação de codificação, verificação, teste de unidade, teste de integração e depuração.
A Área de Conhecimento - Construção de Software está ligada a todas as demais áreas. Mas está mais 
fortemente ligada com as áreas Projeto e Teste de Software. Isto porque o processo de construção de 
software em si envolve significante atividade de projeto e de teste. Ela também utiliza as saídas das 
atividades do projeto e fornece entradas para as atividades de teste.
Os limites detalhados entre projeto, construção e teste variam dependendo do ciclo de vida do processo 
de software que está sendo utilizado no projeto.
Embora alguns projetos detalhados possam ser realizados antes da construção, muito do trabalho de 
projeto é feito dentro da atividade de construção em si. Desta forma, a Área Construção de Software é 
totalmente ligada com a Área Projeto de Software. Através da construção, engenheiros de software 
testam seu trabalho (teste de unidade e teste de integração). Assim, a Área Construção de Software 
também está muito ligada com a Área Teste de Software.
A Construção de Software tipicamente produz o maior volume de itens de configuração que necessitam 
ser gerenciados no projeto de software (arquivos fonte, conteúdos, casos de teste e outros). Desta 
forma, a Área Construção de Software também está fortemente ligada com a Área Gerência de 
Configuração de Software.
Uma vez que a construção de software está fortemente apoiada em métodos e ferramentas, ela é 
provavelmente a mais intensiva no uso de ferramentas das áreas de conhecimento, estando, portanto, 
ligada à Área de Ferramentas e Métodos.
Enquanto a qualidade de software é importante em todas as Áreas de Conhecimento, o código é a 
última liberação de um projeto de software, e desta forma a Qualidade de Software esta fortemente 
ligada à construção de software.
Dentre as disciplinas relacionadas com a Engenharia de Software, a Área Construção de Software é a 
mais relacionada com a ciência da computação, no uso do conhecimento de algoritmos e das práticas 
de codificação. Ambas são frequentemente consideradas como pertencentes ao domínio da ciência da 
computação. 
DETALHAMENTO DOS TÓPICOS PARA CONSTRUÇÃO DE SOFTWARE
A estrutura da Área Construção de Software é apresentada a seguir, juntamente com uma breve 
descrição dos principais tópicos associados. A Fig.1 apresenta uma representação gráfica da 
decomposição de alto nível desta área de conhecimento.
CONSTRUÇÃO DE SOFTWARECONSTRUÇÃO DE SOFTWARE
Figura 1
1. Fundamentos da Construção de Software
Os fundamentos da construção de software incluem:
\u2022 Minimização da complexidade
\u2022 Antecipação de Mudanças
\u2022 Construção para Verificação
\u2022 Padrões de Construção
Os 03 primeiros conceitos são aplicados tanto ao projeto como à construção. A seção seguinte define 
estes conceitos e descreve com eles são aplicados à construção de software.
1.1. Minimização da Complexidade
O principal fator que leva as pessoas a convergirem seus planos para aos computadores é a 
severamente limitada habilidade das pessoas de reterem em suas memórias, especialmente por longos 
períodos de tempo, estruturas e informações complexas. Isto conduz a um dos mais fortes 
direcionadores na construção de software: a Minimização da Complexidade.
A necessidade de se reduzir a complexidade é aplicada em todos os aspectos da construção de 
software, sendo particularmente crítica para o processo de verificação e teste da construção de 
software. 
Na construção do software, a redução da complexidade é obtida através da ênfase na criação de código 
simples e legível. A minimização da complexidade é realizada através do uso de padrões e através de 
várias técnicas específicas. 
1.2. Antecipação de Mudanças
Muitos softwares mudam com o tempo e a antecipação de mudanças direciona muitos aspectos da 
construção de software. Software é inevitavelmente parte das mudanças do ambiente externo e 
mudanças no ambiente externo afetam o software de diversas maneiras.
1.3. Construção para Verificação
 
Construção para verificação significa a construção de software no qual as falhas possam ser 
descobertas com facilidade pelos engenheiros de software enquanto escrevendo o software, tanto 
quando durante os testes independentes e atividades operacionais. Técnicas específicas que suportam 
a construção para verificação incluem as seguintes: padrões de codificação para suportar revisões de 
GERENCIANDO GERENCIANDO 
A CONSTRUÇÃOA CONSTRUÇÃO
\u2022\u2022 MODELOS DE CONSTRUÇÃOMODELOS DE CONSTRUÇÃO
\u2022\u2022 PLANEJAMENTO DA CONSTRUÇÃOPLANEJAMENTO DA CONSTRUÇÃO
\u2022\u2022 MEDIÇÃO DA CONSTRUÇÃOMEDIÇÃO DA CONSTRUÇÃO
\u2022\u2022 PROJETO DA CONSTRUÇÃOPROJETO DA CONSTRUÇÃO
\u2022\u2022 LINGUAGENS DA CONSTRUÇÃOLINGUAGENS DA CONSTRUÇÃO
\u2022\u2022 CODIFICAÇÃOCODIFICAÇÃO
\u2022\u2022 TESTE DA CONSTRUÇÃOTESTE DA CONSTRUÇÃO
\u2022\u2022 REUSOREUSO
\u2022\u2022 QUALIDADE DA CONSTRUÇÃOQUALIDADE DA CONSTRUÇÃO
\u2022\u2022 INTEGRAÇÃOINTEGRAÇÃO
\u2022\u2022 MINIMIZAÇÃO DA COMPLEXIDADEMINIMIZAÇÃO DA COMPLEXIDADE
\u2022\u2022 ANTECIPAÇÃO DE MUDANÇASANTECIPAÇÃO DE MUDANÇAS
\u2022\u2022 CONSTRUÇÃO PARA VERIFICAÇÃOCONSTRUÇÃO PARA VERIFICAÇÃO
\u2022\u2022 PADRÕES DE CONSTRUÇÃOPADRÕES DE CONSTRUÇÃO
FUNDAMENTOS DA CONSTRUÇÃOFUNDAMENTOS DA CONSTRUÇÃO 
DE SOFTWAREDE SOFTWARE
CONSIDERAÇÕESCONSIDERAÇÕES 
PRÁTICASPRÁTICAS
código, teste de unidade, organização do código para suportar testes automáticos e restrições no uso 
de estruturas de linguagem complexas ou difíceis de serem entendidas, dentre outras. 
1.4. Padrões de Construção
 
Padrões que afetam diretamente os problemas de construção são:
\u2022 Linguagens de programação (ex: padrões para linguagem de programação como Java e C++)
\u2022 Métodos de Comunicação (ex: padrões para formatos e conteúdos padrões para formatos de 
documentação e conteúdos)
\u2022 Plataformas (ex: padrões de interface de programação para chamadas de sistema operacional) 
\u2022 Ferramentas (ex: padrões diagramáticos para notações como UML (Unified Modeling Language))
Uso de padrões externos. A construção depende do uso de padrões de construção externos, 
linguagens, ferramentas de construção, interfaces técnicas e interações entre a construção de software 
e outras áreas de conhecimento. Padrões vêm de numerosas fontes, incluindo especificação de 
interface de hardware e software, tais como Object Management Group (OMG) e organizações 
internacionais, tais como IEEE ou ISO.
Uso de padrões internos. Padrões podem ser criados para toda a organização (padrões corporativos) 
ou padrões para uso num projeto específico. Estes padrões suportam a coordenação de atividades de 
grupo, minimização da complexidade, antecipação de mudanças e construção para verificação.
2. Gerenciando a Construção
2.1. Modelos de Construção
Vários modelos foram criados para desenvolver software, alguns do quais enfatizam mais a construção 
de software que outros.
Alguns modelos são mais lineares, do ponto de vista da construção, tais como o modelo de ciclo de vida 
em cascata ou de estágios. Estes modelos tratam a construção como uma atividade que ocorre 
somente depois de significativo trabalho de requisito ter sido realizado \u2013 incluindo o trabalho de 
requisitos detalhados, trabalho de projeto extensivo e planejamento detalhado. Os enfoques mais 
lineares tendem a enfatizar as atividades que precedem a Construção (requisitos e projeto), e tendem a 
criar uma mais distinta separação entre as atividades. Nestes modelos, a principal ênfase da construção 
reside na codificação. 
Outros modelos são