Introdução Visão Geral do Método.

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas
Advertisements

Engenharia de Software
ISO Processos do Ciclo de Vida do Software
UML Modelando um sistema.
(Unified Modeling Language)
Tipos de sistemas de Lehman
Engenharia de Software
Rational Unified Process(RUP)
Engenharia de Software
Valéria Maria Lauande Março/2010
UML Material retirado da apostila do Professor Cesar Augusto Tacla
Projeto de Sistemas de Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Atividade de Projeto Design
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
Análise (I) A análise enfatiza a investigação do problema;
RUP: Fluxo de Análise e Projeto
Como Desenvolver Sistemas de Informação
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Engenharia de Software
Engenharia de Software e Sistemas de Informação e Gestão
RUPinho Qualidade de Software
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Prof.Alfredo Parteli Gomes
Avaliação do RUP como processo para desenvolvimento de software
Análise e Projeto de Sistemas de Informação Orientados a Objeto
Projeto de Sistemas de Software
Processos de Desenvolvimento de Software – Parte 2
Fase de Elaboração: Fluxo de Requisitos
Processo Praxis – Fase de Concepção
Análise e Projeto de Sistemas Levantamento de Requisitos
Análise e Projeto de Sistemas
Oficina Mecânica TADS 2011.
Análise e Projeto de Sistemas
UNIDADE 2 UML MODELAGEM TEMPORAL
Fase de Concepção (Início, Planejamento)
PSBD II Projeto de Sistemas de Banco de Dados II
O Processo de desenvolvimento de software
Especificação em Projeto de Sistemas
Levantamento de Requisitos
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
O Processo Unificado (UP)
Padrão- MVC Model, View, Controller
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
RUP - Cap. 4 – Processo Centrado na Arquitetura
Processos de Software.
Fase de Concepção Levantamento de Requisitos, Organização de Requisitos, Planejamento dos Ciclos Iterativos.
Introdução a um Processo de Desenvolvimento Orientado a Objeto
Desenvolvimento de Software Dirigido a Modelos
UML e a Ferramenta Astah
Engenharia de Software e Sistemas
Fase de Concepção (Início, Planejamento)
Fase de Concepção (Início, Planejamento)
Diagramas de Colaboração entre Objetos Motivação.
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
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Aula 02 de Eng. de Requisitos
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
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.
Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

Introdução Visão Geral do Método

Processo Unificado - UP A motivação para o uso da abordagem de Craig Larman ao Processo Unificado deve-se ao fato de que este é um processo bastante conciso e eficiente para análise e projeto de sistemas orientados a objetos. Neste método, cada artefato (documento ou diagrama) tem uma razão muito clara para existir e as conexões entre os diferentes artefatos são muito precisas.

Migração Há vantagens em mudar o processo de desenvolvimento de sistemas das empresas?

Questão da Ferramenta Comprar um martelo não transforma você em um arquiteto!

UML Unified Modeling Language. Conhecer uma linguagem não implica na habilidade de saber usá-la para produzir artefatos úteis. Escrever bons projetos é como escrever poesia. Não basta conhecer a linguagem. É preciso dominar certas técnicas de escrita.

Software Deselegante O software deselegante é aquele software feito sem uma estrutura clara. O software deselegante é aquele do qual não se consegue reusar partes e que não se consegue entender como funciona sem uma boa carga de documentação (e muitas vezes nem assim). É também aquele no qual uma pequena modificação em uma de suas características pode causar um não funcionamento generalizado.

Software Elegante O software elegante é o software cuja estrutura é intrinsecamente mais fácil de compreender, que é autodocumentado e pode ser compreendido em nível macro ou em detalhes. Ele é mais fácil de modificar: quando alguma de suas características é mudada, ele continua funcionando.

Soluções para prover elegância Design Patterns - lições aprendidas ao longo dos anos em diferentes projetos.

Atividades do Desenvolvimento Análise Projeto Implementação Teste

Análise A análise enfatiza a investigação do problema. O objetivo da análise é levar o analista a investigar e a descobrir. Para que esta etapa seja realizada em menos tempo e de forma mais precisa, deve-se ter um bom método de trabalho.

Análise Pode-se dizer que o resultado da análise é o enunciado do problema, e que o projeto será a sua resolução. Problemas mal enunciados podem até ser resolvidos, mas a solução não corresponderá às expectativas.

Análise A qualidade do processo de análise é importante porque um erro de concepção resolvido na fase de análise tem um custo; na fase de projeto tem um custo maior; na fase de implementação maior ainda, e na fase de implantação do sistema tem um custo relativamente astronômico.

Projeto A fase de projeto enfatiza a proposta de uma solução que atenda os requisitos da análise. Então, se a analise é uma investigação para tentar descobrir o que o cliente quer, o projeto consiste em propor uma solução com base no conhecimento adquirido na análise.

