68
Engenharia de Software Aula 01 PROFESSOR ANDERSON SIQUEIRA JULHO - 2015 Análise e Desenvolvimento de Sistemas

Esw1 Ads Aula 01

Embed Size (px)

DESCRIPTION

Engenharia de softwares

Citation preview

Engenharia de SoftwareAula 01

PROFESSOR ANDERSON SIQUEIRA

JULHO - 2015

Análise e Desenvolvimento de

Sistemas

Agenda

� Apresentação do docente

� Comunicados importantes

� Metodologia de ensino empregada

� Bibliografia indicada

� Avaliações

� Conteúdo Programático

� Introdução à Engenharia de Software (Nivelamento e case inicial)

� Dúvidas?

Prof Anderson Siqueira – Julho / 2015 – Aula 1 2

ApresentaçãoDocente

Apresentação Docente

� Formação, experiência & linhas de pesquisa:

� Graduação em Administração de Sistemas de Informação (IBERO, 1997);

� Aperfeiçoamento em Marketing (FASP, 2001);

� Especialização em Sistemas de Computação (UFU, 2005);

� Especialização em Tecnologias e Sistemas de Informação (UFABC, 2011);

� Mestrado em Engenharia da Informação (UFABC, 2014);

� Mais de 20 anos de experiência no mercado de TI, desenvolvimento, consultoria e atuando com projetos (PMI);

� Docente FATEC, FAMA, Tutoria em curso de Especialização na UFABC.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 4

Apresentação Docente

� LATTES e contato:

� LATTES: http://lattes.cnpq.br/7967924494958799;

� Contato : [email protected]

Prof Anderson Siqueira – Julho / 2015 – Aula 1 5

Comunicados importantes

Comunicados

� Aulas teóricas & práticas com Prof Anderson;

� Uso de celular (desligado e/ou sem som);

� Sem uso de fones de ouvido;

� Alimentos são proibidos dentro do INFO;

� Desligar os computadores ao término da aula, por favor;

� Participação dos alunos nas aulas, com questões, cases e afins;

Prof Anderson Siqueira – Julho / 2015 – Aula 1 7

Comunicados

� Evitem conversas paralelas (há muita teoria);

� Relação com o ENADE;

� Faltas : atenção as suas faltas. Limite 75%, mais que isso há reprovação;

� E-mail, mais uma vez: [email protected]

Prof Anderson Siqueira – Julho / 2015 – Aula 1 8

Metodologia de Ensino

Metodologia

� Metodologia e estratégia de ensino:

�Aulas expositivas / dialogadas (slides e/ou lousa);

�Desenvolvimento de atividades individuais (programas) em laboratório;

�Análise de situações-problema;

�Desenvolvimento de projeto de software, em grupo.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 10

Bibliografia recomendada

Bibliografia

� Básica:

SOMMERVILLE, I. Engenharia de software. 8.ed. Addison Wesley, 2007.

PRESSMAN, Roger S. Engenharia de Software: Uma Abordagem Profissional. 7.ed. Bookman, 2011.

KONCIANSKI, A.; SOARES, M. S. Qualidade de Software.Novatec, 2006.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 12

Bibliografia

� Complementar:

BECK, K. TDD - Desenvolvimento Guiado por Testes. Bookman, 2010.

BROD, C. Scrum – guia prático para projetos ágeis. São Paulo: Novatec, 2013.

COCKBURN, A. Escrevendo Casos de Uso Eficazes: Um guia prático para desenvolvedores de software. Bookman, 2005

Prof Anderson Siqueira – Julho / 2015 – Aula 1 13

Bibliografia

� Complementar:

COHEN, M. Desenvolvimento de software com Scrum. Porto Alegre: Bookman, 2011

______. Treinamento Scrum. Disponível em http://www.mountaingoatsoftware.com/

DAVIS, S.; MEYER, C. Blur: a velocidade da mudança na economia integrada. Rio de Janeiro: Campus, 1999.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 14

Bibliografia

� Complementar:

FITZPATRICK, B. W.; COLLINS-SUSSMAN, B. Equipes de software. São Paulo: Novatec, 2012

FOWLER, M. Refatoração Aperfeiçoando o projeto de código existente. Bookman, 2004.

KANAT-ALEXANDER, M. As leis fundamentais do projeto de software. São Paulo: Novatec, 2012

Prof Anderson Siqueira – Julho / 2015 – Aula 1 15

Bibliografia

� Complementar:

NOGUEIRA, M. Engenharia de Software - Um Framework. Ciência Moderna, 2009.

PEZZE, M.; YOUNG, M. Teste e Análise de Software. Bookman, 2008.

