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
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
Objetivos
• Atender as necessidades 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
Recordando a aula anterior...
“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
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.
6
Software: Características
•Desenvolvido ou projetado por engenharia, não
manufaturado no sentido clássico.
•Não se desgasta, mas se deteriora.
•A maioria é feita sob medida.
7
Software: Aplicações
•Básico: programas escritos 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
Contextualização
•Hoje qualquer país desenvolvido 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.
9
Contextualização
•E aí fica uma pergunta:
“Existe uma diferença entre o ser um artista e um
engenheiro?”.
10
Engenharia de Software
Métodos
•Proporcionam os 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
Engenharia de Software
Métodos
•Dizem como 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
Engenharia de Software
Ferramentas
•Dão suporte 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
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
Engenharia de Software
O Conjunto das etapas que envolve métodos, ferramentas
e procedimentos são conhecidas como componentes de
ciclos de vida de software.
15
Processo de Software
•Conjunto de 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
Modelos de processo de software
•Representação simplificada (abstrações) de um
processo de software
•Modelos mais comuns:
• Cascata
• Incremental
• Orientado a reuso.
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
18
Sommerville (2011)
19
Sommerville (2011)
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
21
Sommerville (2011)
22
Sommerville (2011)
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
Processo Unificado da Rational®
• 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
Solução
• Um das melhores 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
Alcançando as melhores prá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
Organização do RUP
A Iteração percorre
todas as disciplinas.
Disciplinas agrupam
atividades
relacionadas
Conteúdo
Tempo
28
Organização do RUP por 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
Disciplinas
• No processo Unificado Rational existem nove disciplinas, que
são divididas em seis disciplinas de processo e três de
suporte.
30
Disciplinas
•Cada disciplina no RUP
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.
31
Conceitos Práticos do RUP
32
Trabalhador (Worker)
•O trabalhador define 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
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
Artefatos (Artifacts)
•Atividades têm artefatos 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.
35
Trabalhador, Atividade e Artefato
36
Exemplos de boas prá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
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.

Engenharia de Software – Processo Unificado.pptx

  • 1.
    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.
  • 6.
    6 Software: Características •Desenvolvido ouprojetado por engenharia, não manufaturado no sentido clássico. •Não se desgasta, mas se deteriora. •A maioria é feita sob medida.
  • 7.
    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.
  • 9.
    9 Contextualização •E aí ficauma pergunta: “Existe uma diferença entre o ser um artista e um engenheiro?”.
  • 10.
    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
  • 18.
  • 19.
  • 20.
    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
  • 21.
  • 22.
  • 23.
    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.
  • 31.
  • 32.
    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.
  • 35.
  • 36.
    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