Capítulo 10. Especificações Formais



Documentos relacionados
Especificação Formal. Especificação no Processo de Software

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Métodos Formais. Ian Sommerville - Software Engineering TraduçãoProf Pedro Fernandes - Métodos Formais, 6o Período Slide 1

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Engenharia de Software

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Introdução à Engenharia de Software

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Engenharia de Software

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Objetivos. Requisitos de Software. Tipos de Requisitos. O que é um requisito? Requisitos Funcionais e Não- Funcionais. Requisitos Funcionais

Projeto de Sistemas I

Modelos de Processo (métodos)

O que é um processo de software?

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Especificação Formal de Software

Requisitos de Software

Engenharia de Software

Projeto de Arquitetura

Processos de Software

Tópicos Especiais em Engenharia de Software

Requisitos de Software

Fundamentos de Engenharia de Software. Josino Rodrigues

Processo de Software

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

REQUISITOS. Prof. Msc. Hélio Esperidião

Desenvolvimento de Sistemas Tolerantes a Falhas

Engenharia de Requisitos

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Engenharia de Software-2003

SIMPROS /01/2008

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Mudanças em software. Gerir os processos de sistema em mudança de software. Objetivos

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Métodos de Desenvolvimento de Software. Aula 1: Introdução

Requisitos de Software

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Introdução à Computação

GARANTIA DA QUALIDADE DE SOFTWARE

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Levantamento de Requisitos.

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Qualidade de Software

O Processo de Engenharia de Requisitos

Projeto com Reuso. Projeto com Reuso. Tópicos. Objetivos. Construir o software a partir de componentes reutilizáveis. Traduzidos por Jacinta Pereira

Propriedades de Sistemas Emergentes

Requisitos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

:: aula 11. :: Diagrama de Seqüência e Protótipos. :: Olá! Nesta aula, continuaremos a 4ª fase do Projeto Desenho.

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

Interface Humano-Computador IHC Paradigmas de IHC

Prototipação de Software

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Processos de Desenvolvimento de Software

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL PEDROHOLI@GMAIL.COM CMM E CMMI

Engenharia de Software

Uma Introdução à Engenharia de Software

Engenharia de Software II

Engenharia de Requisitos Estudo de Caso

Gerenciamento do Projeto

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e

Arquitetura de Software

Engenharia de Software

Especialização em Engenharia de Software e Banco de Dados

Software de Telecomunicações

Professor: Curso: Disciplina:

Gerenciamento de Projetos Modulo IX Qualidade

Desenvolvimento de Interfaces Prototipação

Engenharia de Sistemas de Computador

Métodos formais. Especificação Formal. Aceitação de métodos formais. O uso de métodos formais. Especificação e projeto

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

Síntese das discussões do fórum Livro-APF: Julho/2010

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Introdução - Cenário

Padrões Arquiteturais e de Integração - Parte 1

Modelos de processos de desenvolvimento de software

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Análise de Sistemas. Contextualização. O Sucesso. Aula 4. Instrumentalização. Aula 4. Prof. Emerson Klisiewicz. Clientes satisfeitos

Sistemas de Informação I

Introdução ao Processo Unificado (PU)

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Gerência de Projetos

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA

QUALIDADE DE SOFTWARE

Fundamentos de Teste de Software

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Transcrição:

Capítulo 10 Especificações Formais Baseado nos slides Traduzidos por Jacinta Pereira em 2007.1 do livro do Sommerville de 2000 Revisado e modificado por Rossana Andrade em 2009.1 Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 1

Especificação Formal Técnicas para a especificação nãoambígua do software Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 2

Objetivos Explicar porque a especificação formal ajuda a descobrir problemas nos requisitos de sistema Descrever o uso de técnicas algébricas e baseadas em modelo Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 3

Tópicos Especificação formal no processo de software Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 4

Métodos formais Especificação formal faz parte de uma coleção mais genérica de técnicas que são conhecidas como métodos formais Esses métodos são todos baseados em representação matemática e análise de software Os métodos formais incluem Especificação formal Análise e prova da especificação Desenvolvimento transformacional Verificação do programa Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 5

Aceitação dos métodos formais Métodos formais não se tornaram técnicas principais de desenvolvimento de software como havia sido previsto Outras técnicas de engenharia de software obtiveram mais sucesso no aumento da qualidade do sistema. Dessa forma, a necessidade de métodos formais foi reduzida Mudanças do mercado fizeram com que o tempo de produção, ao invés de um software com poucos erros, se tornasse o fator principal. Métodos formais não diminuem o tempo de produção O escopo dos métodos formais é limitado. Eles nem sempre se encaixam bem com a especificação e análise de interfaces de usuários e interação Métodos formais são difíceis de aplicar em grandes sistemas Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 6

Uso de métodos formais Métodos formais têm aplicabilidade prática limitada Seu principal benefício é o de reduzir o número de erros no sistema. Dessa forma, sua área principal de aplicabilidade é em sistemas críticos Nesta área, o uso de métodos formais é mais eficiente em custo-benefício Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 7

Especificação no processo de software Especificação e design são inseparavelmente interligados. O projeto arquitetônico é essencial para estruturar uma especificação. Especificações formais são expressas em notação matemática com vocabulário, sintaxe e semântica precisamente definidos Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 8

Especificação e projeto: cascata Increasing contractor involvement Decreasing client involvement Requirements Requirements Architectural Software High-level definition specification design specification design Specification Design Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 9

Especificação e projeto: iterativo Requirements specification Formal specification Requirements definition High-le vel design System modelling Ar chitectural design Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 10

Especificação técnica Abordagem algébrica O sistema é especificado em relação às suas operações e seus relacionamentos Abordagem baseada em um modelo O sistema é especificado em relação a um modelo de estado que é construído através de construtores matemáticos como conjuntos e seqüências. As operações são definidas pela modificação no estado do sistema Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 11

Linguagens de especificação formal Sequential Algebraic Larch (Guttag, Horning et al., 1985; Guttag, Horning et al., 1993), OBJ (Futatsugi, Goguen et al., 1985) Model-based Z (Spiv ey, 1992) VDM (Jones, 1980) B (W ordsworth, 1996) Concurrent Lotos (Bolognesi and Brinksm a, 1987), CSP (Hoare, 1985) Petri Nets (Peterson, 1981) Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 12

Uso da especificação formal A especificação formal envolve o investimento de mais esforço nas fases iniciais do desenvolvimento do software Isso reduz os erros de requisitos, já que força uma análise detalhada dos requisitos Incompletude e inconsistência podem ser descobertas e resolvidas Dessa forma, há economia, já que a quantidade de trabalho a ser refeito devido a problemas nos requisitos é reduzida Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 13

Custos do Desenvolvimento com especificação formal Especificação Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 14

Pontos - Chave Especificação de sistema formal complementa as técnicas de especificação informal Especificações formais são precisas e não- ambíguas. Removem áreas de dúvidas na especificação Especificação formal força uma análise dos requisitos de sistema em um estágio inicial. Corrigir os erros nesta fase é mais barato que modificar um sistema entregue Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 15

Pontos-Chave Técnicas de especificação formal são mais aplicáveis no desenvolvimento de sistemas críticos e normas técnicas. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 16