31
Engenharia de Software PPGCC-INF Aula 3 Prof. Renato de Freitas Bulcão Neto [email protected]

aula3

Embed Size (px)

DESCRIPTION

aula 3

Citation preview

Page 1: aula3

Engenharia de Software

PPGCC-INFAula 3

Prof. Renato de Freitas Bulcão [email protected]

Page 2: aula3

Sobre a aula anterior

• Engenharia de Software

• Crise do Software

• Características do software

Page 3: aula3

E na aula de hoje?

• Engenharia de Software

• Custos e Engenharia de Software

• Desafios para o Século XXI

• Relação com Engenharia de Sistemas

Page 4: aula3

Custos e a Engenharia de Software• Depende do processo de software• Prototipação produz custos mais elevados altos para

desenvolvimento comparada à reutilização de componentes de software

• Depende do capital intelectual da equipe• Depende do tipo de software• Sistema de Tempo Real requer fase de testes

mais extensa que um Sistema basedo na Web• Em geral, 60% desenvolvimento e 40% testes

Page 5: aula3

Custos e a Engenharia de Software• Manter é mais custoso que desenvolver!!!– Para software legado (ou de vida longa), custos

com manutenção podem ser N vezes maiores que os com desenvolvimento

• Novas tecnologias• Novos requisitos• Comunicação com novos sistemas ou BDs• Rodar em rede• Carga de dados previsível (vestibular da UFG?)

Page 6: aula3

Custos e a Engenharia de Software• Aspecto econômico prevalece– Economia de TODOS os países desenvolvidos é

dependente de software– Gastos com o desenvolvimento de software

representam uma fração significante dos PIBs dos países desenvolvidos

• Custo de software para um PC é, em geral, maior que o custo associado ao hardware em que roda

Page 7: aula3

Custos e a Engenharia de Software

Visa um software de custo efetivo e previsível e com boa qualidade

Page 8: aula3

Software de Boa Qualidade

• Manutenibilidade– Atender a diversas

demandas• Confiabilidade– Entregar a

funcionalidade e o desempenho esperados de forma confiável

• Eficiência– Consumir recursos

eficientemente (ciclos de CPU, memória, largura de banda, etc.)

• Usabilidade– Ser fácil de usar por

usuários finais

Page 9: aula3

Desafios para o Século XXI

• Heterogeneidade– Sistemas são distribuídos, incluem uma grande

variedade de hardware e software• É comum que um mesmo software deve rodar em

PCs e dispositivos móveis, por exemplo– Manter/integrar software novo convivendo com

sistemas legados (antigos e valiosos), que têm de ser mantidos e atualizados• Arquitetura de serviços web, por exemplo

Page 10: aula3

Desafios para o Século XXI

• Entrega do produto de software– Mudanças negociais e sociais ocorrem muito

rápido nos dias atuais– Novas tecnologias surgem• Pressão para entrega em prazo cada vez menor• Proposta de metodologias ágeis, como Scrum e

XP, por exemplo

Page 11: aula3

Desafios para o Século XXI

• Segurança e confiança– Se software faz parte do cotidiano, usuários

precisam confiar nele• Sistemas remotos acessados por meio de uma

página web ou serviço web, como um Internet Banking– Usuários maliciosos não deveriam conseguir

atacar o navegador ou o servidor web– Usuários quer garantia que dados estão protegidos

Page 12: aula3

Desafios para o Século XXI● E o que diz o Barry Boehm (A View of 20th and 21st

Century Software Engineering)?● Vamos à leitura!

Page 13: aula3

Engenharia de Sistemas

O que tem a ver com Engenharia de Software?

Page 14: aula3

É com vocês!● Você é responsável pela construção de um

sistema para controlar a entrada e saída de pessoas em uma academia de ginástica

● O que fazer?● Por onde começar?

Page 15: aula3

O que é um sistema?● Uma coleção intencional de componentes interrelacionados, mas dependentes entre si, que trabalham em conjunto para atingir certo objetivo● Um sistema pode incluir software, hardware mecânico, elétrico e eletrônico, e ser operado por pessoas

