Análise e Projeto de Sistemas Introdução

Slides:



Advertisements
Apresentações semelhantes
Projeto Qualified Curriculum
Advertisements

Auditoria de Processo Marcelo Waihrich Souza
Análise e Projeto Orientado a Objetos
Programa das Aulas 20/09/05 - Apresentação da disciplina
Raphael Gatti Thomás Bryan
Rational Unified Process
Engenharia de Software
Gerência de Projetos Wesley Peron Seno Introdução
Rational Unified Process(RUP)
Engenharia de Software
Gerenciamento de tempo do projeto
INTRODUÇÃO A INFORMÁTICA
Mitos e Problemas Relacionados ao Software
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
Metodologia de Desenvolvimento de Software
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.
Engenharia de Requisitos
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
Requisitos Funcionais e Não-Funcionais/ Documento de Requisitos
Como Desenvolver Sistemas de Informação
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Gerenciamento do Escopo
Classes e objetos Modelagem
Análise de Casos de Uso Alexandre Motnteiro.
Modelagem para Web Aula de 11/04/2011.
DIAGRAMA DE COMPONENTES
Engenharia de Requisitos
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Técnicas e Projeto de Sistemas
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
Prof.Alfredo Parteli Gomes
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Object Oriented Software Construction (MEYER, Bertrand)
Projeto de Sistemas de Software
Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Processos de Desenvolvimento de Software – Parte 2
Análise e Projeto de Sistemas Levantamento de Requisitos
Taxonomia Profa. Lillian Alvares,
Análise e Projeto de Sistemas
Qualidade de Produto de Software
Análise e Projeto de Sistemas
LABORATÓRIOS DE INFORMÁTICA IV ENGENHARIA DE SOFTWARE: DA TEORIA À PRÁTICA GRUPO 13.
Oficina Mecânica TADS 2011.
UML Modelagem e Programação Orientada a Objetos
Análise e Projeto de Sistemas
Prof. Alexandre Vasconcelos
 - PSF Grupo: abc, agsj, fcac.
Projeto de Banco de Dados
Técnicas e Projeto de Sistemas
O Processo de desenvolvimento de software
UML - Unified Modeling Language
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
O Processo Unificado (UP)
Engenharia de Software
Laboratório de Programação
Técnicas e Projeto de Sistemas
UML e a Ferramenta Astah
Empresa de vendas de insumos para máquinas industriais
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
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:

Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br

Sumário Introdução Conceitos básicos Crise do Software Engenharia de Software Conceitos básicos Ciclo de vida básico do desenvolvimento de software e fases Ferramenta CASE & UML Documentação

Crise do Software Ganhou importância, principalmente, em razão da má qualidade dos softwares produzidos até a década de 70 Muitos deles eram entregues fora do prazo e com algumas poucas funcionalidades Muitas funcionalidades não funcionavam como deveriam O custo de produção era muito variável O software era difícil de manter (atualizar) ... Insatisfação dos usuários

Crise do Software Algumas consequências Necessidade de criar e adotar melhores métodos e ferramentas para produzir software Criação de uma disciplina – Engenharia de Software – destinada ao estudo de técnicas que permitam a produção de software de qualidade.

Introdução Engenharia de Software É uma disciplina que se preocupa com todos os aspectos da produção de software. Ela usa três elementos fundamentais: Métodos (fornecem a técnica: orientação a objetos) Ferramentas (fornecem o suporte para os métodos - CASE: Computer-Aided Software Engineering) Procedimentos (ações que unem métodos e as ferramentas).

Introdução Os métodos, ferramentas e procedimentos... São organizados em modelos de ciclo de desenvolvimento de software ou modelos de processos (tradicional, ..., processo unificado etc). Um modelo ou processo de desenvolvimento é: Um conjunto de etapas ou fases que são seguidas para que ao final se tenha um software.

Introdução Os métodos, ferramentas e procedimentos... A aplicação de métodos, ferramentas e procedimentos deve ser feita por especialistas, pois são tarefas que exigem conhecimento para que o resultado final atenda as necessidades do cliente.

Introdução Software Engineering Body Of Knowledge - SWEBOK Em 2004, a Eng. de Software passou por um estudo para definir suas fronteiras (assuntos de maior importância); Esse estudo foi conduzido pela IEEE e chama-se de SWEBOK (Corpo de Conhecimento de Eng. de Software); O objetivo é concentrar mais esforço e organizar melhor o conhecimento sobre Eng. de Software.

