Laboratório de Programação. Projeto de Software – Eng

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software
Advertisements

Análise e Projeto Orientado a Objetos
Análise e Projeto Orientado a Objetos
Análise e Validação dos Requisitos
Análise e Desenvolvimento de Sistemas
Requisitos de Software
Engenharia de Software
(Unified Modeling Language)
UML Material retirado da apostila do Professor Cesar Augusto Tacla
Centrado na arquitetura
Projeto de Sistemas de Software
Introdução à Unified Modeling Language
Introdução a UML.
Professora: Aline Vasconcelos
SISTEMA DE INFORMAÇÕES DESENVOLVIMENTO DE SISTEMAS
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Análise e Projeto de Sistemas
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
TSDD Teste de segurança durante o desenvolvimento.
Classes e objetos Modelagem
Análise de Casos de Uso Alexandre Motnteiro.
Modelagem para Web Aula de 11/04/2011.
Especificação de Requisitos de Software com Casos de Uso
Diagrama de Classes e Diagrama de Objetos
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
Visão Geral do RUP.
Projeto de Sistemas de Software
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
Análise e Projeto de Sistemas
Introdução a Requisitos
UML Modelagem e Programação Orientada a Objetos
Análise e Projeto de Sistemas
Introdução e Fundamentos Engenharia de Requisitos
Engenharia de Requisitos
O Processo de desenvolvimento de software
O Processo Unificado (UP)
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Laboratório de Programação
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Revisão 2º Bimestre Engenharia de Software I
Processos de Software.
Modelando Sistemas em UML
Fluxos secundários Só devem ser analisados e descritos após a descrição dos fluxos básicos. Fluxos alternativos situações especiais (desconto para um cliente)
Abr-17 Analisar Caso de Uso Analisar caso de uso.
UML INTRODUÇÃO CEÇA MORAES 14/04/2017.
UML e a Ferramenta Astah
Linguagem de Modelagem Unificada
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Modelo de Análise e Projeto
Análise de Casos de Uso Rafael Duarte Alexandre Mota [rmd,
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
Análise e Projeto de Sistemas
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Introdução a UML.
A linguagem unificada de modelagem
Engenharia de Software Fluxo de Requisitos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Modelagem de Sistemas Orientada a Objeto Com UML
Aula 02 de Eng. de Requisitos
CIn-UFPE1 UML Uma linguagem unificada de modelagem Visão Geral.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
Engenharia de Software com o RUP - Workflow de Requisitos
Engenharia de Software
UML (Unified Modeling Language) A linguagem unificada de modelagem
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
Transcrição da apresentação:

Laboratório de Programação. Projeto de Software – Eng Laboratório de Programação Projeto de Software – Eng. De Requisitos e UML George Cabral

Definindo o Sucesso do Software Clientes satisfeitos Eles estão satisfeitos quando você: Atende às expectativas Entrega no prazo Entrega no orçamento O Sucesso começa com a Gerência de Requisitos !!

Como os Projetos podem ter sucesso? Análise do Problema Entenda o problema Obtenha concordância dos envolvidos Levantamento dos Requisitos Identifique quem usará o sistema (atores) Descubra como o sistema será usado (casos de uso) Gerência de Requisitos Especifique os requisitos completamente Gerencie expectativas, mudanças e erros Controle o aumento do escopo Defina a equipe e a mantenha informada

Fatores de Falha dos Projetos Objetivos não estavam claros Ignorar um grupo de clientes Requisitos e especificações incompletos Requisitos e especificações instáveis (mudanças) Omitir um grupo de requisitos Permitir inconsistências entre grupos de requisitos Aceitar requisito inadequado, incorreto, indefinido, ou impreciso Aceitar um requisito ambíguo e inconsistente

Mas o que são Requisitos? Os requisitos de um sistema de computação constituem uma especificação das características e propriedades do sistema ou Uma descrição do que o sistema deve fazer, de como ele deve se comportar, bem como das suas restrições de operação. É importante ressaltar que os requisitos descrevem "o que o sistema deve fazer"- e também "o que ele não deve fazer"- sem dizer "o como fazer".

Requisitos e Especificação Requisito (IEEE) Uma condição ou capacidade necessitada por um usuário para resolver um problema ou alcançar um objetivo Uma condição ou capacidade que deve ser satisfeita por um sistema para satisfazer um contrato ou um padrão Especificação: descrição rigorosa e minuciosa das características que um material, uma obra, ou um serviço deverá apresentar processo de representação dos requisitos de uma forma que leva à implementação bem-sucedida

Importância da Especificação Correta Não importa quão bem projetado ou codificado está um programa, se ele for mal analisado e especificado desapontará o usuário e trará aborrecimentos ao desenvolvedor

Análise de Requisitos Definição e especificação de requisitos Documento de requisitos 7 8 Validação dos requisitos Entendimento do domínio 6 Atrib. Prioridade Entrada do processo 1 5 2 4 Coleta de requisitos Resolução de conflito 3 Classificação

Entendimento do Domínio Desenvolver sistemas envolve domínios além de software e hardware Podemos ter que entender sobre Contabilidade Saúde Supermercados Mercado Etc.

Coleta de Requisitos A coleta de requisitos é feita através de técnicas Nesta etapa, os requisitos são simplesmente documentados à medida que são coletados Resulta em documento preliminar (draft)

Classificação dos Requisitos Esta etapa consiste basicamente em agrupar os diversos requisitos coletados em categorias bem-definidos Por exemplo Requisitos Funcionais: descrevem o comportamento do sistema, suas ações para cada entrada, ou seja, é aquilo que descreve o que tem que ser feito pelo sistema. Requisitos não funcionais: expressam como deve ser feito. Em geral se relacionam com padrões de qualidade como confiabilidade, performance, robustez, etc.

Problema da Análise de Requisitos Stakeholders em geral não sabem o que querem Stakeholders expressam requisitos em sua terminologia Stakeholders diferentes podem gerar requisitos conflitantes

Problema da Análise de Requisitos Fatores políticos e organizacionais podem influenciar os requisitos do sistema Requisitos mudam durante o processo de análise. Stakeholders novos podem surgir e o ambiente de trabalho muda

Resolução de Conflitos É normal que ocorram requisitos conflitantes Por exemplo R-23: O sistema deve ... R-45: O sistema não deve ... Cliente/usuário deve ser consultado para resolver conflitos (ambigüidades)

Atribuição de Prioridade Alguns requisitos são mais urgentes que outros É essencial determinar a prioridade dos requisitos junto ao cliente Requisitos de maior prioridade são considerados em primeiro lugar

Prioridade Requisitos podem ser vistos em três classes distintas Essenciais Importantes Desejáveis Em princípio, sistema deve resolver todos os requisitos de essenciais para desejáveis

Exemplo de Prioridade [RF001] Consulta X ao B.D. deve retornar dados A, B, C Prioridade: Essencial [RNF001] Consulta X ao B.D. deve visualizar dados segundo padrão Y Prioridade: Importante [RNF010] Consulta X ao B.D. deve usar cores azuis nos resultados Prioridade: Desejável

Validação dos Requisitos Será que realmente entendi o que o cliente deseja? Devo me certificar de que não houve falha em nossa interação (comunicação) Há diversas técnicas de validação

Validação de Requisitos Demonstrar que os requisitos definem o sistema que o cliente realmente deseja Custos com erros de requisitos são altos Consertar um erro de requisitos após entrega do sistema pode custar mais de 100 vezes o custo de um erro de implementação

Técnicas de Validação de Requisitos Revisões de Requisitos Análise manual sistemática dos requisitos Prototipação Uso de modelo executável do sistema para avaliar requisitos Geração de Casos de Teste Desenvolver testes específicos para os requisitos para avaliá-los

Gerenciamento de Requisitos Gerenciamento de requisitos é o processo de controlar as mudanças dos requisitos durante O processo da engenharia de requisitos E desenvolvimento do sistema

Gerenciamento de Requisitos Requisitos são inevitavelmente incompletos e inconsistentes Requisitos novos surgem durante o processo de acordo com mudanças nas necessidades do negócio e um entendimento melhor do sistema é desenvolvido Diferentes pontos de vista têm diferentes requisitos e esses geralmente são contraditórios

Rastreamento de Origem Responsável por dependências entre requisitos, suas origens e projeto do sistema Rastreamento de Origem Associação entre requisitos e stakeholders que propuseram tais requisitos

Rastreamento Rastreamento de Requisitos Rastreamento de Projeto Associação entre requisitos dependentes Rastreamento de Projeto Associação dos requisitos com o projeto Usar hipertexto ou referência cruzada Ou matriz de rastreamento

Estrutura de um Documento de Requisitos 1. Introdução 2. Definição dos Requisitos do Usuário 3. Especificação dos Requisitos do Sistema 4. Arquitetura do Sistema 5. Modelos do Sistema 6. Evolução do Sistema 7. Apêndices 8. Índice

Documento de Requisitos Fonte: IEEE/ANSI (830-1998) 1. Introdução 1.1 Propósito do documento 1.2 Escopo do sistema 1.3 Glossário, acrônimos e abreviaturas 1.4 Referências 1.5 Descrição do resto do documento

Documento de Requisitos Fonte: IEEE/ANSI (830-1998) 2. Descrição geral 2.1 Perspectiva do produto 2.2 Funções do produto 2.3 Características dos usuários 2.4 Restrições gerais 2.5 dependências

Documento de Requisitos Fonte: IEEE/ANSI (830-1998) 3. Requisitos específicos requisitos funcionais, não-funcionais, GUI com o usuário: funcionalidade, interfaces externas, desempenho, restrições, atributos do sistema, caract. qualidade, ...

Documento de Requisitos 4. Arquitetura do Sistema 5. Modelos do Sistema Diagrama de Atores Modelo de Caso de Uso Modelo de Análise Modelo de Projeto Diagrama de Pacotes 6. Evolução do Sistema (Futuro) 7. Apêndices 8. Índice

Abreviações e Glossário Abreviação Significado Explicação / Condição ou situação no sistema A Administrador Usuário com maiores privilégios no sistema AT Auto-treinamento Um dos três perfis de avaliação. O operador/treinando solicita ao sistema uma avaliação que lhe é montada de modo randômico a partir de alguns parâmetros CT Certificação Técnica Um dos três perfis de avaliação. Os supervisores (RL/RS) agendam com antecedência dia e hora da avaliação. É o teste que certifica o treinando/operador. O Operador Usuário. Treinando que realiza as avaliações. RL Responsável Local Usuário. Responsável, na unidade da empresa, por um grupo de operadores. Propõe, elimina e valida questões e avaliações. RS Responsável Setorial Usuário. Responsável por um setor da empresa. Coordena um ou mais RL. Propõe, elimina e valida questões e avaliações. TO Treinamento Orientado Um dos três perfis de avaliação. Serve para os RS/RL diagnosticarem o estágio da aprendizagem dos operadores. V Validador Usuário. Checa e valida as questões propostas pelos RS/RL. M Módulo Refere-se aos módulos do sistema. Backup Refere-se à cópia de dados de um dispositivo para o outro com o objetivo de posteriormente os recuperar (os dados), caso haja algum problema. Logon É a ação necessária para acessar um sistema computacional restrito inserindo uma identificação, podendo esta ser ou não única para cada usuário, e a senha relacionada a ela. Uma vez logado, o usuário passa a ser identificado no sistema, sendo restringido ou permitido a acessar recursos do sistema.

UML

O que é um modelo? Construímos modelos para compreender melhor o sistema que estamos desenvolvendo. Um modelo é uma simplificação da realidade. Um modelo pode ser estrutural ou comportamental.

O que é um modelo?

O que é um modelo?

Por que modelar software? Ajuda a ter uma visão geral do sistema Permite especificar a estrutura e o comportamento do sistema Proporciona um guia para a construção do sistema Documenta as decisões tomadas

O que é a UML? Unified Modeling Language (UML) é... ... uma linguagem gráfica para visualizar, especificar, construir e documentar os artefatos de um sistema de software. ... resultado da unificação das notações utilizadas nos métodos Booch, OMT (Object Modeling Technique) e OOSE (Object-Oriented Software Engineering). ... adotada por grande parte da indústria de software e por fornecedores de ferramentas CASE como linguagem padrão de modelagem. … utilizada com qualquer processo de desenvolvimento já que é independente dele.

A UML é uma Linguagem para Visualização No processo de desenvolvimento de sistemas de software, é quase impossível a visualização de toda a estrutura de um sistema sem o uso de modelos que a represente. A UML fornece os símbolos gráficos para a representação de artefatos de software. Por trás de cada símbolo empregado na notação da UML, existe uma sintaxe e uma semântica bem-definidas. Dessa maneira, um desenvolvedor poderá usar a UML para escrever seu modelo, diminuindo a ambigüidade em sua interpretação.

A UML é uma Linguagem para Construção Os modelos de UML podem ser diretamente ”traduzidos” para várias linguagens de programação. Isso significa que é possível mapear os modelos da UML para linguagens de programação tais como, Java, C++ e Visual Basic. Esse mapeamento permite a realização de uma engenharia de produção: geração de código a partir de um modelo em UML. O processo inverso, a engenharia reversa, também é possível, com a reconstrução de um modelo a partir de sua implementação.

A UML é uma Linguagem para Documentação Cada modelo criado é um artefato do software Diagrama de Casos de Uso Diagrama de Classes Diagrama de Seqüência …

Uma linguagem de diagramas Diagramas de Seqüência Diagramas de Colaboração Diagrama de Casos de Uso Modelos Diagramas de Estado Diagramas de Classe Diagramas de Atividade Diagramas de Objetos Ponto de Vista Dinâmico Diagramas de Componentes Diagrama de Deployment Ponto de Vista Estático

Casos de Uso Descrição Narrativa Este caso de uso é responsável por autenticar um usuário do sistema. Pré-condição: nenhuma Pós-condição: um usuário válido é logado e sua sessão é registrada no sistema. Fluxo de eventos principal 1. O cliente informa login e senha. 2. O sistema verifica se o login e a senha são válidos (verifica-se se o login e senha pertencem a uma conta). 3. O sistema registra o início de uma sessão de uso. Fluxos secundários - No passo 2, se o login ou a senha forem inválidos, o sistema exibe uma mensagem e volta ao passo 1. Descrição Narrativa

Diagrama de Casos de Uso <<estende>> Solicitar histórico do semestre atual Solicitar histórico de todos os semestres Solicitar histórico Estudante Verificar dependências Matricular aluno <<inclui>> Secretária Sistema de controle de pré-requisitos

Diagrama de Classes itens representante de vendas IPessoa Pedido Cliente -codigo: Integer -nome: String -dataRecebido  faz 1 -endereco: String 0..* -total: Currency -dataPrimeiraCompra: Date -dataUltimaCompra: Date +confirmar() -totalComprado: Currency +cancelar() -calcularTotal():Currency #creditoPermitido: Currency gerarNovoCodigo: String #nivelCredibilidade() itens Cliente pessoa-jurídica Item de Pedido Cliente pessoa-física nomeContato: String -quantidade: Integer nome: String telefones[1..10]: String -preco: Currency CPF: String CGC: String -emEstoque: Boolean numCartaoCredito FAX[1..3]: String colocarListaNegra() * representante de vendas Produto * Empregado IPessoa

Diagrama de Objetos * -matrícula: String -nome: String Professor -codDisciplina: String -descrição: String -codTurma: String Curso -período: Integer Aluno [0..10] ministra [1..5] * [1..3] p1: Professor p2: Professor matricula: "205-6712-09" nome: "Jaelson Castro" c1: Curso c3: Curso : Curso : Curso c2: Curso codCurso: "IF291" codCurso: "IF185" descrição: "MPS" descrição: "AER" : Aluno : Aluno codTurma: I7 codTurma: I6 : Aluno : Aluno : Aluno :aluno Bill Lewinsky matricula: "219846534" :aluno nome: "Nelson Mandella" : Aluno matricula: "562746134" nome: "John Major"

Diagrama de Sequência

Diagrama de Colaboração

Diagrama de Estados

Diagrama de atividades Procurar bebida [achou café] H Pessoa [sem café] [sem Coca] [achou Coca] Pegar lata de Coca Beber Adicionar água à máquina Colocar café no filtro Colocar filtro na máquina Ligar máquina Filtrar café Pegar xícara Colocar café na

Diagrama de Componentes FormCadastro.html Cadastro.exe Principal.html FormEntrada.html Autenticacao.exe <<link>> Banco Usuários Senhas

Diagrama de Implantação servidorWeb Autenticação.exe Cadastro.exe servidorDeArquivos FormCadastro.html Principal.html FormEntrada.html servidorBancoDeDados SGBD O SGBD a ser utilizado ainda não foi escolhido. PC - G309 Nestscape Communicator 5.0

Atores: Especialização É possível definir tipos gerais de atores e especializá-los usando o relacionamento de especialização

Bibliografia The Unified Modelling Language User Guide (Grady Booch) The Unified Modelling Language Reference Manual (James Rumbaugh) The Unified Software Development Process (Ivar Jacobson) UML Distilled (Martin Fowler)