Suporte à Engenharia Reversa para o ambiente SEA

Tamanho: px
Começar a partir da página:

Download "Suporte à Engenharia Reversa para o ambiente SEA"

Transcrição

1 Otavio Pereira Suporte à Engenharia Reversa para o ambiente SEA Orientador: Ricardo Pereira e Silva Universidade Federal de Santa Catarina - UFSC Departamento de Informática e Estatística - INE Florianópolis - SC 2004

2 Sumário 1 Objetivo p Tema p Delimitação do Tema p Objetivo Geral p Objetivos Específicos p Justificativa p Problema p. 6 2 Metodologia de trabalho p Tecnologias e Ferramentas p. 7 3 Engenharia Reversa p O que é p Limitações p Engenharia Reversa hoje p. 9 4 Compiladores p Descrição e funcionamento p Compiladores para diferentes linguagens e Reutilização de código... p Geração semi-automatizada de compiladores p Análise de caso: GCC p A ferramenta de suporte à Engenharia Reversa para o SEA p. 13

3 5.1 SEA e Ocean p Técnicas para recuperação do projeto p XMI - O formato de transferência de dados da UML p Uma extensão do XMI p Inserção direta de definições p Requisitos da ferramenta p Projeto p Pontos de extensão p Engenharia reversa de código Java p Descrição do projeto p Conclusão e trabalhos futuros p Conclusão p Trabalhos futuros p. 17 Apêndice A -- Documentação do código p. 18 Apêndice B -- Código fonte p. 19 Referências p. 20

4 4 1 Objetivo 1.1 Tema O trabalho terá como tema a inclusão do suporte à Engenharia Reversa no Ambiente SEA. O Ambiente SEA foi desenvolvido por Ricardo Pereira e Silva, como fruto de sua tese de Doutorado, e é uma ferramenta voltada ao projeto de artefatos 1 reutilizáveis de software, e ainda carece de um suporte à Engenharia Reversa. 1.2 Delimitação do Tema A Engenharia Reversa pode ser abordada em diversos níveis, desde código de máquina para código assembly, ou deste para uma linguagem de alto nível, ou desta para o projeto. Iremos trabalhar com a recuperação do projeto a partir do código fonte, ou seja, partiremos de uma linguagem em alto nível e chegaremos nos diagramas que deram origem ao código. O código fonte será necessariamente uma linguagem Orientada a Objetos (Java, C++, Smalltalk, etc.), e os diagramas serão utilizados no formato especificado pelo ambiente. 1.3 Objetivo Geral Apresentar uma estrutura de suporte para construção de ferramentas de engenharia reversa para o ambiente SEA. 1 Por artefato de software entende-se frameworks, componentes, bibliotecas, etc.

5 5 1.4 Objetivos Específicos Os objetivos específicos do trabalho serão a construção efetiva do framework, a construção de ferramentas voltadas a linguagens específicas, como validação do framework, alterações no ambiente SEA e no framework OCEAN para não perder algumas informações semânticas a respeito do código gerado. 1.5 Justificativa É consenso entre os especialistas em projeto e desenvolvimento de software que durante o desenvolvimento orientado a objetos, tanto de aplicações como de artefatos de software é necessário a criação de uma documentação, que compreende desde o projeto da arquitetura do artefato (ou aplicação) até o código gerado. A prática recomendada é manter o código gerado seguindo a risca as especificações do projeto, porém, a criação de um projeto que possa ser convertido em código sem modificações é algo difícil de ser atingido. Existem procedimentos que fornecem um meio de alterar o projeto durante o desenvolvimento do software, porém geralmente as pressões para fazer cumprir os prazos tendem a colocar estes procedimentos em desuso. Como resultado, normalmente temos um projeto diferente do resultado final, e o último será utilizado efetivamente. Quando se trata do desenvolvimento de aplicações, essa diferença entre projeto e resultado final trará conseqüências graves na fase da manutenção, pois a equipe responsável terá uma dificuldade maior em entender o código. Agora, quando o artefato desenvolvido será usado para gerar novas aplicações, como é o caso de frameworks, por exemplo, essa lacuna entre projeto e código pode ser gravíssima, uma vez que isso altera a forma como o desenvolvedor da aplicação precisa utilizar o framework, e normalmente esse uso foi escolhido no projeto da aplicação, com base no projeto do framework. Para evitar esses problemas, ao final do desenvolvimento do software (ou artefato), é feito um processo de atualização do projeto, refletindo as alterações causadas pela geração de código. Porém essa tarefa é tanto mais complexa quanto o tamanho do código, que na maioria das vezes não é pequeno. Para auxiliar a equipe de desenvolvimento nessa parte, existem ferramentas de Engenharia Reversa, que visam construir o projeto a partir do código. Infelizmente, algumas informações são perdidas com a geração de código, como os casos de uso, mas diagramas como os diagramas de classe, diagramas de seqüência 2, 2 Diagramas de seqüência podem ser recuperados, porém com limitações