PILONE, D.; MILES, R. Use a cabeça! Desenvolvimento de Software. Alta Books, 2008.

PRESSMAN, R.S. Engenharia de Software. São Paulo: Pearson Makron Books, 2007.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 16

Avaliações da disciplina

Avaliações

�Avaliações a serem aplicadas:

Média Final = (60%*P1 + 40%*T1) +

( (50%*P2 + 40%*T2) + ENADE)

Provas (P): Serão aplicadas duas avaliações teóricas P1 e P2.

Trabalhos (T): Serão aplicados dois trabalhos T1 e T2.

ENADE: ponto do simulado do ENADE (até 1 ponto)

Prof Anderson Siqueira – Julho / 2015 – Aula 1 18

Avaliações

� Avaliações DATAS previstas:

�P1 � 17/09/2015;

�T1 ���� 21/09/2015;

�P2 � 26/11/2015;

�T2 ���� 30/11/2015;

�IFA ���� 10/12/2015.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 19

Conteúdo Programático Previsto

Conteúdo Programático

�Tópicos a serem abordados:

�Introdução a Engenharia de Software;

�Processo de Software;

�Engenharia de Requisitos;

�Verificação e Validação de Software;

�Gerenciamento de Configuração.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 21

Introdução à

Engenharia de Software

CaseProcessamento de arquivos transacionais em relação aos dias de hoje

(menos integração, para começar o problema)

Engenharia de Software (ES)

24

NivelamentoDado, informação e conhecimento

Dados

� Dados ou dado:

�Registros de observações ao longo de uma série temporal (ou não);

�São isolados, mas devem ser precisos;

�Fora de sequencia lógica, não permitem o conhecimento e MUITO menos a tomada de decisão;

�Devem representar a área de domínio.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 26

Dados: exemplos

Prof Anderson Siqueira – Julho / 2015 – Aula 1

� Valor da massa corporal do sujeito;

� Idade de uma pessoa;

� Valor do salário;

� Vermelho (cor);

� Valor da TR (Taxa de referência);

� Nome de um produto.

27

Informação

� A informação é:

� Conjunto de dados registrados em ordem/lógica que permita a compreensão;

� Não é isolada;

� Organizada em um sequencia lógica que permite o conhecimento e a tomada de decisão;

� Deve ser precisa e representar a área de domínio em questão.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 28

Informação: exemplos

O Os O A UM saldo investimentos DBA salário maçã

do da João Oracle é Argentina conta é de de um

vermelho forte que brilha de 4.000,00 cada corrente

aluno do cuja da Carlos profissão turma é é

Desenvolvedor chega de a Engenharia receber de de

Software 15.000,00

12.000,00 somam por 1.000.000,00 mês

Prof Anderson Siqueira – Julho / 2015 – Aula 1 29

Conhecimento

Conhecimento é:

� O processo de aprender com a informação, ponderar;

� Informações úteis para um propósito, permitem que o sujeito compreenda os fatos. Após a análise, surge o conhecimento;

� Tomar ciência dos fatos, aprender com eles e assim tomardecisões mais precisas (dentro do possível).

Prof Anderson Siqueira – Julho / 2015 – Aula 1 30

Conhecimento: exemplos

Exemplos:

� Cerca de 20% dos clientes de uma organização representam 80% do faturamento desta. Que decisão tomar?

� A TR é a taxa de corrige a caderneta de poupança. Um financiamento imobiliário no banco X tem o valor de sua mensalidade corrigida por ela. Que decisão tomar?

Prof Anderson Siqueira – Julho / 2015 – Aula 1 31

Engenharia de SoftwareConceito

Engenharia de Software (ES)

�Conceituação inicial:

�O que é software ?

�O que é Engenharia de Software?

33

Engenharia de Software

� Conceito, envolve:

�Processos (conjunto de atividades);

�Conjunto de métodos (técnicas, práticas);

�Conjunto de ferramentas (normalmente, softwares CASE);

�Está relacionada à produção de software.

OBJETIVO: gerar software de QUALIDADE

Prof Anderson Siqueira – Julho / 2015 – Aula 1 34

Engenharia de Software

O que se espera do ENGENHEIRO DE SOFTWARE?

�Seja organizado e sistemático;

�Empregar ferramentas apropriadas (IDEs);

�Usar técnicas apropriadas (O.O., Engenharia de Requisitos);

DEPENDE do problema, das restrições e dos recursos envolvidos

Prof Anderson Siqueira – Julho / 2015 – Aula 1 35

Engenharia de Software

� DICA: Recursos escassos , a prática, conceito e exemplos

