Construção swebok
Por: magalps • 8/12/2015 • Trabalho acadêmico • 1.027 Palavras (5 Páginas) • 239 Visualizações
Construção de software se refere à criação detalhada de trabalho, significando software através da combinação de codificação, verificação, testes de unidades, testes de integração, e depuração
[pic 1]
Histórico
Durante um tempo de aproximadamente 40 anos de desenvolvimento ouve varias mudanças, algumas devido as tecnologias que foram surgindo, outros devido ao desenvolvimento dos processos.
No fim dos anos 70 a utilização de metodologia de Desenvolvimento de Sistema (Cap Gemini SDM ou SDM2).
Nos anos 80 Estrutura de Análise de Sistemas e Metodologia de Projeto (SSADM) e o sistema de investigação ou aprendizagem (SSM).
A partir dos anos 90 com um grande avanço na tecnologia começamos a utilizar padrões e processos unificados de Desenvolvimento
Ex.:
XP (Extreme Programming) o mais utilizado se resumindo em 4 passos - Planejamento, projeto, codificação e teste.
DAS (Desenvolvimento Adaptativo de Software) utiliza a colaboração humana e a auto-organização da equipe se resumindo em 3 passos - especulação, colaboração e aprendizado. Utilizando um processo iterativo que incorpora um planejamento do ciclo adaptativo
SCRUM possui um foco no uso de padrões de processo de software que possui comprovada efetividade para projetos com prazos apertados, requisitos mutáveis e criticalidade de negocio.
FDD (Desenvolvimento Guiado por Características) digamos que é um processo mais "formal" que os demais metodos tendo um foco maior na gestão de projeto e qualidade.
A parte de Construção é ligada a todos os Ka’s(Área de Conhecimento), mas é principalmente com a parte de Design e Teste.
Fundamentos de Construção de Software
Hoje consideramos errado um processo que gere um "big bang!" Por isso tomamos que um processo deve ser iterativo ou incremental, pois sempre temos algo para entregar para os clientes apressados e com o tempo os requisitos podem mudar e é motivador para a equipe de desenvolvimento e para o cliente ver o software funcionando cedo (não necessariamente ele já está entregue) isso tudo para evitar:
[pic 2]
Para evitar isso costumamos seguir alguns fundamento durante o desenvolvimento:
Minimização da Complexidade: Conseguida Através da criação de códigos que sejam simples e legíveis, em vez de inteligente. É conseguidos por meio da utilização das Normas, Projeto Modular, entre outras técnicas especificas.
Antecipar a Mudança: A maioria dos software muda ao longo do tempo e antecipando é possível construir um software mais extensível, ou seja melhorar sem interromper a estrutura subjacente.
Construir para Verificação: Significa que as falhas podem ser prontamente encontrada pelos engenheiros, bem como os testadores e usuários durante independente testes.
Reutilização: Geralmente são bibliotecas, módulos, componentes, o código fonte. Podendo ser “construção para reutilização” e “construção com reuso” o primeiro criar ativos de software reutilizáveis enquanto o segundo reutilizar ativos de software em construção de uma nova solução .
Padrões em Construção: Na parte externa ou interna tais como métodos de comunicação, linguagens de programação, padrões de codificação, plataformas e ferramentas como o UML. Padrões podem ser de varias formas como o uso de IEEE/ISO ou padrões em um nível corporativo ou para projetos específicos.
Gestão de construção
Ciclo de Vida: Numerosos modelos foram criados para desenvolver Programas como cascata, espiral, etc., alguns enfatizam construção mais do que outros. A parte considerada como “construção” depende do modelo de ciclo de vida utilizado.
Planejamento: a escolha do método é um aspecto-chave, pois afeta a ordem na qual os pré-requisitos são realizados e qual deve ser concluído antes, quais componentes são criados e como são integrados (fase ou periódica), e afeta até a capacidade de reduzir a complexidade e antecipar as mudanças.
Métricas de Construção: Inúmeras atividades de construção podem ser medido, incluindo o código-desenvolvido, código modificado, código reutilizado, código destruída, a complexidade do código, estas medições pode ser útil para fins de gestão, garantindo a qualidade durante a construção.
Considerações Praticas
Construção Design: Alguns Projetos alocam atividades de design considerável, outros distribuem o projeto a uma fase focada em design. Independentemente do modo utilizado será necessário fazer modificações em escala menor para cobrir algumas lacunas.
Linguagens: Linguagens de Construção pode afetar os atributos de desempenho, confiabilidade, portabilidade e contribuir para serias vulnerabilidades de segurança. E são divididos em três tipo: Linguistica( C/C++, Java), Formais (Event-B), Visuais (MatLab).
Codificação: Técnicas para criação compreensível código fonte, incluindo nomenclatura e layout de código, estruturas de controle, Manipulação de erros(dados ruins), prevenção da violação de segurança, Documentação, Organização de código(classes, pacotes)
...