Introdução à Engenharia de Software

Documentos relacionados
ENGENHARIA DE SOFTWARE

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

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

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

Engenharia de Software

Engenharia de Software: Uma Visão Geral. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Análise de Sistemas CONTEXTUALIZAÇÃO

Introdução à Engenharia de Software e Modelos de Processos de Software. Engenharia de Software Profa. Inês A.G.Boaventura 2.

Engenharia de Software

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

Definições e ciclo de vida

UNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Engenharia de Software Introdução

Modelos de Processo de Software

Prof. Ms. Ronaldo Martins da Costa

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

ENGENHARIA DE SOFTWARE

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

Prof. Tiago Alves de Oliveira

Engenharia de Software

Rational Unified Process (RUP)

CK119: Engenharia de Software

Prof. Luiz A. Nascimento

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

Engenharia de Software Processo de Desenvolvimento de Software

Desenvolvimento de Projetos

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

Engenharia de Software

Engenharia Software. Ení Berbert Camilo Contaiffer

Engenharia de Software

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

Princípios da Engenharia de Software aula 03

Engenharia de Software

Paradigmas de Software

Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

Projeto de Desenvolvimento de Software

Engenharia de Software II

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

- 1ª Lista de Exercícios -

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

Conceitos de Engenharia de Software. Prof.ª: Érika A. Barrado

Cadeira: Análise de Sistemas

Processos de software

Processos de Software

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

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Professor: João Augusto

Informática I. Aula Aula 21-29/11/06 1

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

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

Modelos de Processo de Software

Engenharia de Software: Visão Geral

Engenharia de Software I

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

Modelos de Ciclo de Vida (Parte 1)

ARQUITETURA E DESENHO

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

S12 - Software e Engenharia de Software

Engenharia de Software II

S11 - Software e Engenharia de Software

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

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

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

Linguagens de Programação

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Engenharia de Software 1

CICLO DE VIDA DE SOFTWARE

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

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

Aula 3.1 Introdução e Visão Geral do Processo Unificado

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Engenharia de Software

Introdução 2014/1 Prof. Luís Fernando Garcia


Abordagem para Construção de SI. Ciclo de Vida de Sistemas Tradicionais

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

RUP RATIONAL UNIFIED PROCESS

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MATRIZ CURRICULAR MATUTINO Fase N.

Conhecendo um pouco sobre RUP

Introdução à Engenharia de Software

Engenharia de Software. Herbert Rausch Fernandes

Ciclo de Vida de Sistemas de Informação

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

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

Engenharia de Software I

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

Projeto de Desenvolvimento de Software

05/09/2013. Ciclo de vida de um Sistema de Informação

Engenharia de Software

Visão Geral do RUP (Rational Unified Process)

P R O C E SSO D E D E S E N VOLVIMENTO D E S O F T WAR E

ESUCRI. Análise e Projeto de Sistemas

Transcrição:

Introdução à Engenharia de Software Página 1 de 13 Introdução à Engenharia de Software O QUE É SOFTWARE? SEGUNDO O DICIONÁRIO AURÉLIO: AQUILO QUE PODE SER EXECUTADO POR UM EQUIPAMENTO, NO CASO O HARDWARE; UM PRODUTO COMERCIALIZADO QUE CONSISTE EM UM SISTEMA DE ROTINAS E FUNÇÕES. UMA DEFINIÇÃO MAIS DIDÁTICA: INSTRUÇÕES (PROGRAMAS DE COMPUTADOR) QUE, QUANDO EXECUTADAS PRODUZEM A FUNÇÃO E O DESEMPENHO DESEJADOS; ESTRUTURAS DE DADOS QUE POSSIBILITAM QUE OS PROGRAMAS MANIPULEM ADEQUADAMENTE A INFORMAÇÃO; DOCUMENTOS QUE DESCREVEM A OPERAÇÃO E O USO DOS PROGRAMAS E TANTAS OUTRAS...! EVOLUÇÃO DO SOFTWARE

Introdução à Engenharia de Software Página 2 de 13 PARA QUÊ DESENVOLVER SOFTWARE? AUTOMATIZAR UM DETERMINADO PROCESSO; MELHORAR A QUALIDADE DAS INFORMAÇÕES; APOIAR DECISÕES ESTRATÉGICAS; SER UM INSTRUMENTO DE MELHORIA DA QUALIDADE DE VIDA DA SOCIEDADE; DAR MAIS CREDIBILIDADE AS INFORMAÇÕES; E POR AÍ VAI... APLICAÇÕES PARA O SOFTWARE SOFTWARE BÁSICO: COLEÇÃO DE PROGRAMAS ESCRITOS PARA APOIAR OUTROS PROGRAMAS. EX.: COMPILADORES, GERENCIADORES DE ARQUIVOS, DRIVERS, ETC... SOFTWARE DE TEMPO REAL: SOFTWARE QUE MONITORA, ANALISA E CONTROLA EVENTOS DO MUNDO REAL. SÃO SISTEMAS AONDE UM RESULTADO ATRASADO NÃO TEM VALOR. EX.: MONITORAÇÃO DE BATIDAS CARDÍACAS, SISTEMA DE CONTROLE DE TRÁFEGO AÉREO, FREIOS ABS (CARROS), ETC... SOFTWARE COMERCIAL: SISTEMAS DE OPERAÇÕES COMERCIAIS E TOMADAS DE DECISÕES ADMINISTRATIVAS. EX.: FOLHA DE PAGAMENTOS, CONTAS A PAGAR E A RECEBER, CONTROLE DE ESTOQUES, ETC...

