Especificação de Software - professorleomir

Propaganda
CIÊNCIA DA COMPUTAÇÃO
ENGENHARIA DE SOFTWARE
Aula 12
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
1
AGENDA
Projeto de software
Arquitetura
Reuso
Validação de sistemas críticos
Bibliografia
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
2
Projeto de software - Arquitetura
“A organização fundamental de um sistema, materializada
em seus componentes, nos relacionamentos entre si e com o
ambiente, e nos princípios que dirigem seu desenho e
evolução”
Padrão : IEEE std. 1471-2000 IEEE Recommended Practice for
Architectural description of software-Intensive systems, in [IEEE03].
O Modelo de solução procura documentar a arquitetura de
um sistema ou produto, descrevendo-a em visões
consistentes.
O modelo de solução é descrição arquitetônica primária
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
3
Projeto de software - Arquitetura
Visões são instancias de pontos de vista, onde um ponto
de vista existe para descrever a arquitetura na perspectiva
de um conjunto de stakeholders.
Visões são uma representação de um sistema inteiro
segundo a perspectiva de um conjunto corrlato de
preocupações.
Cada visão expressa a arquitetura do sistema segundo um
ponto de vista, cada ponto de vista determina convenções
para criação, representação e analise da visão.
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
4
Projeto de software - Arquitetura
Visões principais :
Visão de Uso - produzida pelos desenhistas de interface
com o usuário, descreve o desenho externo do produto, ou
seja estrutura e comportamento externamente visíveis.
Visão lógica – Feita por desenhistas lógicos, descreve o
desenho interno, principais aspectos de organização,
estrutura de colaboração das classes
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
5
Projeto de software - Arquitetura
Visão de testes - Produzida pelos desenhistas, descreve o
comportamento dos testes necessários para verificar a visão
de uso desenhada
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
6
Projeto de software - Arquitetura
Outras visões – dependendo do tipo de sistema a ser
produzido outras visões podem ser necessárias :
Visão de implementação - modela a estrutura logica exatamente
como implementada, ou seja um retrato do código
Visão de dados – estrutura fisíca dos dados persistentes
acessíveis ao sistema.
 Visão de componentes – modela a estrutura física estática do
sistema usando diagrama de componentes.
Visão de implantação – modela a estrutura dinamica através de
dispositivos, processos, usando diagramas de implantação
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
7
Projeto de software - reuso
Reuso em projetos trata do reaproveitamento de todos os
itens do patrimonio de software de uma organização, de
forma estratégica a considerar a organização como um todo
e no longo prazo.
Os itens reutilizáveis abragem não só código, desenho e
testes, como tambem requisitos, especificações planos e
outros artefatos.
O reaproveitamento de todos os artefatos supera o
reaproveitamento de itens isolados quanto a produtividade.
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
8
Projeto de software - reuso
Custo de desenvolvimento de itens reutilizaveis custa o
triplo de um item normal, por isso o planejamento para reuso
é essencial para justificar o investimento necessário.
Um plano de reutilização estratégica pode incluir:
Metas
Responsáveis e equipes
Procedimentos de partida
Ferramentas
Patrimonio existente
Beneficios potenciais
limitações
29/06/2017
 Padrões
Estratégias de comunicação
Estratégia de evolução e
crescimento.
Métricas
Suporte ao uso
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
9
Projeto de software - reuso
Estratégia deve incluir:
Aquisição de intens de fontes externas.
Avaliação de prós e contras de desenvolvimento interno.
Itens devem ter proprietarios responsaveis por manutenção e
evolução.
Gestão de configuração e alteração.
Publicação dos itens em repositorio e disponibilidade comunicada
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
10
Projeto de software - reuso
Gestão de porfólio – Coleção de todos os projetos em
andamento, concluidos e propostas de projetos.
 Muito util no reuso de projetos, deve considerar as
