Liberdade para a Engenharia de
Software e Sistemas
Jorge H C Fernandes
A Amplitude das Plataformas
Computacionais Atuais
Cadeia de Valor na Era da
Convergência Digital
Network
Technology
Back-End
Software
Development
Wap/Web
Servers
Payment
Solutions
Content
Interface
Internet
Security
Solutions
Content
Provision
Portals/
Services/
Channels
Mobile/Broadcast
Network
Software
Platforms
Content
Aggregation
Devices
(TV / Mobile)
Application
Development
Ser livre é ter liberdade para
pensar, criar e se comunicar com
sistemas de computadores
complexos e hierarquizados:
Apropriar-se dos meios de
comunicação com as máquinas
computáveis, e saber fazer o
melhor uso social e econômico
dos mesmos
Conversas com Sistemas
Sistemas Computacionais muito
Abstratos
Descrever Casos de Uso de uma Aplicação …
# Caso de Uso Descrição
Mapa de navegação de uma aplicação…
Conceber um mapa de um site
Conversas com Sistemas
Sistemas Computacionais menos
Abstratos
Descrever Estruturas de uma
aplicação
Descrever Comportamentos…
Conversas com Sistemas
Computacionais Concretos:
Programação
Construir Código compreensível
e útil
• Construir programas funcionais e coerentes
através da codificação, auto-validação e teste
unitário.
• Passos
–
–
–
–
–
Organize a arquitetura e design antes de implementar
Entenda as APIs antes de usar
Utilize técnicas e convenções de codificação
Faça teste unitário dos módulos
Adote padrões e idiomas de design
Testar Software e Sistemas
• Verificar dinamicamente o comportamento do
programa através do uso de um conjunto finito de
casos de teste - adequadamente selecionados de
um domínio de execuções usualmente infinito contra o comportamento esperado deste
• Passos
– Defina e documente um plano de teste e um formulário
de log de testes, que serão executados durante o
desenvolvimento da aplicação e que servirão para
validar a aplicação antes de entregar/apresentar
Plano de Teste
Plano de Teste: <APLICACAO> <VERSÃO-DO-PLANO>
Autor: <AUTOR-PLANO>
Configuração sob teste: <DESCRIÇÃO-CONFIG><VERSÃO-CONFIG>
Histórico de Alterações: <DT-CRIACÃO> <ALT-1> <ALT-2>,…, <ALT-N>
Caso de Teste
CASO 1
Objetivo: <OBJETIVO DO CASO DE TESTE-1>
Passos:
Resultado Esperado
<PASSO-1-1> <RESULTADO-1-1>
<PASSO-1-2> <RESULTADO-1-2>
<PASSO-1-n> <RESULTADO-1-n>
CASO 2
Objetivo: <OBJETIVO DO CASO DE TESTE-2>
Passos:
Resultado Esperado
<PASSO-1-1> <RESULTADO-1-1>
<PASSO-1-2> <RESULTADO-1-2>
<PASSO-1-n> <RESULTADO-1-n>
Log de Teste
Log de Teste: <APLICACAO> <VERSÃO-DO-PLANO>
Testador: <TESTADOR>
Configuração sob teste: <DESCRIÇÃO-CONFIG><VERSÃO-CONFIG>
Data: <DATA DE REALIZACAO DO TESTE>
Casos de Teste
CASO 1 Objetivo:
Passos:
<PASSO-1-1>
<PASSO-1-2>
<OBJETIVO DO CASO DE TESTE-1>
Resultado Esperado
<RESULTADO-OBTIDO>
<RESULTADO-OBTIDO>
<PASSO-1-n> <RESULTADO-OBTIDO>
CASO 2 Objetivo:
Passos:
<PASSO-1-1>
<PASSO-1-2>
<OBJETIVO DO CASO DE TESTE-2>
Resultado Esperado
<RESULTADO-OBTIDO>
<RESULTADO-OBTIDO>
<PASSO-1-n> <RESULTADO-OBTIDO>
Observações
<ERRO? Ou ACERTO?>
<ERRO? Ou ACERTO?>
<ERRO? Ou ACERTO?>
<ERRO? Ou ACERTO?>
<ERRO? Ou ACERTO?>
<ERRO? Ou ACERTO?>
Mini-manifesto da Engenharia de Software e Sistemas Livres,
por Jorge H C Fernandes, Dez/2004
Ser livre é ter liberdade para pensar, criar e se comunicar com sistemas de computadores complexos
e hierarquizados
É apropriar-se dos meios de comunicação com as máquinas computáveis, e saber fazer o melhor uso
social e econômico dos mesmos
Quero ter liberdade para pensar, refletir e escolher qual a melhor tecnologia, arquitetura e modelo de
negócios tecnológicos para mim, a fim de criar sistemas que satisfaçam às minhas necessidades
pessoais, às das organizações para as quais trabalho e à sociedade na qual vivo
Quero conhecer as implicações positivas e negativas, no curto, médio e longo prazo, sobre as
decisões de aquisição de software, sistemas e soluções tecnológicas
Quero conhecer as ecologias da informação e da computação
Quero entender as cadeias e ciclos de desenvolvimento científico, tecnológico, econômico e social
Quero entender o modelo de von Neumann e as arquiteturas paralelas
Quero saber programar em pelo menos uma linguagem de programação de arquitetura aberta
Cada ano quero ter oportunidade para aprender algo novo
Cada dia quero ter oportunidade para ensinar a alguém
Quero me apropriar, de forma legítima, dos intrumentos e técnicas para entender o que os meus
clientes e colegas necessitam para tramento da informação que lhes é necessária para a solução
de seus problemas
Quero ser livre para fazer eu mesmo, quando tiver tempo e disposição, mas também quero ser livre
para comprar o que não tenho condições de fazer, e que seja de meu interesse
Quero ser livre para valorizar o trabalho de todos
Quero dar oportunidade aos que não ainda tem trabalho
Liberdade para a Engenharia de
Software e Sistemas
Jorge H C Fernandes
Download

Liberdade para a Engenharia de Software e Sistemas