6 6 entre outros especificados pela Unified Modeling Language (UML) são possíveis de serem reconstruídos. O ambiente SEA foi construído a a partir do framework OCEAN e é uma ferramenta Computer Aided Software Engineering (CASE) especialmente voltada para a construção de frameworks e componentes (1). O ambiente ainda não possui uma ferramenta de engenharia reversa, apesar de planejado pelo autor. 1.6 Problema A criação da ferramenta enfrentará alguns desafios, tais como forte dependência com relação à linguagem alvo e informações de projeto que são perdidas com a geração código. Serão analisadas três formas de introduzir as informações recuperadas no ambiente, de forma direta, através do padrão XMI! ( XMI) ou através de alguma extensão ao XML Metadata Interchange (XMI).

7 7 2 Metodologia de trabalho No desenvolvimento deste projeto adotaremos uma metodologia de desenvolvimento orientada a objetos, seguindo um modelo baseado no modelo em V, com possibilidade de retorno de fases. 2.1 Tecnologias e Ferramentas Na área de engenharia reversa temos algumas tecnologias em uso, tanto na área de construção de compiladores quanto na área de engenharia de software. Algumas ferramentas, citadas apenas como exemplo, são Flex, Bison e GALS, na área de compiladores, e outras ferramentas de engenharia reversa. Um outro software que será cuidadosamente avaliado será o GNU Compiler Collection (GCC), que traz uma estrutura de reuso voltada a compiladores.

8 8 3 Engenharia Reversa 3.1 O que é A engenharia reversa pode ser definida como sendo a reconstrução do modelo de software a partir do software já construído, ou seja, é o inverso do processo de engenharia normal. Quando se desenvolve um software, por exemplo, com um modelo de desenvolvimento baseado no modelo em cascata, o software passa primeiro por um estágio de levantamento de requisitos, seguido por estágio de análise, onde se desenvolvem diagramas como os de casos de uso e iteração, que serão usados para gerar um diagrama de classes e outros diagramas, conforme a metodologia em uso, e só então será gerado o código para o software. Na engenharia reversa, nos interessa percorrer o caminho inverso, já temos o código do software pronto, mas sua documentação é inexistente, ou quando existe é muito incompleta, casos típicos de desenvolvimento de software sem processo. 3.2 Limitações Quando se dá o processo de engenharia reversa sobre um código, alguns diagramas são simples de se reconstruir, como os digramas de corpo de método, introduzido com outro nome na UML 2.0 ((2)), mas já presente na especificação original do Ocean ((1)), e diagramas de classe. Outros diagramas, como por exemplo diagramas de casos de uso e statecharts são mais complicados de se obter de forma automática, necessitando de intervenção humana.

9 9 3.3 Engenharia Reversa hoje As ferramentas de engenharia reversa encontradas hoje estão normalmente presentes em ferramentas CASE, como módulo adicional, e limitam-se a recuperar o diagrama de classes a partir do código fonte. Exemplos de ferramentas CASE com suporte a engenharia reversa são o Rational Rose, Poseidon UML e Togheter.

