Unidade I Conceitos BásicosB. Conceitos BásicosB



Documentos relacionados
PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

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

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

Projeto de Desenvolvimento de Software. Apresentação (Ementa) e Introdução

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

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

Modelos de Processo (métodos)

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza

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

Unidade II MODELAGEM DE PROCESSOS

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Administração de Pessoas

Atividades da Engenharia de Software ATIVIDADES DE APOIO. Atividades da Engenharia de Software. Atividades da Engenharia de Software

Gerenciamento da Integração (PMBoK 5ª ed.)

3 Qualidade de Software

Processo de Desenvolvimento de Software Workshop de Engenharia de Software

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

Processo de Software - Revisão

Prof. Vitório Bruno Mazzola INE/CTC/UFSC 1. INTRODUÇÃO

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Engenharia de Software

DESENVOLVENDO O SISTEMA

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

ADMINISTRAÇÃO E SERVIÇOS DE REDE

ADMINISTRAÇÃO GERAL GESTÃO DO DESEMPENHO

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Com metodologias de desenvolvimento

Gledson Pompeu 1. Cenário de TI nas organizações. ITIL IT Infrastructure Library. A solução, segundo o ITIL

Ouvir o cliente e reconhecer o problema: ingredientes essenciais à gestão de projetos

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO

Guia de utilização da notação BPMN

Capítulo 2 Objetivos e benefícios de um Sistema de Informação

ENGENHARIA DE SOFTWARE

Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos.

Levantamento, Análise e Gestão Requisitos. Aula 06

GERÊNCIA DE PROJETOS DE SOFTWARE. Introdução

ITIL v3 - Operação de Serviço - Parte 1

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Projeto 914 BRA PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 03

Engenharia de Software II

Os objetivos descrevem o que se espera alcançar com o projeto; Devem estar alinhados com os objetivos do negócio; Deve seguir a regra SMART:

agility made possible

ENGENHARIA DE SOFTWARE II. Modelos de Ciclo de Vida e Processos de Software AULA 2

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

3. Fase de Planejamento dos Ciclos de Construção do Software

Resolução da lista de exercícios de casos de uso

Projeto de Sistemas I

Projeto. Gerenciamento de Projeto de Software. Tópicos abordados. Características básicas de um projeto. Definição

Visão Geral Parte 1. O que é engenharia de software?

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

Casos de uso Objetivo:

Introdução aos Sistemas de Informações Gerenciais. Prof. Nécio de Lima Veras

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

Gerência de Projetos Prof. Késsia Rita da Costa Marchi 3ª Série

Processos de Software

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

7 perguntas para fazer a qualquer fornecedor de automação de força de vendas

Universidade Paulista


Questionário de Avaliação de Maturidade Setorial: Modelo de Maturidade Prado-MMGP

Todos nossos cursos são preparados por mestres e profissionais reconhecidos no mercado, com larga e comprovada experiência em suas áreas de atuação.

Desenvolvimento de uma Etapa

ASSUNTO DA APOSTILA: SISTEMAS DE INFORMAÇÃO E AS DECISÕES GERENCIAIS NA ERA DA INTERNET

Características do Software

Engenharia de Software

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

CONSIDERAÇÕES DE QC PARA TESTES POINT-OF-CARE Tradução literal *Sarah Kee

Classificação de Sistemas: Sistemas Empresariais

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

Módulo 12 Gerenciamento Financeiro para Serviços de TI

O Processo Unificado

Conceitos Fundamentais de Qualidade de Software

Barreiras. Lição 1.5. A palavra mais importante para transformar situações de risco potencial em IMPROVÁVEL.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Porque estudar Gestão de Projetos?

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Qualidade de Software

O planejamento do projeto. Tecnologia em Gestão Pública Desenvolvimento de Projetos Aula 8 Prof. Rafael Roesler

ADMINISTRAÇÃO GERAL MOTIVAÇÃO

Gestão dos Prazos e Custos do Projeto

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

AGILIDADE ORGANIZACIONAL

Gerenciamento de Requisitos Gerenciamento de Requisitos

Introdução à Engenharia de Software. Profª Jocelma Rios

5 EDI - As montadores e suas distribuidoras

