Aula 7 - Leitura complementar
6 pág.

Aula 7 - Leitura complementar

Disciplina:Processos de Desenvolvimento de Software2.376 materiais10.030 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:
• Minimização da complexidade
• Antecipação de Mudanças
• Construção para Verificação
• 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

•• MODELOS DE CONSTRUÇÃOMODELOS DE CONSTRUÇÃO
•• PLANEJAMENTO DA CONSTRUÇÃOPLANEJAMENTO DA CONSTRUÇÃO
•• MEDIÇÃO DA CONSTRUÇÃOMEDIÇÃO DA CONSTRUÇÃO

•• PROJETO DA CONSTRUÇÃOPROJETO DA CONSTRUÇÃO
•• LINGUAGENS DA CONSTRUÇÃOLINGUAGENS DA CONSTRUÇÃO
•• CODIFICAÇÃOCODIFICAÇÃO
•• TESTE DA CONSTRUÇÃOTESTE DA CONSTRUÇÃO
•• REUSOREUSO
•• QUALIDADE DA CONSTRUÇÃOQUALIDADE DA CONSTRUÇÃO
•• INTEGRAÇÃOINTEGRAÇÃO

•• MINIMIZAÇÃO DA COMPLEXIDADEMINIMIZAÇÃO DA COMPLEXIDADE
•• ANTECIPAÇÃO DE MUDANÇASANTECIPAÇÃO DE MUDANÇAS
•• CONSTRUÇÃO PARA VERIFICAÇÃOCONSTRUÇÃO PARA VERIFICAÇÃO
•• 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:
• Linguagens de programação (ex: padrões para linguagem de programação como Java e C++)
• Métodos de Comunicação (ex: padrões para formatos e conteúdos padrões para formatos de

documentação e conteúdos)
• Plataformas (ex: padrões de interface de programação para chamadas de sistema operacional)
• 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 – 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