Engenharia de Software

Slides:



Advertisements
Apresentações semelhantes
Projeto Qualified Curriculum
Advertisements

Auditoria de Processo Marcelo Waihrich Souza
Análise e Projeto Orientado a Objetos
Amintas engenharia.
Engenharia de Software
Raphael Gatti Thomás Bryan
Rational Unified Process
Engenharia de Software
Gerência de Projetos Wesley Peron Seno Introdução
Engenharia de Software
Engenharia de Software
Prototipação de Software
Gerenciamento de Projetos
Producto x Processo x Projecto
Garantia de Qualidade do software
Modelos de Processos de desenvolvimento de Software
Valéria Maria Lauande Março/2010
Engenharia de Software Professor Sandro de Paiva Carvalho.
INTRODUÇÃO A INFORMÁTICA
FACULDADE DOS GUARARAPES
Metodologia de Desenvolvimento de Software
Informática Industrial
Processo Desenvolvimento de Software Tradicional
Implementação de Sistemas
Como Desenvolver Sistemas de Informação
TSDD Teste de segurança durante o desenvolvimento.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Modelos de Processos de Software
Classes e objetos Modelagem
Processos de Software II
Gerência de Configuração de Software
Processo de Software Prof. Dr. rer. nat. Daniel D. Abdala
Engenharia de Software
Técnicas e Projeto de Sistemas
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Processos de Desenvolvimento de Software – Parte 2
ENGENHARIA DE SOFTWARE José Manuel de Sacadura Rocha
Processos de Software Profa. Cintia Carvalho Oliveira
Engenharia de Software
Fundamentos de Engenharia de Software
Fevereiro/ Resultado dos Projetos de Software Pesquisa Motivação.
Arquitetura do Software
Prof. Alexandre Vasconcelos
Projeto de Banco de Dados
Desenvolvimento Rápido de Aplicação (RAD)
Processo de Desenvolvimento de Software
Gerência de Configuração - GC
Técnicas e Projeto de Sistemas
Introdução à Engenharia de Software
Bruno Silva Desenvolvido a partir de
RUP - Cap. 5 – Processo Iterativo e Incremental
Engenharia de Software
Processos de Software.
Processos de Software.
Técnicas e Projeto de Sistemas
Gestão de projetos de Software GTI-16
Modelos de Processos de Software
Engenharia de Software
Engenharia de Software
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.
Engenharia de Software Ciclo de Vida do Software: Espiral
Engenharia de Software
Engenharia de Software
Professora: Kelly de Paula Cunha
Apresentação Leonardo Brussolo de Paula
Desenvolvimento de Software I
Ciclo de Vida de Sistemas de Informação
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:

Engenharia de Software Aula 2 Revisão aula anterior Modelos de Desenvolvimento de Software

Linha Tempo T.I. Revisão Evolução do Hardware Evolução do Software 2 Registros Argila Máquina Diferença Abaco Telégrafo Memória Virtual 1.2 milhões transistores Apple IBM PC Rádio Prim. Compu. PGM Prim. Compu. Com. IBM 360 www cel. Microprocessador Microsoftt CD ROM Telefone Calculadora IBM (1924) IBM-CartãoPerfurado RAM, CPU Modem Monitor Chip 8 bits Super Compu. Impres. Laser Impres. Jato Tinta Compu. < 11kh Acesso ráp. www 1bi oper/seg Televisão IBM-Máq. Escrever Ele Transistor Teclado Calculadora mão 1600-1800 dc 1941 1951 1960-61 1976 1981 1985 1989 1935-37 1967 (~200 anos) 2000 1947-49 1958-59 1971 1995 1962 1977 1982-84 4.000-1200 ac 1800-1900 (~5.600 anos) (~100 anos) (~84 anos) WWW UML http 1 browser ToyStory COCOMO AutoCad TCP/IP C++ OO Evolução do Software Anál. Estruturada Planilha Eletr. DOS Windows 95/NT Java Napster 57tri msg/ano Office2000 MP3 Bug milênio CASE CMM “Verme” Modelo Espiral Tear controla produção Transmissão dados Lógica x Símbolos 7 bits Processador Texto 1 Ger. Modem Data ddmmyy Desenv. Sist. Base Algoritmos Compilador BD Windows 1.0 COBOL Cria Bug Milênio Desenv. Softw 1959 1980 1985 1986-89 1937 1968 1972 1995-2000 1949-1951 1958-59 1975 1977 1990-95 1800-1937 1963 1981-83 (~84 anos) Fonte: IEEE Computer Society Serão estudados em Engenharia de Software Crise do Software 2

