Você está na página 1de 47

slide 1

2011 Pearson Prentice Hall. Todos os direitos reservados.


Captulo 1

Introduo
2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

slide 2

2011 Pearson Prentice Hall. Todos os direitos reservados.
Tpicos apresentados
Desenvolvimento profissional de software.

O que se entende por engenharia de software.

tica na engenharia de software.

Uma breve introduo a questes ticas que afetam a engenharia de software.

Uma introduo aos trs exemplos utilizados nos captulos posteriores do
livro.

slide 3

2011 Pearson Prentice Hall. Todos os direitos reservados.
Engenharia de Software
As economias de todas as naes desenvolvidas so dependentes de
softwares.

Mais e mais sistemas so controlados por software.

A engenharia de software se preocupa com teorias, mtodos e ferramentas
para desenvolvimento de softwares profissionais.

As despesas de software representam uma frao significativa do PIB em
todos os pases desenvolvidos.
slide 4

2011 Pearson Prentice Hall. Todos os direitos reservados.
Custos de Software
Os custos de software geralmente dominam os custos do sistema de
computador.

Em um PC, geralmente, os custos de software so maiores que os custos do
hardware.

Custa mais para se manter um software do que para desenvolv-lo.

Para sistemas com uma vida longa, os custos de manuteno podem ser vrias
vezes os custos do desenvolvimento.

A engenharia de software est preocupada com que o desenvolvimento de
software seja custo efetivo.

slide 5

2011 Pearson Prentice Hall. Todos os direitos reservados.
Produtos de Software
Produtos genricos

Sistemas autnomos que so comercializados e vendidos a qualquer
cliente que deseja compr-los. Exemplos - Softwares para PC tais como
programas grficos, ferramentas de gerenciamento de projetos; software
CAD; software para propsitos especficos, tais como sistemas de registros
odontolgicos.

Produtos sob encomenda

O software que encomendado por um cliente especfico para atender
suas prprias necessidades. Exemplos - sistemas de controle integrado,
software de controle de trfego areo, sistemas de monitoramento de
trfego.
slide 6

2011 Pearson Prentice Hall. Todos os direitos reservados.
Especificao dos produtos
Produtos genricos

A especificao do que o software deve fazer de propriedade do
desenvolvedor de software e as decises sobre as mudanas de software
so feitos pelo desenvolvedor.


Produtos sob encomenda

A especificao do que o software deve fazer propriedade do cliente para
o software e eles tomam decises sobre as mudanas necessrias no
software.
slide 7

2011 Pearson Prentice Hall. Todos os direitos reservados.
Perguntas frequentes sobre a
engenharia de software

slide 8

2011 Pearson Prentice Hall. Todos os direitos reservados.
Perguntas frequentes sobre a
engenharia de software

slide 9

2011 Pearson Prentice Hall. Todos os direitos reservados.
Atributos essenciais de um bom software

slide 10

2011 Pearson Prentice Hall. Todos os direitos reservados.
Engenharia de Software
A engenharia de software uma disciplina da engenharia que se preocupa com
todos os aspectos da produo de software desde o incio da especificao do
sistema at a manuteno do sistema aps esse estar sendo usado.

Disciplina de engenharia

Utiliza teorias e mtodos adequados para resolver os problemas tendo em mente as
restries organizacionais e financeiras.

Todos os aspectos da produo de software

No se preocupa apenas com o processo tcnico de desenvolvimento, mas tambm
com o gerenciamento de projetos e o desenvolvimento de ferramentas, mtodos,
etc. para dar apoio produo de software.
slide 11

2011 Pearson Prentice Hall. Todos os direitos reservados.
A importncia da engenharia de software
Cada vez mais, os indivduos e a sociedade dependem de sistemas de software
avanados.

Precisamos ser capazes de produzir sistemas confiveis com economia e
rapidamente.

Geralmente, mais barato, no longo prazo, usar mtodos de engenharia de
software e tcnicas para os sistemas de software em vez de apenas escrever os
programas como se fosse um projeto de programao pessoal.

Para a maioria dos tipos de sistemas, a maior parte dos custos so os custos de
alterar o software em uso.