Modelagem de Processos de Negócio Aula 5 Levantamento de Processos. Andréa Magalhães Magdaleno andrea@ic.uff.br

Modelos de Sistemas Casos de Uso

DDoS: como funciona um ataque distribuído por negação de serviço

Transcrição:

à Engenharia de Software Unidade I Conceitos BásicosB Pedro de Alcântara dos Santos Neto pasn@ufpi.edu.br 1961 a 1963 Surgimento de novos Hardwares 1963-1968 Crise do Software! Incapacidade de se utilizar adequadamente os recursos computacionais disponíveis 1968 Surgimento da Engenharia de Software Termos surgiu em 1968 NATO Software Engineering Conference Objetivo de discutir alternativas para contornar a Crise do Software Dijkstra ministrou o discurso: O Pobre Programador! A A maior causa da crise do software é que as máquinas tornaram-se várias v ordens de magnitude mais poderosas! Para esclarecer melhor: quando não havia máquinas, m a programação não era um problema; quando tínhamos t poucos computadores, a programação tornou-se um problema razoável, e agora, que nós n s temos computadores gigantes, a programação tornou-se um problema igualmente grande.. Crise do Software 4% - Usado como foi entregue 29% - Pago e nunca entregue Projetos estourando o orçamento amento. Projetos estourando o prazo. Software de baixa qualidade. Software muitas vezes não atendiam os requisitos. Projetos ingerenciaveis e o 45% - Impossível de ser usado código difícil de manter. 22% - Modificado e refeito para ser utilizado Será que a crise acabou? 1

Será que a crise acabou? Será que a crise acabou? Como os clientes explicaram Como o líder do Como o analista projeto entendeu projetou Como o programador escreveu tor Como o consul- descreveu Como o projeto foi documentado O que foi instalado O que foi cobrado O que foi dado suporte O que o cliente realmente queria Aplicação de um abordagem sistemática, tica, disciplinada e quantificável para o desenvolvimento de software. Unidades Integração Requisitos Outros conceitos: "O estabelecimento e uso de sólidos s princípios pios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas m reais.", NAUR PETER, 1969. Projeto e Simulações Integração Produto Concluído Outros conceitos: A A aplicação prática do conhecimento científico para o projeto e a construção de programas computacionais e a documentação necessária à sua operação e manutenção. ão.,, BARRY BOEHM, 1976. Outros conceitos: Conjunto de métodos, m técnicas t e ferramentas necessárias à produção de software de qualidade para todas as etapas do ciclo de vida do produto.,, SACHA KRAKOWIAK, 1985. 2

Por que os sistemas informatizados: não fazem o que deveriam fazer? são entregues com atraso? custam mais caro do que o previsto? Problemas são resolvidos por pessoas, processos e tecnologia. Deve haver equilíbrio entre tais elementos... Solução Processos Pessoas Tecnologia Sistemas são usados dentro de processos de negócio. portanto, os processos de negócio têm que ser definidos. Solução Sistemas são usados por pessoas portanto, as pessoas têm que ser: levadas em conta, treinadas, ajudadas. Solução Processos Pessoas Processos Pessoas Tecnologia Tecnologia Problemas são resolvidos por sistemas; não apenas por software. O Sistema é algo bem maior... Solução O Sistema é algo bem maior... Solução Processos Pessoas Hardware Vias de comunicação Tecnologia Bases de dados Software 3

Por que os sistemas informatizados... não fazem o que deveriam fazer? porque os problemas têm que ser enunciados; antes de serem resolvidos. É comum pessoas quererem saber o preço o de um software, antes de enunciá-lo. Mas elas sabem que é impossível obter um preço para um prédio, uma ponte, sem que haja uma definição precisa dos requisitos associados! Precisamos expor mais a área, para que as pessoas entendam que construir software é um processo de engenharia e segue os mesmos preceitos de um produto de engenharia O valor de um produto deriva de suas características: Funcionais (comportamento) Deve ter um cadastro X, Y, uma função Z,... não-funcionais (características ligadas ao comportamento). X e Y devem suportar 100 acessos simultâneos, Z tem que responder em até 8s Os requisitos: características que definem os critérios rios de aceitação de um produto. O valor de um produto deriva de suas características: Funcionais (comportamento) Deve ter um cadastro X, Y, uma função Z,... não-funcionais (características ligadas ao comportamento). X e Y devem suportar 100 acessos simultâneos, Z tem que responder em até 8s Requisitos características que definem os critérios rios de aceitação de um produto. Princípios da Engenharia de Requisitos: uma boa especificação de requisitos custa: tempo e dinheiro; a a ausência de uma boa especificação de requisitos custa: muito mais tempo e dinheiro. Problemas no Desenvolvimento de Software provenientes de mitos que surgiram durante a história inicial dessa atividade Antigos mitos interessantes histórias e freqüentemente entemente fornecem lições humanas merecedoras de atenção Mitos do software propagam desinformação e confusão tinham certos atributos que os tornavam parecidos com afirmações razoáveis, tendo aspecto intuitivo divulgados por profissionais experientes e que deveriam entender do assunto 4