Hardware x Software Revisão Hardware Software Durante a vida do software modificações introduzem novas falhas, se a manutenção desta falha for de difícil acesso¹, o índice de correção é baixo, trazendo novas falhas. . Conclusão: é difícil ter estabilidade quando é difícil atuar exatamente no ponto gerador do problema. Hardware Software Falhas de hardware no início são inerentes à sua fabricação e no final relativas ao desgaste ambiental das peças (poeira, aquecimento, vibração). Na fase mediana a estabilidade se dá pela facilidade de substituição de uma peça ou outra que apresente falha. Conclusão: é fácil ter estabilidade quando é fácil atuar exatamente no ponto gerador do problema. ¹ Exemplo de difícil acesso = código macarrônico 3

Um projeto é uma função entre Escopo, Recurso e Tempo Revisão O que é Engenharia de Software? Um produto de software novo, ou uma grande manutenção são produzidos por meio de um projeto. Este, por um determinado período de tempo, se compromete a construir um produto. Um projeto é uma função entre Escopo, Recurso e Tempo P = F (E, R, T) O tempo, que deveria ser variável, geralmente se mostra fixo segundo a necessidade do cliente. Com isto o projeto de construção ou manutenção se reduz a uma função de Escopo e Recurso. 4

Revisão O que é Engenharia? Engenharia – Processo => Implementa, Realiza Quando você elabora um produto ou sistema é importante percorrer uma série de passos previsíveis , um roteiro que ajuda a criar a tempo um resultado de qualidade. O roteiro que você segue é chamado de processo de software. Este processo fornece estabilidade, controle e organização para uma atividade que se for deixada sem controle pode se tornar caótica. 5

O que é Engenharia de Software? Revisão O que é Engenharia de Software? A Engenharia de Software é um ramo da Engenharia, que tem Como foco o desenvolvimento de softwares dentro de determinados padrões de custo e qualidade Processo – Engenharia de Software Os engenheiros de software adaptam o processo a suas necessidades e depois seguem. Um processo de software define a abordagem que é adotada quando o software é elaborado. A engenharia de software inclui tecnologias que constituem um processo, métodos técnicos e ferramentas automatizadas. 6

O que é Engenharia de Software? Revisão O que é Engenharia de Software? Incremental Cascata RAD Prototipação Espiral Modelos usados na Engenharia de Software Modelos Conjunto de atividades, ações, tarefas, marcos, roteiros e produtos necessários para fazer com que a Engenharia de Software produza com qualidade. 7

Modelos Cascata Incremental RAD Prototipação Espiral Para situações em que os requisitos do software são razoavelmente estáveis e lineares. Sugere uma abordagem sistemática e seqüencial. 8

Cascata 9

Pontos positivos e negativos Cascata Pontos positivos e negativos (+) equipe com foco numa única fase traz qualidade; fácil colocar preço; fácil gerenciar projeto; implementação mais barata. (-) modificações podem causar confusão à medida que o desenvolvimento prossegue; todos os requisitos têm que ser definidos de uma única vez; só se tem um executável no final do processo; ociosidade de profissionais entre as fases. 10

Kick-off do Projeto: PJ_UCC_11_000001 Prática Estratégia de Implantação Design Data Interface Design Systems Architecture Test Plan Document Requirements Weekly Status Reports (Project Duration) Updated Project Plan (Each Phase) Optimization Call Detail Record Tuning Reports Post Tuning Analysis Customer Approved Changes Deployment Production Build Deployment Guide Testing QA Builds QA Testing Results Installation Guide & Release Notes Implementation Code Usability Study Report Test Data Request Document Test Cases Sample Dialog Document Persona Design Document Skeletal UI and Full UI Codeless Prototyping Requirements Specifications Document High Level Call Flows Persona Requirements Document Account Manager Project Manager Vertical SME UI Lead (Designer) Technical Lead (Architect) QA Lead QA Testers Developers Speech Engineer (Tuning) Build Manager Typical Project Team

Kick-off do Projeto: PJ_UCC_11_000001 Prática Restrições do Projeto Escopo limitado aos detalhamentos encontrados na proposta técnica e no documento de visão. Método de implementação deve ser estritamente seguido, impedindo certas aplicações de paralelismo ou compressão de atividades Sistema deve ser colocado em produção com alguns meses de antecedência do final do ano de 2012 para que os resultados sejam aferidos ainda neste ano