slide 12

2011 Pearson Prentice Hall. Todos os direitos reservados.
Atividades de processo de sotware
A especificao de software, onde os clientes e engenheiros definem o software
que deve ser produzido e as restries sobre o seu funcionamento.

Desenvolvimento de software, em que o software projetado e programado.

Validao de software, em que o software verificado para garantia de atender
ao que o cliente necessita.

Evoluo de software, em que o software modificado para refletir as
mudanas de requisitos do cliente e do mercado.

slide 13

2011 Pearson Prentice Hall. Todos os direitos reservados.
Questes gerais que afetam a maioria
dos softwares
Heterogeneidade
Cada vez mais, os sistemas so necessrios para operar como sistemas distribudos
atravs de redes que incluem diferentes tipos de computadores e dispositivos
mveis.

Mudana de negcio e social
Negcio e sociedade esto mudando com uma rapidez incrvel, na medida em que
as economias emergentes se desenvolvem e as novas tecnologias se tornam
disponveis. Elas precisam ser capazes de alterar os softwares existentes e
desenvolver novos softwares rapidamente.

Segurana e confiana
Como o software est entrelaado com todos os aspectos de nossas vidas,
essencial que possamos confiar nele.
slide 14

2011 Pearson Prentice Hall. Todos os direitos reservados.
Diversidade na engenharia de software
Existem muitos tipos diferentes de sistemas de software e no existe um
conjunto universal de tcnicas de software aplicvel a todos eles.


Os mtodos de engenharia de software e ferramentas usadas dependem do tipo
da aplicao que ser desenvolvida, os requisitos do cliente e os antecedentes
da equipe de desenvolvimento.




slide 15

2011 Pearson Prentice Hall. Todos os direitos reservados.
Tipos de aplicaes
1. Aplicaes stand-alone so aplicaes executadas em um computador local,
tal como um PC. Incluem toda a funcionalidade necessria e no precisam estar
conectadas a uma rede.

2. Aplicaes interativas baseadas em transaes so aplicaes executadas em
um computador remoto e so acessadas pelos usurios a partir dos seus
prprios PCs ou terminais. Essas incluem aplicaes web tais como para e-
commerce.

3. Sistemas de controle embutidos so sistemas de software de controle que
controlam e gerenciam dispositivos de hardware. Numericamente,
provavelmente existem mais sistemas embutidos do que qualquer outro tipo de
sistema.

4. Sistemas de entretenimento so, principalmente, para uso pessoal e se
destinam a entreter o usurio.

slide 16

2011 Pearson Prentice Hall. Todos os direitos reservados.
5. Sistemas de processamento de lotes so sistemas corporativos projetados
para processar dados em grandes lotes. Eles processam um grande nmero de
entradas individuais para criar sadas correspondentes.

6. Sistemas de modelagem e simulao so desenvolvidos por cientistas e
engenheiros para modelar processos fsicos ou situaes, que incluem muitos,
objetos separados que interagem entre si.

7. Sistemas de coleta de dados so sistemas que coletam dados do seu
ambiente usando um conjunto de sensores e envia esses dados para outros
sistemas, para processamento.

8. Sistemas de sistemas so sistemas compostos por uma srie de outros
sistemas de software.


Tipos de aplicaes
slide 17

2011 Pearson Prentice Hall. Todos os direitos reservados.
Fundamentos de Engenharia de Software
Alguns princpios fundamentais se aplicam a todos os tipos de sistema de software,
independentemente das tcnicas de desenvolvimento utilizadas:

1. Os sistemas devem ser desenvolvidos atravs de um processo de
desenvolvimento gerenciado e compreendido. Naturalmente, diferentes
processos so usados para diferentes tipos de software.

2. Confiana e desempenho so importantes para todos os tipos de sistemas.

3. importante entender e gerenciar as especificaes e requisitos do software (o
que o software deve fazer).

4. Quando possvel, voc deve reusar software que j foi desenvolvido, em vez de
escrever um novo software.

slide 18

2011 Pearson Prentice Hall. Todos os direitos reservados.
Engenharia de Software e a Internet
Atualmente, a Internet uma plataforma de aplicativos em execuo e, cada vez
mais as organizaes esto desenvolvendo sistemas baseadas na web, em vez
de sistemas locais.

Web services permitem que a funcionalidade da aplicao seja acessada pela
Internet.

Computao em Nuvem, uma abordagem para a prestao de servios de
informtica, em que as aplicaes so executadas remotamente na 'nuvem'.

Usurios no compram softwares, mas pagam de acordo com o uso.
slide 19

2011 Pearson Prentice Hall. Todos os direitos reservados.
Engenharia de Software e a Internet
O reuso de softwares a abordagem dominante para a construo de sistemas
baseados na web.

Ao construir esses sistemas, voc deve pensar sobre como voc pode mont-los
a partir de sistemas e componentes pr-existentes de software.

Sistemas baseados na web deve ser desenvolvidos e entregues de forma
incremental.

Atualmente, geralmente se reconhece que impraticvel especificar todos os
requisitos para tais sistemas antecipadamente.

Interfaces de usurio so limitadas pela capacidade de navegadores web.


slide 20

2011 Pearson Prentice Hall. Todos os direitos reservados.
Tecnologias como AJAX permitem que as interfaces ricas sejam criadas dentro
de um navegador web, mas ainda so difceis de usar. Formulrios web com
scripts locais so mais usados .

Sistemas baseados na web so sistemas complexos distribudos, mas os
princpios fundamentais da engenharia de software discutidos anteriormente
tambm so aplicveis a eles, assim como para qualquer outro tipo de sistema.

As ideias fundamentais da engenharia de software, discutidas na seo anterior,
se aplicam a softwares baseados em web da mesma forma como eles se aplicam
a outros tipos de sistema de software.
Engenharia de Software e a Internet
slide 21

2011 Pearson Prentice Hall. Todos os direitos reservados.
Pontos Importantes
A engenharia de software uma disciplina da engenharia que se preocupa com
todos os aspectos da produo de software.

Atributos essenciais do produto de software so a manutenibilidade, confiana,
proteo, eficincia e aceitabilidade.

As atividades de alto nvel de especificao, desenvolvimento, validao e
evoluo fazem parte de todos os processos de software.

As ideias fundamentais da engenharia de software so universalmente
aplicveis a todos os tipos de desenvolvimento do sistema.

Existem muitos tipos diferentes de sistemas e cada um requer ferramentas de
engenharia de software e tcnicas apropriadas para o seu desenvolvimento.

slide 22

2011 Pearson Prentice Hall. Todos os direitos reservados.
ticas na Engenharia de Software
A engenharia de software envolve responsabilidades mais amplas do que a
simples aplicao de habilidades tcnicas.

Engenheiros de software devem se comportar de uma maneira honesta e
eticamente responsvel para serem respeitados como profissionais.

Comportamento tico mais do que simplesmente agir em concordncia com
a lei, envolve seguir um conjunto de princpios moralmente corretos.
slide 23

2011 Pearson Prentice Hall. Todos os direitos reservados.
Questes de responsabilidade profissional
Confidencialidade

Normalmente, os engenheiros devem respeitar a confidencialidade de
seus empregadores ou clientes, independentemente de haver ou no um
acordo de confidencialidade formal assinado entre eles.

Competncia

Engenheiros no devem falsear seus nveis de competncia. Eles no
devem aceitar trabalhos que esto fora da sua competncia.

slide 24

2011 Pearson Prentice Hall. Todos os direitos reservados.
Direitos de propriedade intelectual

Engenheiros devem estar cientes das leis locais que regulam a a
propriedade intelectual, tais como patentes, direitos autorais, etc. Eles
devem ser cuidadosos para assegurar que a propriedade intelectual dos
empregadores e clientes esteja protegida.

Uso indevido de computador

Engenheiros de software no devem usar suas habilidades tcnicas para
uso indevido de computadores de outras pessoas. A variao do mau uso
do computador vai desde relativamente trivial (brincar com jogos na
mquina de um empregador, por exemplo) a extremamente srios
(disseminao de vrus).
Questes de responsabilidade profissional
slide 25

