Upload
internet
View
106
Download
1
Embed Size (px)
Citation preview
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 1
CIÊNCIA DA COMPUTAÇÃO
ENGENHARIA DE SOFTWARE
Aula 12
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 2
Projeto de software ArquiteturaReusoValidação de sistemas críticos
Bibliografia
AGENDA
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 3
“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
Projeto de software - Arquitetura
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 4
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.
Projeto de software - Arquitetura
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 5
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
Projeto de software - Arquitetura
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 6
Visão de testes - Produzida pelos desenhistas, descreve o comportamento dos testes necessários para verificar a visão de uso desenhada
Projeto de software - Arquitetura
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 7
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ódigoVisã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
Projeto de software - Arquitetura
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 8
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.
Projeto de software - reuso
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 9
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:
Projeto de software - reuso
MetasResponsáveis e equipesProcedimentos de partidaFerramentasPatrimonio existenteBeneficios potenciaislimitações
PadrõesEstratégias de comunicaçãoEstratégia de evolução e crescimento.MétricasSuporte ao uso
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 10
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
Projeto de software - reuso
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 11
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.
Projeto de software - reuso
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 12
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
Projeto de software - reuso
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 13
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.
Projeto de software - reuso
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 14
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.
Validação de Sistemas criticos
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 15
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.
Validação de Sistemas criticos
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 16
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
Validação de Sistemas criticos
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 17
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 importantesSistemas 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.
Validação de Sistemas criticos
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 18
Validação de ConfiabilidadeExercitar o programa para verificar se atingiu o nível requerido de confiabilidadeNão é o mesmo que processo de teste para defeitosTestes 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
Validação de Sistemas criticos
11/04/23 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 19
Bibliografia
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.