Especificação Formal de Software
|
|
|
- Ângela Lopes Chaves
- 10 Há anos
- Visualizações:
Transcrição
1 Especificação Formal de Software Carlos Figueiredo, Jorge Neves, Luís Magalhães, Vitor Pinto Licenciatura em Engenharia Informática e Computação Faculdade de Engenharia da Universidade do Porto {ei99030, ei99040, ei99049, ei99036}@fe.up.pt Resumo Este relatório visa reflectir a aplicação de métodos formais na Engenharia de Software, bem como as vantagens e desvantagens do uso deste tipo de métodos. Será ainda efectuada uma breve descrição das principais linguagens necessárias à elaboração de um método formal. 1 Introdução Com a larga e crescente utilização informática nos dias de hoje, é cada vez maior a dependência dos computadores (hardware) e seus aplicativos (software). À medida que essa dependência aumenta, aumentam também as complexidades dos projectos a conceber. Uma questão fundamental no desenvolvimento de um software é garantir que este é realmente uma solução para o problema proposto. É neste ponto que os métodos formais são importantes para a Engenharia de Software. As disciplinas tradicionais de Engenharia baseiam-se fortemente em modelos matemáticos para atingirem os seus objectivos. Ao contrário das suas congéneres, a Engenharia de Software tem uma abordagem muito menos rigorosa e consequentemente sofreu e continua a sofrer importantes fracassos que têm uma repercussão cada vez mais importante na sociedade. A área de métodos formais tem vindo a contrariar esse quadro. Os métodos formais foram desenvolvidos para auxiliar todas as etapas da elaboração de um software: especificação formal para a definição dos requisitos, refinamento para a concepção, síntese para a codificação, prototipagem para a validação, prova para a verificação. A figura 1 mostra a forma como o projecto de especificação formal se enquadra na estrutura tradicional de desenvolvimento de software. Criar uma especificação formal detalhada força uma análise pormenorizada do sistema que revela erros e inconsistências na especificação informal, este permite assim eliminar ambiguidades e aumentar a consistência e o grau de completicidade dos requisitos a serem atingidos, argumentos que outros métodos convencionais não conseguem atingir ou pelo menos com grande precisão.
2 Figura 1 Especificação de Requisitos e Especificação Formal Estes argumentos destacaram os métodos formais dos outros e devem-se ao uso da matemática, uma linguagem precisa e coerente, como base na criação de modelos. Essa precisão permite diminuir drasticamente os erros que podem vir a surgir na elaboração de software s. No entanto não elimina de todo os erros, pois não é possível criar um sistema perfeito, isento de problemas e falhas. É devido a este factor que existe ainda alguma controvérsia em torno dos métodos formais, no entanto é unânime que o uso deste tipo de métodos nas especificações de requisitos melhora grandemente a qualidade do trabalho a desenvolver e por conseguinte o produto final. O uso crescente de métodos formais levou a que dessem origem à criação de notações próprias, de modo a serem usadas pelos engenheiros de software com alguma padronização, notações como a Z ou VDM tornaram-se obrigatórias para qualquer engenheiro de software que queira recorrer ao uso de métodos formais, na elaboração dos seus sistemas de requisitos. 2 Importância do uso de Linguagens de Especificação Actualmente a grande maioria do software possui uma complexidade muito elevada, o que cria a necessidade de definir com rigor as relações entre os vários componentes, bem como o funcionamento interno de cada um dos componentes que constituem o software, para que não existam falhas. Neste contexto, as linguagens de especificação, ao permitirem definir com rigor matemático os problemas para os quais se espera que o software responda, permitem criar um software com maior fiabilidade. Em seguida irão ser descritas as vantagens, as desvantagens (nesta secção não serão abordadas somente as desvantagens, mas também alguns dos motivos pessoais que levam os responsáveis envolvidos num projecto a não escolher estes métodos) e alguns mitos relativos à especificação formal. 2.1 Vantagens O desenvolvimento de uma especificação formal permite ao projectista compreender melhor os requisitos do sistema, bem como a forma de os implementar num Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 2 de 9
3 software funcional, com um número reduzido de erros e omissões na implementação da solução. Como se refere a uma linguagem matemática, a especificação formal é precisa e não ambígua. As especificações formais podem ser analisadas matematicamente de forma a demonstrar a sua consistência e o seu grau de completicidade. Após a implementação pode ser possível provar que o software foi desenvolvido de acordo com a especificação inicialmente criada. A especificação formal pode ser utilizada para identificar os casos de teste mais relevantes para o software a desenvolver. As especificações formais podem ser processadas automaticamente, através de ferramentas de software que permitem o seu desenvolvimento, compreensão e debug. Utilizando estas ferramentas é possível simular um protótipo do sistema, embora esta simulação não seja muito eficiente em termos de rapidez. O custo final do software pode ser reduzido, uma vez que estes métodos permitem corrigir erros numa fase inicial do projecto, o que se torna mais barato que a correcção após a implementação do mesmo. 2.2 Desvantagens Devido ao conservadorismo existente entre os gestores de software, existe alguma relutância em adoptar novas técnicas quando o lucro não é óbvio. É difícil demonstrar que o elevado custo de desenvolvimento da especificação formal, na fase inicial, irá tornar o preço final do projecto mais baixo. Dado que muitos engenheiros de software não têm experiência em matemática discreta e em lógica, têm alguma dificuldade em desenvolver especificações formais. Os clientes não estão familiarizados com as linguagens de especificação formal, o que os conduz ao não financiamento de projectos especificados com este tipo técnicas. Os métodos existentes actualmente não permitem a especificação dos componentes interactivos das interfaces do utilizador e são difíceis de utilizar em alguns sistemas paralelos. A maioria do trabalho desenvolvido na especificação formal é dirigido ao desenvolvimento de línguas, existindo poucas ferramentas que as implementem. 2.3 Mitos dos métodos formais Aqui serão expostos algumas crenças relativas aos métodos formais que foram exageradas e para as quais iremos apresentar a argumentação que Hall [9] utilizou para desmistificar estas crenças. Os Métodos formais podem garantir que o software seja perfeito Este mito, obviamente não é verdade, pois uma especificação formal é um modelo do mundo real e portanto pode incluir alguns erros ou omissões na representação do mundo. Os Métodos formais só são utilizados para prova do programa Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 3 de 9
4 Os métodos formais também são usados para escrever uma especificação formal, provar as propriedades das especificações e construir um programa manipulando matematicamente as especificações. Os métodos formais fornecem uma abstracção da especificação. Descrevem o que tem de ser feito e não como o fazer e permite especificar o detalhe apenas ao nível necessário. Devido ao elevado custo, os métodos formais só são úteis para sistemas de segurança críticos Geralmente os métodos formais reduzem os custos para todas classes de sistemas e não só para os sistemas de segurança críticos. São necessários matemáticos treinados para a implementação dos métodos formais A matemática usada é simples, embora necessite de algum treino, como qualquer outro método. A maior dificuldade reside na obtenção do nível de abstracção ideal para modelar o mundo real. A realização da prova formal já exige um nível mais elevado de conhecimentos matemáticos. Os Métodos Formais aumentam o custo de desenvolvimento Os métodos formais alteram a estrutura do desenvolvimento ao despender-se mais tempo na fase a especificação e menos tempo nas fases seguintes, aumentando, assim o custo da fase inicial, mas diminuindo o custo total do projecto. Os Métodos Formais são inaceitáveis pelos utilizadores Os métodos formais ajudam os utilizadores porque a especificação captura o que o utilizador quer antes de ser construído. A especificação formal pode ser compreendida pelo cliente, se for traduzida para linguagem natural e através da criação de protótipos que exemplifiquem a especificação. Os Métodos Formais só são usados em sistemas triviais Os métodos formais já foram utilizados para especificação de um kernel de um sistema de tempo-real [10] e para a especificação de um osciloscópio [11]. 3 Linguagens de Especificação Esta secção pretende especificar de uma forma geral os fundamentos, vantagens e desvantagens, dos diferentes tipos de linguagens de especificação. Existem várias linguagens de implementação de métodos formais. A figura 2 apresenta algumas dessas linguagens e implementa uma divisão dessas linguagens [2]. Esta divisão tem em conta as características das linguagens, nomeadamente relacionadas com os fundamentos científicos em que se apoia a especificação. Como característica comum, salienta-se que todas as linguagens são constituídas por: uma notação, que especifica o domínio sintáctico; um universo de objectos, que refere o domínio Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 4 de 9
5 semântico; uma regra que indica quais os objectos que satisfazem cada especificação. Nos pontos seguintes, apresentam-se cada um dos diferentes tipos de linguagem. Figura 2 Diferentes abordagens dos métodos formais 3.1 Linguagem Orientadas ao Modelos Este tipo de linguagens usam modelos matemáticos construídos usando tipos de dados simples como listas, caracteres, e números naturais, são ainda especificadas as operações que mudam o estado do modelo. Ou seja estas linguagens representam o mundo que pretendem especificar como um conjunto de estados. Existem dois representantes deste tipo de linguagens que têm sido bastante usados e que são bastantes poderosos, o VDM e o Z (pronuncia-se Zed). Seguidamente é feita uma apresentação destas linguagens. A linguagem VDM (The Vienna Development Method) foi desenvolvida inicialmente pelo laboratório da IBM em Viena, em meados da década de 1970, com o objectivo de ajudar o desenvolvimento de Sistemas Operativos [1]. Até aos tempos que correm foram feitas varias actualizações à notação e as ferramentas que a implementam, o que torna esta linguagem numa ferramenta poderosa que tem sido aplicada no desenvolvimento de vários sistemas. Actualmente esta linguagem encontra-se estandardizada pelo ISO, com o nome VDM-SL. Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 5 de 9
6 Esta linguagem usa um conjunto de regras que permitem refinar os dados e as operações, possibilitando desta forma interligar os requisitos abstractos do sistema com os detalhes de implementação relacionados com o código escrito [3]. Ou seja a especificação contem o tipo de dado usado e as operações que são permitidas. Existem várias extensões ao VDM, entre as quais RSL e VDM++, esta última possibilita a inclusão do conceito de programação orientada a objectos. Estas extensões para além de incluírem várias funcionalidades extra-standard, normalmente têm como alvo, um tipo específico de software. Já foi citada a forma como era construída uma especificação, de seguida apresentase um exemplo. Suponha-se um sistema de reservas de um hotel, semelhante ao usado nas aulas práticas de ES. Este sistema seria especificado por listas que representariam os quartos, os clientes e a ocupação dos quartos. A especificação incluiria também operações para adicionar, remover e alterar os dados constantes das listas. Existem muitas semelhanças entre a linguagem anterior e a linguagem Z, [4] algumas das diferenças prendem-se com pormenores de implementação. A linguagem Z é estruturada como um conjunto de esquemas. Um esquema é uma representação formal de estados que é usada para estruturar a especificação formal. Num esquema, são introduzidas variáveis e são especificadas as relações entre variáveis. Os esquemas são vistos como construtores, que descrevem os estados do sistema. Cada estado pode ser constituído por várias operações, estas operações resultam na mudança entre os diferentes estados. Desta forma o sistema que se pretende implementar é visto como uma máquina de estados [5]. 3.2 Linguagens Baseadas em Propriedades Este tipo de linguagens especifica o comportamento do sistema de uma forma indirecta, através da especificação de um conjunto de propriedades que o sistema deve satisfazer. Enquanto as linguagens baseadas em modelos especificam o sistema com base no seu funcionamento (máquina de estados), as linguagens baseadas em propriedades, preocupam-se mais em identificar as propriedades externas do sistema e em identificar o que este deve fazer. Desta forma as linguagens baseadas em propriedades relacionam-se mais com a especificação dos requisitos. Existem duas subcategorias deste tipo de linguagens, as axiomáticas e as algébricas. De seguida descreve-se este tipo de linguagens Linguagens Axiomáticas Este tipo de linguagens usa abstracções do sistema baseadas na lógica. Algumas destas linguagens são, OBJ e Larch. A linguagem OBJ teve o seu início na década de 70 do século passado, sendo assim pioneira entre as linguagens de especificação. A linguagem OBJ é vista como uma família, da qual fazem parte os seguintes membros, OBJ3, CafeOBJ e o BOBJ. Estas linguagens de especificação usam conceitos de lógica e disponibilizam um poderoso método de especificação. De uma forma geral pode-se caracterizar estas linguagens como Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 6 de 9
7 sendo um conjunto de sentenças de um sistema lógico. Do sistema fazem ainda parte operações semânticas deduzidas a partir do sistema lógico. Estas linguagens usam também alguns conceitos de álgebra com o objectivo de definir, algumas características da linguagem como por exemplo tratamento de excepções [7]. A linguagem de especificação Anna (Annotated Ada) é o resultado de anos de pesquisa em validação de programas. Esta linguagem é uma extensão da linguagem Ada, sendo que já esta é muito poderosa, tendo como principais características, a grande diversidade de tipos de dados suportados e o tratamento de excepções. Esta linguagem baseia-se na especificação por comentários formais, estes podem ser Anotações, especificações de elementos do programa, ou podem ser Texto Ada, que consiste em texto específico da linguagem, por exemplo, uma excepção conhecida ou uma definição de um package. As anotações podem ser por exemplo especificação de objectos Linguagens Algébricas Uma das características menos atractivas dos métodos formais deve-se à relativa complexidade das notações utilizadas. Com o objectivo de simplificar as notações começaram-se a usar linguagens algébricas, usando axiomas na forma de equações mais simples e mais acessíveis a todos. [2] Um termo correntemente usado em especificações é o termo sort. Uma entidade ou um objecto é visto como uma instância de um sort. Este conceito está relacionado com a ideia de tipos ou classes, por outras palavras um sort é um conjunto de objectos. A especificação algébrica divide-se em quatro módulos: o Introdução o Descrição informal o Assinatura o Axiomas Introdução Na introdução é definida a entidade a ser usada, juntamente com o sort e o nome de outras aplicações (import) que irão ser necessárias. Como exemplo se pretendesse-mos definir a classe tabela_aviões definiríamos do seguinte modo: Tabela_avioes (detalhes) Sort Tabela_avioes Imports integer, pistas_avioes. Descrição informal Neste módulo introduzem-se comentários textuais que explicam a matemática formal aplicada. Este módulo é extremamente importante pois permite saber o que determinado método faz, facilitando o trabalho ao analista, pois não terá que analisar toda a matemática formal existente, para saber a sua finalidade. Assinatura O objectivo da assinatura consiste em definir as características de um objecto, através da descrição das suas propriedades, usando um conjunto de operações. Estas operações dividem-se em constructor e inspection. O constructor é usado para criar e alterar entidades definidas no sort (classe) em questão. O inspection relaciona-se com as operações usadas. Este tem como finalidade avaliar as atribuições resultantes de operações e verificar a validade dessas mesmas operações. Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 7 de 9
8 Operações como create, insert e remove são claramente instruções de constructor, uma vez que estão relacionadas com a criação, eliminação de objectos. Outras como last e eval são claramente operações de inspection, pois tem que ser verificada a veracidade e validade da operação. Axiomas É neste módulo que se utilizam as notações matemáticas, as operações a serem efectuadas e que serão avaliadas pelo inspector e as relações entre elas. É aqui que residem as especificações algébricas propriamente ditas. Estas especificações consistem basicamente num conjunto de equações baseadas em expressões matemáticas. Os axiomas definem o efeito resultante de uma operação aplicada a um objecto, quando este se encontra num determinado estado. No entanto em vez de se usar um modelo explícito para definir um estado (como acontece com o VDM), este é definido em termos das operações resultantes do construtor (construtor). Desde modo, cada axioma relata o efeito de uma operação do inspector (inspector). A estratégia de desenvolver especificações algébricas, para serem aplicadas em métodos formais, é mais flexível que o uso de linguagem alternativas como o VDM. Ao contrário desta ultima linguagem, baseada em modelos matemáticos, as linguagens algébricas, orientada às propriedades, enquadram-se mais com a especificação dos requisitos. No entanto é provavelmente mais difícil de construir uma especificação algébrica formal para sistemas complexos, sem se ter uma vasta e rica experiência e conhecimento. 4 Conclusões Embora os métodos formais permitam construir software mais fiável e eficiente e com um custo final geralmente mais reduzido, estes são pouco utilizados, devido à relutância que os gestores de software têm em financiar novos métodos quando estes não reduzem os custos de forma imediata. Os métodos formais também não permitem descrever os componentes interactivos das interfaces com o utilizador, que actualmente constituem uma parte essencial do software. Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 8 de 9
9 Referencias [1] [2] David Budgen, Software design, 1994 Addison-Wesley, p [3] [4] J. Hayes, C. B. Jones and J. Nicholls.Understanding the Differences Between VDM and Z. disponível via web a partir de: [5] Roger S.Pressman Software Engineering a Practitioner s Approach European Adaptation fifth edition capitulo 25 [6]Goguen J. A. (1994) Requirements Engineering as the Reconciliation of Technical and Social Issues [7] [8] [9] Hall, A. (1990) Seven myths of formal methods. IEEE Software, 7(5), [123,160,161]. [10] Spivey, J. M. (1990) Specifying a real-time kernel. IEEE Software, 7(5), 21-8 [162,202]. [11] Delisle, N. and Garlan, D. (1990) A formal specification of an oscilloscope. IEEE Software, 7(5), [162]. [12] Sommerville, Ian (1995) Software Engineering. 9, [13] Shimizu, Kanna. A Methodology for Writing and Exploiting Formal Specifications. Stanford University Grupo 17, versão 1.0, 4 de Dezembro de 2002 Página 9 de 9
Modelo Cascata ou Clássico
Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação
5. Métodos ágeis de desenvolvimento de software
Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca [email protected] Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos
Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:
GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo
Engenharia de Software Sistemas Distribuídos
Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às
Desenvolvimento de Interfaces Prototipação
Autarquia Educacional do Vale do São Francisco AEVSF Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Centro de Engenharia e Ciências Tecnológicas CECT Curso de Ciência da Computação Desenvolvimento
Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
Processos de Desenvolvimento de Software
Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e
GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de
Especificação Formal. Especificação no Processo de Software
Especificação Formal Técnicas para a especificação não ambígua de software Objectivos Explicar o lugar da especificação formal de software no processo de software Explicar quando a utilização de especificação
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite
UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula
Capítulo 10. Especificações Formais
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
CAP. I ERROS EM CÁLCULO NUMÉRICO
CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção
Projeto de Sistemas I
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:[email protected] Requisitos: base para todo projeto, definindo o
Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação
Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS
Informática II Cap. 3
Cap. 3 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens:
Gestão do Risco e da Qualidade no Desenvolvimento de Software
Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: [email protected] CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: [email protected] CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento
INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO
Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia
1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens: Programas
Base de Dados para Administrações de Condomínios
Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: [email protected] Marco António Sousa Nunes Fernandes Silva: [email protected] Pedro Miguel Rosário Alves: [email protected]
Modelagem e Simulação
AULA 11 EPR-201 Modelagem e Simulação Modelagem Processo de construção de um modelo; Capacitar o pesquisador para prever o efeito de mudanças no sistema; Deve ser próximo da realidade; Não deve ser complexo.
Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:
Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau
Rock In Rio - Lisboa
Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem
Roteiro para preparação de proposta de Trabalhos Técnico-Científicos
1 Roteiro para preparação de proposta de Trabalhos Técnico-Científicos Prof. Valdemir Carrara www.valcar.net www.carrara.us 2 1 INTRODUÇÃO Na introdução deve-se descrever os objetivos principais do trabalho
Engenharia de Software
Engenharia de Software Introdução Departamento de Matemática Universidade dos Açores Hélia Guerra [email protected] Engenharia de software A economia de todos os países desenvolvidos depende do software. O
DEMONSTRAÇÕES FINANCEIRAS COMBINADAS
24 DEMONSTRAÇÕES FINANCEIRAS COMBINADAS Os mercados de capitais na Europa e no mundo exigem informações financeiras significativas, confiáveis, relevantes e comparáveis sobre os emitentes de valores mobiliários.
GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de
TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO ACCESS 2010 Conceitos Básicos Ficha Informativa Professor : Vanda Pereira módulo didáctico Conceitos Básicos Necessidade das base de dados Permite guardar dados
Engenharia de Software
Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo
CENTRO DE CIÊNCIAS TECNOLÓGICAS CCT
UNIVERSIDADE DO ESTADO DE SANTA CATARINA CENTRO DE CIÊNCIAS TECNOLÓGICAS CCT CURSO DE TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO ENGENHARIA DO PRODUTO FABIANO RAMOS DOS SANTOS SERGIO DA COSTA FERREIRA JOELSON
ENGENHARIA DE SOFTWARE I
ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [[email protected]] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos
Engenharia de Requisitos Estudo de Caso
Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este
Feature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Tarefa Orientada 16 Vistas
Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um
GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR
Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total
Perguntas mais frequentes
Estas informações, elaboradas conforme os documentos do Plano de Financiamento para Actividades Estudantis, servem de referência e como informações complementares. Para qualquer consulta, é favor contactar
Engenharia de Requisitos
Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.
Prototipagem em Papel Desenvolver e testar interfaces antes de iniciar a programação. Ivo Gomes
Prototipagem em Papel Desenvolver e testar interfaces antes de iniciar a programação Ivo Gomes 1 Novos desafios Interfaces cada vez mais complexos; Novos desafios através do uso de Rich Internet Applications:
Wilson Moraes Góes. Novatec
Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco
Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Disciplina de Projecto de Sistemas Industriais Ano Lectivo de 2005/2006
Prof. Me. Marcos Echevarria
Prof. Me. Marcos Echevarria Introdução a engenharia de software; Conceito de análise orientada a objetos; UserStories; Requisitos de software; Técnicas de levantamento de requisitos; Modelo de casos de
Conceitos básicos de programação
O QUE É UM PROGRAMA? Para executar uma dada tarefa é geralmente necessário entender o sistema onde ela é realizada. Por exemplo, para fazer um bolo temos um sistema composto por: Ingredientes Cozinheiro
Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc [email protected]
Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc [email protected] 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.
Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.
Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos
Certificação da Qualidade dos Serviços Sociais. Procedimentos
Certificação da Qualidade dos Serviços Sociais EQUASS Assurance Procedimentos 2008 - European Quality in Social Services (EQUASS) Reservados todos os direitos. É proibida a reprodução total ou parcial
Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW
Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto
Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores
Trabalhos Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório 3.2 Avaliação 4. Propostas Na disciplina de Programação
Análise de Sistemas. Conceito de análise de sistemas
Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de
GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo
Extração de Requisitos
Extração de Requisitos Extração de requisitos é o processo de transformação das idéias que estão na mente dos usuários (a entrada) em um documento formal (saída). Pode se entender também como o processo
Como elaborar um Plano de Negócios de Sucesso
Como elaborar um Plano de Negócios de Sucesso Pedro João 28 de Abril 2011 Fundação António Cupertino de Miranda Introdução ao Plano de Negócios Modelo de Negócio Análise Financeira Estrutura do Plano de
Dadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação [email protected] Conceitos Preliminares
Algoritmos e Programação (Prática) Profa. Andreza Leite [email protected]
(Prática) Profa. Andreza Leite [email protected] Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
COMPILADORES E INTERPRETADORES
Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte
DESENVOLVER E GERIR COMPETÊNCIAS EM CONTEXTO DE MUDANÇA (Publicado na Revista Hotéis de Portugal Julho/Agosto 2004)
DESENVOLVER E GERIR COMPETÊNCIAS EM CONTEXTO DE MUDANÇA (Publicado na Revista Hotéis de Portugal Julho/Agosto 2004) por Mónica Montenegro, Coordenadora da área de Recursos Humanos do MBA em Hotelaria e
1. NÍVEL CONVENCIONAL DE MÁQUINA
1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0
Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho
20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam
PHC Serviços CS. A gestão de processos de prestação de serviços
PHC Serviços CS A gestão de processos de prestação de serviços A solução que permite controlar diferentes áreas de uma empresa: reclamações e respectivo tratamento; controlo de processos e respectivos
Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva. [email protected]. Http://e-academy.com.br
Faculdade Pitágoras Engenharia de Software Prof.: Julio Cesar da Silva [email protected] Http://e-academy.com.br Evolução do Software (1950 1965) - O hardware sofreu contínuas mudanças - O
Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1
Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.
GARANTIA DA QUALIDADE DE SOFTWARE
GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características
Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite [email protected] (81 )9801-6619
Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite [email protected] (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o
Introdução à Computação
Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os
Negócios à Sua dimensão
Negócios à Sua dimensão O seu Software de Gestão acompanha-o? O ArtSOFT pode ser a solução de gestão da sua empresa. O ArtSOFT Profissional permite o controlo total sobre a gestão da sua empresa, assegura
Modelo para Documento de. Especificação de Requisitos de Software
Modelo para Documento de Especificação de Requisitos de Software Prof. Dr. Juliano Lopes de Oliveira (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications)
Fábrica de Software 29/04/2015
Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se
Persistência e Banco de Dados em Jogos Digitais
Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem
Introdução às Linguagens de Programação
Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador
FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios
FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito
2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
- A crescente necessidade de sistemas inteligentes e de aquisição de conhecimento levaram à necessidade de implementação de Data Warehouses.
- A crescente necessidade de sistemas inteligentes e de aquisição de conhecimento levaram à necessidade de implementação de. - O que é uma Data Warehouse? - Colecção de bases de dados orientadas por assunto
DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS
DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:
DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS - Grupo 550 INFORMÁTICA Planificação Anual /Critérios de avaliação
DOMÍNIOS (Unidades) UNIDADE 1 INTRODUÇÃO À PROGRAMAÇÃO Introdução Conteúdos Objetivos Estratégias/ recursos Conceitos fundamentais Teste e controlo de erros em algoritmia Estruturas de controlo Arrays
Relatório de Estágio
ÍNDICE 1. Descrição da empresa 2. Descrição do problema 2.1 Subcontratação da produção 2.2 Relacionamento da empresa 2.3 Dois departamentos de qualidade 2.4 Inspecções actualmente efectuadas 2.5 Não conformidades
Um compilador é um programa que lê um programa escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num programa equivalente
Capítulo 1 Introdução Um compilador é um que lê um escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num equivalente numa outra linguagem, a linguagem destino Como parte importante neste
Programa de Parcerias e Submissão de Propostas 2014/15
DEPARTAMENTO DE INFORMÁTICA Programa de Parcerias e Submissão de Propostas 2014/15 O Departamento de Informática (DI) da Faculdade de Ciências da Universidade de Lisboa (FCUL) procura criar e estreitar
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura
DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.
- DSI DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. Preocupação: Problema técnicos Mudança na natureza e conteúdo do trabalho
Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1
Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Disciplina de Banco de Dados Introdução
Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR
6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,
Regulamento de Vigilâncias de Provas Escritas de Avaliação do DEEC
Regulamento de Vigilâncias de Provas Escritas de Avaliação do DEEC Autores: Aprovação: Comissão Executiva do DEEC Comissão Executiva do DEEC Data: 3 de Fevereiro de 2011 Distribuição: Docentes do DEEC
Requisitos de Software
Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama [email protected] Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,
