A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.

Apresentações semelhantes


Apresentação em tema: "Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012."— Transcrição da apresentação:

1 Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012

2 Objetivo Apresentação inicial da disciplina Como a Engenharia de Requisitos, associada à UML é usada para o bom desenvolvimento de software

3 Tópicos Introdução Revisão do Paradigma Orientado a Objetos Revisão de UML Alinhamento com a Governança de TI nas Empresas

4 Análise e Projeto Orientado a Objetos Análise e Projeto OO são essenciais para a criação de um software bem projetado, robusto e capaz de ser corrigido ou evoluído, usando tecnologias e linguagens orientadas a objetos, tais como Java, C#, C++

5 Análise e Projeto Orientado a Objetos Em relação à tecnologia de objetos, é válido o provérbio: “Possuir um martelo não torna alguém um arquiteto” – Para criar sistemas orientado a objetos é preciso pensar em termos de objetos, antes de conhecer uma linguagem orientada a objetos

6 Análise e Projeto Orientado a Objetos Análise X Projeto – Análise enfatiza uma investigação do problema e dos requisitos, em vez de uma solução Responde-se às perguntas: – Como o sistema deverá ser usado – Quais as suas funções – Melhor seria chamar: Análise de Requisitos ou Análise orientada a objetos

7 Análise e Projeto Orientado a Objetos Análise X Projeto – O Projeto enfatiza uma solução conceitual em software ou em hardware que satisfaça os requisitos A descrição do esquema de banco de dados e a descrição dos objetos do sistema são exemplos – Melhor seria definir como o projeto de objetos ou o projeto de bancos de dados

8 Análise e Projeto Orientado a Objetos Análise X Projeto Orientados a Objetos – Na análise orientada a objetos, há uma ênfase em encontrar e descrever os objetos ou conceitos do domínio do problema E.g., Sistema de informações de vôo inclui conceitos de avião, vôo e piloto

9 Análise e Projeto Orientado a Objetos Análise X Projeto Orientados a Objetos – Projeto Orientado a Objetos enfatiza a definição dos objetos e como eles colaboram para a satisfação dos requisitos E.g., Objeto avião possui atributo numDaCauda e método obterHistoricoDoVoo

10 Análise e Projeto Orientado a Objetos Análise X Projeto Orientados a Objetos – Na implementação ou programação OO os objetos de projeto são implementados E.g., Classe Aviao em Java

11 Análise e Projeto Orientado a Objetos Análise X Projeto Orientados a Objetos – Na implementação ou programação OO os objetos de projeto são implementados E.g., Classe Aviao em Java

12 Análise e Projeto Orientado a Objetos Conceito do domínio Aviao numDaCauda Visualização do Conceito do domínio Representação em uma Linguagem OO public class Aviao { private String numDaCauda; public List obterHistoricoDoVoo() {... } }

13 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados – Um jogador lança dois dados e ganha caso o resultado seja sete – Passos: Definir Casos de Uso Definir Modelo de Domínio Definir Diagramas de Interação Definir Diagramas de Classes de Projeto

14 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados – A Análise de Requisitos pode incluir narrativas ou cenários sobre como as pessoas usam a aplicação Tais narrações podem ser escritas como casos de uso – Casos de Uso não são artefatos OO, são apenas narrações escritas Definir Casos de Uso

15 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados – Caso de Uso Jogar um Jogo de Dados Um jogador pede que os dados sejam lançados. O sistema apresenta o resultado. Se a soma do valor das faces dos dois dados totalizar sete, o jogador vence, caso contrário, perde. Definir Casos de Uso

16 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados – Mostra os conceitos ou objetos do domínio que são relevantes Definir Modelo de Domínio

17 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados Definir Modelo de Domínio Jogador nome Dado valorDaFace JogoDeDados 12 2 1 1 1 Joga Lança Inclui

18 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados – Além da definição das responsabilidades, o Projeto OO preocupa-se com as colaborações entre os objetos Diagrama de sequencia – diagrama de interação da UML, mostra o fluxo de mensagem (invocação de método) entre os objetos de software Definir Diagramas de Interação

19 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados :JogoDeDadosdado1:Dadodado2:Dado jogar() lancar() vf1 := obterValorDaFace() vf2 := obterValorDaFace() lancar() Definir Diagramas de Interação Diagrama de Sequencia ilustrando mensagem entre os objetos Apresenta uma visão dinâmica dos objetos colaborativos