10 10 4 Compiladores 4.1 Descrição e funcionamento Define-se um compilador como sendo um tradutor que transforma uma linguagem de alto nível, em uma linguagem de mais baixo nívelprocurar citação. Um compilador é, em essência, um parser que, dadas determinadas regras de funcionamento (léxicas, sintáticas e semânticas), gera um código equivalente ao da linguagem de entrada (por exemplo Java), em uma outra linguagem (por exemplo, Assembly). Um compilador pode ser decomposto em alguns módulos para melhor entender seu funcionamento. Basicamente, ele possui um analisador léxico, responsável por decompor o código em tokens, que serão comparados contra construções sintáticas válidas, pelo analisador sintático. Sendo então submetidos à uma análise semântica, verificando se as construções possuem um significado válido. Após a análise semântica, um código intermediário é gerado, que será então otimizado e transformado em código final. Quando as operações acima ocorrem de forma seqüencial, uma após a outra, o compilador é dito ser em forma de pipelineprocurar referência. Uma outra possível abordagem é a compilação dirigida pela sintaxe, que tem algumas vantagens em termos de tempo de resposta para situações de erro, do que o compilador em pipeline, mas esta análise foge ao escopo deste trabalhocolocar referência. No compilador dirigido pela sintaxe, as mesmas etapas ocorrem, porém coordenadas pelo analisador sintático, que solicita tokens ao analisador léxico, e envia construções ao analisador semântico conforme a sintaxe da linguagem de entrada for sendo analisada.

11 4.2 Compiladores para diferentes linguagens e Reutilização de código 11 As diferentes linguagens possuem estruturas léxicas, sintáticas e semânticas diferentes. Portanto, em princípio cada uma precisaria de um compilador próprio. Considerando-se essa óptica, é difícil poder imaginar uma reutilização de código quando se faz compiladores. Apesar de termos analisadores diferentes para diferentes linguagens, esses são diferentes normalmente apenas nas tabelas de análise. Por exemplo, um analisador léxico universal poderia ser construído se considerar que ele implementa apenas a lógica de navegação e reconhecimento no autômato regular, e que este lhe fosse fornecido como argumento de entrada. A mesma analogia pode ser aplicada aos analisadores sintáticos, porém nestes há uma peculiaridade extra que deve ser considerada. Conforme as construções sintáticas que uma linguagem apresenta, esta pode exigir um parser LALR, SALR, dentre outros. A análise semântica dificilmente pode ser reutilizada. Apesar da possibilidade de reuso nesse aspecto, não vemos nenhum compilador completo que possua capacidade de apresentar essa flexibilidade. Isso se deve, principalmente, ao fato de que o maior esforço despendido está na geração das tabelas de parse para as diferentes análises, e na construção do analisador semântico Geração semi-automatizada de compiladores Existem disponíveis ferramentas de geração semi-automatizada de compiladores. Nelas, o usuário informa as gramáticas (léxica e sintática) da linguagem e as ferramentas se encarregam da geração do analisador léxico e sintático, deixando o usuário a cargo da geração do analisador semântico e melhoria das mensagens de erros. Alguns exemplos dessas ferramentas: Yacc e Bison, JavaCC, GALS. 4.3 Análise de caso: GCC O GCC foi um projeto ousado e que teve sucesso, sendo hoje parte do projeto GNU! (GNU). O GCC se propõe a ser uma coleção de compiladores, e de fato, é isso. O pacote completo do GCC traz compiladores para linguagens mais atuais, como C (gcc), C++ (g++) e mais recentemente, Java (gcj), e compiladores para linguagens mais antigas,

12 12 como Fortran (?). Além da gama de opções de linguagem, o GCC fornece geradores de código para diversas plataformas, incluindo x86, Motorola 68k, SPARC, MIPS 64, entre outros. A grande magia do GCC, é o fato de que um compilador feito para uma nova linguagem já estará apto a gerar código para qualquer plataforma suportada pelo GCC, e de forma semelhante, o suporte à uma nova plataforma se fará disponível a todas as linguagens suportadas. Isso faz do GCC o melhor exemplo de reuso de código em termos de compiladores. Procurar mais informações sobre o funcionamento do GCC e analisar se ele é útil

13 13 5 A ferramenta de suporte à Engenharia Reversa para o SEA 5.1 SEA e Ocean Colocar descrição do SEA e Ocean 5.2 Técnicas para recuperação do projeto Para recuperar o projeto de um software para dentro do ambiente SEA, uma vez que o código tenha sido, ou esteja sendo analisado, existem algumas técnicas possíveis, todas com vantagens e desvantagens. As seções abaixo se dedicam à análise das três abordagens aparentemente mais interessantes XMI - O formato de transferência de dados da UML A própria definição da UML traz como apêndice um formato para intercâmbio dos diagramas, chamado XMI. Esse formato dita algumas regras de escrita de um metamodelo, que pode (e deve) ser compreendido por todas as ferramentas compatíveis com UML. A principal vantagem dessa proposta é a possibilidade de gerar modelos para qualquer ferramenta CASE compatível com UML. Porém tem um grande obstáculo, que são as próprias limitações oferecidas pela UML. Como descrito na seção 5.1, o SEA oferece algumas extensões à UML padrão, que não poderiam ser exploradas corretamente só com esse modelo de descrição.