Implementação A utilização de técnicas sistemáticas nas fases de análise e projeto faz com que o processo de geração de código possa ser automatizado. Neste caso, cabe ao programador dominar as características específicas das linguagens, ferramentas, frameworks e estruturas de dados para adaptar o código gerado aos requisitos indicados quando necessário.

Testes A fase de testes envolve os testes de unidade, feitos pelo programador, para verificar se os componentes gerados atendem à especificação do projetista, e aos testes de caso de uso, normalmente efetuados por um analista experiente, que visam verificar a adequação do sistema aos requisitos inicialmente levantados.

As quatro Fases do Processo Unificado A fase de concepção incorpora o estudo de viabilidade e uma parte da análise de requisitos. A fase de elaboração incorpora a maior parte da análise de requisitos, a análise de domínio e o projeto. A fase de construção corresponde à programação e testes. A fase de transição consiste na instalação e manutenção do sistema.

Ciclo de Vida

Concepção Análise de Requisitos Esboço de Modelo Conceitual Listagem de Casos de Uso Escopo do Sistema Cronograma de Desenvolvimento e Desembolso

Análise de Requisitos A análise de requisitos é fundamental para o desenvolvimento de sistemas, pois trata justamente de descobrir o que o cliente quer com o sistema. A análise de requisitos está associada ao processo de descobrir quais são as operações que o sistema deve realizar e quais são as restrições que existem sobre estas operações.

Requisitos Funcionais – o que o sistema deve fazer Não-funcionais – restrições sobre como o sistema deve desempenhar suas funções

Exemplo Registrar o empréstimo de uma fita é um requisito funcional. Estabelecer que o tempo de empréstimo da fita não pode ser superior a 48 horas é uma restrição, ou requisito não funcional.

Erro comum Deve ficar claro ao analista que requisitos são coisas que o cliente ou usuário solicitam, e não coisas que ele, como analista, planejou.

Elaboração Análise de Domínio Projeto Modelagem de Interação (casos de uso expandidos) Modelagem Conceitual Modelagem Funcional (contratos) Projeto Modelagem Dinâmica (diagramas de comunicação) Arquitetura do Sistema Camadas de Domínio, Interface e Persistência

Análise de Domínio A análise de domínio está relacionada à descoberta das informações que são gerenciadas no sistema, ou seja, à representação e transformação da informação.

Exemplo No sistema de informações de uma videolocadora as informações descobertas na análise de domínio possivelmente seriam relativas aos clientes, às fitas, aos empréstimos, aos pagamentos, etc.

Tipos de Informação As informações têm dois aspectos que são analisados: estático (ou estrutural) e o funcional. O modelo estático é representado no diagrama conhecido como modelo conceitual. O modelo funcional pode ser representado através dos contratos de operações de sistema.

Projeto Pode-se dizer que o núcleo de um projeto orientado a objetos consiste de um diagrama de classes. Mas como é que se constrói um diagrama de classes? Construindo o modelo conceitual e adicionando métodos nas classes? Não!

Modelo Conceitual Elementos: Classes: fáceis de identificar Atributos: tomar cuidado para não confundir com associações Associações: tomar cuidado para não confundir com operações Métodos não pertencem ao modelo conceitual e são mais difíceis de determinar

Modelo Dinâmico (projeto) Quais são os métodos que devem ficar em cada classe? O uso de diagramas de comunicação e padrões de projeto pode permitir uma forma muito mais eficiente e eficaz de descobrir o local adequado para implementar cada método.

Exemplo da dificuldade com métodos Tendência a associar muitos métodos a uma classe que representa uma entidade ativa no mundo real, como, por exemplo, o funcionário. Assim, a classe Funcionario teria, segundo esta concepção, os métodos para criar uma locação, cadastrar uma fita, cobrar uma conta, etc. No limite, esta classe acabaria desempenhando todas as funções do sistema, enquanto que as outras classes nada fariam. Certamente esta solução concentradora não é nem um pouco elegante.

Exemplo de solução concentradora a partir de pseudo-código Emprestar uma fita a um cliente corrente

Pseudocódigo concentrador

Uma diagrama de colaboração para o mesmo problema

Resulta em código mais elegante

Orientação a objetos não é apenas “diagrama de classes” Quando uma ou duas classes fazem tudo, e as outras são meras pacientes desse processo, não existe propriamente orientação a objetos, mas uma estrutura concentradora. Seria preferível fazer um projeto estruturado bem feito do que um projeto orientado a objetos desta forma.

OO não é “simulação” Muitos projetistas cometem o erro de acreditar que um sistema orientado a objetos é uma simulação do mundo real. Mas isso não é normalmente verdade. O sistema representa as informações do mundo real e não as coisas propriamente ditas Os métodos, não correspondem a ações do mundo real, mas sim à realização interna de contratos de operações externas (ou operações de sistema). Por este motivo é que os métodos internos são citados apenas na fase de projeto e sequer aparecem na fase de análise.