interdependencias entre projetos, a concorrecia por recursos
escassos, como pessoal especializado, tecnologia e arquitetura
utilizados e finalmente a possibilidade de reutilização.
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
11
Projeto de software - reuso
Problemas com o reuso
Aumento nos custos de manutenção
Falta de ferramentas de apoio
Sindrome do 'não-foi-inventado-aqui'
Manutenção de uma biblioteca de componentes
Encontrar e adaptar componentes reutilizáveis
Padrões de projeto
Forma de reusar conhecimento abstrato sobre um problema e sua
solução.
Descrição do problema e a essência de sua solução
Deve ser abstrato o suficiente para ser reutilizado em diferentes
casos
Frequentemente dependem de característica de objeto, tal como
herança e polimorfismo
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
12
Projeto de software - reuso
Exercicios:
1.Leia o material de apoio e descreva os pontos de vista de
cada uma das principais visões de arquitetura de software.
2.Explique cada um dos cinco problemas com reuso.
3.Explique o plano de liberações no modelo de solução
(figura 18.1)
4.Crie um plano de liberações Tabular com 3 iterações,
considerando emissão de relatórios de notas fiscais:
1. Diário
2. Semanal
3. Mensal.
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
13
Validação de Sistemas criticos
Define-se sistema crítico, como um software em que suas
características causam riscos inerentes a danos físicos, pessoal e
financeiro. Atualmente, são três os tipos de sistemas críticos, tais
como:
Sistema crítico de segurança: sua falha pode proceder em
prejuízos, danos ambientais e perda da vida humana. Um exemplo de
sistema crítico de segurança é um software de controle de uma
fábrica de fogos de artifício;
Sistema crítico de missão: sua falha pode ocasionar problema em
alguma atividade conduzida a metas. Um exemplo de sistema crítico
de missão é um software de navegação para uma aeronave
Sistema crítico de negócio: sua falha pode resultar em custos
elevados para a empresa que trabalha com o software. Um exemplo
de sistema crítico de negócio é um software contábil de clientes
bancários.
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
14
Validação de Sistemas criticos
Técnicas de Validação
 Técnicas Estáticas
 Revisão de projeto, inspeção de código
 Provas e argumentos matemáticos
 Técnicas
 Teste estatístico
 Teste baseado em cenário
 Verificação (checking) de run-time
 Validação de Processo
 Processos de desenvolvimento que minimizem a
probabilidade de erros que possam comprometer a
confiabilidade do sistema.
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
15
Validação de Sistemas criticos
Técnicas de Validação
 Técnicas de Validação Dinâmicas
 Testes - analisar o sistema fora de seu
ambiente operacional
Verificação de run-time - analisar se o sistema
está operando dentro de um “envelope” de
confiabilidade
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
16
Validação de Sistemas criticos
Validação Estática para Segurança
 Demonstração da segurança através de testes é difícil (deve mostrar o
que o sistema faz em todas as situações)
Revisões/inspeções devem ser suplementadas com foco em verificar
que situações inseguras não acontecem.
Pontos importantes
Sistemas com aspectos de segurança devem ser desenvolvidos de
maneira mais simples possível, utilizando técnicas ‘seguras’de
desenvolvimento.
 Provas de segurança são mais simples do que provas de
consistência ou correção.
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
17
Validação de Sistemas criticos
Validação de Confiabilidade
Exercitar o programa para verificar se atingiu o nível requerido de
confiabilidade
Não é o mesmo que processo de teste para defeitos
Testes estatísticos devem ser usados, baseados em amostra
real/simulada de uso
Processo de Validação
 Estabelecer um ‘perfil operacional’ para o sistema
 Construir dados de teste que reflitam o perfil operacional
 Testar o sistema e observar o número de falhas e os tempos
de ocorrência
 Computar a confiabilidade após número significativo de
falhas terem sido observadas
29/06/2017
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
18
Bibliografia
29/06/2017
BIBLIOGRAFIA
BÁSICA
ENGHOLM JUNIOR, Helio. Engenharia de software na prática. 1ª
Edição. São Paulo: Novatec, 2010.
PAULA FILHO, Wilson de Pádua. Engenharia de Software. 3ª
Edição. Rio de Janeiro: LTC, 2009.
SCHACH, STEPHEN R. Engenharia de Software: Os paradigmas
Clássico e Orientado a Objetos. 7ª EdIção. São Paulo: Mcgraw Hill
Interamericana, 2009.
BIBLIOGRAFIA
COMPLEMENTAR
KOSCIANSKI, André; SOARES, Michel dos Santos. Qualidade de software:
Aprenda as Metodologias e Técnicas mais modernas para o
desenvolvimento. 2ª Edição. São Paulo: Novatec, 2007.
NOGUEIRA, Marcelo. Engenharia de Software: Um Framework para a
Gestão de Riscos em Projetos de Software. 1ª Edição. Rio de Janeiro: Ciência
Moderna, 2009.
PRESSMAN, Roger S. Engenharia de Software. 6ª Edição. São Paulo: Mcgraw
Hill, 2006.
SOMMERVILLE, Ian. Engenharia de Software. 8º Edição. São Paulo: Pearson
Education, 2007.
TONSIG. Sérgio Luiz. Engenharia de Software: Análise e Projeto de Sistemas.
2ª Edição. Rio de Janeiro: Ciência Moderna, 2008.
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
19
Download