Introdução à Engenharia de Software Página 3 de 13 Q, SOFTWARE CIENTÍFICO E DE ENGENHARIA: CARACTERIZADO POR ALGORITMOS DE PROCESSAMENTO NUMÉRICO. EX.: ASTRONOMIA, ANÁLISE DE FADIGA DA MECÂNICA DE AUTOMÓVEIS, MANUFATURA AUTOMATIZADA, ETC... SOFTWARE EMBUTIDO: USADO PARA CONTROLAR PRODUTOS E SISTEMAS PARA OS MERCADOS INDUSTRIAIS E DE CONSUMO. RESIDE EM MEMÓRIA SÓ DE LEITURA. EX.: CONTROLE DO TECLADO DE UM MICROONDAS, CONTROLE DE COMBUSTÍVEL, FUNÇÕES DIGITAIS DE AUTOMÓVEIS, ETC... SOFTWARE DE COMPUTADOR PESSOAL: ENVOLVE PROCESSAMENTO DE TEXTOS, PLANILHAS ELETRÔNICAS, COMPUTAÇÃO GRÁFICA, MULTIMEDIA, ETC. SOFTWARE BASEADO NA WEB: PÁGINAS WEB RECUPERADOS POR UM BROWSER QUE INCORPORAM INSTUÇÕES EXECUTÁVEIS (CGI, HTML, JAVA, PERL, XML, ETC...) E DADOS. EX.: HIPERTEXTOS, FORMATOS DE ÁUDIO, VÍDEO, IMAGENS, ETC... SOFTWARE DE INTELIGÊNCIA ARTIFICIAL: FAZ USO DE ALGORITMOS NÃO NUMÉRICOS PARA RESOLVER PROBLEMAS DE ALTA COMPLEXIDADE QUE NÃO SEJAM FAVORÁVEIS À COMPUTAÇÃO OU À ANÁLISE DIRETA. EX.: SISTEMAS ESPECIALISTAS, RECONHECIMENTO DE PADRÕES, REDES NEURAIS, JOGOS, ETC... DEVENVOLVER SOFTWARE. UMA AFLIÇÃO???!!! A PALAVRA AFLIÇÃO FREQUENTEMENTE ESTÁ

Introdução à Engenharia de Software Página 4 de 13 Ç Q ASSOCIADA AO DESENVOLVIMENTO DO SOFTWARE DEVIDO A UM CONJUNTO DE PROBLEMAS QUE TORNAM ESTA ATIVIDADE EM UMA ATIVIDADE ÁRDUA E SUBJETIVA. ENTRE ELES PODEMOS CITAR: AS ESTIMATIVAS DE CUSTO E PRAZO FREQUENTEMENTE SÃO IMPRECISAS; A PRODUTIVIDADE DAS PESSOAS DA ÁREA DE SOFTWARE NÃO TEM ACOMPANHADO A DEMANDA POR SEUS SERVIÇOS; A QUALIDADE DO SOFTWARE ÀS VEZES É MENOS ADEQUADA; NÃO DEDICAMOS TEMPO PARA COLETAR DADOS SOBRE O PROCESSO DE DESENVOLVIMENTO; POUCOS DADOS HISTÓRICOS PARA GUIAR ESTIMATIVAS; A COMUNICAÇÃO ENTRE ANALISTA E CLIENTE FREQUENTEMENTE É MUITO POBRE; FALTA OU DEFICIÊNCIA EM TÉCNICAS DE TESTE; A TAREFA DE MANUTENÇÃO DEVORA A MAIORIA DO ORÇAMENTO DESTINADO AO SOFTWARE.