Prof Anderson Siqueira – Julho / 2015 – Aula 1

Créditos: http://www.christianbarbosa.com.br/beta/bn_conteudo_artigos.asp?cod=280&opr=113

Créditos: http://www.libertarianismo.org/index.php/artigos/caros-politicos-recursos-sao-escassos/

Créditos: http://tombrito.ninjasdaweb.com/2013/12/01/redes-neurais-do-reconhecimento-de-caracteres-para-o-reconhecimento-de-ruas/

Créditos: https://falandodeconsultoria.wordpress.com/2014/01/15/vida-de-vendedor-saiba-como-atender-10-tipos-de-clientes/

Créditos: http://trivialjuridico.com.br/?p=1203

36

Engenharia de Software

� Diferenças entre ES e Ciência da Computação (CC)

�CC ���� dedicação à teoria e fundamentos da computação;

�ES ���� prática, com uso de técnicas & processos. Desenvolvimento de software e a sua entrega para uso. E com qualidade!

Prof Anderson Siqueira – Julho / 2015 – Aula 1 37

Engenharia de Software

� Diferenças entre ES e Engenharia de Sistemas (ESis)

�Esis ���� dedicação ao desenvolvimento de sistemas para computadores, aliando software, hardware e o processo;

�ES ���� parte da Esis. Está envolvida na especificação, arquitetura, construção, integração e implantação de sistemas. E com qualidade!

Prof Anderson Siqueira – Julho / 2015 – Aula 1 38

SoftwareConceito & importância

Software

�Conceito:

�Programa executável com finalidade específica;

�É lógico, intangível;

�A documentação associada (requisitos, modelos e manuais de usuários);

�Dados.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 40

Software

�Exemplos:

Prof Anderson Siqueira – Julho / 2015 – Aula 1

http://www.firebirdsql.org/ http://www.mysql.com/http://www.microsoft.com/pt-br/server-cloud/products/sql-server/

http://www.oracle.com

http://www.postgresql.org/

41

Software

� Importância do Software:

“Tecnologia única mais importante no cenário mundial”, segundo Pressman (2011)

Prof Anderson Siqueira – Julho / 2015 – Aula 1 42

Software

� Lei das consequências não intencionais:

�Software é um EXEMPLO desta lei, de forma que não foipossível prever a importante contribuição que tem nas maisdiversas áreas do conhecimento humano, dentre elas:

Prof Anderson Siqueira – Julho / 2015 – Aula 1

� Medicina

� Pesquisa

� Negócios (suporte aosprocessos)

� Negócios (B2C / B2B)

� Engenharia

� Interface entre áreas

� Internet

� Equipamentos

43

Software para o negócio

(EXEMPLO)

Prof Anderson Siqueira – Julho / 2015 – Aula 1 44

Software

� Software

�Aplicações : é e será cada vez mais crescente, demandandoassim:

Prof Anderson Siqueira – Julho / 2015 – Aula 1

� Novas técnicas de desenvolvimento;

� Velocidade no desenvolvimento;

� Com foco na qualidade.

45

Software

� Softwares para apoio ao desenvolvimento (circulo virtuoso):

Prof Anderson Siqueira – Julho / 2015 – Aula 1 46

Software

� Natureza do Software

�Como PRODUTO: adquire, produz, armazena, modifica,transmite, codifica (decodifica) informações (simples oucomplexas);

�Como DISTRIBUIR: atuando, por exemplo, como umSistema Operacional, na comunicação de informações dentrode uma estrutura de rede.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 47

Software

� Questões do programador solitário MAS que são as mesmas das equipes de desenvolvimento atuais (PRESSMAN, 2011, pág21)

1. Por que concluir um software leva tanto tempo?

2. Por que mantemos tanto tempo e esforço para mantendoprogramas existentes?

Prof Anderson Siqueira – Julho / 2015 – Aula 1 48

Software

� Software é fabricado?

Prof Anderson Siqueira – Julho / 2015 – Aula 1

Créditos: http://www.tagview.com.br/ Créditos: http://www.cpcon.eng.br/gestao-patrimonial/gestao/producao-inventarios/

� Processo de ES;� Custos se concentram na

engenharia;� Não se desgasta, mas se

deteriora;� Complexo para manutenção;� Sem componentes de reparo;� Não tem poeira.

� Hardware se desgasta;

� Custos se concentram produção (todo o processo);

� Tem componentes para reparo;

� Influenciado pela poeira, ambiente

49

Software

� Em termos de reutilização de componentes

Prof Anderson Siqueira – Julho / 2015 – Aula 1