Diversos mitos Mitos gerenciais Advém m de gerentes sobre pressão de orçamento e tempo. Mitos do cliente Advém m de falsas expectativas e insatisfação com o desenvolvedor. Mitos do Profissional Advém m de se considerar o software como uma forma de arte. Será que o software é uma arte ou uma engenharia? Mitos gerenciais Mito 1 (Manual de Práticas): se a equipe dispõe de um manual repleto de padrões e procedimentos de desenvolvimento de software, então a equipe será capaz de conduzir bem o desenvolvimento Isso não é o suficiente! É preciso que a equipe aplique efetivamente os conhecimentos apresentados no manual e que eles sejam atualizados! Mitos gerenciais Mito 2 (Computador Moderno): A equipe tem ferramentas de desenvolvimento de software de última geração, uma vez que eles dispõem de computadores modernos Mais importante do que ter um hardware de última geração é ter ferramentas para a automação do desenvolvimento de software e sabê-las utilizar adequadamente. Mitos gerenciais Mito 3 (Horda de Mongóis): Se o desenvolvimento do software estiver atrasado, aumentando a equipe poderemos reduzir o tempo de desenvolvimento Acrescentar pessoas em um projeto atrasado provavelmente vai atrasá-lo ainda mais. Mitos do cliente Mito 4 (Especificação): Uma descrição breve e geral dos requisitos do software é o suficiente para iniciar o seu projeto o cliente deve procurar definir o mais precisamente possível todos os requisitos importantes para o software, antes do desenvolvimento Conceitos BásicosB Mitos do cliente Mito 5 (Mudanças): as): os requisitos de projeto mudam continuamente durante o seu desenvolvimento, mas isto não representa um problema... não existe software, por mais flexível que suporte alterações de requisitos significativas sem um adicional em relação ao custo de desenvolvimento Custo de introdução de mudanças 100 90 80 70 60 50 40 30 20 10 0 Definição Desenvolvimento Manutenção De Até 5

Mitos do profissional Mito 6 (Terminar mais cedo): Após s a finalização do programa e a sua implantação, o trabalho está terminado 50 a 70% do esforço o de desenvolvimento de um software é empregado após s a sua entrega ao cliente (manutenção). Mitos do profissional Mito 7 (Qualidade): Enquanto o programa não entrar em funcionamento, é impossível avaliar a sua qualidade a preocupação com a garantia do da qualidade do software deve fazer parte de todas as etapas do desenvolvimento. Mitos do profissional Mito 8 (Executável): O produto a ser entregue no final do projeto é o programa funcionando Além m do software em si, um bom projeto deve ser caracterizado pela produção de um conjunto importante de documentos. Um produto de software possui um ciclo de vida Isso é composto pelas seguintes fases: a concepção, onde o produto é idealizado. o desenvolvimento, onde ocorrem as transformações dos requisitos em itens a serem entregues ao cliente. a operação, quando o produto é instalado para ser utilizado. a retirada, quando o produto tem sua vida útil finalizada. A A codificação é apenas uma parte do ciclo de vida do software Muitos profissionais acreditam que isso é tudo! Existem muitas outras atividades Um processo de software é um guia que detalha todas as atividades relacionadas ao desenvolvimento de software Porém, existem muitos processos» Cada um com um formato diferenciado Mas o que é um processo de software: Conjunto de passos parcialmente ordenados, constituídos por atividades, métodos, m práticas e transformações, utilizados para se atingir uma meta. Uma meta está associada a resultados, que são os produtos resultantes da execução do processo.» Wilson de PáduaP 6