Introdução à Engenharia de Software Página 5 de 13 MAIS QUAIS SÃO AS CAUSAS DESTES PROBLEMAS? O CARÁTER DO SOFTWARE; FALHAS HUMANAS; GERENTES SEM NENHUM BACKGROUND EM SOFTWARE; OS PROFISSIONAIS DA ÁREA DE SOFTWARE TÊM RECEBIDO POUCO TREINAMENTO FORMAL EM NOVAS TÉCNICAS PARA O DESENVOLVIMENTO DE SOFTWARE; RESISTÊNCIA À MUDANÇA. AONDE IREMOS CHEGAR? NÃO DESANIMEM!!! FELIZMENTE OS PROBLEMAS APRESENTADOS PODEM SER CORRIGIDOS. UMA SOLUÇÃO À VISTA!!! RECONHECER OS PROBLEMAS E SUAS CAUSAS É SEM

Introdução à Engenharia de Software Página 6 de 13 DÚVIDA UM PRIMEIRO PASSO EM DIREÇÃO ÀS SOLUÇÕES. NÃO EXISTE UMA ABORDAGEM PARTICULAR QUE SEJA MELHOR PARA A SOLUÇÃO DA AFLIÇÃO DO SOFTWARE. ENTRETANTO, AO COMBINARMOS: MÉTODOS ABRANGENTES PARA TODAS FASES DO DESENVOLVIMENTO; FERRAMENTAS PARA AUTOMATIZAR OS MÉTODOS; IMPLEMENTAÇÃO MAIS CONSISTENTE E ROBUSTA; TÉCNICAS PARA GARANTIA DA QUALIDADE; BOA COORDENAÇÃO E CONTROLE ADMINISTRATIVO, EIS QUE SURGE UMA DISCIPLINA PARA O DESENVOLVIMENTO DE SOFTWARE - A ENGENHARIA DE SOFTWARE. ENGENHARIA DE SOFTWARE FRITZ BAUER - 1969 O ESTABELECIMENTO E USO DE SÓLIDOS PRINCÍPIOS DE ENGENHARIA PARA QUE SE POSSA OBTER ECONOMICAMENTE UM SOFTWARE QUE SEJA CONFIÁVEL E QUE FUNCIONE EFICIENTEMENTE EM MÁQUINAS REAIS IEEE, STD 610-1990 A APLICAÇÃO DE UMA ABORDAGEM SISTEMÁTICA, DISCIPLINADA E QUANTIFICÁVEL PARA O DESENVOLVIMENTO, OPERAÇÃO E MANUTENÇÃO DO SOFTWARE. " SEI, REPORT ON UNDERGRADUATE SOFTWARE

Introdução à Engenharia de Software Página 7 de 13, ENGINEERING EDUCATION (CMU/SEI-90-TR-003)- 1990 ENGENHARIA É A APLICAÇÃO SISTEMÁTICA DE CONHECIMENTOS CIENTÍFICOS NA CRIAÇÃO E CONSTRUÇÃO DE SOLUÇÕES COM UM BOM CUSTO- BENEFÍCIO PARA RESOLUÇÃO DE PROBLEMAS PRÁTICOS DA SOCIEDADE. ENGENHARIA DE SOFTWARE É UMA FORMA DE ENGENHARIA QUE APLICA OS PRINCÍPIOS DA CIÊNCIA DA COMPUTAÇÃO E MATEMÁTICA PARA ALCANÇAR SOLUÇÕES COM UM BOM CUSTO- BENEFÍCIO PARA RESOLUÇÃO DE PROBLEMAS DO SOFTWARE. A ENGENHARIA DE SOFTWARE COMPREENDE DE UM CONJUNTO DE ETAPAS QUE ENVOLVE FERRAMENTAS, MÉTODOS, PROCESSOS E TEM COMO ALICERCE A TUDO ISTO O CONTROLE DA QUALIDADE. MÉTODOS: PROPORCIONAM OS DETALHES DE "COMO FAZER" PARA CONSTRUIR O SOFTWARE. FERRAMENTAS:FORNECEM SUPORTE AUTOMATIZADO OU SEMI-AUTOMATIZADOS AOS MÉTODOS. PROCESSOS: É A FUNDAÇÃO DA ENGENHARIA DE SOFTWARE, PROVENDO A SUSTENTAÇÃO E RELACIONAMENTOS ENTRE AS CAMADAS FOCO NA QUALIDADE: GARANTE TODA

