Upload
vinicius-vieira-pessoni
View
212
Download
0
Embed Size (px)
DESCRIPTION
aula 3
Citation preview
Sobre a aula anterior
• Engenharia de Software
• Crise do Software
• Características do software
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
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
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?)
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
Custos e a Engenharia de Software
Visa um software de custo efetivo e previsível e com boa qualidade
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
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
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
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
Desafios para o Século XXI● E o que diz o Barry Boehm (A View of 20th and 21st
Century Software Engineering)?● Vamos à leitura!
Engenharia de Sistemas
O que tem a ver com Engenharia de Software?
É 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?
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
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
Sistema Sociotécnico
SistemaSistemaEntrada Saída
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
SoftwareSoftware
PessoasPessoas
Banco de Banco de dadosdados
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
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
Sistema Sociotécnico
SistemaSistemaEntrada Saída
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
SoftwareSoftware
PessoasPessoas
Banco de Banco de dadosdados
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
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
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
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)
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
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
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
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
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
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
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