14 14 O padrão do XMI está definido em (3) Uma extensão do XMI Uma outra possibilidade, ainda tendo em vista a portabilidade, seria propor uma extensão ao XMI, que tivesse apenas as limitações comuns ao SEA e à UML, mantendo compatibilidade completa com o XMI padrão. A principal vantagem dessa proposta é, ainda, a possibilidade da portabilidade, pois qualquer ferramenta capaz de ler XMI deveria ser capaz de ler o XMI estendido. Como desvantagens aparentes, percebe-se apenas as limitações da UML que são comuns às limitações do SEA, e a possibilidade de não se conseguir explorar ao máximo o potencial do ambiente para manter compatibilidade com o XMI Inserção direta de definições A terceira alternativa seria não utilizar um modelo intermediário de representação e inserir as definições diretamente no meta-modelo do SEA. Essa alternativa poderia tirar máximo proveito das potencialidades do SEA, mas tornaria a ferramenta de engenharia reversa altamente dependente do design do framework Ocean. Essa não é categoricamente uma desvantagem, mas seria muito interessante poder dar suporte a múltiplas ferramentas. Esse problema poderia ser contornado com a criação de um componente de geração de XMI a partir do SEA. 5.3 Requisitos da ferramenta A ferramenta para engenharia reversa deve cumprir os seguintes requisitos: Compatibilidade semântica entre o modelo e o código Construção incremental e interativa do modelo Facilidade de fornecer suporte à novas linguagens Verificar se não há mais requisitos a serem cumpridos

15 Projeto Colocar as especificações de projeto assim que possível 5.5 Pontos de extensão Apresentar os pontos de extensão da ferramenta, se fizer sentido; depende do projeto

16 16 6 Engenharia reversa de código Java 6.1 Descrição do projeto

17 17 7 Conclusão e trabalhos futuros 7.1 Conclusão 7.2 Trabalhos futuros

18 18 APÊNDICE A -- Documentação do código Inserir a documentação gerada do código aqui.

19 19 APÊNDICE B -- Código fonte Inserir código fonte aqui.

20 20 Referências 1 SILVA, R. P. Suporte ao desenvolvimento e uso de frameworks e componentes. Dissertação (Tese de Doutorado) Universidade Federal do Rio Grande do Sul, Instituto de Informática, Março , 8 2 OMG. UML 2.0 superstructure specification. Draft version in September 8, OMG. UML 2.0 diagram interchange specification. Draft version in September 8,

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

MODELAGEM DE PROCESSOS

MODELAGEM DE PROCESSOS MODELAGEM DE PROCESSOS a a a PRODUZIDO POR CARLOS PORTELA csp3@cin.ufpe.br AGENDA Definição Objetivos e Vantagens Linguagens de Modelagem BPMN SPEM Ferramentas Considerações Finais Referências 2 DEFINIÇÃO:

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Alexandro Deschamps (Ápice) alexandro@apicesoft.com Everaldo Artur Grahl (FURB/DSC) egrahl@furb.br Resumo. Uma das grandes

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004 Introdução ao RUP Rational Unified Process por Denize Terra Pimenta Outubro/2004 1 Contexto Não é suficiente apenas a presença de desenvolvedores altamente treinados: Precisamos de uma linguagem para a

Leia mais

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Introdução aos Processos de Software: modelos e ciclo de vida de software Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão reservados

Leia mais

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES 1 BRANCO; Guido Aparecido Junior, 2 TAMAE, Rodrigo Yoshio 1-Discente do Curso Sistemas de Informação FAEG/Garça 2-Docente do Curso Sistemas

Leia mais

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código Igor Steinmacher 1, Éderson Fernando Amorim 1, Flávio Luiz Schiavoni 1, Elisa Hatsue Moriya Huzita 1 1 Departamento de Informática

