Engenharia de Software I CURSO DE INFORMÁTICA. 3O SEMESTRE PROF.: LUIS AUGUSTO MACHADO MORETTO. ESP.

Documentos relacionados
Engenharia de Sistemas de Computador

Engenharia de Software

Casos de Uso - definições

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Projeto de Sistemas I

Processo de Software

Engenharia de Software

Engenharia de Requisitos Estudo de Caso

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Processos de Software

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Engenharia de Software III

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Engenharia de Requisitos

Processos de Desenvolvimento de Software

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

2 Diagrama de Caso de Uso

ENG1000 Introdução à Engenharia

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

EVOLUÇÃO DE SOFTWARE

ENGENHARIA DE SOFTWARE I

PROFESSOR: CRISTIANO MARIOTTI

Engenharia de Software

O Processo de Engenharia de Requisitos

Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA

Processo Unificado (RUP)

Professor: Curso: Disciplina:

APOO Análise e Projeto Orientado a Objetos. Requisitos

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

DCC / ICEx / UFMG. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Eduardo Figueiredo.

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Termo de Abertura Sistema de Vendas de Pizzas Online (PizzaWeb) - Versão 1.0

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Uma visão mais clara da UML Sumário

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Documento de Análise e Projeto VideoSystem

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Análise de Requisitos Conceitos

Análise de Requisitos

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Qualidade de Software. Profa. Cátia dos Reis Machado

Fundamentos em Teste de Software. Vinicius V. Pessoni

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Parte I Requirement Engineering. Gestão de Projectos Informáticos. Gestão do Âmbito (Scope Management) Requirement Engineering.

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Engenharia de Software. Análise de Requisitos de Sistema e de Software. Análise de requisitos

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Engenharia de Sistemas Computacionais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

O que é um processo de software?

GARANTIA DA QUALIDADE DE SOFTWARE

Requisitos de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

Desenvolvimento Ágil de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Engenharia de Software

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Fundamentos de Teste de Software

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

1. Desenvolver o software iterativamente. Um pouco de reflexão: Acabou aí? 31/08/2010

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Verificação e Validação

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Tecnologia da Informação. Visão Geral sobre Informática

Notas de Aula 04: Casos de uso de um sistema

Introdução à Computação

Wilson Moraes Góes. Novatec

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Processo de Desenvolvimento de Software. Engenharia de Software.

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

O Processo de Desenvolvimento de Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

UFG - Instituto de Informática

Universidade Paulista

Especialização em Engenharia de Software e Banco de Dados

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Ciclo de vida: fases x atividades

Modelagem de Sistemas Prof. Marcos Roberto e Silva

Sistemas de Informação I

Engenharia de Software

Análise OO. Análise. Antónia Lopes Desenvolvimento C. Objectos 09/10. Antónia Lopes

Engenharia de Software II

Guia de Especificação de Caso de Uso Metodologia CELEPAR

REQUISITOS. Prof. Msc. Hélio Esperidião

Processo de Criação de Cronogramas Prazo

Transcrição:

Engenharia de Software I CURSO DE INFORMÁTICA. 3O SEMESTRE PROF.: LUIS AUGUSTO MACHADO MORETTO. ESP.

Na aula passada... Atividade em grupo Intro Eng. Software

Conhecimento, Problemas Video habilidades e atitudes; da Engenharia de Software Praticas Ageis

Se preocupa com o projeto, implementação, instalação e operação de sistemas que incluem hardware, software e pessoas. (Sommerville)

Um conjunto de componentes inter-relacionados organizados para atingir um certo objetivo. É organizado para executar certo método, procedimento ou controle ao processar informações. Automatiza ou apóia a realização de atividades humanas através do processamento de informações.

Sistemas grandes são projetados para resolver problemas problemáticos. Sistemas requerem abordagem multidisciplinar Infinitas possibilidades Falta de compreensão e confiança entre disciplinas Sistemas devem ser projetados para durarem muitos anos em um ambiente dinâmico.

Software Hardware Pessoas Banco de dados - Informações Usuários e Operadores Procedimentos Documentação

Sistema Sistema Sistema Sistema Sistema de de de de de Automação Bancária Folha de Pagamento Controle Acadêmico Biblioteca Controle de Tráfego Urbano Sistema de Controle de Elevadores Sistema de Editoração de Jornais

