- Surgimento
- Propostas e desafios
- Ciclo de desenvolvimento do software
- O papel do Engenheiro de software no processo de desenvolvimento
- Modelo de certificação CMMI e propostas para garantia de qualidade de software
O termo de engenharia de software surgiu em 1968 em uma conferência na Alemanha, essa conferência era para debater sobre a crise de software... A crise de software está associada com o avanço dos hardwares, escancarando que o desenvolvimento de software era um desenvolvimento informal. A partir do momento que as maquinas avançaram, com os novos recursos de hardware, desenvolver sistemas, se tornou algo complexo.
- Projetos que estouram o orçamento
- Orçamentos preestabelecidos não conseguem se cumpridos
- Software produzido de baixa qualidade
- Com falhas e defeitos
- Não atende os requisitos especificados pelos clientes
- Projetos ingerenciáveis
- Com códigos de difícil manutenção
Esses problemas foram escancarados na crise de software, que até hoje não foram resolvidos...
Utilizar técnicas ou métodos para controlar a grade complexidades dos grandes sistemas. Criar um processo de desenvolvimento de software que tenha um conjunto de atividade para produção de um software de qualidade. Esse processo de desenvolvimento deve ser implantando e difundido por todos os membros da organização.
- 1º - Especificação
- Fazer todo o levantamento de requisitos
- Fazer o entendimento da necessidade do negócio do cliente
- 2º - Projeto e desenvolvimento do software
- Projetar o software com base na sua especificação
- Validação do software, para ser validado o que foi desenvolvido comparado com a especificação
- 3º - Evolução do software
- Etapa em que o cliente utiliza, e conforme a necessidade o sistema evolui.
- Facilidade de manutenção
- Sistema confiável, sem perdas de informações
- Software eficiente, com funcionalidade ao que ele se propõe
- De fácil uso e operação por parte do usuário
- Heterogeneidade, lidas com diversidade grande de sistemas
- Desafio da entrega, com prazos apertados...
- Criar um cronograma real
- Desenvolver um sistemas de confiança
- Necessidade do cliente
- Definição dos requisitos
- Analise dos requisitos
- Projeto de desenvolvimento
- Processo do desenvolvimento
- Implementação o sistema
- Testes de unidades
- Testes de integração
- Entrega ao cliente para seu uso
- Processo de manutenção e treinamento
- Responsável pelo levantamento dos requisitos e pelo projeto e construção do sistema
- Ter o domínio técnico pelas ferramentas usadas no projeto
- Pela linguagem de programação usada no projeto
- Orientação a Objetos
- Linguagens para web
- Ter jogo de cintura para entender a necessidade do cliente
- Buscar todo o entendimento do projeto
- Responsável por testar o software
- Garantir que o software tenha maior qualidade possível
- Aspectos humanos
- Senso de responsabilidade individual
- Consciência aguçada
- Ser honesto com os clientes com estipulação de prazos, custos e o que é possível ou não de ser feito
- Bastante resiliência sobre pressão
- Leal
- Ser atento aos detalhes
- Ser bastante pragmático
- CMMI Capability Maturity Model Integration (Modelo de Capacidade e Maturidade Integrado)
- Modelos de Certificações CMMI
- PP (Planejamento do Projeto)
- REQM (Gerenciamento dos requisitos)
- MA (Medição e Análise)
- CM (Gerenciamento de Configurações)
- PPQA (Garantia de Qualidade de Processo Produtivo)
- Modelos de Certificações CMMI
Representação Contínua
Define uma sequência para melhoria de uma área de processos e ao mesmo tempo permite uma flexibilidade na escolha das áreas de processo a serem melhoradas, possibilitando a organização direcionar seus esforços de melhoria nas áreas que julgar mais relevante. É caracterizado por: Níveis de Capacidade (Capability Levels):
- Nível 0: Incompleto (Ad-hoc)
- Nível 1: Executado
- Nível 2: Gerenciado / Gerido
- Nível 3: Definido
- Nível 4: Gerenciado quantitativamente --- REMOVIDO DA v.1.3
- Nível 5: Em otimização --- REMOVIDO DA v.1.3
Representação Por Estágios
Disponibiliza uma sequência pré-determinada para melhoria baseada em estágios que não deve ser desconsiderada, pois cada estágio serve de base para o próximo. É caracterizado por Níveis de Maturidade (Maturity Levels):
- Nível 1: Inicial (Ad-hoc)
- Nível 2: Gerenciado/Gerido
- Nível 3: Definido
- Nível 4: Quantitativamente gerenciado / Gerido quantitativamente
- Nível 5: Em otimização
- Indentificar o estágio atual em que a organização está e fazer melhorias
- Melhoria do processo de desenvolvimento de software