Leia mais

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

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software Introdução à Engenharia de Gidevaldo Novais (gidevaldo.vic@ftc.br) Introdução à Engenharia de Objetivo Depois desta aula você terá uma noção geral do que é a engenharia de software e dos seus objetivos

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

Guia de Modelagem de Casos de Uso

Guia de Modelagem de Casos de Uso Guia de Modelagem de Casos de Uso Sistema de e-commerce de Ações Versão 1.1 1 Histórico da Revisão. Data Versão Descrição Autor 13 de Setembro de 2008 1.0 Criação do documento Antonio Marques 28 de Setembro

Leia mais

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010 Construção de Compiladores Prof. Raimundo Santos Moura (http://www.ufpi.br/rsm) Construção de Compiladores Livro-Texto: AHO, Alfred V.; ULLMAN, Jeffrey D.; SETHI, R. Compiladores: princípios, técnicas

Leia mais

Proposta de Trabalho de Conclusão de Curso

Proposta de Trabalho de Conclusão de Curso UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE5638 INTRODUÇÃO A PROJETOS PROFº RENATO CISLAGHI Proposta de Trabalho de Conclusão de Curso SUPORTE

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

A Linguagem de Modelagem Unificada (UML)

A Linguagem de Modelagem Unificada (UML) Aécio Costa A Linguagem de Modelagem Unificada (UML) Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Surge a UML (Unified Modeling Language)

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento 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

Leia mais

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

ERACE-TOOL - UMA FERRAMENTA BASEADA EM CENÁRIOS PARA À ENGENHARIA DE REQUISITOS

ERACE-TOOL - UMA FERRAMENTA BASEADA EM CENÁRIOS PARA À ENGENHARIA DE REQUISITOS ERACE-TOOL - UMA FERRAMENTA BASEADA EM CENÁRIOS PARA À ENGENHARIA DE REQUISITOS João Caldas Júnior FIL- Fundação Paulista de Educação e Tecnologia Paulo C. Masiero ICMC - Universidade de São Paulo masiero@icmsc.sc.usp.br

Leia mais

PRD Tecnologia de Gestão Ltda. Julho/2008

PRD Tecnologia de Gestão Ltda. Julho/2008 O Processo de Desenvolvimento Telescope Julho/2008 Página 1 Sumário Introdução...3 O desenvolvimento de software tradicional...3 O problema da produtividade...3 O problema da portabilidade...6 O problema

Leia mais

COMPILADORES E INTERPRETADORES

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

Leia mais

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

Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo. UML - Motivação - O que é um modelo? Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo. O que é um modelo? O que é um modelo? O

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

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

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML UML (Unified Modeling Language Linguagem de Modelagem Unificada) é uma linguagem-padrão para a elaboração da estrutura de

Leia mais

RAFF Um Compilador para Facilitar o Aprendizado de Algoritmos

RAFF Um Compilador para Facilitar o Aprendizado de Algoritmos RAFF Um Compilador para Facilitar o Aprendizado de Algoritmos Almir Joaquim de Sousa 1, Fábio Silveira Vidal 1, Fredson Vieira Costa 1, Ranildo Costa Santana 1 Curso de Bacharelado em Ciência da Computação

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

Resumo de TCC Desenvolvimento de um sistema ERP com foco nas tecnologias de software livre / código aberto

Resumo de TCC Desenvolvimento de um sistema ERP com foco nas tecnologias de software livre / código aberto UFSC - Universidade Federal de Santa Catarina CTC Centro Tecnológico INE Departamento de Informática e Estatística INE5631 Projetos I Prof. Renato Cislaghi Resumo de TCC Desenvolvimento de um sistema ERP

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

Table 1. Dados do trabalho

Table 1. Dados do trabalho Título: Desenvolvimento de geradores de aplicação configuráveis por linguagens de padrões Aluno: Edison Kicho Shimabukuro Junior Orientador: Prof. Dr. Paulo Cesar Masiero Co-Orientadora: Prof a. Dr. Rosana

Leia mais

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

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC CURSO: Bacharelado em Ciência da Computação DISCIPLINA: ANPS Análise e Projeto de Sistemas AULA NÚMERO: 3 DATA: PROFESSOR: Murakami Sumário 1 APRESENTAÇÃO...1 2 DESENVOLVIMENTO...1 2.1 Revisão...1 2.1.1

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os

Leia mais

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS RESUMO Este artigo apresenta a especificação de um sistema gerenciador de workflow, o ExPSEE, de acordo com a abordagem de desenvolvimento baseado

Leia mais

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Carlos Henrique Pereira WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Florianópolis - SC 2007 / 2 Resumo O objetivo deste trabalho é especificar

Leia mais

Professor: Curso: Disciplina:

Professor: Curso: Disciplina: Professor: Curso: Disciplina: Aula 1 Turma: Esp. Marcos Morais de Sousa Sistemas de informação Engenharia de Software I Dinâmica da disciplina, plano de curso e avaliação 03º semestre Prof. Esp. Marcos

Leia mais

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

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software. Processos de Software Objetivos Apresentar os modelos de processo de software Conjunto coerente de atividades para especificar, projetar, implementar e testar s de software Descrever os diferentes modelos

Leia mais

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

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr Metodologia de Desenvolvimento de Software Prof. M.Sc. Sílvio Bacalá Jr Objetivos Discutir aspectos de Engenharia de Software Aplicar um método de desenvolvimento para especificação e projeto de software

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC UNIVERSIDADE FEDERAL DE SANTA CATARINA DANIEL CARLOS CASAROTTO JOSE OTÁVIO CARLOMAGNO FILHO MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC Florianópolis, 2004 DANIEL CARLOS

Leia mais

Processo Unificado (RUP)

Processo Unificado (RUP) Fases do Desenvolvimento Processo Unificado (RUP) Ulf Bergmann ulf@ime.eb.br Domínio do Problema Objetos Objetos do do Mundo Mundo real real Modelo Semântico Domínio da Solução Aplicação Interface Serviços

Leia mais

Análise e Projeto Orientados por Objetos

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

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Conceitos e Metodologias para Desenvolvimento de Software Cascata, Prototipação, Espiral e RUP Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br

Leia mais

Franklin Ramalho Universidade Federal de Campina Grande - UFCG

Franklin Ramalho Universidade Federal de Campina Grande - UFCG Agenda Meta-modelos Franklin Ramalho Universidade Federal de Campina Grande - UFCG - Arquitetura MDA - Meta-modelo - Conceitos - Características - - XMI - Pacotes - Meta-modelo 2.0 - Alinhamento entre

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

INE5317 Linguagens Formais e Compiladores. AULA 2: Es trutura geral dos Compiladores

INE5317 Linguagens Formais e Compiladores. AULA 2: Es trutura geral dos Compiladores INE5317 Linguagens Formais e Compiladores AULA 2: Es trutura geral dos Compiladores bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

A história de UML e seus diagramas

A história de UML e seus diagramas A história de UML e seus diagramas Thânia Clair de Souza Vargas Departamento de Informática e Estatística Universidade Federal de Santa Catarina (UFSC) Florianópolis, SC Brazil thania@inf.ufsc.br Abstract.

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

SOFTWARE PROCESSES. Ian Sommerville, 8º edição Capítulo 4 Aula de Luiz Eduardo Guarino de Vasconcelos

SOFTWARE PROCESSES. Ian Sommerville, 8º edição Capítulo 4 Aula de Luiz Eduardo Guarino de Vasconcelos SOFTWARE PROCESSES Ian Sommerville, 8º edição Capítulo 4 Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos Introduzir modelos de processo de software Descrever uma variedade de modelos de processo

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição

Leia mais

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE CURSO: CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMPILADORES PROFESSOR: JOHNI DOUGLAS MARANGON Back-End Compilação 1. Compilação etapa Back-end

Leia mais

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web Modelagem de Sistemas Web Aula 4 Ferramentas e metodologias para projeto de sistemas web Ferramentas e metodologias para projeto de sistemas web Ferramentas CASE Fontes: Sarajane e Marques Peres Introdução

Leia mais

PROJETO DE FÁBRICA DE SOFTWARE

PROJETO DE FÁBRICA DE SOFTWARE FACULDADE SETE DE SETEMBRO FASETE Departamento de Sistemas de Informação PROJETO DE FÁBRICA DE SOFTWARE Denise Xavier Fortes Paulo Afonso BA Agosto/2015 Sumário 1. INTRODUÇÃO... 3 2. PERFIS FUNCIONAIS...

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 15 2 Trabalhos Relacionados Este capítulo apresenta um estudo sobre algumas soluções, abordagens e técnicas existentes na literatura para a geração de um diagrama comportamental para linguagens estruturadas.

Leia mais

Análise e Projeto Orientados a Objeto

Análise e Projeto Orientados a Objeto Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto, e Processo Baseado em Craig Larman 1 Aplicando UML, Padrões e APOO Objetivo Desenvolver habilidades práticas na utilização

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Conceitos de Software Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Objetivo da aula Depois desta aula você terá uma visão sobre o conceitos

Leia mais

Introdução ao OpenUP (Open Unified Process)

Introdução ao OpenUP (Open Unified Process) Introdução ao OpenUP (Open Unified Process) Diferentes projetos têm diferentes necessidades de processos. Fatores típicos ditam as necessidades de um processo mais formal ou ágil, como o tamanho da equipe

Leia mais

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Luiz Cláudio Hogrefe Orientador: Prof. Roberto Heinzle, Doutor Roteiro Introdução Fundamentação teórica

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

1/26/2009. Baseadas em http://www.voelter.de/services/mdsdtutorial.html. Experiência pessoal/profissional/acadêmica

1/26/2009. Baseadas em http://www.voelter.de/services/mdsdtutorial.html. Experiência pessoal/profissional/acadêmica Baseadas em http://www.voelter.de/services/mdsdtutorial.html Experiência pessoal/profissional/acadêmica 1 Metamodelo UML Meu Metamodelo Meu processo de negócios Meu processo de negócios Stereotypes Perfis

Leia mais

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br MC302A Modelagem de Sistemas com UML Prof. Fernando Vanini vanini@ic.unicamp.br Modelamento de Sistemas e Orientação a Objetos O paradigma de Orientação a Objetos oferece um conjunto de características

Leia mais

Sistemas de Informação e Programação II Odorico Machado Mendizabal

Sistemas de Informação e Programação II Odorico Machado Mendizabal Sistemas de Informação e Programação II Odorico Machado Mendizabal Universidade Federal do Rio Grande FURG C3 Engenharia de Computação 16 e 23 de março de 2011 Processo de Desenvolvimento de Software Objetivos

Leia mais

Unidade II MODELAGEM DE PROCESSOS

Unidade II MODELAGEM DE PROCESSOS Unidade II 3 MODELAGEM DE SISTEMAS 1 20 A fase de desenvolvimento de um novo sistema de informação (Quadro 2) é um momento complexo que exige um significativo esforço no sentido de agregar recursos que

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Processo de software I Ricardo de Sousa Britto rbritto@ufpi.edu.br + O que é Engenharia de Software n Definição dada pela IEEE [IEE93]: n Aplicação de uma abordagem sistemática,

Leia mais

Universidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I

Universidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I Metodologia de Desenvolvimento de Sistemas II/CPD025 Conceitos orientação a objetos. Evolução das técnicas de modelagem orientadas a objetos. Estrutura da linguagem UML. Conceito de processo interativo

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes 6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes A ferramenta MAS-ML Tool surgiu com o objetivo de viabilizar o processo de desenvolvimento proposto na Seção anterior, implementando

Leia mais

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP RUP Rational Unified Process ( Unificado de Desenvolvimento da Rational) Conjunto de passos que tem como objetivo atingir uma meta de software na ES, processo que visa a produzir o software - de modo eficiente

Leia mais

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - MÓDULO 3 - MODELAGEM DE SISTEMAS ORIENTADA A OBJETOS COM UML 1. INTRODUÇÃO A partir de 1980, diversos métodos de desenvolvimento de sistemas surgiram para apoiar o paradigma orientado a objetos com uma

Leia mais

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Processo de garantia da qualidade baseado no modelo MPS.BR Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Roteiro introdução objetivos do trabalho fundamentação teórica desenvolvimento da ferramenta

Leia mais

FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO -

FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO - FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO - PLATAFORMA ARES: UMA PLATAFORMA VIRTUAL

Leia mais

Projeto Final de Engenharia de Computação

Projeto Final de Engenharia de Computação Orientações para Desenvolvimento do Projeto Final de Engenharia de Computação compilado por: Noemi Rodriguez texto baseado em: Orientações para o Planejamento e Realização do Projeto Final, de Simone Barbosa

Leia mais

O Processo Unificado

O Processo Unificado UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA O Processo Unificado 879SCC Projeto e Desenvolvimento de Sistemas

Leia mais

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES Aluno: André Luis Becker Orientador: Prof. Everaldo Artur Grahl. Mestre Orientador, FURB Roteiro da Apresentação Introdução;

Leia mais

ERP: Pacote Pronto versus Solução in house

ERP: Pacote Pronto versus Solução in house ERP: Pacote Pronto versus Solução in house Introdução Com a disseminação da utilidade e dos ganhos em se informatizar e integrar os diversos departamentos de uma empresa com o uso de um ERP, algumas empresas

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

3 OOHDM e SHDM 3.1. OOHDM

3 OOHDM e SHDM 3.1. OOHDM 32 3 OOHDM e SHDM Com a disseminação em massa, desde a década de 80, de ambientes hipertexto e hipermídia, principalmente a Web, foi identificada a necessidade de elaborar métodos que estruturassem de

Leia mais

Palavras-Chaves: Arquitetura, Modelagem Orientada a Objetos, UML.

Palavras-Chaves: Arquitetura, Modelagem Orientada a Objetos, UML. MODELAGEM ORIENTADA A OBJETOS APLICADA À ANÁLISE E AO PROJETO DE SISTEMA DE VENDAS ALTEMIR FERNANDES DE ARAÚJO Discente da AEMS Faculdades Integradas de Três Lagoas ANDRE LUIZ DA CUNHA DIAS Discente da

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Tércio Oliveira de Almeida. TCC - Nexus - RAS

Tércio Oliveira de Almeida. TCC - Nexus - RAS Tércio Oliveira de Almeida TCC - Nexus - RAS Porto Alegre 12 de novembro de 2009 Tércio Oliveira de Almeida TCC - Nexus - RAS Trabalho de Graduação Orientador: Prof. Dr. Marcelo Soares Pimenta UNIVERSIDADE

Leia mais

SABiO: Systematic Approach for Building Ontologies

SABiO: Systematic Approach for Building Ontologies SABiO: Systematic Approach for Building Ontologies Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Preocupações Principais do

Leia mais

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. 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,

Leia mais

SAPENS - Sistema Automático de Páginas de Ensino

SAPENS - Sistema Automático de Páginas de Ensino SAPENS - Sistema Automático de Páginas de Ensino Eduardo Kokubo kokubo@inf.univali.br Fabiane Barreto Vavassori, MSc fabiane@inf.univali.br Universidade do Vale do Itajaí - UNIVALI Centro de Ensino Superior

Leia mais

Processo de Desenvolvimento Unificado

Processo de Desenvolvimento Unificado Processo de Desenvolvimento Unificado Processo de Desenvolvimento de Software? Conjunto de atividades bem definidas; com responsáveis; com artefatos de entrada e saída; com dependências entre as mesmas

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: Ambientes de desenvolvimento Engenharia da Computação Professor: Críston Pereira de Souza Web: www.univasf.edu.br/~criston.souza/algoritmos.html email:

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 1 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Programas e Programação

Leia mais

Breve Histórico & Conceitos Básicos

Breve Histórico & Conceitos Básicos Breve Histórico & Conceitos Básicos compiladores interpretadores montadores filtros pré-processadores carregadores linkers compilador cruzado (cross-compiler) auto-compilável (bootstraping) auto-residente

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

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

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br Engenharia de Software 01 - Introdução Márcio Daniel Puntel marciopuntel@ulbra.edu.br Engenharia de Software Nações desenvolvidas dependem de software; Cada vez mais sistemas são controlados por software;

Leia mais

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues Modelo De Desenvolvimento De Software É uma representação abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software serão conduzidas e interrelacionadas

Leia mais

Documentação de um Produto de Software

Documentação de um Produto de Software Documentação de um Produto de Software Versão 3.0 Autora: Profª Ana Paula Gonçalves Serra Revisor: Prof. Fernando Giorno 2005 ÍNDICE DETALHADO PREFÁCIO... 4 1. INTRODUÇÃO AO DOCUMENTO... 6 1.1. TEMA...

Leia mais

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem? UML e Diagramas de Casos de Uso e Classes Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem de modelagem

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 1 Linguagens de Programação Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.

Leia mais

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

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais