Engenharia de Software 1

Documentos relacionados
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Engenharia de Software

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Processos de Software

Engenharia de Software

Engenharia de Software

INTRODUÇÃO A ENGENHARIA 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. Aula 03 Processos de Software

Engenharia de Software: Visão Geral

Processo de Desenvolvimento. Edjandir Corrêa Costa

Desenvolvimento de Projetos

Introdução a Engenharia de Software

Processos de Software

Engenharia de Software I

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

Engenharia de Software

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

Princípios da Engenharia de Software aula 03

Introdução a Engenharia de Software

Engenharia de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Processos de software

Modelos de Processo de Software. Profª Jocelma Rios

Reuso de Software Aula Maio 2012

ENGENHARIA DE SOFTWARE

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Modelos de Ciclo de Vida (Parte 1)

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

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

QUALIDADE DE SOFTWARE. Prof. Emiliano Monteiro

Engenharia de Software II

MODELOS DE PROCESSOS (PARTE 2)

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

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

PROCESSO DE SOFTWARE

Modelos de Processo de Software

Definições e ciclo de vida

Engenharia de Software Processo de Desenvolvimento de Software

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Qualidade de software. Prof. Emiliano Monteiro

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

Requisitos de Sistemas

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

Engenheiros de software (algumas vezes conhecidos no mundo da TI como engenheiros de sistemas ou analistas ) e outros interessados no projeto

Modelos de Processo de Software

APOSTILAS: NORMAS; ABNT NBR ISO; MPS BR

Qualidade de Software

Normas ISO:

MODELAGEM DE SISTEMAS Unidade 1 Conceitos Básicos de Modelagem. Luiz Leão

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

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Introdução à Engenharia de Software

Professor Emiliano S. Monteiro

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

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne

ANÁLISE E PROJETO DE SISTEMAS

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

ENGENHARIA DE SOFTWARE

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

Engenharia de Software

Verificação e Validação (V & V)

Ciclo de Vida de Sistemas de Informação

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Prova Discursiva Engenharia de Software

Transcrição:

Universidade Federal de Alagoas (UFAL) Campus Arapiraca Engenharia de Software 1 02 - Introdução Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 1/ 54

Objetivos Objetivos Apresentar os conteúdos sobre introdução à engenharia de software Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 2/ 54

Introdução à Engenharia de Software Como uma casa é construída? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 3/ 54

Introdução à Engenharia de Software Como uma casa é construída? Como um produto de software é desenvolvido? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 4/ 54

Introdução à Engenharia de Software Como uma casa é construída? Como um produto de software é desenvolvido? Qual a importância do software hoje? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 5/ 54

Introdução à Engenharia de Software Software está presente em praticamente todas as atividades Bancos Instituições de ensino Aeroportos Sistemas médicos... Bug do milênio (Virada de ano 1999-2000) Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 6/ 54

Termo utilizado nos anos 60/70, quando ES praticamente não existia Novas tecnologias de hardware possibilitaram que novos sistemas de software, antes considerados inviáveis, se tornassem realizáveis Software cada vez maior e mais complexo era solicitado, e não existiam técnicas para desenvolver software de forma adequada Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 7/ 54

O desenvolvimento informal de software não era adequado Os problemas: estouro do orçamento e prazo; baixa qualidade dos produtos; inadequação aos requisitos; código difícil de manter; dificuldades de gerenciamento. O conceito de ES foi proposto em uma conferência organizada para discutir a crise de software Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 8/ 54

Alguns profissionais defendem......que o cenário de crise permanece até hoje...que o cenário atual melhorou acentuadamente...que o termo crise não era adequado Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 9/ 54

O que você acha? Qual é o cenário atual? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 10/ 54

The Standish Group (TSG) foi fundado em 1985 atualmente com sede em Boston Possui uma equipe de profissionais com vasta experiência em avaliação de riscos, custos, retorno e valor sobre investimentos em TI Coleta informações sobre projeto de TI Auxiliam na obtenção de sucesso estudando e exibindo casos de fracasso Constrói e fornece soluções para reduzir riscos e melhorar/acelerar o valor agregado na área de TI Fonte: http://www.standishgroup.com/about/index.php (Tradução livre) Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 11/ 54

Alguns dos relatórios do TSG relacionados aos estudos sobre projetos de TI: Chaos Report (1994) Extreme Chaos (2001) Chaos Rising (2005) Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 12/ 54

Construção de pontes X Construção de software Pontes: normalmente finalizadas dentro do tempo e custo previsto; em geral não apresentam problemas (não caem); Software: normalmente finalizados acima do tempo e custo previsto em geral apresentam problemas; Por que? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 13/ 54

