Ética em Computação
Selma Shin Shimizu Melnikoff
Escola Politécnica da USP
Setembro de 2004
Situação Atual
Sistemas de computação cada vez mais
presentes na sociedade
Necessidade de postura ética em
relação à computação:



Profissionais de computação
Usuários e Clientes
Ser Humano
Ética
Ética aplicada: relacionada com a
conduta diária de uma pessoa
Ética Profissional: relacionada com a
conduta de pessoa engajada na prática
de uma profissão particular
Ética em computação: abrange os dois
aspectos


Profissional em computação
Usuário da computação
Principais Pontos de Discussão
Desenvolvimento de sistemas
Automação de decisões
Violação da informação
Internet
Sistemas críticos
Desenvolvimento de Sistemas
Responsabilidade perante cliente

Garantir produto adequado ao cliente
Participação do cliente

Definir produto adequado para o seu uso
Produtos com qualidade

Realizar avaliação durante o
desenvolvimento
Redução de riscos no desenvolvimento

Proporcionar condições para sucesso do
desenvolvimento
Automação de Decisões
Nível de automação de um sistema

Garantir melhor distribuição das tarefas
entre o usuário e o computador
Informação para apoio à decisão

Garantir conteúdo correto para tomada de
decisão pelo usuário
Violação da informação
Acesso aos dados armazenados

Garantir e respeitar os níveis de
confidencialidade dos dados
Violação da comunicação

Garantir e respeitar a segurança da
comunicação
Danos ao sistema computacional (vírus)


Garantir a proteção contra ações de virus
Não danificar o sistema computacional
Internet
Conteúdos de sites

Garantir a veracidade e qualidade da
informação
Comércio eletrônico


Garantir a integridade das transações
Garantir a existência de regras definidas
Sistemas Críticos
Sistemas críticos


Sistemas cujas falhas podem causar morte,
grande prejuízo e graves danos ao ambiente
Sistemas de controle de aeronave, equipamentos
médicos, controle de plantas químicas
Necessitam de técnicas de desenvolvimento e
de avaliação que garantam que o produto é
seguro
Disciplinas de Suporte
Necessidade
leva a
Automação
Para ter um
bom sistema
Engenharia
de Requisitos
Software é
parte
significativa
Engenharia
de Software
Para ter bom
produto
Qualidade
de Software
Automação
Necessidade
leva a
Automação
Para ter um
bom sistema
Engenharia
de Requisitos
Software é
parte
significativa
Engenharia
de Software
Para ter bom
produto
Qualidade
de Software
Motivação para Automação
Aumento da concorrência com a
globalização
Escassez de energia
Encarecimento das matérias primas
Pressões sociais: proteção ambiental e
condições de trabalho
Desenvolvimento da tecnologia
Benefícios da Automação
Qualidade assegurada dentro de limites
estabelecidos
Redução de custos através de:




Racionalização de trabalho
Eficiência no processo
Uniformidade da qualidade dos produtos e
serviços
Redução de tempo na manutenção
Benefícios da Automação
Flexibilidade para adaptação a novos
produtos ou serviços
Melhor conhecimento do processo,
através da coleta dos dados e dos
estados
Melhor conhecimento do equipamentos
do processo para a obtenção de melhor
desempenho
Exemplo
Sistema de
Supervisão
e Controle
Controlador
da Sala de
Controle
Movimentação
de trem
Grau de Automação
Está relacionado com a transferência de
responsabilidade do homem para o
Sistema de Automação.

Transferência obrigatória: segurança ou
precisão exigidas são incompatíveis com a
habilidade humana.
 Desligamento da caldeira em emergência

Transferência planejada: as tarefas podem
ser realizadas pelo homem, mas o Sistema
de Automação aumenta a produtividade.
 Operação da caldeira
Engenharia de Requisitos
Necessidade
leva a
Automação
Para ter um
bom sistema
Engenharia
de Requisitos
Software é
parte
significativa
Engenharia
de Software
Para ter bom
produto
Qualidade
de Software
O que são requisitos?
Serviços e funções fornecidos pelo sistema
Restrições para a operação do sistema
Características do sistema


Desempenho
Facilidade de uso por leigos, etc.
Interface com outros sistemas
Informações sobre o domínio de aplicação
Restrições sobre o desenvolvimento