Software

� Ainda em fase inicial;

� Passos já foram dados e melhorou muito;

� Já existem componentes reutilizáveis que encapsulam dados e codificação funcional (O.O.).

Hardware

� Padrão no uso de componentes (CIs por exemplo);

� Mesmo tipo de componente pode ser usado em vários projetos diferentes;

� O engenheiro foca na inovação e não nos componentes;

50

Software

� Sete categorias de aplicação do software (PRESSMAN, 2011)

Prof Anderson Siqueira – Julho / 2015 – Aula 1

�Sistema

�Aplicação

�Científico/Engenharia

�Software Embutido

�Software para linha deprodutos

�Aplicações para WEB

�Software para InteligênciaArtificial

51

SoftwareAbrindo aspas com a qualidade

Software

� Qualidade:

�Qualidade tem sua prática desde os mais remotos tempos. Exemplo: o cúbito;

�Nos anos 40 teve início do Japão, bem como a criação da ABNTno Brasil e a ISO;

�Philip Crosby

� Erro zero;

� Qualidade é conformidade com os requisitos. Exemplos.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 53

SoftwareApós a qualidade, voltamos aos conceitos

Software

� Softwares para Sistemas

�Aqueles que interagem com o HW e executam outras aplicações a partir dele. Exemplos:

Prof Anderson Siqueira – Julho / 2015 – Aula 1 55

Software

� Softwares para aplicações

�Aqueles que dão apoio ao processo de negócios. Exemplos:

Prof Anderson Siqueira – Julho / 2015 – Aula 1 56

Software

� Softwares Científico / Engenharia

�Cálculos complexos;

�Processamento pesado, como imagens, Biologia Molecular;

�Uso para apoio em pesquisas científicas, tanto o Software como o HW devem ter bom poder de processamento.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 57

Software

� Softwares Científico / Engenharia

�Cálculos complexos;

�Processamento pesado, como imagens, Biologia Molecular;

�Uso para apoio em pesquisas científicas, tanto o Software como o HW devem ter bom poder de processamento.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 58

Software

� Software EMBUTIDO

�Residentes em equipamentos, mas com função de gestão e/ou de apoio a funcionalidades;

Prof Anderson Siqueira – Julho / 2015 – Aula 1 59

Software

� Software para linha de produtos

�Determinados produtos com mercado limitado e personalizado.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 60

Software

� Software para Inteligência Artificial

�Uso em aplicações complexas (robótica, reconhecimento de padrões);

�Redes Neurais Artificiais;

�Uso em Aprendizado de Máquina.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 61

Software

� Aplicações para WEB (mais recente)

�Meados da década de 90 e as opções de acesso à internet;

�Neste mesmo período, páginas MUITO estáticas, com gráficos pobres;

�HTML em conjunto com o Java permitiu aos engenheiros de ES desenvolverem aplicações para WEB mais dinâmicas.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 62

Software

� Aplicações para WEB e seus atributos (mais recente)

�Uso intensivo de redes;

�Simultaneidade, muita gente acessando ao mesmo tempo;

�Carga não previsível. Em um dia, um determinado número de usuários; em outro um número menor. Ou maior;

�Desempenho. Um bom exemplo de Marketing/CRM;

�Orientados a dados. Além de ser hipermídia, acessa dados de BDs;

Prof Anderson Siqueira – Julho / 2015 – Aula 1 63

Software

� Aplicações para WEB e seus atributos (mais recente)

�Sensibilidade no conteúdo. Forte relação com a qualidade do conteúdo;

�Evolução contínua. Conforme as demandas, que podem ser de mercado e/ou tecnológicas;

� Imediatismo. Aplicação deve ser desenvolvida rapidamente, e muitas vezes, pode passar por modificações em poucos dias;

�Segurança. HTTPS é imperativo bem como outras práticas de segurança. Estar na WEB é um risco.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 64

Software

� Aplicações para WEB e seus atributos (mais recente)

�Estética: orte relação com a IHC, o que determina a qualidade da página;

�Evolução contínua. Conforme as demandas, que podem ser de mercado e/ou tecnológicas;

� Imediatismo. Aplicação deve ser desenvolvida rapidamente, e muitas vezes, pode passar por modificações em poucos dias;

�Segurança. HTTPS é imperativo bem como outras práticas de segurança. Estar na WEB é um risco.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 65

Próxima aula

Aula 2 - previsão

�Engenharia de Software –continuação;

�Camadas da Engenharia de Software;

�Processos de software e seus modelos.

Prof Anderson Siqueira – Julho / 2015 – Aula 1 67

Dúvidas ?