1. Engenharia de Software: conceitos básicos

Documentos relacionados
Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

Engenharia de Software II

3. Engenharia dos requisitos de software

2. Processos em Engenharia de Software

Engenharia de Software

Gerência e Planejamento de Projeto. Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016

Teste de Software. Professor Maurício Archanjo Nunes Coelho

QUALIDADE DE SOFTWARE

Estágio II. Aula 01 Qualidade de Software. Prof. MSc. Fred Viana

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

Processos de Software

Engenharia de Software

ANEXO II REQUISITOS, ATRIBUIÇÕES E REMUNERAÇÕES DOS CARGOS CARGO/GRUPO ATRIBUIÇÕES REQUISITOS REMUNERA

Engenharia de Software

DESENHO DE CARGOS E TAREFAS

Nomenclatura usada pela série ISO Série ISO 9000

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

Qualidade de Software (cont)

Gerência de Projetos de Software. Prof. Dr. João Dovicchi INE / CTC / UFSC.

Componentes de SIs. Pessoas Organiz. Tecnologia

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1

Crise do Software. Crise de tecnologia - hardware caminha mais rápido que o software

Qualidade de software. Prof. Emiliano Monteiro

Introdução a Teste de Software

02/10/2012 Clarindo Pádua. Avaliação de maturidade em usabilidade de organizações Produtividade do usuário.

Guia do Processo de Teste Metodologia Celepar

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Melhoria de processos Qualidade. Engenharia de software Profª Karine Sato da Silva

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

Modelos de Processo de Software

Avaliação de Processos de Software Utilizando a Norma ISO/IEC Autor : Anisio Iahn Orientador : Everaldo Artur Grahl

Introdução. O Modelo CMM/SEI. Roteiro da Apresentação. Conceitos básicos de qualidade. Conceitos básicos de qualidade de software

Engenharia de Software

Escolhendo um Modelo de Ciclo de Vida

Engenharia Software. Ení Berbert Camilo Contaiffer

Agenda. Componentes genéricos de uma fábrica de. Implantar ou melhorar uma fábrica, é um. Outras novidades que merecem atenção

Qualidade de Processo de Software CMM / CMMI

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

PSP: Personal Software Process. PSP- Personal Software Process. PSP: Personal Software Process. PSP: Personal Software Process

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

Escopo: PROCESSOS FUNDAMENTAIS

Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

GERENCIAMENTO DE PROJETOS DE SOFTWARE. Rosana Braga ICMC/USP

Qualidade de Software

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

ENGENHARIA DE SOFTWARE

REUSO E REUSABILIDADE

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

- 6ª Lista de Exercícios -

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

AULA 3 ETAPAS PARA ELABORAÇÃO DE PROJETOS

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Teste de Software. Karen Frigo Busolin Novembro / 2010

Definições e ciclo de vida

Tópicos desta Aula: O que é Engenharia de Software? O que é Software? Para que serve? Qual sua importância?

ENGENHARIA DE SOFTWARE PROFA. REANE FRANCO GOULART

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

Princípios da Engenharia de Software aula 03

Professor Emiliano S. Monteiro

Estratégias de Testes Parte I

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

QUALIDADE DE SOFTWARE DEFINIÇÕES / RESUMO. Apostilas de NORMAS, disponíveis no site do professor. Prof. Celso Candido ADS / REDES / ENGENHARIA

MODELOS DE PROCESSOS (PARTE 2)

Engenharia de Software I: Aula 03: Conceitos (parte 1)

PROGRAMAÇÃO EXTREMA - XP

PSP Personal Software Process. Maria Cláudia F. P. Emer

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

Transcrição:

Renato Cardoso Mesquita Departamento de Eng. Elétrica da UFMG renato@cpdee.ufmg.br Engenharia de Software 1. Engenharia de Software: conceitos básicos.......... 1.1 Computador: problema ou solução? Por que os sistemas informatizados: não fazem o que deveriam fazer? são entregues com atraso? custam mais caro do que o previsto? são de baixa qualidade? são pouco confiáveis? são lentos? são difíceis de usar? etc...???? Respostas: Problemas são resolvidos por pessoas, processos e tecnologia. Sistemas são usados dentro de processos portanto, os processos têm que ser definidos. Sistemas são usados por pessoas portanto, as pessoas têm que ser: levadas em conta;

Engenharia de Software: conceitos básicos Pg. 2 treinadas; ajudadas. Problemas são resolvidos por sistemas, não apenas por software. Sistema Software Hardware Bancos de dados Procedimentos manuais Redes de comunicação Fazer software é mais do que desenvolver programas. O ciclo de vida do software: Ativação Especificação Desenvolvimento Implantação Operação Desenvolver programas é mais do que codificar. O ciclo de desenvolvimento de software: Desenho alto nível Desenho detalhado Codificação Testes Por que os sistemas informatizados... não fazem o que deveriam fazer? Porque os problemas têm que ser bem enunciados, antes de serem resolvidos

Engenharia de Software: conceitos básicos Pg. 3. O que é necessário fazer é uma coisa. O que os usuários querem é outra coisa O que os usuários pedem é outra coisa O que os analistas entendem é outra coisa O que acaba sendo feito... especificar os requisitos custa tempo e dinheiro não especificar custa mais tempo e dinheiro! Modificações dos requisitos no meio do desenvolvimento (instabilidade dos requisitos): perda de tempo e dinheiro; às vezes são inevitáveis... O que fazer? As mudanças de requisitos podem ser minimizadas: graças a uma boa especificação. As mudanças de requisitos têm que ser administradas (gestão de requisitos): através de regras; através do desenho; através de ferramentas. Por que os sistemas informatizados... são entregues com atraso? custam mais caro do que o previsto? Porque os projetos têm que ser bem planejados e controlados, para serem realizados Planejamento e Controle de Projetos.

Engenharia de Software: conceitos básicos Pg. 4 Executar projetos é mais do que escrever propostas. Fazer orçamentos e cronogramas é fácil. Cumpri-los é muito mais difícil. Sem controle, compromissos não se cumprem. É necessário gerir os projetos! A cultura do prazo... os sistemas só são propostos quando a necessidade deles é para ontem. os prazos são fixados de forma comercial ou política, e não técnica: o sistema já foi vendido o ministro vem inaugurar Não me interessa como você vai fazer, desde que entregue no prazo! Pressionados o suficiente, programadores prometem qualquer prazo. Não só a etapa de desenvolvimento conta nos prazos. Ativação Especificação Desenvolvimento Implantação Operação Só o desenvolvimento depende mais dos programadores que dos usuários! Conseqüências da cultura do prazo: produtos de má qualidade que não resolvem os problemas que deveriam resolver e são entregues fora do prazo! Dado um prazo, sempre se consegue fazer alguma coisa. Resta ver se é a coisa que deveria ser feita.

Engenharia de Software: conceitos básicos Pg. 5 Os processos de desenvolvimento de software são intensivos em mão de obra. Métodos resolvem apenas uma parte dos problemas. Ferramentas resolvem uma parte ainda menor dos problemas. Ferramentas e métodos avançados só têm utilidade nas mãos de pessoas capacitadas. Receitas para reduzir custos. Fazer uma boa especificação, para não ter que muda-la durante o desenvolvimento. Nada é mais caro que resolver os problemas errados. Identificar e resolver problemas o mais cedo possível. custo de correção dos defeitos cresce muito ao longo do tempo. Não usar tecnologia tosca demais. tempo dos programadores geralmente é mais caro que plataformas e ferramentas. Não usar tecnologia sofisticada demais. tempo de aprendizado de plataformas e ferramentas sofisticadas pode ser maior que o benefício.

Engenharia de Software: conceitos básicos Pg. 6 Por que os sistemas informatizados...... são de baixa qualidade? Porque a qualidade não é planejada... portanto, não é controlada! Mas o que é qualidade de software? é o grau de conformidade de um produto com os seus requisitos A qualidade dos produtos depende da qualidade dos processos. que é mal especificado, é mal projetado. que é mal projetado, é mal construído. que é mal construído, é muito difícil consertar. Todos os produtos intermediários devem ser conferidos. O que não passar na checagem não está pronto. Conferir custa tempo e dinheiro. Não conferir custa muito mais. O controle da qualidade é inútil se não for obsessivo. Todos conferem melhor o trabalho alheio. Quem confere não pode ser quem desenvolve. Qualidade é produzida por técnicas corretas nas mãos de pessoas capacitadas. Conferir não cria qualidade, apenas descobre problemas. Qualidade não é luxo, é a necessidade mais básica. Prazos e custos só podem ser definidos a partir de objetivos de qualidade. Com qualidade zero, pode- se fazer qualquer coisa dentro do prazo.

Engenharia de Software: conceitos básicos Pg. 7 Onde atuar? Investir em tecnologia? Tecnologia tem seu próprio ritmo de evolução. Tecnologia demais é problema e não solução. Capacitação de pessoas? Formar pessoas é difícil, caro e demorado. Recrutar pessoas capacitadas também. Mudanças no processo de produção de software? Mudanças de processo podem trazer melhorias a prazo mais curto. Problema: não existe bala de prata! Ferramentas não fazem milagres. Metodologias não fazem milagres. Métodos gerenciais não fazem milagres. Os processos também não fazem milagres! A capacitação em processos é, ela própria, um processo. objetivo do processo de capacitação é o amadurecimento de uma cultura da qualidade. Requer tempo, recursos, motivação. O amadurecimento dos processos se faz passo a passo. Existem níveis de maturidade. Níveis de maturidade de software: nível artesanal: processo informal (só existe na cabeça dos desenvolvedores), de alto risco. freqüentes surpresas: geralmente desagradáveis; projetos andam de crise em crise; quando funciona, é por causa de talentos individuais; sucessos em geral não se repetem.

Engenharia de Software: conceitos básicos Pg. 8 O nível de gestão básica: gestão de requisitos, dos projetos e da qualidade; capacidade para repetir tipos de projetos bem sucedidos. Níveis superiores de maturidade: nível de engenharia básica; nível de engenharia avançada; nível de melhoria contínua dos processos. Modelos de capacitação: servem para avaliar a maturidade dos processos de uma organização; modelo CMM (Capability Maturity Model) : focaliza os processos Número do nível Nome do nível Característica da organização Característica dos processos Nível 1 Inicial Não segue rotinas Processos caóticos Nível 2 Repetitivo Segue rotinas Processos disciplinados Nível 3 Definido Escolhe rotinas Processos padronizados Nível 4 Gerido Cria e aperfeiçoa rotinas Processos previsíveis Nível 5 Otimizante Otimiza rotinas Processos em melhoria contínua

Engenharia de Software: conceitos básicos Pg. 9 E esta disciplina??? Esta disciplina visa tornar o aluno apto a: utilizar um processo típico de produção de software; utilizar padrões e técnicas para: engenharia de requisitos; análise orientada a objetos; projeto orientado a objetos; projeto detalhado e codificação; realização de testes; aplicar os padrões e técnicas acima em projetos de software de pequeno e médio porte; participar de revisões técnicas, relatá-las e conduzi-las.