Engenharia de Software I

Documentos relacionados
Modelos de Processo de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Engenharia de Software I - Aula 02

Definições e ciclo de vida

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

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

Análise e Projeto de Sistemas

Engenharia de Software

Prof. Dr. Thiago Jabur Bittar

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. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

MODELOS DE PROCESSOS (PARTE 2)

Introdução a Engenharia de Software

ENGENHARIA DE SOFTWARE

Ciclo de Vida de Sistemas de Informação

Processos de software

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

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

Engenharia de Software Processo de Desenvolvimento de Software

Engenharia de Software I - Aula 04

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Engenharia de Software

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

ENGENHARIA DE SOFTWARE

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

14/11/2014. Engenharia de Software. Modelos de software. Modelo Clássico - Cascata

Requisitos de Sistemas

PROCESSO DE SOFTWARE

O que é um sistema distribuído?

Requisitos de Sistemas

Reuso de Software Aula Maio 2012

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

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

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

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

Engenharia de Software

Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015

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

Métodos Ágeis e Programação Extrema (XP)

Engenharia de Software II

Paradigmas de Software

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

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

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

ENGENHARIA DE SOFTWARE

Prof. Esp. Fabiano Taguchi

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Engenharia de Software II

Princípios da Engenharia de Software aula 03

Engenharia de Software I

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

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

Engenharia de Software Sistemas Sociotécnicos

Modelos de Processo de Software. Profª Jocelma Rios

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Escolhendo um Modelo de Ciclo de Vida

Engenharia de Software

3. Engenharia dos requisitos de software

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

CICLO DE VIDA DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Modelos Prescritivos de Processo

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Engenharia de Software

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

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

Transcrição:

Engenharia de Software I Fundamentos da Engenharia de Software Modelos de desenvolvimento Importância do software Importância do Software Qualidade é fundamental Consequências de erros no software podem ser catastróficas Exemplo: Queda do foguete Ariane 5 em Junho de 1996 Eficiência Principal causa do fracasso no desenvolvimento de software é a não utilização de metodologias eficientes para a produção Solução está na formação de profissionais especializados em metodologias, técnicas e ferramentas da Engenharia de Software Principais problemas encontrados raramente é dedicado tempo para coletar dados sobre o processo de desenvolvimento, devido à pouca quantidade deste tipo de informação tentativas em estimar a duração/custo de produção de um software têm conduzido a resultados bastante insatisfatórios a falta destas informações impede uma avaliação eficiente das técnicas e metodologias empregadas no desenvolvimento Principais problemas encontrados os projetos de desenvolvimento são baseados em informações vagas sobre as necessidades e desejos do cliente problema de comunicação entre cliente e fornecedor. A insatisfação do cliente com o sistema "concluído" é devido a este fato falta de experiência dos profissionais na condução de projetos de software; Principais problemas encontrados falta de experiência dos profissionais na condução de projetos de software; falta de treinamento no uso de técnicas e métodos formais para o desenvolvimento de software; a incrível "resistência" às mudanças que os profissionais normalmente apresentam 1

Programa x Software Programa usuário é o próprio autor documentação pequena ou inexistente preocupação com a existência de erros de execução não é um fator maior outras boas características não são objeto de preocupação: portabilidade; flexibilidade; possibilidade de reutilização. Programa x Software Software desenvolvido para ser utilizado por um número maior de pessoas (sob demanda ou de prateleira ) deve apresentar características tais como: correção interface amigável robustez portabilidade flexibilidade possibilidade de reutilização Custos de Engenharia de Software Não é uma resposta simples. Depende do processo e do tipo de software que está sendo desenvolvido. Existem várias abordagens de desenvolvimento, e cada uma possui um perfil diferente de distribuição de custos. Custos Por que é tão caro? Projetos de grandes sistemas de software: envolvem grandes número de pessoas prazos relativamente longos de desenvolvimento Desenvolvimento destes sistemas: é realizado de forma ad-hoc conduzindo a frequentes desrespeitos de cronogramas e acréscimos de custos de desenvolvimento 9 Desafios da Engenharia de Software Desafios da Engenharia de Software O Desafio da heterogeneidade Operar em sistemas distribuídos, através de redes com diferentes tipos de computadores com diferentes tipos de sistemas operacionais; A integração de um novo software com outro mais antigo e escrito em diferentes linguagens de programação. Missão: temos a tarefa de desenvolver técnicas para construção de softwares confiáveis e flexíveis para adaptar-se a essa heterogeneidade. O Desafio da Entrega Algumas técnicas de desenvolvimento demandam tempo Ambientes de negócio de hoje devem apresentar respostas ágeis e mudar rapidamente O software de apoio deve acompanhar a velocidade da mudança. Missão: Diminuir o tempo de entrega dos sistemas grandes e complexos, sem comprometer sua qualidade. 11 12 2