Pontes: 3.000 anos de experiência; projeto é extremamente detalhado; projeto não sofre modificações (ele fica congelado). Software: área bastante recente; projeto detalhado... projeto sofre modificações... Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 14/ 54

Sucesso: projeto concluído no prazo, dentro do orçamento e com todas as funcionalidades Desafiador: projeto operacional, mas concluído fora do prazo, fora do orçamento, e/ou com poucas funcionalidades Fracassado: cancelados ou que não foram utilizados Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 15/ 54

Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 16/ 54

Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 17/ 54

Sucesso: o conjunto de restrições não é muito exigente? Desafiador: se o produto está em uso e agrega valor, o projeto não pode ser considerado como um caso de sucesso? Fracassado: muitos projetos podem não ter entrado em uso e essa pode ter sido a melhor decisão (não é um fracasso) Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 18/ 54

Uma média de 189% de custos acima do esperado Uma média de 222% de tempo acima do esperado Em média 61% das funcionalidades foram entregues. Chaos report 1994 Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 19/ 54

Em resumo... Introdução à Engenharia de Software Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 20/ 54

O que é software? Introdução à Engenharia de Software O que é software? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 21/ 54

O que é software? Introdução à Engenharia de Software Software é... Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 22/ 54

O que é software? Introdução à Engenharia de Software Software é... 1 conjunto de instruções que quando executadas fornecem a função e o desempenho desejados Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 23/ 54

O que é software? Introdução à Engenharia de Software Software é... 1 conjunto de instruções que quando executadas fornecem a função e o desempenho desejados 2 estruturas de dados que permitem aos programas manipular adequadamente a informação Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 24/ 54

O que é software? Introdução à Engenharia de Software Software é... 1 conjunto de instruções que quando executadas fornecem a função e o desempenho desejados 2 estruturas de dados que permitem aos programas manipular adequadamente a informação 3 documentos associados Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 25/ 54

O que é software? Introdução à Engenharia de Software Produto genérico. São sistemas produzidos por uma empresa e disponibilizados no mercado para qualquer cliente. Produto sob encomenda. São sistemas personalizados para um determinado cliente, o qual contrata uma empresa de desenvolvimento para produzir o sistema segundo suas necessidades. Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 26/ 54

O que é software? Introdução à Engenharia de Software É um produto. Programas que permitem o uso do hardware. Está presente nos celulares, nos computadores, nos carros, nos aviões,... É um meio de entrega de um produto. Permitem transmissão de dados, entregam o principal produto atual informação Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 27/ 54

O que é software? Introdução à Engenharia de Software Software de sistema. Coleção de programas que servem a outros programas (ex. compiladores) Software de tempo real. Programas que possuem o tempo de resposta como um fator crítico (ex. software para controle de uma caldeira) Software de negócios. Programas que fornecem apoio para as atividades de negócios (ex. sistema de folha de pagamento) Software científico. Programas que fornecem suporte para as atividades científicas (ex. software para comparação de DNA) Software embarcado. Programas que estão embutidos em diversos aparelhos (ex. controle de temperatura de um microondas) Software Web. Programas que são executados no ambiente Web (ex. serviço de web-mail)... Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 28/ 54

O que é Engenharia de Software? O que é Engenharia de Software? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 29/ 54

O que é Engenharia de Software? Qual a melhor profissão? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 30/ 54

O que é Engenharia de Software? Qual a melhor profissão? Segundo uma pesquisa realizada nos EUA 1 Mathematician (Matemático) Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 31/ 54

O que é Engenharia de Software? Qual a melhor profissão? Segundo uma pesquisa realizada nos EUA 1 Mathematician (Matemático) 2 Actuary (Avaliador) 3 Statistician (Estatístico) 4 Biologist (Biólogo) 5 Software Engineer (Engenheiro de Software) 6 Computer Systems Analyst (Analista de Sistemas) 7 Historian (Historiador) 8 Sociologist (Sociólogo) 9 Industrial Designer (Designer industrial) 10 Accountant (Contador) Pesquisa se baseia em salário, stress, saúde,... Fonte: http://www.careercast.com/jobs/content/jobsrated_10bestjobs Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 32/ 54

O que é Engenharia de Software? Engenharia de Software (ES) é uma disciplina de engenharia relacionada a todos os aspectos de produção de software [Som2007] Processo de software inclui Análise Projeto Codificação Verificação e Validação Implantação Evolução Gerenciamento Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 33/ 54

O que é Engenharia de Software? Análise Busca identificar quais características e funcionalidades são desejadas pelo cliente Nesta fase deve-se responder as perguntas o que será desenvolvido? ; o desenvolvimento do produto é viável? ; o produto agregará valor ao negócio? ;... Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 34/ 54