Introdução Software Engineering Body Of Knowledge - SWEBOK Requisitos (Requirements) de Software Projeto (Design) de Software Construção (Construction) de Software Teste (Testing) de Software Manutenção (Maintenance) de software Gerência de Configuração de Software Gerência de Engenharia de Software Processos de Engenharia de Software Ferramentas e Métodos de Engenharia de Software Qualidade (Quality) de Software A seleção e organização de uma série de conteúdos deu origem a disciplina de Análise e Projeto de Sistemas

Introdução Ciclo de vida de desenvolvimento de software Mas, um software, é construído de que forma? Será que existe um passo a passo, uma receita de bolo? Ciclo de vida de desenvolvimento de software

postas em ordem diferente Introdução Ciclo de vida (padrão-básico) é composto por uma série de fases ou etapas: Levantamento de requisitos Análise Projeto Implementação Testes Implantação Manutenção Aglutinadas e/ou postas em ordem diferente

Estes são os requisitos Introdução Requisito: tudo aquilo que um software deve fazer ou respeitar Exemplo: quais requisitos poderiam estar associados a um software para uma biblioteca. Cadastrar obras (livros) Fazer empréstimos Restringir o número máximo de obras a serem emprestadas (10) Reservar obras ... Geralmente, quando alguém nos contrata para desenvolver um software este alguém fala “Eu preciso de um cadastro de produtos”, “Eu preciso do relatório X” ou “Eu preciso de um cadastro de clientes”... Estes são os requisitos

Introdução Requisito serão classificados em: Funcionais Não Funcionais ou de Qualidade Complementares

Introdução Requisitos Funcionais: são aqueles requisitos que dizem respeito a uma função ou funcionalidade: Registrar vendas de automóveis; Gerar relatório de produtos armazenados; Registrar empréstimos de DVDs; Enviar email para um grupo de pessoas; ...

Introdução Requisitos não funcionais: são aqueles requisitos que expressam limites ou restrições Exemplo: quais requisitos de qualidade poderiam estar associados a construção de uma casa: Cor e Tamanho Quantidade de portas Número de pavimentos ... Importante: a descrição de um requisito não funcional deve ser objetiva e clara. Cada requisito não funcional deve estar associada a uma dada funcionalidade Funcionalidade: Empréstimo de Livro O número máximo de livros a serem emprestados é 5 Livros com tarja prata não podem ser emprestados

Requisitos podem mudar durante o desenvolvimento de um software? Introdução Há também os requisitos complementares que expressam restrições que envolvem o software como um todo Exemplo: Em toda interface do usuário deve haver um botão de ajuda ... Requisitos podem mudar durante o desenvolvimento de um software?

Introdução Etapa: Levantamento de Requisitos É uma etapa inicial, destinada ao conhecimento das funcionalidades e das restrições que o software deve ter e/ou respeitar. Nela aplicam-se algumas técnicas, como: Questionário Entrevista Reunião Observação, análise de documentos ...

Introdução Etapa de Levantamento de Requisitos Alguns pontos importantes: Deve ser bem planejada Não pode ser muito demorada Deve haver um registro Anotações devem ser feitas Dar ciência ao cliente em relação aos requisitos levantados Procurar, sempre, ter o usuário como um elemento ativo e participante do processo.

Introdução Etapa: Análise Significa investigar, descobrir ou desvendar algo Consiste em encontrar os requisitos para um dado software É uma etapa que pode conter o levantamento de requisitos Nela requisitos são organizados, analisados e priorizados Utilizam-se ferramentas para poder descobrir o que será realizado, sendo definida como sendo a etapa “do que deverá ser feito” Quem atua nesta etapa deve possuir experiência e conhecimento.

Introdução Etapa: Análise (cont...) Espera-se que o resultado desta etapa aponte quais recursos serão necessários: Equipe Tempo – cronograma Estimativa de custos ...

Introdução Etapa: Projeto ou Design Mas por que fazer projeto? Nós somos profissionais! Um exemplo Imagine um Eng. Civil na tarefa de construir um prédio Ele faz uma série de plantas, pois não é possível iniciar colocando um tijolo após o outro, sem desenhar quais serão as aberturas os elevadores do prédio etc Estima e define quais materiais irá usar na construção etc ...