Page 16: aula3

Categorias de SistemasSistemas técnicos baseados em computador– Incluem hardware e software, mas não incluem os

operadores e os processos operacionais. O sistema não está ciente que está sendo usado para um fim

Sistemas sóciotécnicos– Incluem sistemas técnicos, processos operacionais e

pessoas que usam e interagem esse sistema– São regidos por políticas e regras organizacionais

Page 17: aula3

Sistema Sociotécnico

SistemaSistemaEntrada Saída

DocumentosDocumentos

ProcedimentosProcedimentos

HardwareHardware

SoftwareSoftware

PessoasPessoas

Banco de Banco de dadosdados

Page 18: aula3

Sistema Sociotécnico

SistemaSistemaEntrada Saída

DocumentosDocumentos

ProcedimentosProcedimentos

HardwareHardware

SoftwareSoftware

PessoasPessoas

Banco de Banco de dadosdados

Manuais, arquivos de ajuda on-line, sites, e outras

informações descritivas que mostram o uso e/ou a operação do sistema

Page 19: aula3

Sistema Sociotécnico

SistemaSistemaEntrada Saída

DocumentosDocumentos

ProcedimentosProcedimentos

HardwareHardware

SoftwareSoftware

PessoasPessoas

Banco de Banco de dadosdados

Os passos que definem o uso específico de cada

elemento do sistema, ou o contexto de processamento

em que o sistema reside

Page 20: aula3

Sistema Sociotécnico

SistemaSistemaEntrada Saída

DocumentosDocumentos

ProcedimentosProcedimentos

HardwareHardware

SoftwareSoftware

PessoasPessoas

Banco de Banco de dadosdados

Page 21: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

Software

Page 22: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

Software

Dispositivos de hardware, incluindo computadores

Page 23: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

SoftwareInterage com o hardware e fornece recursos para camadas superiores

Page 24: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

Software

Funções de acesso a sistemas remotos, BD, etc. (middleware)

Page 25: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

Software

Funcionalidade específica da aplicação requerida

Page 26: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

Software

Processos de negócio que usam o sistema de software

Page 27: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

Software

Processos de alto nível estratégico, regras de negócio, políticas, normas a serem seguidas ao usar o sistema

Page 28: aula3

Pilha de Sistemas Sociotécnicos

Equipamentos

Sistema operacional

Comunicações e gerenciamento de dados

Aplicação

Processos de negócio

Organização

Sociedade

Engenhariade

Sistemas

Engenhariade

Software

Leis e regulamentos da sociedade que governam o funcionamento do sistema

Page 29: aula3

Não se pode pensar em software de forma isolada!!!

● Mudanças na camada social podem afetar procedimentos organizacionais, mudanças em processos de negócio, consequentemente no software, e até mesmo no hardware envolvido!!!

● Resolução CRM n. 1821/2007● Lei de Reserva de Vagas n. 12711/2012

Page 30: aula3

Leitura Recomendada– Pressman, Roger. Engenharia de Software, Capítulos 1,

2 e 6, 6ed. McGrawHill, São Paulo, 2006– Sommerville, Ian. Engenharia de Software, Capítulos 1 e

2, 8ed. Prentice Hall, São Paulo, SP, 2006– Sommerville, Ian. Engenharia de Software, Capítulo 10,

9ed. Prentice Hall, São Paulo, SP, 2011– Boehm, B. “A View of 20th and 21st Century Software

Engineering”, Proceedings of the 28th ACM International Conference on Software Engineering, 2006, pp.12-29

Page 31: aula3

Trabalho 1 – Grupos ≤ 3 pessoas

1) Monitoramento de atividades de crianças com autismo2) Monitoramento de pacientes com doença cardiovascular3) Monitoramento e detecção de quedas para idosos4) Monitoramento de idosos com doença de Alzheimer5) Monitoramento de ocorrências policiais6) Monitoramento de alarme de fogo e proteção7) Lembrança de uso de medicamentos8) Registro automatizado de sinais vitais de pacientes em UTIs