Processo é um guia de como se fazer algo Projeto é o uso de um processo para se construir um produto de software É importante saber essa diferença! um processo deve ter uma documentação que o descreve o que é feito (produto) quando (passos) por quem (agentes) o que usa como entrada (insumo) o que é produzido (resultado). A A documentação de um processo pode ser simples e informal, como é o caso dos Processos Ágeis ou completamente detalhada como é o caso dos processos baseados no Processo Unificado. Existem processos que abrangem todo o ciclo de vida do software Mas também m existem processos específicos para partes do desenvolvimento processos para testes processos para manutenção» são considerados subprocessos O O ponto inicial para seleção de um processo é entender qual modelo de ciclo de vida ele utiliza. Um modelo de ciclo de vida pode ser apropriado para um projeto mas não ser apropriado para outro. É necessário entender bem os conceitos relacionados para que as escolhas feitas sejam baseadas em conhecimento e não no acaso. Ciclo de vida todas as atividades relacionadas a um software, desde a concepção de suas idéias ias até a descontinuidade do produto Para entender melhor o conceito de ciclo de vida é importante entender melhor cada um dos subprocessos mais importantes ligados às s tarefas de desenvolvimento 7

Principais subprocessos da Engenharia de Software Requisitos Análise Desenho (ou projeto) Implementação Teste Modelos de Ciclo de Vida: Codifica-Remenda Especificação (???) Produto Modelos de Ciclo de Vida: Codifica-Remenda provavelmente o mais usado; não exige sofisticação técnica t ou gerencial; alto risco; impossível de gerir; não permite assumir compromissos confiáveis. Modelos de Ciclo de Vida: Codifica-Remenda provavelmente o mais usado; não exige sofisticação técnica t ou gerencial; alto risco; impossível de gerir; não permite assumir compromissos confiáveis. Modelos de Ciclo de Vida: Cascata Requisitos Análise Desenho Implementação Modelos de Ciclo de Vida: Cascata subprocessos executados em estrita seqüência: pontos de controle bem definidos facilitam gestão; teoricamente, confiável e utilizável; em projetos de qualquer escala; interpretado literalmente: é rígido e burocrático; Testes 8

Modelos de Ciclo de Vida: Cascata requisitos, análise e desenho: têm de ser muito bem dominados: não são permitidos erros; de baixa visibilidade para o cliente: só recebe o resultado final do projeto. Modelos de Ciclo de Vida: Espiral Ativação Análise Operação Desenvolvimento Modelos de Ciclo de Vida: Prototipagem Evolutiva ou Incremental Nova iteração Planejamento da iteração Requisitos Análise Desenho Modelos de Ciclo de Vida: Prototipagem Evolutiva ou Incremental espiral é usada para versões provisórias; rias;» Chamadas de protótipos; tipos; cobrem cada vez mais requisitos;» até que se atinja o produto desejado; permite que requisitos sejam definidos progressivamente; alta flexibilidade e visibilidade para os clientes; Avaliação da iteração Testes Implementação Projeto terminado Modelos de Ciclo de Vida: Prototipagem Evolutiva ou Incremental requer gestão sofisticada; desenho deve ser muito robusto; requer equipe muito disciplinada e experiente; aplicada em processos ágeis geis. Requisitos Análise Desenho arquitetônico Modelos de Ciclo de Vida: Entrega Evolutiva Desenho detalhado Implementação Nova iteração Avaliação da iteração Testes Projeto terminado 9

Modelos de Ciclo de Vida: Entrega Evolutiva em pontos bem definidos: usuários podem avaliar partes do produto: fornecendo realimentação quanto às s decisões tomadas; facilita acompanhamento dos projetos: por parte de gerentes e de clientes; a a arquitetura é chave: deve ser robusta; deve permanecer íntegra; ao longo das liberações. Engenharia de Software As grandes áreas da Engenharia de Software Corpo de conhecimento e práticas recomendadas Padrões éticos e profissionais Currículo educacional para graduação, pós-p graduação à Engenharia de Software Unidade I Conceitos BásicosB Pedro de Alcântara dos Santos Neto pasn@ufpi.edu.br 10