A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CIÊNCIA DA COMPUTAÇÃO ENGENHARIA DE SOFTWARE Aula 12

Apresentações semelhantes


Apresentação em tema: "CIÊNCIA DA COMPUTAÇÃO ENGENHARIA DE SOFTWARE Aula 12"— Transcrição da apresentação:

1 CIÊNCIA DA COMPUTAÇÃO ENGENHARIA DE SOFTWARE Aula 12
25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

2 AGENDA Projeto de software Bibliografia Arquitetura Reuso
Validação de sistemas críticos Bibliografia 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

3 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 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

4 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. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

5 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

6 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

7 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

8 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. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

9 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 Padrões Estratégias de comunicação Estratégia de evolução e crescimento. Métricas Suporte ao uso 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

10 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

11 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. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

12 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

13 Projeto de software - reuso
Exercicios: Leia o material de apoio e descreva os pontos de vista de cada uma das principais visões de arquitetura de software. Explique cada um dos cinco problemas com reuso. Explique o plano de liberações no modelo de solução (figura 18.1) Crie um plano de liberações Tabular com 3 iterações, considerando emissão de relatórios de notas fiscais: Diário Semanal Mensal. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

14 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. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

15 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. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

16 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

17 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. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

18 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 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com

19 Bibliografia 25/03/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. 25/03/2017 Professor Leomir J. Borba- –http://professorleomir.wordpress.com


Carregar ppt "CIÊNCIA DA COMPUTAÇÃO ENGENHARIA DE SOFTWARE Aula 12"

Apresentações semelhantes


Anúncios Google