Engenharia de Software

Documentos relacionados
Introdução à Engenharia de Software

Prof. Dr. Thiago Jabur Bittar

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

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

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

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

ENGENHARIA DE SOFTWARE

Engenharia de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Engenharia de Software

Introdução à Engenharia de Software

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

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

Processos de software

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

Introdução a Engenharia de Software. Professor Joerllys Sérgio

Engenharia de Software

Processos de Software

RUP RATIONAL UNIFIED PROCESS

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

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

Princípios da Engenharia de Software aula 03

Problemas e Práticas Recomendadas no Desenvolvimento de Software

ENGENHARIA DE SOFTWARE

Engenharia de Software I

Introdução a Engenharia de Software

Fundamentos de Engenharia de Software. Josino Rodrigues

Prof. Esp. Fabiano Taguchi

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Rational Unified Process (RUP)

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

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

Engenharia de Software

Engenharia de Software

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

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

Introdução a Engenharia de Software

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

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

Engenharia de Software II

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

RUP RATIONAL UNIFIED PROCESS. Prof. Fabiano Papaiz IFRN

Paradigmas de Software

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Introdução à Análise e Projeto de Sistemas

RUP Unified Process. Profª Jocelma Rios

Processos de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Requisitos de Sistemas

Professor Emiliano S. Monteiro

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

INF1013 MODELAGEM DE SOFTWARE

Modelos de Processo de Software

Requisitos de Sistemas

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Engenharia de Software 1

Engenharia de Software Processo de Desenvolvimento de Software

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

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. Prof. Emiliano Monteiro

Escolhendo um Modelo de Ciclo de Vida

Modelos Prescritivos de Processo

Visão Geral do RUP.

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

Requisitos de Sistemas

Engenharia de Software

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

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

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

Transcrição:

Instituto Superior Politécnico de Ciências e Tecnologia Engenharia de Software Prof Pedro Vunge www.pedrovunge.com I Semestre de 2018

Capítulo 1 Introdução SUMÁRIO Engenharia de Software Definição; Objectivos da Engenharia de Software; Princípios Gerais da Engenharia de Software. 2 Introdução a Informática Prof. Pedro Vunge

Objectivo da aula Depois desta aula você terá uma revisão sobre o que é a engenharia de software, os seus objetivos e conceitos básicos. 3

Leitura recomendada Capítulo 1 (Software and Software Engineering) do livro Software Engineering A Practioner s Approach (de Roger Pressman) Capítulo 1 (Introduction) do livro Software Engineering (de Ian Sommerville) 4

O que é a Engenharia de Software? Estudo ou aplicação de abordagens sistemáticas, económicas e quantificáveis para o desenvolvimento, operação e manutenção de software de qualidade. Engenheiros de software devem adoptar uma abordagem sistemática e organizada para seu trabalho e usar ferramentas e técnicas/métodos apropriados dependendo do problema a ser solucionado, das restrições de desenvolvimento e dos recursos disponíveis 5

O que é software? É a parte lógica de um computador... (Só?... Será?) Programas de computador e documentação associada Produtos de software podem ser desenvolvidos para um cliente particular ou podem ser desenvolvidos para um mercado geral 6

Objectivos da Engenharia de Software Controle sobre o desenvolvimento de software dentro de custos, prazos e níveis de qualidade desejados Produtividade no desenvolvimento, operação e manutenção de software Qualidade versus Produtividade 7

Princípios Gerais Características da Engenharia de Software A Engenharia de Software se refere a software (sistemas) desenvolvidos por grupos ao invés de indivíduos usa princípios de engenharia ao invés de arte, e inclui tanto aspectos técnicos quanto não técnicos 8

O que é um software de qualidade? O software que satisfaz os requisitos solicitados pelo usuário. Deve ser fácil de manter, ter boa performance, ser confiável e fácil de usar Alguns atributos de qualidade Manutenibilidade O software deve evoluir para atender os requisitos que mudam Eficiência O software não deve desperdiçar os recursos do sistema Usabilidade O software deve ser fácil de usar pelos usuários para os quais ele foi projetado 9

Qualidade de Software (um exemplo para o Varejo* ) Correcto A loja não pode deixar de cobrar por produtos comprados pelo consumidor Robusto e altamente disponível A loja não pode parar de vender Eficiente O consumidor não pode esperar A empresa quer investir pouco em recursos computacionais (CPU, memória, rede) 10 Varejo*: é considerado o tipo de venda que é feito directamente para o consumidor final

Engenharia de Software Fim, obrigado pela atenção Prof. Pedro Vunge 11

Engenharia de Software Continuação da Aula Anterior Prof. Pedro Vunge 12

Qualidade de Software (um exemplo para o Varejo) Amigável e fácil de usar A empresa quer investir pouco em treinamento Altamente extensível e adaptável A empresa tem sempre novos requisitos (para ontem!) A empresa quer o software customizado do seu jeito (interface, teclado, idioma, moeda, etc.) Reutilizável Várias empresas precisam usar partes de um mesmo sistema 13

Qualidade de Software (um exemplo para o Varejo) Aberto, compatível, de fácil integração com outros sistemas A empresa já tem controle de estoque, fidelização, etc. Portável e independente de plataforma A empresa opta por uma determinada plataforma Baixo custo de instalação e atualização 14