2011 Pearson Prentice Hall. Todos os direitos reservados.
Cdigo de tica ACM/IEEE
As sociedades profissionais nos EUA tm cooperado para produzir um cdigo
de conduta tica.

Membros destas organizaes se comprometem com o cdigo de tica
quando entram nelas.

O Cdigo contm oito princpios relacionados ao comportamento e decises
tomadas por engenheiros de software profissionais, incluindo profissionais,
educadores, gestores, supervisores e polticos, bem como estagirios e
estudantes da profisso.
slide 26

2011 Pearson Prentice Hall. Todos os direitos reservados.
Justificativas para o cdigo de tica
Os computadores tm um papel central e crescente no comrcio, indstria,
governo, medicina, educao, entretenimento e sociedade em geral.

Os engenheiros de software so aqueles que contribuem atravs da participao
direta ou atravs do ensino, para a anlise, especificao, projeto,
desenvolvimento, certificao, manuteno e testes de sistemas de software.

Por causa de seus papis no desenvolvimento de sistemas de software, os
engenheiros de software tm significativas oportunidades de fazer o bem ou
causar o mal, ou influenciar outros a fazerem o bem ou causarem o mal.

Para garantir, tanto quanto possvel, que seus esforos sejam usados para o
bem, engenheiros de software devem se comprometer a fazer engenharia de
software uma profisso benfica e respeitada.
slide 27

2011 Pearson Prentice Hall. Todos os direitos reservados.
O cdigo de ticas da ACM/IEEE
Cdigo de tica e prticas profissionais da engenharia de software
Fora-tarefa conjunta da ACM/IEEE-CS para tica e prticas profissionais da
engenharia de software

Prefcio
Esta verso reduzida do cdigo resume as aspiraes em um alto nvel de
abstrao; as clusulas que esto inclusas na verso completa fornecem exemplos
e detalhes de como essas aspiraes mudam a forma como agimos enquanto
profissionais de engenharia de software. Sem as aspiraes, os detalhes podem se
tornar legalistas e tediosos; sem os detalhes, as aspiraes podem se tornar
altissonantes, porm vazias; juntos, as aspiraes e os detalhes formam um cdigo
coeso. Os engenheiros de software devem se comprometer a fazer da anlise,
especificao, projeto, desenvolvimento, teste e manuteno de software uma
profisso benfica e respeitada. Em conformidade com seu comprometimento
com a sade, a segurana e o bem-estar pblicos, engenheiros de software devem
aderir a oito princpios:
slide 28

2011 Pearson Prentice Hall. Todos os direitos reservados.
Prncipios ticos
1. PBLICO Engenheiros de software devem agir de acordo com o interesse
pblico.

2. CLIENTE E EMPREGADOR Engenheiros de software devem agir de maneira
que seja do melhor interesse de seu cliente e empregador e de acordo com o
interesse pblico.

3. PRODUTO Engenheiros de software devem garantir que seus produtos e
modificaes relacionadas atendam aos mais altos padres profissionais
possveis.

4. JULGAMENTO Engenheiros de software devem manter a integridade e a
independncia em seu julgamento profissional.

slide 29

2011 Pearson Prentice Hall. Todos os direitos reservados.
Prncipios ticos
5. GERENCIAMENTO Gerentes e lderes de engenharia de software devem
aceitar e promover uma abordagem tica para o gerenciamento de
desenvolvimento e manuteno de software.

6. PROFISSO Engenheiros de software devem aprimorar a integridade e a
reputao da profisso de acordo com o interesse pblico.

7. COLEGAS Engenheiros de software devem auxiliar e ser justos com seus
colegas.

8. SI PRPRIO Engenheiros de software devem participar da aprendizagem
contnua durante toda a vida, e devem promover uma abordagem tica para a
prtica da profisso.
slide 30

2011 Pearson Prentice Hall. Todos os direitos reservados.
Dilemas ticos
Desacordo, em princpio, com as polticas da gerncia snior.

Seu empregador age de forma antitica e libera um sistema crtico de
segurana sem terminar os testes do sistema.

Participao no desenvolvimento de sistemas de armas militares ou sistemas
nucleares.
slide 31