20 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados – Diagrama de Classes do Projeto especifica uma visão estática das definições de classes Ilustra atributos e métodos das classes Baseado no diagrama de sequencia podemos definir quais atributos e métodos deveremos definir nas classes Definir Diagramas de Classes de Projeto

21 Análise e Projeto Orientado a Objetos Análise e Projeto de um Jogo de Dados Definir Diagramas de Classes de Projeto JogoDeDados dado1 : Dado dado2 : Dado jogar() Dado valorDaFace : int obterValorDaFace() : int lancar () 12

22 Análise e Projeto Orientado a Objetos Exercício – Baixe e instale o Eclipse Galileo com JavaSE 1.6 – Implemente o projeto Jogo

23 Análise e Projeto Orientado a Objetos Resposta Exercício – Classe Dado import java.util.Random; public class Dado { private int valorDaFace; public void lancar(){ // implementar geracao aleatoria de um numero de 1 a 6 Random r = new Random(); valorDaFace = r.nextInt(5) + 1; } public int obterValorDaFace(){ return valorDaFace; }

24 Análise e Projeto Orientado a Objetos Resposta Exercício – Classe JogoDeDados public class JogoDeDados { public static void Jogar(){ Dado dado1 = new Dado(); Dado dado2 = new Dado(); dado1.lancar(); int vf1 = dado1.obterValorDaFace(); dado2.lancar(); int vf2 = dado2.obterValorDaFace(); System.out.println("O dado 1 deu " + vf1); System.out.println("O dado 2 deu " + vf2); int resultado = vf1 + vf2; System.out.println("O resultado do jogo foi " + resultado); } public static void main(String[] args) { // Comentar a chamada de método Jogar() abaixo e descomentar as duas próximas linhas caso não defina o método Jogar() como static //JogoDeDados j = new JogoDeDados(); //j.Jogar(); Jogar(); }

25 Análise e Projeto Orientado a Objetos O que é UML ? – A Linguagem de Modelagem Unificada (UML) é uma linguagem visual para especificar, construir e documentar os artefatos dos sistemas [OMG03a]

26 Análise e Projeto Orientado a Objetos Três modos de Aplicar UML, segundo Fowler: – UML como rascunho – UML como planta de software – UML como linguagem de programação

27 Análise e Projeto Orientado a Objetos Três modos de Aplicar UML, segundo Fowler: – UML como rascunho Diagramas incompletos e informais criados para explorar partes difíceis do problema ou espaço de soluções, explorando o poder das linguagens visuais

28 Análise e Projeto Orientado a Objetos Três modos de Aplicar UML, segundo Martin Fowler: – UML como planta de software Diagramas de projeto relativamente detalhados usados para: – Engenharia reversa » Para visualizar e melhor entender o código existente através de diagramas UML – Engenharia avante » Geração de código a partir dos diagramas UML elaborados

29 Análise e Projeto Orientado a Objetos Três modos de Aplicar UML, segundo Martin Fowler: – UML como linguagem de programação Especificação executável completa de um sistema de software em UML. Código executável será automaticamente gerado, mas não é normalmente visto ou modificado por desenvolvedores Apoio de ferramentas robustas Ainda na teoria

30 Análise e Projeto Orientado a Objetos Exercício – Baixe e instale o plugin OMONDO para o Eclipse Galileo que foi instalado anteriormente – Implemente o diagrama de classes do projeto Jogo e faça a geração automática de código JAVA a partir dos diagramas UML (Engenharia avante)

31 Iterativo, Evolutivo e Ágil O desenvolvimento iterativo e evolutivo

32 Iterativo, Evolutivo e Ágil O que é o Processo Unificado (PU) ? – Um processo de desenvolvimento de software descreve uma abordagem para a construção, implantação e, possivelmente, a manutenção do software – PU surgiu como um processo iterativo popular para o desenvolvimento de software visando à construção de sistemas orientados a objetos – O Rational Unified Process (RUP) é um refinamento detalhado do PU.

33 Iterativo, Evolutivo e Ágil O que é desenvolvimento iterativo e evolutivo ? – Uma prática no PU é o desenvolvimento iterativo., onde o ciclo de vida, o desenvolvimento é organizado em uma série de miniprojetos curtos, de curta duração (3 semanas) chamados iterações – O produto de cada iteração é um sistema parcial, executável, testável e integrável – Cada iteração inclui suas próprias atividades de análise de projeto, requisitos, projeto, implementação e teste.


Carregar ppt "Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012."

Apresentações semelhantes


Anúncios Google