Podemos identificar três fases nos paradigmas de desenvolvimento vistos: Definição: Determina viabilidade, requisitos do software, especifica e projeta o sistema. Desenvolvimento: Implementação, integração e instalação. Operação:

Analista de Sistemas Patrocinador Gerente de Projetos Arquiteto de software

Atividade que engloba as tarefas da engenharia de sistemas de computador. Geralmente confundida com as atividades de análise de requisitos. Concentra-se em todos os elementos do sistema, não apenas software. Trabalha na fase de DEFINIÇÃO do sistema: especifica o sistema para o trabalho

Separar partes de hardware, software e peopleware requer muita negociação. Pessoas assumem que problemas com difícil solução são facilmente resolvidos pelo computador. Plataformas podem ser inapropriadas: software deve compensar isso.

Análise de sistemas envolve: Identificação das necessidades. Estudo de viabilidade. Análise, especificação e validação dos Requisitos. Projeto do sistema: Arquitetura Interface Dados

Econômica: análise custo benefício (pg 206 Pressman) Técnica: Estudo da função, desempenho e restrições para um sistema aceitável. Legal: infrações e violações legais (Ex: IA Médica) Alternativas

O processo que estabelece serviços necessários e restrições de operação e desenvolvimento. Requisitos: são objetivos ou restrições estabelecidas por clientes e usuários do sistema que definem as diversas propriedades do sistema (e que dizem respeito ao software). Natureza Funcional: Aquilo que o sistema deve fazer e!funcional: Restricoes para o funcionamento do sistema.

Feasibility study Requirements elicitation and analysis Requir ements specification Feasibility report Requirements validation System models User and system requirements Requirements document

Pressman define um documento básico para a especificação dos requisitos. Ele contém 8 partes: I. Introdução 1. Referências do Sistema 2. Descrição Geral 3. Restrições de projeto do software

II. Descrição da Informação 1. Representação do fluxo de informação a. Fluxo de Dados b. Fluxo de Controle 2. Representação do conteúdo de informação 3. Descrição da interface com o sistema

III. Descrição Funcional 1. Divisão funcional em partições 2. Descrição funcional a. Narrativas b. Restrições/limitações c. Exigências de desempenho d. Restrições de projeto e. Diagramas de apoio 3. Descrição do controle a. Especificação do controle b. Restrições de projeto

IV. Descrição Comportamental 1. Estados do Sistema VI. Bibliografia 2. Eventos e ações VII Apêndice V. Critérios de Validação 1. Limites de desempenho 2. Classes de testes 3. Reação esperada do software 4. Considerações especiais

Inicia a conversão da especificação em um sistema executável, projetando um Software a implementará. Define: a Arquitetura a Interface os Componentes as Estruturas de Dados os Algoritmos

Requirements specifica tion Design acti vities Architectur al design Abstract specifica t ion Interface design Component design Data structur e design Algorithm design System architectur e Software specifica t ion Interface specifica tion Component specifica tion Data structur e specifica tion Algorithm specifica tion Design pr oducts

Partition requirements Define sub system interfaces Identify sub systems Specify sub system functionality Assign requirements to sub systems

Existem diversas abordagens para o projeto de um sistema. Geralmente é feito de maneira gráfica Modelos possíveis: Fluxo de Dados (DFD) Entidade-relacionamento (MER) Estruturais Orientados a Objetos (UML)

Programador Testador Gerente de Projetos

Implementação: envolve a programação, depuração, validação e testes. traduz a estrutura definida durante o projeto em um programa executável OBS: As atividade de projeto e implementação estão fortemente relacionadas e geralmente são interligadas. Integração + Instalação.

Traduz o projeto em um programa. Programação é uma atividade pessoal: não existe um processo genérico (XP - Extreme Programming). Existem diversos paradigmas de programação: Estruturada Orientada a Objetos Funcional

Na depuração ocorre a remoção dos erros de implementação do programa. (o próprio programador executa alguns testes, encontrando e removendo falhas). Programa-se os testes unitarios e executa para testar pequenas unidades do programa Locate error Design error repair Repair error Re test program

A Verificação e a Validação permitem mostrar que o sistema está de acordo com a especificação e cumpre os requisitos do consumidor. Pode utilizar ferramentas formais. Envolve testes onde o sistema é executado em casos derivados da especificação e com processamento de dados reais.

Unit testing Module testing Sub system testing System testing Acceptance testing Component testing Integration testing User testing