2011 Pearson Prentice Hall. Todos os direitos reservados.
Estudos de Caso
A bomba de insulina pessoal
Um sistema embutido em uma bomba de insulina usada por diabticos
para manter o controle da glicose no sangue.

Um caso de sade mental, sistema de informao de pacientes
Um sistema usado para manter os registros de pessoas recebendo
tratamento para problemas de sade mental.

Uma estao meteorolgica no deserto
Um sistema de coleta de dados que coleta dados sobre as condies
meteorolgicas no deserto.
slide 32

2011 Pearson Prentice Hall. Todos os direitos reservados.
Sistema de controle da bomba de insulina
O sistema coleta dados de um sensor de acar no sangue e calcula a
quantidade de insulina necessria para ser injetada.

Clculo baseado na taxa de variao dos nveis de acar no sangue.

Envia sinais para uma micro-bomba para fornecer a dose correta de insulina.

Sistema crtico de segurana como baixo acar no sangue pode levar ao mal
funcionamento cerebral, coma e morte; altos nveis de acar no sangue tm-
consequncias a longo prazo, tais como danos nos olhos e rins.
slide 33

2011 Pearson Prentice Hall. Todos os direitos reservados.
Arquitetura de hardware da bomba
de insulina
slide 34

2011 Pearson Prentice Hall. Todos os direitos reservados.
Modelo de atividades da bomba
de insulina
slide 35

2011 Pearson Prentice Hall. Todos os direitos reservados.
Requisitos essenciais de alto nvel
O sistema deve estar disponvel para fornecer insulina quando necessrio.

O sistema deve executar de forma confivel e entregar a quantidade correta de
insulina para compensar o atual nvel de acar no sangue.

O sistema deve ser projetado e implementado para garantir que o sistema
sempre atenda a esses requisitos.
slide 36

2011 Pearson Prentice Hall. Todos os direitos reservados.
Um sistema de informao pacientes para
cuidados com sade mental
Um sistema de informaes do paciente para dar suporte aos servios de sade
mental um sistema de informaes mdicas que mantm informaes sobre
pacientes que sofrem de problemas de sade mental e os tratamentos que
receberam.

A maioria dos pacientes de sade mental no necessitam de tratamento
hospitalar dedicado, mas precisam comparecer regularmente a clnicas
especializadas onde possam encontrar um mdico que tenha conhecimento
detalhado dos seus problemas.

Para facilitar o comparecimento dos pacientes, essas consultas no precisam
acontecer apenas em hospitais. Elas tambm podem ser realizadas em locais de
prticas mdicas ou centros comunitrios.
slide 37

2011 Pearson Prentice Hall. Todos os direitos reservados.
MHC-PMS
O MHC-PMS (Sistema de Gerenciamento de Pacientes com Problemas de Sade
Mental) um sistema de informaes destinado para uso em clnicas.

Ele faz uso de um banco de dados centralizado de informaes sobre os
pacientes, mas tambm foi projetado para rodar em um PC, de modo que possa
ser acessado e usado a partir de sites que no tenha conectividade de rede
segura.

Quando os sistemas locais tm acesso seguro rede, eles usam as informaes
do paciente que constam no banco de dados, mas, quando desconectados,
podem baixar e usar cpias locais de registros de pacientes.
slide 38

2011 Pearson Prentice Hall. Todos os direitos reservados.
Metas do MHC-PMS


Gerar informaes gerenciais que permitam aos gerentes de servios de sade
avaliar o desempenho contra alvos locais e de governo.


Fornecer informaes atualizadas para a equipe mdica para apoiar o
tratamento dos pacientes.

slide 39

2011 Pearson Prentice Hall. Todos os direitos reservados.
A organizao do MHC-PMS
slide 40

2011 Pearson Prentice Hall. Todos os direitos reservados.
Principais caractersticas do MHC-PMS
Gerenciamento do cuidado individual
O pessoal clnico pode criar registros de pacientes, editar as informaes
no sistema, ver o histrico dos pacientes, etc. O sistema suporta resumos
de dados para que os mdicos possam aprender rapidamente sobre os
principais problemas e tratamentos que foram prescritos.

