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



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

Modelos de Processo (métodos)

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

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

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Processos de Software

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

Engenharia de Software

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

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

O que é um processo de software?

Engenharia de Software

Processo de Software - Revisão

Planejamento e Gerenciamento. Erros Clássicos. Pessoas. Pessoas. Processo. Processo. Gidevaldo Novais (gidevaldo.vic@ftc.br)

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

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

Engenharia de Software Unidade I Visão Geral

Tópicos Especiais em Engenharia de Software

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Ciência da Computação ENGENHARIA DE SOFTWARE. Recursos e Cronograma

Gerenciamento de Projeto

O Processo Unificado

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

Unidade I Conceitos BásicosB. Conceitos BásicosB

Processos de Desenvolvimento de Software

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Análise e Projeto de Sistemas

Engenharia de Software

Engenharia de Software II

Metodologia de Desenvolvimento de Sistemas (Versão 2.0)

Pós Graduação Engenharia de Software

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

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

Introdução à Engenharia de Software

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

Professor: Curso: Disciplina:

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

Eduardo Bezerra. Editora Campus/Elsevier. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

PROJETO DE FÁBRICA DE SOFTWARE

Anexo IX METODOLOGIA DE DESENVOLVIMENTO DE SOFTWARE. 1. FINALIDADE. O objetivo deste documento é apresentar uma visão resumida do processo RUP-BNB.

Gestão dos Prazos e Custos do Projeto

A Disciplina Gerência de Projetos

QUALIDADE DE SOFTWARE

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

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 Software Processo de Desenvolvimento de Software

Requisitos de Software

Planejamento e Gerenciamento de Projeto de Software

EMENTAS DAS DISCIPLINAS

Projeto de Desenvolvimento de Software

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

Apostila da disciplina Introdução à Engenharia de Software Professor: Sandro Melo Faculdades São José Curso de Tecnologia de Sistemas de Informação

PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO (PROENG) ASSESSORIA DE DESENVOLVIMENTO ASSESSORIA JURÍDICA

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

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

Professor: Curso: Disciplina: Aula 4-5-6

UM SISTEMA WEB PARA TORCEDORES EM CAMPEONATOS ESPORTIVOS ESTUDANTIS

Qualidade de Software. Qualidade de Software. Adequado à Especificação. Alguns Atributos de Qualidade. Equipe de Qualidade

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

Introdução à Engenharia de Software

O que é um processo de software?

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

Engenharia de Software II

Fundamentos de Engenharia de Software. Josino Rodrigues

Processo de Desenvolvimento de Software

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

Curso Superior de Tecnologia em Banco de Dados e Sistemas para Internet Disciplina: Projeto Integrador III Prof.: Fernando Hadad Zaidan

METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS

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

Apresentação da Disciplina Processo de Software

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

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

MODELOS DE PROCESSO. Isac Aguiar isacaguiar.com.br

29/05/2012. Gestão de Projetos. Luciano Gonçalves de Carvalho FATEC. Agenda. Gerenciamento de Integração do Projeto Exercícios Referências FATEC

Gerenciamento de custos do projeto

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

Processo de Desenvolvimento Unificado

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

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

PROVA DISCURSIVA (P )

Estimativas de software

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

Gerenciamento do Projeto

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

Projeto Físico e Lógico de Redes de Processamento. Kleber A. Ribeiro

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

Projeto de Sistemas I

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

Gestão de Modificações. Fabrício de Sousa

Engenharia de. Software Educacional. De onde surgiu. Papel do computador na sociedade. Equipe multidisciplinar Cuidados:

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Transcrição:

Visão Geral Parte 1 Jair C Leite DIMAp/UFRN O que é engenharia de software? É uma disciplina da engenharia dedicada a todos os aspectos da produção de software. Engenheiros de software devem adotar uma abordagem sistemática e organizada para o seu trabalho e usar técnicas e ferramentas apropriadas, de acordo com o problema a ser resolvido, e com as restrições e recursos disponíveis. Fonte: Ian Sommerville

Objetivos da ES Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software. Aplicação de métodos, técnicas e ferramentas para o gerenciamento do processo de desenvolvimento. Produção da documentação formal destinada a comunicação entre os membros da equipe de desenvolvimento bem como aos usuários. Definições de Engenharia de Software O estabelecimento e uso de princípios de engenharia para a produção economicamente viável de software de qualidade que funcione em máquinas reais [Bauer, 69] A engenharia de software é a disciplina envolvida com a produção e manutenção sistemática de software que são desenvolvidos com custos e prazos estimados. Disciplina que aborda a construção de software complexo - com muitas partes interconectadas e diferentes versões - por uma equipe de analistas, projetistas, programadores, gerentes, "testadores", etc.

Componentes de Sistemas de Computação Hardware Computadores, periféricos e redes Software Os programas e arquivos de dados Informações Coleção de informações organizadas e sistematizadas necessárias ao desempenho das tarefas e procedimentos Usuários Usuários e operadores que realizam as tarefas e procedimentos. Procedimentos Atividades realizadas pelos usuários e operadores, bem como pelos programas (procedimentos automatizados). Documentação Manuais e formulários que descrevem as operações do sistema. Fonte: Roger Pressman Níveis em Sistemas Computacionais Engenheiro Computador e dispositivos externos Usuário Organização e Sociedade

Qual a diferença entre engenharia de software e engenharia de sistemas? A engenharia de sistemas está interessada em todos os aspectos de um sistema baseado em computador, incluindo hardware software, fatores humanos, informação e o processo. A engenharia de software é parte dela. Análise de Sistema Engenharia de... hardware software fatores humanos informação Instalação e Manutenção Princípios da Engenharia de Software Todo engenheiro de software deve desenvolver com: Rigor e Formalidade Separação de interesses Modularidade Abstração Antecipação de mudanças Generalidade Possibilidades de evolução Ghezzi, C. et al. Fundamentals of Software Engineerig

Conceitos Teorias Princípios Modelos e Formalismos Ferramentas e Ambientes Métodos e Técnicas Metodologias Paradigmas Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas e Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação Distribuição, Instalação e Configuração Utilização e administração Manutenção corretiva, evolutiva e adaptativa Fase de retirada Migração, reengenharia, engenharia reversa

Ciclo de vida: fases x atividades Atividades (variam de acordo com o modelo de processo) migração Possível distribuição de tarefas em cada Atividade x Fases evolução manutenção testes Implementação design especificação definição desenvolvimento operação retirada Fases (tempos) O que é um processo de software? Um conjunto de atividades realizadas por pessoas cujo objetivo é desenvolvimento ou evolução de software e sua documentação. Atividades genéricas em todos os processos: Especificação o que o sistema deve fazer (funcionalidade) e quais as restrições Desenvolvimento produção do software Verificação avaliar correção, validação e outros aspectos de qualidade Manutenção mudanças no software Um modelo de processo de software é uma representação abstrata das atividades, papéis e artefatos, cronograma.

Modelo X Processo Um modelo é algo teórico, um conjunto de possíveis ações. O processo deve determinar ações práticas a serem realizadas pela equipe como prazos definidos e métricas para se avaliar como elas estão sendo realizadas. Define quem faz o que, quando e como. Modelo + Planejamento = Processo Atividades, Artefatos, Marcos e Entregas Um processo é organizado em atividades. Atividades são de responsabilidade de um membro da equipe (trabalhador). Atividades devem gerar um artefato de saída, que possa ser verificado, e podem requisitar um artefato de entrada. Um artefato é um modelo, documento ou código produzido por uma atividade. Uma entrega (liberação) é um artefato entregue ao cliente Um processo deve estabelecer uma série de marcos. Um marco é um ponto final de uma atividade de processo.

Planejamento e Gerenciamento Planejamento previsão prazos atividades equipe custos modelos, protótipos e documentos tempo ferramentas Software Planejamento Previsão de atividades, recursos, custos e prazos Estimativas do produto e processo Gerenciamento Controle de acordo com o que foi planejado Verificação da qualidade do produto e do processo controle Gerenciamento Qualidades do processo e produto atividades modelos, protótipos e documentos prazos Métricas do produto equipe Métricas do processo custos temposoftware Avaliação Gerenciamento Qualidade do processo e do produto

Estrutura analítica de tarefas (Work Breakdown Structure) Descrição da rede de tarefas de um projeto, mostrando a dependência entre elas Minimizar dependência e maximizar concorrência entre as atividades Concorrência permite uma utilização melhor da força de trabalho da equipe. Dependência gera atrasos em cascata. Determinar o caminho crítico. Tarefa Duração Dependências Responsável T1 8 Jane T2 15 Anne T3 15 T1(M1) Jane T4 10 Fred T5 10 T2, T4 (M2) Mary T6 5 T1,T2 (M3) Anne T7 20 T1 (M1) Jim T8 25 T4 (M5) Fred T9 15 T3, T6 (M4) Jane T10 15 T5, T7 (M7) Anne T11 7 T9 (M6) Fred T12 10 T11 (M8) Fred Fonte: Ian Sommerville Rede de Atividades 4/7/99 start 8 days T1 15 days T2 14/7/99 15 days M1 T3 5 days 25/7/99 T6 M3 20 days T7 4/8/99 M4 15 days T9 25/8/99 M6 7 days T11 10 days T4 Fonte: Ian Sommerville 25/7/99 M2 18/7/99 M5 Marcos 10 days T5 25 days T8 11/8/99 M7 15 days T10 10 days 5/9/99 M8 T12 Caminho Crítico Finish 19/9/99

Linha de tempo (Diagrama de Gantt) 4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9 Start T4 T1 T2 M1 T7 T3 M5 T8 Fonte: Ian Sommerville M3 M2 T6 T5 T9 M4 M7 T10 T1 1 M6 M8 T12 Finish Alocação pessoa-atividade 4/7 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9 Fred T4 T8 T11 T12 Jane T1 T3 T9 Anne T2 T6 T10 Jim T7 Mary T5 Fonte: Ian Sommerville

Estimativas de custos e prazos Objetivo: previsão os custos de um projeto de software. Estimativas dos recursos necessários Humanos Tecnológicos Burocráticos Infra-estrutura Questões fundamentais Qual o esforço necessário para completar uma atividade? Quanto dias ou meses é necessário para cada atividade? Qual o custo total? Estimativas e elaboração do cronograma são atividades interdependentes. Estimativas e Métricas Estimativas são baseadas em métricas históricas e empíricas Métricas históricas Obtidas a partir de experiências anteriores da equipe Métricas empíricas Dados estatísticos de diferentes equipes

Métricas Planejamento, Gerenciamento e Avaliação são realizados com base em métricas A medição possibilita Avaliar a qualidade dos produtos Avaliar a produtividade da equipe Avaliar métodos e ferramentas Realizar estimativas no planejamento Métricas do processo Métricas de produtividade Métricas do produto Métricas da qualidade e métricas técnicas Métricas para Planejamento e Gerenciamento Objetivos Dimensão dos produtos Modelos, protótipos, documentos e software Produtividade Quantidade produzida por esforço Esforço de produção Pessoas necessárias num período de tempo Defeitos Número de erros encontrados Custo de produção Valor do esforço de produção e correção de erros Tamanho = 20,7 KLOC Produtividade = 3,6 PM/KLOC (Pessoa-Mês)/(k lines-of-code) Esforço = Produtividade*KLOC (penalidade) = 3,6*20,7 (1,030) = 95 PM

Modelos de Processo Um modelo de processo ou método define um conjunto de atividades específicas. Principais modelos: Cascata (Waterfall) Espiral (Spiral) Evolutivo e Incremental Processo Unificado da Rational (Rational Unified Process RUP) Personal Software Process Team Software Process