O que é Engenharia de Software? Projeto Busca identificar como as características e funcionalidades desejadas serão implementadas Nesta fase deve-se responder as perguntas: como será desenvolvido? ; quais técnicas e ferramentas devem ser utilizadas? ; qual estrutura deve ser adotada? ;... Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 35/ 54

O que é Engenharia de Software? Codificação Consiste na implementação das especificações Transformação dos modelos em código executável Não é necessário produzir todo o código, técnicas de reuso podem ser adotadas Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 36/ 54

O que é Engenharia de Software? Verificação Estamos construindo o produto corretamente? As saídas fornecidas são as saídas corretas? Validação Estamos construindo o produto correto? O software corresponde ao que o cliente solicitou? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 37/ 54

O que é Engenharia de Software? Implantação Planejamento e execução das medidas necessárias para o software entrar em uso para o cliente Instalação e configuração do produto Confecção de manuais de usuário Realização de treinamentos Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 38/ 54

O que é Engenharia de Software? Evolução Após entrar em uso o software deverá sofrer modificações Correção de erros Solicitação de mudanças Melhorias gerais (ex. desempenho, segurança,...) Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 39/ 54

O que é Engenharia de Software? Evolução Fonte: Peeger, Engenharia de Software: Teoria e Prática Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 40/ 54

O que é Engenharia de Software? Gerenciamento Diversas atividades são desempenhadas durante o desenvolvimento Gerenciamento deve organizar as atividades e as pessoas que as executam Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 41/ 54

O que é modelo de processo de software? Um modelos de processo de software representa a maneira como as diferentes fases de um processo são executadas e interligadas É uma representação simplificada de um processo de software Exemplos de modelos de processo de software: Cascata ou sequencial linear; Prototipação Iterativo e Incremental Espiral Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 42/ 54

O que é processo de software? Um processo de software é um conjunto de atividades e resultados associados que produz um produto de software Exemplos de processo de software: extreme Programming SCRUM RUP Não existe uma bala de prata Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 43/ 54

Qual a diferença entre ES e CC? Ciência da Computação. Teorias e métodos que compõem a base de computadores e de sistemas de software. Engenharia de Software. Prática relacionada a produção de software. Cenário ideal: Engenheiro de Software utiliza os conceitos da Ciência da Computação para produzir software Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 44/ 54

Qual é o objetivo da ES? Software tá rodando X Software de qualidade Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 45/ 54

Qual é o objetivo da ES? Software tá rodando X Software de qualidade Objetivo da ES é produzir software: de qualidade... repetidas vezes... de forma previsível. Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 46/ 54

O que é qualidade de software? International Organization for Standardization (ISO) ISO 9000 = Normas para gestão de qualidades ISO 9126 = Qualidade de Produtos de Software NBR 13596 = Versão brasileira da ISO 9126 Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 47/ 54

O que é qualidade de software? De forma resumida a ISO 9126 / NBR 13596 observa se o produto de software possui as seguintes características Funcionalidade (satisfaz as necessidades?) Confiabilidade (é imune a falhas?) Usabilidade (é fácil de usar?) Eficiência (é rápido e enxuto?) Manutenibilidade (é fácil de modificar?) Portabilidade (é fácil de usar em outro ambiente?) Além disso deve-se respeitar o prazo e o custo especificados Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 48/ 54

Quais são os custos da ES? Os custos associados a produção de software dependem de muitos fatores: Tipo do sistema desenvolvido; Quantidade e qualidade dos membros da equipe; Ferramentas e Hardware disponível Tempo e orçamento disponível... Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 49/ 54

Quais são os custos da ES? Fonte: Sommerville, Engenharia de Software Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 50/ 54

Exercício Introdução à Engenharia de Software O que é software? O que é/foi a crise de software? O que é Engenharia de Software? Qual o papel do engenheiro de software? Quais atividades podem ser desempenhadas para criar software? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 51/ 54

Resumo Introdução à Engenharia de Software Software = algoritmo + estruturas de dados + documentação foi o termo utilizado para descrever os problemas relacionados ao desenvolvimento informal de software Engenharia de Software (ES) é uma disciplina relacionada a todos os aspectos da produção de software O engenheiro de software deve utilizar metodologias, técnicas e ferramentas da ES para produzir software de qualidade As atividades desempenhadas ao longo do ciclo de desenvolvimento são: Análise, Projeto, Codificação, Verificação & Validação, Implantação, Evolução e Gerenciamento Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 52/ 54

Leituras recomendadas Ian Sommerville Engenharia de software. Pearson, 8a. edição, 2007. Capítulo 1: Introdução. Roger S. Pressman Engenharia de software. McGraw-Hill, 6a. edição, 2006. Capítulo 1: O Produto. Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 53/ 54

Perguntas? Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br Alexandre de Andrade Barbosa alexandre.barbosa@arapiraca.ufal.br 54/ 54