Todos os post de tonisjr

Sou da Polícia Militar do Estado de Pernambuco, formado em Bacharelado em Sistemas de Informação.
05

Modelos de Ciclo de Vida

Modelos de Ciclo de Vida

>“São uma representação abstrata e simplificada do processo de desenvolvimento software, apresentada a partir de uma perspectiva específica”

>Tipicamente contêm:

◦“Esqueleto do processo”
◦Ordem de precedência das atividades
◦Principais artefatos e produtos gerados

Principais Modelos

>Cascata ou Clássico
>Prototipagem
>Métodos formais
>Espiral
>Incremental

Modelo em Cascata

>Modelo “Clássico”, teve origem na indústria de manufatura e construção
>Sua estrutura é composta por várias etapas que são executadas de forma sistemática e seqüencial
>Na falta de uma abordagem estruturada, foi a primeira tentativa de formalizar uma metodologia de desenvolvimento de software

Modelo em Cascata (Pressman)

Modelo em Cascata (Sommerville) 

>Minimiza o planejamento, organiza as atividades em uma sequência com entregas bem definidas
>Funciona bem para requisitos estáveis e bem compreendidos
◦O modelo pressupõe que os requisitos ficarão estáveis ao longo do projeto
>É facilmente aplicável em equipes inexperientes
 Porém, atrasa a redução de riscos!

O Modelo em Cascata atrasa a resolução dos riscos

Fases do Ciclo de Vida

>Planejamento
◦Esboçar escopo e requisitos
◦Fazer estimativas razoáveis sobre recursos, custos e prazos

>Análise e Especificação de Requisitos
◦Refinar requisitos e escopo
◦Entender o domínio do problema, com comportamento e funcionalidades esperados

>Projeto
>Incorporar requisitos tecnológicos aos requisitos essenciais do sistema
>Projetar a arquitetura do sistema

>Implementação
>Traduzir o projeto em uma forma passível de execução pela máquina
>Codificação

>Testes
◦Realizar diversos níveis de teste, de forma a fazer a verificação do software.

>Implantação, Operação e Manutenção
◦Colocar o software em produção
◦Treinar pessoas
◦Manter o software
◦Gerenciar os serviços

 

images

Engenharia de Software

Engenharia de Software: o que é?

>Disciplina de engenharia preocupada com todos os aspectos sobre a produção de software, incluindo:

>Processos                                                                                                                                                                                                                                                                                                                                                                                                    

.Racionalizam o desenvolvimento de Software.

>Métodos

.Conhecimento técnico; “Como” fazer

>Ferramentas

.Suporte automatizado para processos e métodos.

Desenvolver software não é só programar!

Objetivos:

>Obter software de qualidade.
>Com produtividade no seu desenvolvimento, operação e manutenção.
>Dentro de custos, prazos e níveis de qualidade controlados.
>Com o melhor custo-benefício entre Qualidade e Produtividade.

Engenharia de Software versus Engenharia de Sistemas

>Engenharia de Sistemas é algo maior: preocupa-se com todos os aspectos de sistemas baseados em computador.

.Software
.Hardware
.Processos
.Pessoas e outros sistemas, etc.

>Engenharia de Software é apenas parte deste processo

Histórico

>Década de 60: a chamada “Crise do Software”

.Desenvolvimento fora de controle.
.Iniciou como um problema de Custo e Produtividade.
.Mais importante: era um problema de Qualidade.

>Década de 70

. Programação Estruturada
. Projeto Estruturado

 

Antigamente…

 

 

>Década de 80

.Análise Estruturada (DFDs, Dicionário de Dados, Diagrama ER, de Estados, etc.).
.Ferramentas CASE

>Década de 90

.Análise e Projeto OO.
.Java
.UML
.Processo Unificado

>Anos 2000

.Metodologias Ágeis
.Novos paradigmas: SOA, Aspectos, Model-Driven Architecture, etc.
.Cloud Computing

Terminologia

Software

>Programa de computador e documentação associada.
>Produtos de software podem ser desenvolvidos para um cliente particular ou podem ser desenvolvidos para um mercado geral.
>Novos softwares podem ser criados desenvolvendo-se novos programas ou reusando softwares existentes.

Processo

>Uma série conectada de ações, com a intenção de satisfazer um objetivo.
>Define quem está fazendo o quê, quando e como para atingir um certo objetivo.

Processo de Software

>Um conjunto estruturado de atividades para desenvolver um sistema de software.

◦Especificação
◦Projeto
◦Validação
◦Evolução