Modelos Incremental Cascata RAD Prototipação Espiral Não é um processo puramente linear. Quando há alguns requisitos definidos, mas ainda há necessidades a serem refinadas, porém há uma necessidade de entregar algum produto ao usuário, ou quando não há equipe suficiente para desenvolver o produto no tempo solicitado. Combina a sequência linear do modelo em cascata de forma iterativa. Cada sequência linear produz uma entrega ao cliente chamada de iteração. 13

Incremental 14

Pontos positivos e negativos Incremental Pontos positivos e negativos (+) cliente recebe funcionalidades ao longo do projeto; não é obrigatório (embora seja desejável) que todos os requisitos estejam definidos no início do projeto; modificações podem ser bem vindas e melhorar o software; não há ociosidade de profissionais entre as fases. (-) é complexo para colocar preço; gerenciamento projeto trabalhoso; implementação pode ficar cara; novos requisitos podem ser incorporados e mudar planos... 15

Modelos Incremental Cascata RAD Prototipação Espiral RAD (Rapid Application Development), Desenvolvimento Rápido de Aplicação. Também é um modelo de software incremental, porém enfatiza um ciclo de desenvolvimento curto. É uma aceleração do modelo em cascata, conseguida à base de utilização de componentes. Comunicação e Planejamento para entender o que se deseja e coordenar equipes. Modelagem de Negocio, Dados e Processos. O desenvolvimento reaproveita componentes. 16

RAD - Rapid Application Development http://www.youtube.com/watch?v=v9-ZA7V7O9I http://www.google.com.br/search?q=obras+do+niemeyer 17

Pontos positivos e negativos RAD Pontos positivos e negativos (+) rápida implementação; baixa probabilidade de erros; mão de obra barata, preço software mais barato; pode ser trabalhado em equipes totalmente separadas (-) é pouco customizável, ou seja, atende no padrão; gerenciamento projeto trabalhoso, sem marcos tradicionais; só vale ser tecnologia for conhecida; requer profissionais comprometidos, pois equipe tem que trabalhar num ritmo profundo de sintonia. 18

Modelos Incremental Cascata RAD Prototipação Espiral Utilizado quando os requisitos estão confusos. Auxilia cliente e desenvolvedor a entender o que se deseja do software. Pode ser aplicado a qualquer um dos modelos da Engenharia de Software. Um protótipo executável é criado rapidamente, utilizando ferramentas de lay-out e componentes reutilizáveis, mas geralmente não tem a qualidade que o produto final reprojetado terá e quando cumpre sua função de clarear os requisitos, é descartado totalmente ou em partes. 19

Prototipação http://www.google.com.br/search?hl=pt-BR&q=maquetes 20

Pontos positivos e negativos Prototipação Pontos positivos e negativos (+) um dos melhores aliados no entendimento do escopo; materializa o escopo; antecipa visualização de problemas; auxilia nas fases de comunicação de todos os demais modelos; (-) o cliente exige que o protótipo evolua em software definitivo; desenvolvedor pode se acostumar com baixa qualidade de desenvolvimento; requer investimento que não fará parte do software definitivo 21

Modelos Incremental Cascata RAD Prototipação Espiral Combina os aspectos controlados e sistemáticos do modelo em cascata com a natureza iterativa da prototipagem. Possui uma abordagem cíclica para incrementar o nível de entendimento e implementação ao mesmo tempo que diminui o grau de risco. Além disso possui marcos para entregas. As primeiras versões entregues podem ser papel, mas as últimas são completas. São realizados vários circuitos em espiral ao longo da vida do software. Veja na Web: www.sei.cmu.edu/cbs/spiral2000 22

Espiral 23

Espiral 24

Pontos positivos e negativos Espiral Pontos positivos e negativos (+) busca infinitamente a qualidade, busca erro tendendo a zero; participação de profissionais altamente qualificados; pode apoiar na produção de softwares altamente complexos; pode entregar produtos relativos ao ciclo de desenvolvimento (requisitos, protótipos, codificação...); as versões entregues são sempre evoluções das anteriores. (-) processo de desenvolvimento pode ser lento; requer analistas de risco na equipe; requer investimento de tempo e dinheiro; requer marcos claros nas entregas; se não for controlado, pode nunca ter fim. 25

Modelos 26

Engenharia de Software Obrigada! Profa. Maria Lina Buscariolli lina.buscariolli@hotmail.com