1
IDENTIFICAÇÃO
Tema da Aula:ENGENHARIA DE SOFTWARE – Processo Unificado
Professor: Luciano Cassio Santos de Amorim
Nível: Ensino Básico, Técnico e Tecnológico – EBTT
Ano/Semestre: 2018.1 Data: 09.12.2017
Disciplina: Informática Tempo Previsto: 50 minutos
2.
2
Conteúdo Programático
• Contextualização
•Software
• Características e Aplicações
• Engenharia de Software
• Processo de Software
• Modelos de processo de Software
• Processo Unificado
• Organização, Disciplinas, Trabalhador, Atividade e Aterfato
3.
3
Objetivos
• Atender asnecessidades dos usuários garantindo uma
produção de software de alta qualidade que cumpra um
cronograma e um orçamento previsíveis.
• Mostrar como o sistema será construído na fase de
implementação, gerando o modelo do projeto e,
opcionalmente, o modelo de análise que é utilizado para
garantir a robustez.
• Definir perfeitamente quem é responsável pelo que, como as
coisas deverão ser feitas e quando devem ser realizadas.
4.
4
Recordando a aulaanterior...
“Software”, segundo o Dicionário Michaelis, consiste
em “qualquer programa ou grupo de programas que
instrui o hardware sobre a maneira como ele deve
executar uma tarefa, inclusive sistemas operacionais,
processadores de texto e programas de aplicação.”
5.
5
Software
•Instruções: quando executadas,produzem a função e
o desempenho desejados.
•Estruturas de dados: possibilitam que os programas
manipulem adequadamente a informação.
•Documentos: descrevem a operação e o uso dos
programas.
7
Software: Aplicações
•Básico: programasescritos para dar apoio a outros
programas.
•De tempo real: software que monitora, analisa e controla
eventos do mundo real.
•Comercial: sistemas de operações comerciais e tomadas
de decisões administrativas.
•Científico: caracterizado por algoritmos de
processamento de números.
8.
8
Contextualização
•Hoje qualquer paísdesenvolvido ou não depende de
software.
•Então precisamos desenvolver sistemas que sejam
confiáveis e o seu desenvolvimento se dê de forma
econômica e em um curto espaço de tempo.
10
Engenharia de Software
Métodos
•Proporcionamos detalhes de como fazer para construir o
software.
•Mostram o planejamento e a estimativa de projeto.
•Desenvolvem a análise de requisitos de software e de
sistemas.
•Modelam o projeto da estrutura de dados.
11.
11
Engenharia de Software
Métodos
•Dizemcomo codificar algoritmo de processamento.
•Trazem a forma da codificação.
•Informam como deve ser a fase de teste.
•Trará as normas a serem seguidas na manutenção.
12.
12
Engenharia de Software
Ferramentas
•Dãosuporte automatizado aos métodos.
•Existem atualmente ferramentas para sustentar cada um
dos métodos.
•Quando as ferramentas são integradas é estabelecido um
sistema de suporte ao desenvolvimento de software
chamado de CASE - Computer Aided Software
Engineering.
13.
13
Engenharia de Software
Procedimentos
•Constituem o elo de ligação entre os métodos e
ferramentas.
• Sequência em que os métodos serão aplicados
• Produtos que se exige que sejam entregues
• Controles que ajudam assegurar a qualidade e coordenar as
alterações
• Referências que ajudam administrar o progresso do software
14.
14
Engenharia de Software
OConjunto das etapas que envolve métodos, ferramentas
e procedimentos são conhecidas como componentes de
ciclos de vida de software.
15.
15
Processo de Software
•Conjuntode atividades relacionadas que levam à
produção de um produto de software.
• Software podem ser desenvolvidos do zero ou estendidos a
partir de software já existente.
• Uso de componentes pré-existentes é um prática comum.
•Atividades fundamentais:
• Especificação, projeto, implementação, validação, evolução.
16.
16
Modelos de processode software
•Representação simplificada (abstrações) de um
processo de software
•Modelos mais comuns:
• Cascata
• Incremental
• Orientado a reuso.
17.
17
Modelo em cascata
épreciso realizar a coleta dos
requisitos ao nível de sistema
processo de levantamento
dos requisitos
transformação dos requisitos do software
para representações avaliadas
garantindo que todas as
instruções/comandos tenham
sido testadas
Uma versão executável do software só
fica disponível numa etapa avançada
do desenvolvimento
desenvolvimento para uma
linguagem de programação
20
Processo unificado
•Mudança éinevitável em grandes projetos.
•Requisitos mudam, surgem novas pressões externas ao
negócio, mudam prioridades, emergem novas
tecnologias, surgem novos projetos.
•Mudanças causam custos.
•Possíveis soluções:
• Prototipação
• Entrega incremental
23
Prototipação
determinará os objetivos,as
alternativas e as restrições quanto ao
desenvolvimento do software.
realizará uma análise de alternativas e
identificação / resolução dos possíveis
riscos. Normalmente, há 3 alternativas.
codificação dos requisitos, passando-os
para a linguagem computacional
propriamente dita.
homologação do que foi entregue/
implantado pelos usuários/clientes, para que
se efetue o planejamento dos novos passos.
24.
24
Processo Unificado daRational®
• IBM Rational Unifiel Process (RUP), 2003
• Modelo de processo híbrido
• Prototipação
• Incremental
• Iterativo
• Três perspectivas:
• Dinâmicas: fases
• Estática: disciplinas/atividades
• Prática: boas práticas
25.
25
Solução
• Um dasmelhores Práticas de Desenvolvimento: práticas usadas com
sucesso pela indústria de software;
• São elas:
• Desenvolvimento iterativo;
• Gerência de requisitos;
• Uso de arquitetura baseada em componentes;
• Modelagem visual;
• Verificação contínua da qualidade de software;
• Gerência de mudança.
26.
26
Alcançando as melhorespráticas por meio de
um processo
• Abordagem iterativa;
• Guia para atividades e artefatos;
• Processo focado na arquitetura;
• Casos de uso dirigem o projeto e a implementação;
• Modelos simplificados do sistemas;
27.
27
Organização do RUP
AIteração percorre
todas as disciplinas.
Disciplinas agrupam
atividades
relacionadas
Conteúdo
Tempo
28.
28
Organização do RUPpor tempo
•Rational Unified Process é organizado em 4 fases:
• Concepção: define o escopo do software
• Elaboração: planeja o projeto, especificação
características, define e valida a arquitetura
• Construção: constrói o produto
• Transição: implantação
29.
29
Disciplinas
• No processoUnificado Rational existem nove disciplinas, que
são divididas em seis disciplinas de processo e três de
suporte.
30.
30
Disciplinas
•Cada disciplina noRUP
contém um fluxo de trabalho
(workflow).
•Um workflow é um fluxo de
atividade de alto-nível que
produzem um resultado de
valor observável.
32
Trabalhador (Worker)
•O trabalhadordefine o comportamento e as
responsabilidades de um indivíduo, ou um conjunto
de indivíduos trabalhando em uma equipe, dentro do
contexto de uma organização de software;
•Exemplos: Analistas de Sistemas, gerentes de projeto,
arquitetos de software, testadores, entre outros.
33.
33
Atividade (Activity)
•Uma atividadeé uma unidade de trabalho que
indivíduo que representa um trabalhador é
encarregado de executá-la;
•Uma atividade tem uma finalidade clara, usualmente
expressa em termos de criação ou atualização de
algum artefato, como um modelo, uma classe, um
plano.
34.
34
Artefatos (Artifacts)
•Atividades têmartefatos como entrada e saída;
•Um artefato é um produto de trabalho do processo,
trabalhadores usam artefatos para executar suas
atividades, e produzem artefatos durante a execução
de suas atividades.
36
Exemplos de boaspráticas
•“Compreender as necessidades dos envolvidos”
• Entrevistas
• Workshop de Requisitos
• Brainstorming e filtro de ideias
• Workshop de Caso de Uso
• Encenação
• Interpretação de papéis
• Análise dos requisitos existentes
37.
37
Referências
• PRESSMAN, R.;MAXIM, B. Engenharia de software: uma abordagem
profissional. Trad. João Eduardo Nóbrega Tortello. 8. ed. Porto Alegre,
RS: AMGH, 2016.
• PAULA FILHO, W. de P. Engenharia de software: fundamentos,
métodos e padrões. 3 ed. São Paulo: LTC, 2009.
• SOFTWARE. Michaelis. Dicionário Brasileiro da Língua Portuguesa.
Disponível em: <http://michaelis.uol.com.br/busca?id=EZ5mx>.
Acesso em: 07 dez. 2017.
• SOMMERVILLE, Engenharia de Software, 9a ed., Pearson, 2011.
Notas do Editor
#24 O Processo Unificado é baseado em componentes, e utiliza a Linguagem de Modelagem Unificada (UML). Criado por Grady Booch, Ivar Jacobson e James Rumbaugh