Desafios da Engenharia de Software O Desafio da Confiança O software esta relacionado com os aspectos de nossa vida, é essencial que possamos confiar neles Em sistemas remotos acessados através de páginas da Web isso é especialmente verdadeiro Missão: Desenvolver técnicas que demonstrem que o software pode ter a confiança de teus usuários. Responsabilidade Profissional e Ética Devemos nos comportar de forma responsável ética e moralmente, para seremos respeitados como profissionais. Defender padrões de honestidade e integridade. Alguns itens de responsabilidade profissional: Confidencialidade: respeitar a confidencialidade de seus funcionários e clientes, dependente de ter ou não assinado acordo. Competência: você não deve aceitar um trabalho que esteja fora de sua competência. Direitos sobre propriedade intelectual: estar ciente das leis locais que regem uso de propriedade intelectual como patentes e direitos autorais. Mau uso de computador: mau uso do computador de outros, desde o trivial como de execução de jogos nas maquinas da empresa ou sério como disseminação de vírus. 13 14 Processo de Software O que é processo de software? É um conjunto de atividades e resultados associados que geram um produto de software Um roteiro que o ajuda a criar a tempo um resultado de alta qualidade Esse roteiro a ser seguido é chamado de processo de software Esse processo é composto por atividades 4 fundamentais: - Especificação - Desenvolvimento -Validação -Evolução do Software 15 Modelos de desenvolvimento de sw Define as etapas relativas ao desenvolvimento do software com intuito de atingir o produto de software com qualidade e custos reduzidos Modelo é uma descrição simplificada, uma abstração dessa abordagem Modelo Modelo de Ciclo de Vida de um processo: representa uma abordagem específica de desenvolvimento de software baseada no relacionamento entre etapas e atividades de um processo. Ciclo de Vida: tempo de vida de um software, com início na decisão de sua construção até o momento de sua desativação completa. Um modelo de processo de software deve ser escolhido com base: Na natureza do projeto e da aplicação; Nos métodos e ferramentas a serem utilizados; Nos controles e produtos que precisam ser entregues; Também conhecido como ciclo de vida clássico ou Modelo Cascata: Modelo mais antigo e mais usado; Modelado em função do ciclo de engenharia convencional; Requer uma abordagem sistemática e seqüencial para o desenvolvimento de um software; 3

Muitos aplicam esse modelo de forma estritamente linear: Engenharia de Sistemas / Informação Mas o modelo original prevê a volta: Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Problemas: Projetos reais raramente seguem o fluxo de sequencial proposto; É difícil estabelecer todos os requisitos no começo do projeto na qual existe uma incerteza natural quanto a esses requisitos; Uma versão do software só vai ficar pronto em um ponto tardio do desenvolvimento; Assim se houver algum erro crasso não detectado na análise ou projeto o resultado pode ser desastroso; Há muitos estágios bloqueantes que permitem a ociosidade dos desenvolvedores em alguns momentos processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído. idealmente, o modelo () serve como um mecanismo para identificar os requisitos de software. apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes. início fim construção produto obtenção dos requisitos projeto rápido ouça o cliente construa/revise refinamento avaliação construção teste do pelo cliente 4

Problemas: cliente não sabe que o software que ele vê, não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. Não aceita bem a ideia de que a versão final do software vai ser construída e "força" a utilização do como produto final; Desenvolvedor frequentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um. Depois de um tempo ele se familiariza com essas escolhas, e esquece que elas não são apropriadas para o produto final; Modelo Incremental Ao invés de entregar o sistema uma única vez, o desenvolvimento e a entrega são partidos em incrementos, que fornecem parte das funcionalidades requeridas. Os requisitos do usuários são dispostos hierarquicamente, e os requisitos de prioridades mais altas são incluídos nas primeiras entregas. Quando o desenvolvimento de um incremento é iniciado, os requisitos são congelados de forma que os requisitos para incrementos posteriores possam continuar a evoluir. Modelo Incremental incremento 1 produto liberado do incremento 1 incremento 2 produto liberado do incremento 2 incremento 3 produto liberado do incremento 3 incremento 4 tempo produto liberado do incremento 4 Conclusão ENGENHARIA DE SOFTWARE pode ser vista como uma abordagem de desenvolvimento de software elaborada com disciplina e métodos bem definidos. Objetivo Principal Produzir software de alta qualidade e de baixo custo. 29 Referências Engenharia de Software. Sommerville, I. Ed. Pearson Addison Wesley. Engenharia de Software. Pressman, R. Ed. McGraw Hill Engenharia de Software Teoria e Prática. Pfleeger, L.S. Ed. Pearson Engenharia de Software. Fundamentos, Métodos e Padrões. Pádua, W. Ed. LTC 30 5

Exercícios 1. Explique os conceitos de Engenharia de Software, seus fundamentos, aplicações e importância. 2. Diferencie programa de software. 3. Qual a importância do planejamento e documentação de um software? 4. Realize uma pesquisa comentando sobre as classificações de sistemas, tendo como obrigatórios: tempo real, inteligência artificial, comercial, embutido. 5. Um dos grandes problemas encontrados no desenvolvimento de software são os custos elevados. Quais os motivos que levam a esse problema? 6. Quais os principais problemas que encontramos em um software? 7. Conceitue: Método Técnica Tecnologia Ferramenta Paradigma Artefato 8. O que é um processo de Software? Qual sua aplicação? 9. Cite dois modelos de desenvolvimento de software e faça uma breve descrição de cada. 6