Monitoramento de pacientes
O sistema monitora os registros dos pacientes envolvidos no tratamento e
emitem alertas, no caso de possveis problemas serem detectados.

Relatrios administrativos
O sistema gera relatrios gerenciais mensais mostrando o nmero de
pacientes tratados em cada clnica, o nmero de pacientes que tm
entrado e sado do sistema de assistncia, o nmero de pacientes
internados, os remdios prescritos e seus custos, etc.
slide 41

2011 Pearson Prentice Hall. Todos os direitos reservados.
Preocupaes do MHC-PMS
Privacidade
essencial que as informaes do paciente sejam confidenciais e nunca
sejam reveladas para ningum alm do pessoal mdico autorizado e que o
prprio paciente.

Segurana
Algumas doenas mentais levar o paciente a tornar-se suicida ou um
perigo para outras pessoas. Sempre que possvel, o sistema deve alertar
profissionais de sade sobre os pacientes potencialmente suicidas ou
perigosos. O sistema deve estar disponvel quando necessrio, de outra
forma, a segurana pode ser comprometida e pode ser impossvel
prescrever a medicao correta para os pacientes.

slide 42

2011 Pearson Prentice Hall. Todos os direitos reservados.
Estao meteorolgica no deserto
O governo de um pas com grandes reas de deserto, decide implantar vrias
centenas de estaes meteorolgicas no deserto.

Estaes meteorolgicas coletam dados de um conjunto de instrumentos que
medem a temperatura e presso, sol, chuva, velocidade do vento e direo do
vento.

A estao meteorolgica inclui uma srie de instrumentos que medem
parmetros meteorolgicos, tais como a velocidade e direo do vento, o solo e
as temperaturas do ar, presso baromtrica e precipitao ao longo de um
perodo de 24 horas. Cada um desses instrumentos controlado por um sistema
de software que faz leituras peridicas do parmetro e gerencia os dados
coletados a partir dos instrumentos.


slide 43

2011 Pearson Prentice Hall. Todos os direitos reservados.
Ambiente da estao meteorolgica
slide 44

2011 Pearson Prentice Hall. Todos os direitos reservados.
Sistema de informaes meteorolgicas
Sistema da estao meteorolgica
Esse sistema responsvel por coletar dados meteorolgicos, a realizar o
processamento de alguns dados iniciais e transmiti-los ao sistema de
gerenciamento de dados.

Sistema de gerenciamento e arquivamento de dados
Esse sistema coleta os dados de todas as estaes meteorolgicas em reas
remotas, e realiza o processamento de dados , anlise e arquivos de dados.

Sistema de manuteno da estao
Esse sistema pode se comunicar por satlite com todas as estaes
meteorolgicas em rea remotas a fim de monitorar a sade desses
sistemas e fornecer relatrios de problemas.
slide 45

2011 Pearson Prentice Hall. Todos os direitos reservados.
Funes adicionais do software
Monitorar os instrumentos , a energia e comunicao do hardware e relatar
falhas do sistema de gesto.

Gerenciar a energia do sistema, garantindo que as baterias so carregadas
sempre que as condies ambientais permitirem, e tambm, garantir que os
geradores sejam desligados em condies meteorolgicas potencialmente
prejudiciais, como ventos fortes.

Suporte a reconfigurao dinmica, em que partes do software so substitudas
por novas verses, e em que os instrumentos de backup so conectados para o
sistema em caso de falha do sistema.

slide 46

2011 Pearson Prentice Hall. Todos os direitos reservados.
Pontos Importantes
Engenheiros de software tm responsabilidades para com a profisso de
engenharia e a sociedade. Eles no deveriam simplesmente se preocupar com
questes tcnicas.

Sociedades profissionais publicam cdigos de conduta que estabelecem os
padres de comportamento esperado de seus membros.

Trs estudos de caso so usados no livro:

Um sistema para gerenciamento da sade de doentes mentais
Uma estao meteorolgica no deserto
Um sistema embutido de controle de bomba de insulina
slide 47

2011 Pearson Prentice Hall. Todos os direitos reservados.
Estrutura e organizao do curso

Aqui voc pode adicionar o seu prprio material sobre como o curso ser
executado.