Introdução Etapa: Projeto ou Design (Cont...) O projeto de software é semelhante ao projeto do prédio! Precisamos também fazer uma planta, mas é óbvio que nela não estarão salas, banheiros etc Nossa planta terá: Classes Relações entre as classes (como elas interagem) Esquema de banco de dados Definem-se, também, o hardware e as tecnologias que serão usadas para colocar o software em funcionamento

Introdução Etapa: Implementação Etapa: Teste Aqui, com base no projeto, faz-se a programação ou codificação, ou seja, o projeto guia a codificação evitando que se perca o foco do trabalho ou se façam coisas desnecessárias Etapa: Teste São as ações que permitem verificar se um software atende ou não sua especificação (requisitos) É preciso testar com várias entradas e com várias situações que podem ocorrer no dia a dia do cliente

Introdução Etapa: Teste (Cont.) Etapa: Implantação Unidade Integração Sistema ... Importante: Precisamos ser rigorosos nesta etapa! Etapa: Implantação Instalar o software na máquina do cliente, na rede do cliente, no ambiente do cliente Dar um suporte inicial e se necessário um treinamento

Introdução Etapa: Manutenção Pode ser: Corretiva: problemas ou erros no próprio software Adaptativa: um novo imposto por exemplo (software refletir) Ela inicia com a instalação e só termina quando não houver mais usuários usando o software Setor de suporte a usuários

Introdução Ferramenta CASE (Computer-Aided Software Engineering) Qualquer ferramentas baseada em computador que auxilie no desenvolvimento de software Ex. JUDE, Rational Rose, EA, Umbrello, ArgoUML ...

Introdução Histórico Foi inspirada para dar suporte à modelagem orientada a objetos; Os esforços para a criação da UML tiveram início em outubro de 1994 e em junho de 1996, a versão 0.9 da UML; Em 1997 a UML foi aprovada como um padrão pelo OMG (Object Management Group); OMG consórcio internacional de empresas que definem padrões para orientação a objetos.

Introdução Visão geral Atualmente a UML está na versão 2.2 e possui 14 diagramas, divididos em duas grandes categorias: Estruturais (sete) e comportamentais(sete)

Introdução O que ela é ? UML (Unified Modeling Language) Linguagem de Modelagem Unificada (Padrão); UML é uma linguagem para: Visualizar (sob diversos ângulos o software) Especificar (construir modelos precisos sem ambiguidades) Construir (seus modelos podem ser transformados em código) Documentar (Requisitos, testes, código-fonte etc)

Introdução O que ela NÃO é ? UML não é uma metodologia Ela não diz quem deve fazer o quê, quando e como UML não é uma linguagem de programação.

Introdução Valor da UML É um padrão aberto São padrões disponíveis para livre acesso e implementação, que independem de royalties e outras taxas e sem discriminação de uso; É suportada por diversas ferramentas; Baseada em experiências anteriores; Suporta todo o ciclo de vida de desenvolvimento.

Introdução Documentação ... Entrada de um novo membro na equipe Exemplo: imagina que você irá fazer uma reformar na sua casa e precisa fazer furos em um quarto que fica ao lado do banheiro. É possível que você acerte um cano d’água, mas se tiver uma planta/documento de projeto que informe detalhes da instalação hidráulica, você ficará longe deste problema. ... Entrada de um novo membro na equipe

Introdução Em relação as fases ou etapas do ciclo de vida Dependendo da metodologia que se usa a sequência de execução delas pode mudar Algumas etapas podem ser aglutinadas ou agrupadas Em alguns casos, algumas fases pode ter maior importância que outras Em geral, as metodologias variam quanto a forma e a ordem, mas os conceitos aqui apresentados fazem parte e são usados no desenvolvimento de software minimamente complexo.

Introdução Em relação as fases ou etapas do ciclo de vida (Cont.) Nosso objetivo foi apresentar cada uma das fases Em aulas posteriores, cada uma delas será estuda em detalhes

Evitar que a crise do software seja atual! Introdução Tudo o que foi visto e trabalhado pretende evitar que: Software não funcione corretamente; Custos desnecessários; Re-trabalhos; Cronograma seja ultrapassado; Insatisfação do cliente; ... Evitar que a crise do software seja atual!

Introdução