TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

UML: Uma Linguagem De Especificação De Requisitos Não Funcionais

Artigos Científicos: UML: Uma Linguagem De Especificação De Requisitos Não Funcionais. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  6/11/2013  •  8.509 Palavras (35 Páginas)  •  505 Visualizações

Página 1 de 35

Resumo

Especificação formal de programas tem sido uma prática muito comum na engenharia de

software, uma vez que um software bem especificado resulta em um produto com menos falhas e

ambigüidades. Existem linguagens para especificação de programas que permitem que

desenvolvedores especifiquem o comportamento de seus programas. Muitas dessas linguagens

fazem uso do paradigma Projeto por Contrato (Design by Contract), em que um componente de

software garante que o resultado das operações seja correto, se as restrições impostas por ele

forem obedecidas. São exemplos desse tipo de linguagem, JML (Java Modeling Language), para

aplicativos Java, e DBC for C (Design by Contract para C), para aplicativos C.

Contudo, assegurar a corretude de programas escritos na linguagem de programação C é

uma tarefa muito difícil, pois C permite referências a endereços de memória, deixando para o

programador, quase sempre, a responsabilidade pela corretude do software. Em contrapartida, os

requisitos não funcionais, como tempo de processamento, consumo de energia, tamanho do

código fonte, etc., são preocupações típicas de programadores C e, em muitas situações, as

principais justificativas para o uso de C como linguagem de desenvolvimento.

Em detrimento disso, este trabalho apresenta a linguagem CML (C Modeling Language),

que tem como propósito prover um meio de especificar requisitos não funcionais em programas

desenvolvidos na linguagem de programação C, utilizando ferramentas externas para verificação

desses requisitos.

ii

ESCOLA POLITÉCNICA

DE PERNAMBUCO

Abstract

Formal specification has been a common practice in software engineering, therefore a wellspecified

software results in a product with less failures and ambiguities. There are some

specification languages that provide developers a way to specify the behavior of their softwares.

Many of these languages use the Design by Contract paradigm, where a software component

ensures the right results of operations, if the constraints imposed by it can be met. Examples of

such a kind of languages are JML (Java Modeling Language) for Java applications, and DBC for

C (Design by Contract for C) for C applications.

However, to ensure correctness of applications developed in the C programming language

is a very hard task because C allows memory address references, leaving to programmers, almost

always, the responsibility for the software correctness. On the other hand, non-functional

requirements, like processing time, power consumption, code size, are typical concerns of C

programmers and, in many cases, the main reason for choosing C as development language.

For all these reasons, this work presents the language CML (C Modeling Language),

which its purpose is to provide a way to specify non-functional requirements in applications

developed in C programming language, using external tools to verify these requirements.

iii

ESCOLA POLITÉCNICA

DE PERNAMBUCO

Sumário

Índice de Figuras v

Índice de Tabelas vii

Tabela de Símbolos e Siglas viii

1 Introdução 10

1.1 Motivação 10

1.2 Objetivos 11

1.3 Contribuições 11

1.4 Roteiro 12

2 Trabalhos Relacionados e Fundamentação Teórica 13

2.1 Trabalhos Relacionados 14

2.1.1 Projeto por Contrato 14

2.1.2 JML 16

2.1.3 DBC for C 19

2.2 Ferramentas externas de análise 19

2.2.1 Ferramenta para análise de consumo de energia 20

2.2.2 Ferramenta para análise de restrições temporais 20

2.3 Resumo 27

3 Implementação 29

3.1 Modelagem 29

3.2 Compilador da linguagem CML 32

3.2.1 Processo de Compilação 32

3.2.2 JavaCC 33

3.2.3 Gramática da linguagem CML 34

3.3 Integração com ferramentas de análise 38

3.3.1 Módulos da ferramenta de análise de restrições temporais 39

3.3.2 Ambiente CML 39

3.4 Resumo 41

4 Validação da Proposta 42

4.1 Semáforo 43

4.2 Sistema de monitoramento de veículos 45

4.3 Resumo 50

5 Conclusões e Trabalhos Futuros 51

5.1 Contribuições 51

5.2 Dificuldades e Limitações 52

5.3 Trabalhos Futuros 52

Apêndice A 54

iv

ESCOLA POLITÉCNICA

...

Baixar como (para membros premium)  txt (64 Kb)  
Continuar por mais 34 páginas »
Disponível apenas no TrabalhosGratuitos.com