Introdução à Engenharia de Software Página 8 de 13 Q QUALIDADE DO SOFTWARE GERADO. Modelos de Processo UMA LINGUAGEM DE MODELAGEM NÃO É SUFICIENTE PRECISAMOS TAMBÉM DE UM PROCESSO DE DESENVOLVIMENTO LINGUAGEM DE MODELAGEM + PROCESSO DE DESENVOLVIMENTO = MÉTODO (OU METODOLOGIA) DE DESENVOLVIMENTO UM PROCESSO DE DESENVOLVIMENTO, DEFINE QUEM FAZ O QUE, QUANDO E COMO, PARA ATINGIR UM CERTO ALVO VEREMOS OS DETALHES DE UM PROCESSO AO LONGO DA DISCIPLINA POR ENQUANTO, SÓ UMA INTRODUÇÃO AS GRANDES FASES DE QUALQUER PROCESSO DE DESENVOLVIMENTO PLANEJAMENTO PLANEJAMENTO DEFINIÇÃO DE REQUISITOS, CONSTRUÇÃO DE PROTÓTIPOS (OPCIONAL) ELABORAÇÃO CONSTRUÇÃO DOS MODELOS A PARTIR A DEFINIÇÃO DOS REQUISITOS CONSTRUÇÃO DO SISTEMA (INCLUI CODIFICAÇÃO E TESTES) IMPLANTAÇÃO (COLOCAR EM PRODUÇÃO, TREINAR

Introdução à Engenharia de Software Página 9 de 13 Ç ( Ç, USUÁRIOS,...) PROCURAREMOS UTILIZAR O RUP NA DISCIPLINA! MODELO CASCATA MODELO MAIS ANTIGO E AMPLAMENTE UITILIZADO; MODELADO EM FUNÇÃO DO CICLO DA ENGENHARIA CONVENCIONAL; REQUER UMA ABORDAGEM SISTEMÁTICA E SEQÜENCIAL PARA O DESENVOLVIMENTO DE SOFTWARE; CADA ATIVIDADE É UMA FASE EM SEPARADO; O PRODUTO DE UMA FASE ALIMENTA A OUTRA. PROTOTIPAÇÃO POSSIBILITA QUE O DESENVOLVEDOR CRIE UM MODELO DO SOFTWARE QUE DEVE SER CONSTRUÍDO IDEALMENTE, O MODELO (PROTÓTIPO) SERVE COMO

Introdução à Engenharia de Software Página 10 de 13, ( ) UM MECANISMO PARA IDENTIFICAR OS REQUISITOS DE SOFTWARE PROTÓTIPO EM PAPEL OU SISTEMA QUE RETRATA A INTERAÇÃO COM O USUÁRIO PROTÓTIPO QUE IMPLEMENTE ALGUMAS FUNÇÕES EXIGIDAS PROTÓTIPO SERVE COMO MECANISMO PARA IDENTIFICAR OS REQUISITOS DO SOFTWARE MODELO EM ESPIRAL DESENVOLVIDO PARA ABRANGER AS MELHORES CARACTERÍSTICAS DOS MODELOS EM CASCATA E ESPIRAL A CADA ITERAÇÃO AO REDOR DO ESPIRAL UMA VERSÃO MAIS COMPLETA DO SOFTWARE É

Introdução à Engenharia de Software Página 11 de 13 DESENVOLVIDA INTRODUÇÃO À ANÁLISE DE RISCOS REFLETE MAIS O MUNDO REAL MODELO ITERATIVO E INCREMENTAL HOJE, É CONSIDERADO ERRADO TER UM PROCESSO QUE GERE UM "BIG BANG!" NÃO SE DEVE TER O SOFTWARE INTEIRO FUNCIONANDO POR INTEIRO NO PRIMEIRO RELEASE O RISCO É GRANDE DEMAIS!

Introdução à Engenharia de Software Página 12 de 13 UM PROCESSO DE DESENVOLVIMENTO DEVE SER: ITERATIVO (TER VÁRIAS ITERAÇÕES NO TEMPO) INCREMENTAL (GERAR NOVAS VERSÕES INCREMENTADAS A CADA RELEASE) UMA ITERAÇÃO DURA ENTRE 2 SEMANAS E 2 MESES MOTIVOS: SEMPRE TEM ALGO PARA ENTREGAR PARA O CLIENTE APRESSADO (A ÚLTIMA ITERAÇÃO) OS REQUISITOS MUDAM COM TEMPO E UM PROCESSO ITERATIVO MANTÉM FREQUENTES CONTATOS COM O CLIENTE O QUE AJUDA A MANTER OS REQUISITOS SINCRONIZADOS ALTAMENTE MOTIVADOR PARA A EQUIPE DE DESENVOLVIMENTO (E O CLIENTE) VER O SOFTWARE FUNCIONANDO CEDO O QUE É FEITO A CADA ITERAÇÃO (LEMBRANDO DO FOCO DO NOSSO ESTUDO)? ANÁLISE (REFINAMENTO DE REQUISITOS, REFINAMENTO DO MODELO CONCEITUAL) PROJETO (REFINAMENTO DO PROJETO ARQUITETURAL, PROJETO DE BAIXO NÍVEL) IMPLEMENTAÇÃO (CODIFICAÇÃO E TESTES) GERÊNCIA (PROJETO, CONFIGURAÇÃO, MUDANÇA) TRANSIÇÃO PARA PRODUTO (DOCUMENTAÇÃO, INSTALAÇÃO,...)

Introdução à Engenharia de Software Página 13 de 13 Introdução à Engenharia de Software programa próxima