Produtividade Custo de desenvolvimento reduzido A empresa consumidora quer investir pouco em software A empresa produtora tem que oferecer software barato Tempo de desenvolvimento reduzido Suporte rápido às necessidades do mercado 15

Software Barato Nem tanto resultado de baixos custos de desenvolvimento, mas principalmente da distribuição dos custos entre vários clientes. Reutilização, extensibilidade e adaptabilidade são essenciais para viabilizar tal distribuição. 16

Importância da Engenharia de Software Qualidade de software e produtividade garantem: Disponibilidade de serviços essenciais Segurança de pessoas Competitividade das empresas Produtores Consumidores 17

Mas, na realidade, temos a Crise de Software... 25% dos projetos são cancelados o tempo de desenvolvimento é bem maior do que o estimado 75% dos sistemas não funcionam como planejado a manutenção e reutilização são difíceis e custosas os problemas são proporcionais a complexidade dos sistemas 18

Causas da Crise de Software Essências Complexidade dos sistemas Dificuldade de formalização Acidentes Má qualidade dos métodos, linguagens, ferramentas, processos, e modelos de ciclo de vida Falta de qualificação técnica 19

Elementos e Atividades da Engenharia de Software Elementos Modelos do ciclo de vida do software Linguagens Métodos Ferramentas Processos Atividades Modelagem do negócio Elicitação de requisitos Análise e Projeto Implementação Testes Distribuição Planejamento Gerenciamento Gerência de Configuração e Mudanças Manutenção 20

Atividades e Artefatos da Engenharia de Software Atividades Modelagem do negócio Elicitação de requisitos Análise e Projeto Implementação Testes Distribuição Planejamento Gerenciamento Gerência de Configuração e Mudanças Manutenção Artefatos Plano de Negócios Plano de Projeto Plano de Riscos Documento de Requisitos Documento de Caso de Uso Documento de Arquitetura Classes Documento de Testes Documento de Validação Manual do Sistema 21

O que é um modelo de ciclo de vida de processo de software? Uma representação abstrata e simplificada do processo de desenvolvimento software, tipicamente mostrando as principais atividades e dados usados na produção e manutenção de software 22

Modelos do Ciclo de Vida de Software Cascata Modelos Iterativos... Espiral Incremental (ex: do RUP) 23

24 Modelo Cascata

25 Modelo Cascata na Prática

Modelos Iterativos Requisitos de sistema SEMPRE evoluem durante curso de um projeto. Assim a iteração do processo sempre faz parte do desenvolvimento de grandes sistemas Iterações podem ser aplicadas a quaisquer dos modelos de de ciclo de vida Duas abordagens (relacionadas) Desenvolvimento espiral Desenvolvimento incremental 26

Desenvolvimento Espiral 27 Acrescenta aspectos gerenciais ao processo de desenvolvimento de software. análise de riscos em intervalos regulares do processo de desenvolvimento de software planejamento controle tomada de decisão O processo é representado como uma espiral em vez de uma seqüência de atividades Cada volta na espiral representa uma fase no processo Não há fases fixas como especificação ou projeto - voltas na espiral são escolhidas dependendo do que é requerido Riscos são avaliados explicitamente e resolvidos ao longo do processo

28 Desenvolvimento Espiral

Desenvolvimento Incremental Em vez de entregar o sistema como um todo, o desenvolvimento e a entrega são divididos em incrementos, com cada incremento entregando parte da funcionalidade requerida Requisitos dos usuários são priorizados e os requisitos de mais alta prioridade são incluídos nas iterações iniciais Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são "congelados". Embora os requisitos possam continuar a evoluir para incrementos posteriores 29

Desenvolvimento Iteractivo e Incremental (do RUP) 30

Linguagem Notação com sintaxe e semântica bem definidas com representação gráfica ou textual Usada para descrever os artefatos gerados durante o desenvolvimento de software Exemplos: UML, Java 31

Método Descrição sistemática de como deve-se realizar uma determinada atividade ou tarefa A descrição é normalmente feita através de padrões e guias Exemplos: Método para descoberta das classes de análise no RUP. 32

Ferramenta CASE Provê suporte computacional a um determinado método ou linguagem Ambiente de desenvolvimento: conjunto de ferramentas integradas (CASE) Exemplos: Rational Rose, JBuilder 33

Processo Conjunto de atividades bem definidas com responsáveis com artefatos de entrada e saída com dependências entre as mesmas e ordem de execução com modelo de ciclo de vida 34

Processo de software Um conjunto de atividades cujo objetivo é o desenvolvimento ou a evolução do software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software 35

Metodologia Conjunto de métodos + processo 36

Pontos principais Engenharia de software é uma disciplina de engenharia que está envolvida com todos os aspectos da produção de software Produtos de software consistem de programas desenvolvidos e documentação associada. Alguns atributos de qualidade do produto são manutenibilidade, eficiência e usabilidade O processo de software consiste nas atividades que são envolvidas no desenvolvimento de produtos de software 37

Pontos principais Métodos são formas organizadas de produzir software. Eles incluem sugestões para o processo a ser seguido, as notações a serem usadas, regras que governam as descrições do sistema que são produzidas e diretrizes de projeto Ferramentas CASE são sistemas de software que são projetados para suportar as atividades rotineiras no processo de software, como edição de diagramas de projeto e verificação de consistência dos diagramas 38

Engenharia de Software Fim, obrigado pela atenção Prof. Pedro Vunge 39