Unidade: Componentes individuais Modulo: Coleção de Componentes Sub-sistema: Integração dos módulos. Foco na Interface. Sistema: O sistema como um todo Aceitação: O consumidor verifica o resultado. Assina termo de aceite do projeto!

Requir ements specification System specification System integration test plan Acceptance test plan Service System design Acceptance test Detailed design Sub system integration test plan System integration test Sub system integration test Module and unit code and tess

Diversos projetos (hardware, software e comunicação) ocorrem em paralelo. Pode envolver produtos COTS (Commercial Off-the-Shelf) Problemas: Falta de comunicação Burocracia mecanismos lentos de proposição de mudanças - causa de atrasos

É o processo de juntar o hardware, software e as pessoas que fazem o sistema. Deve ser realizado de maneira incremental: um sub-sistema de cada vez. Quando aparecem problemas de interface e falta de coordenação na entrega dos componentes. Ideal ter um build a cada hora! CVS /

Onde aparecem os erros do analista. Pode ocorrer resistência a implementação do novo sistema. Vários sistemas podem coexistir por algum tempo. Problemas físicos (cabos, eng. civil). Início do treinamento dos operadores.

Trará problemas não previstos (lei de Murphi) Usuários usarão o sistema de maneira não esperada Pode revelar problemas de interação com outros sistemas: Incompatibilidade física Erros de conversão de dados Interfaces inconsistentes Problemas na integracao

Grandes sistemas devem possuir uma longa vida: devem evoluir para atender novos desafios (mudanca na demanda de negocios). Sistemas existentes que devem ser mantidos são camados Sistemas Legados (legacy systems): Bancos de Dados com bug do milênio. Mainframes com Web front-end (muitos bancos tem ainda sistemas escritos em COBOL / FORTRAN!).

Software é inerentemente flexível: pode acomodar modificações. Mudanças nos negócios força modificações no software de apoio. Apesar de ter existido uma demarcação entre desenvolvimento e evolução, esta diferença está se tornando irrelevante e poucos sistemas são completamente novos.

Problema: evolução é custosa: Mudanças devem ser analisadas técnica e economicamente. Interação entre novos sub-sistemas podem causar novos problemas. A estrutura do sistema se corrompe a medida que se realiza mudanças. Decisões do projeto original raramente são racionais...

Define system requirements Assess existing systems Existing systems Propose system changes Modify systems New system

Um sistema deve ser retirado do serviço no término da sua vida útil. Pode requerer remoção de material: Poluição. Sistema deve ser encapsulado. Pode necessitar a transferência de dados e funcionalidade para um novo sistema.

Engenharia de Sistemas permite: via Análise de Sistemas: identificação das necessidades do cliente. determinar viabilidade econômica e técnica definir função do hardware e software. Especificação dos requisitos é conseqüência da análise. Projeto do sistema Implementação, validação e testes. Evolução.

1 Fazer Pedido versão 1 Caso de uso primário Atores: Cliente Pré condição: O usuário deve ter feito "log in" e obtido autorização do sistema

Fluxo de Eventos (caminho básico): O caso de uso começa quando o cliente seleciona "fazer pedido". O cliente fornece seu nome e endereço. Se o cliente fornece apenas o CEP, o sistema coloca automaticamente o a cidade e o estado. O cliente fornece os códigos do produto. (veja alternativa) O sistema devolve as descrições e o preço de cada produto. (Ponto de extensão Produto em Oferta) O sistema calculará os valores totais para cada produto fornecido. (Ponto de extensão Cliente Especial) O cliente fornece as informações sobre cartão de crédito. O cliente submete os dados ao sistema. O sistema verifica as informações fornecidas, marca o pedido como "pendente" e envia as informações de pagamento para o sistema de contabilidade e pagamento. Quando o pagamento é confirmado, o pedido é marcado como "confirmado" e o número de pedido (NP) é dado ao cliente. Pós condição: O pedido deve ter sido gravado no sistema e marcado como confirmado.

Fluxo de eventos secundário: A qualquer momento antes de submeter, o cliente pode selecionar cancelar. O pedido não é gravado e o caso de uso termina. No passo 7, se alguma informação estiver incorreta, o sistema pede ao cliente para corrigir a informação.

Escreva os casos de uso restantes com os fluxos base, alternativo, excecao, atores primarios, pre e pos condicoes. Grupo de 3!