plataforma computacional
parte legal, etc.
Problemas Comuns
Falta de participação dos envolvidos no
desenvolvimento do sistema.
Necessidades do negócio não são
consideradas.
Falta de gerência na alteração de
requisitos.
Falta de responsabilidades definidas.
Conseqüências
Sistema não reflete as necessidades
reais dos clientes.
Sistema é inconsistente ou incompleto.
Ocorre entendimento errôneo entre
cliente, gerente de projeto e engenheiro
de software.
É dispendioso mudar os requisitos após
um acordo.
Mais Conseqüências
O sistema pode ser liberado após o
prazo previsto, com custo maior.
O cliente e os usuários não ficam
satisfeitos com o sistema.
Os usuários não usam todos os recursos
do sistema.
E mais ainda...
O sistema pode ser descartado, após
uso parcial.
O sistema não é confiável,
apresentando falhas ou interrupções na
operação.
Os custos de manutenção são altos.
Etc.
Engenharia de Requisitos
Fazer o levantamento eficiente dos
requisitos
Obter a concordância das pessoas
envolvidas
Resolver conflitos
Gerenciar as alterações de requisitos
Engenharia de Software
Necessidade
leva a
Automação
Para ter um
bom sistema
Engenharia
de Requisitos
Software é
parte
significativa
Engenharia
de Software
Para ter bom
produto
Qualidade
de Software
Software - Definição
Software é:
1. Conjunto de instruções (programas de
computador) que, quando executado, realizam as
funções desejadas, com o desempenho desejado;
2. Conjunto de dados que permitem aos programas
manipularem adequadamente a informação;
3. Documentos que descrevem a operação e o uso
dos programas.
Características de Software
Software não é um produto concreto.
Software é desenvolvido; não é
manufaturado.
Software não desgasta.
Software ainda não resulta da
montagem das partes, apesar de
esforços para componentização.
Problemas com Software
Por que os programas não ficam
prontos rapidamente?
Por que os custos de desenvolvimento
são tão altos?
Por que os erros não são detectados
antes da entrega aos clientes?
Por que é difícil medir o progresso
durante o desenvolvimento?
Desenvolvimento de Software
É necessário que seja sistemático.
É necessário ter produtos
intermediários, além do código.
É realizada através de fases definidas




Análise
Projeto
Implementação
Teste
Engenharia de Software
A aplicação de uma abordagem
sistemática, disciplinada e quantificável
ao desenvolvimento, operação e
manutenção do software
IEEE 610.12
Fases de Desenvolvimento
ENGENHARIA
DE SISTEMAS
ANÁLISE
PROJETO
IMPLEMENTAÇÃO
TESTE
MANUTENÇÃO
Para cada fase
Informações de entrada
Produtos gerados
Atividades
Responsáveis
Qualidade de Software
Necessidade
leva a
Automação
Para ter um
bom sistema
Engenharia
de Requisitos
Software é
parte
significativa
Engenharia
de Software
Para ter bom
produto
Qualidade
de Software
Abordagens para Qualidade
Qualidade na obtenção de software




Desenvolvimento
Projeto contratado
Aquisição
Integração
Qualidade na utilização


Utilização do sistema
Atividades de suporte
Qualidade no Desenvolvimento
definição do processo de desenvolvimento
definição do processo de verificação e
validação
seleção e aplicação de métodos de
análise, projeto e codificação
sistematização de testes (planos,
procedimentos e documentos de testes)
Qualidade no Desenvolvimento
utilização de ferramentas adequadas
acompanhamento da aplicação de
normas pertinentes
gerência de requisitos


especificação de requisitos
controle de alteração
gerência da configuração
Qualidade no Projeto Contratado
definição do processo de contratação
definição do processo de
acompanhamento de projeto
definição da avaliação do andamento e
dos produtos
definição do processo de aceitação
definição do processo de manutenção
Qualidade na Aquisição
definição do processo de aquisição
definição do processo de seleção do
fornecedor
definição do processo de avaliação dos
produtos
existência do apoio do fornecedor:



treinamento
manuais
conhecimento
Qualidade na Integração
definição do processo de integração:




especificação dos sistemas e componentes
a serem integrados
estratégia de integração
fases e produtos da integração
responsabilidades
Qualidade na Utilização
definição do processo de utilização
definição dos procedimentos de
utilização
treinamento dos usuários
definição dos responsáveis pelo
sistema
manutenção dos equipamentos
fornecimentos de dados corretos em
tempos corretos
Qualidade nas Atividades de Suporte
identificação dos processos de suporte
definição dos processos e papéis
treinamento da equipe
Resumindo:
A ÉTICA ESTÁ EM TODAS AS
ATIVIDADES.
[email protected]
Código de Ética
Software Engineering Code of Ethics
and Professional Practice
IEEE-CS/ACM Joint Task Force on
Software Engineering Ethics and
Professional Practices (versão 5.2)
http://www.computer.org/tab/seprof/code.htm
(acessado em 3/5/2004)
Bibliografia
Ethics and Computing: Living
Responsibly in a Computerized World
Ed. Kevin W. Bowyer, IEEE Press, 2000,
2nd Edition
Ética em Computação, Paulo César
Masiero, Editora da USP, 2000
Download

Ética e Computação