Extensão em
Sistemas de
Informação

   
Objetivo
Público Alvo
Programa
Disciplinas
Corpo Docente
Datas Importantes
Turmas
     
 

Disciplinas

Linguagem de Programação

Disciplina que apresenta os principais conceitos ligados à programação de computadores de acordo com o padrão de orientação a objetos. O aluno termina o curso com o domínio das técnicas de programação e da implementação das estruturas definidas no padrão OO.
O curso tem como objetivo capacitar o aluno à programação de computadores utilizando uma linguagem que implemente os conceitos de orientação a objetos.

Ementa:
Programação de computadores com linguagem OO — Conceito de algoritmo e pseudo-código para solução de algoritmos. Definição e uso de vetores e matrizes. Algoritmos que manipulam listas (com representação por vetores e por encadeamento), pilhas, filas e listas multiencadeadas; Conceitos de Orientação a Objetos — Modelo de computação orientado a objetos. Computação através de troca de mensagens. Modelo de objetos. Modelo de mensagens. Classes como abstrações de objetos e como abstrações no mundo real. Relações entre classes. Polimorfismo e caracterização dos tipos de polimorfismo; Outros conceitos em linguagem OO — Implementação dos conceitos OO em uma linguagem de programação. Tipos primitivos e estruturas de controle. Bibliotecas específicas da linguagem.

Pré-requisitos:
Nenhum.

Material:
Livro Texto: Deitel & Deitel. Java: Como programar. Ed. Bookman
Apostila: Cópia das transparências de aula

Carga Horária:
Teórica: 20 h (vinte horas)
Laboratório: 20 h (vinte horas)
Total: 40 h (quarenta horas)

Professor Responsável:
João Magalhães (Mestre, PUC-Rio, doutorando PUC-Rio)

Modelagem de Dados e SQL

Disciplina que apresenta os principais conceitos ligados à modelagem de dados, definindo os modelos conceitual, lógico e físico. Além disso, o curso exercita como modelo lógico o modelo relacional e utiliza a linguagem de definição e manipulação de dados SQL.
O curso tem como objetivo capacitar o aluno a compreender as necessidades de estruturação das informações do mundo real, a modelar os dados e a aplicar o modelo em um banco de dados relacional.

Ementa:
Modelagem Conceitual de Dados — Compreensão do modelo conceitual de entidades e relacionamentos. Observação do mundo real e passagem ao modelo conceitual. Estudos de casos com uso de ferramenta Case; Projeto de Bancos de Dados — Compreensão do modelo de dados relacional. Partindo do modelo conceitual, passagem para os modelos, lógico e físico. Compreensão das dependências funcionais e uso das técnicas de normalização. Habilidade para gerar os modelos conceitual, lógico e físico de bases de dados. Estudos de casos com uso de ferramenta Case; Linguagem de Definição e de Manipulação de Dados — Introdução aos sistemas de gerência de bancos de dados. Criação de Bases de Dados. Domínio da linguagem de consulta SQL. Restrições de integridade e visões. Organização física de bancos de dados: técnicas de armazenamento e indexação. Estudos de casos com uso de ferramenta Case.

Pré-requisitos:
Nenhum.

Material:
Livro Texto: Heuser, C.A. Projeto de Banco de Dados. 5ª. Edição. Ed. Sagra-Luzzatto, 2001.
Elmasri & Navathe. Sistemas de Bancos de Dados: Fundamentos e Aplicações. 3a. edição. Ed. TLC, 2002.
Apostila: Cópia das transparências de aula.

Carga Horária:
Teórica: 20 h (vinte horas)
Laboratório: 20 h (vinte horas)
Total: 40 h (quarenta horas)

Professor Responsável:
Luiz Fernando Seibel (Doutor, PUC-Rio)

Modelagem de Sistemas

Disciplina que apresenta os principais conceitos ligados à análise de requisitos de sistemas e à modelagem de sistemas utilizando os paradigmas de projeto estruturado e orientado a objetos. Apresenta ainda critérios de seleção de ferramentas de apoio à especificação e projeto de sistemas e conceitos de inspeção de software de forma a avaliar se a ferramenta sob inspeção está aderente à sua especificação. O curso tem como objetivo capacitar o aluno a levantar os requisitos de um sistema, a construir um modelo da aplicação utilizando uma ferramenta CASE e a planejar os testes de validação do sistema com base na sua especificação.

Ementa:
Processos de desenvolvimento de Software — Definir o Escopo da área de Engenharia de Software. Processos para o desenvolvimento de Software. Fundamentos básicos e diferenças entre os seguintes processos de desenvolvimento de software: Cascata, Espiral e Ágil; Requisitos de Software — Conceituação; Requisitos funcionais, não funcionais e inversos; Estratégias para definição de Requisitos. Entender a Relação com Sistemas de Informação e Engenharia de Software. Identificar as fontes de informação. Técnicas de elicitação de requisitos: entrevistas, leitura, questionários, reuniões, antropologia, análise de protocolos, engenharia reversa, reuso, base de conhecimento de requisitos não funcionais. Requisitos ligados à evolução de sistemas de software; Ferramentas para Desenvolvimento de Software — Seleção de Ferramentas para o apoio ao processo de desenvolvimento de software; Critérios de comparação; Seleção e compra de ferramentas de apoio ao processo de desenvolvimento de software. Entender os riscos associados e avaliar o custo benefício de comprar uma ferramenta existente (COTS - sistemas ou componentes disponíveis comercialmente) versus desenvolver uma ferramenta de apoio In House; Modelagem de Sistemas — Conceitos básicos: Filosofias de modelagem (sistemas, objetos, redes, agentes,metas); Modelagem Organizacional; Modelagem de Sistemas; Modelagem de Informação; Modelagem de Requisitos. Técnicas de modelagem de sistemas: Análise Estruturada e Orientação a Objetos; Conhecimento dos fundamentos das metodologias: DFD, JSD, Tabela de Decisão, Máquinas de Estado (StateChart), SADT, Eventos Externos, MER, Dicionário de Dados, Sentenças de requisitos, Léxico ampliado da linguagem, Cenários, Casos de Uso, Cenários e fundamentos dos Diagramas de Classes da UML. Habilidade de modelar o DFD; Diagrama de Casos de Uso; Descrições de Casos de Uso. Documento de Requisitos - Especificação de Requisitos. Compreensão dos padrões existentes. Conhecer métricas de qualidade para requisitos de software. Conhecer os processos fundamentais de priorização de requisitos; Inspeção de Software — Conceitos básicos e fundamentação teórica ligada a inspeção de artefatos de software. Habilidade de realizar inspeções nos modelos produzidos: Entender os conceitos básicos de inspeções de artefatos de Software; Montar equipes de analistas para o processo de Inspeção; Conduzir o processo de inspeção; Avaliar o produto final do processo de inspeção; Produzir um laudo de qualidade acerca dos artefatos inspecionados.

Pré-requisitos:
Nenhum.

Material:
Livro Texto: Yourdon, Edward. Análise Estruturada Moderna. Ed. Campus.
Larman, Craig. Utilizando UML e Padrões. Ed. Bookman.
Apostila: Cópia das transparências de aula.

Carga Horária:
Teórica: 32 h (trinta e duas horas)
Laboratório: 8 h (quatro horas)
Total: 40 h (quarenta horas)

Professor Responsável:
Karin Breitman (Doutor, PUC-Rio)

Sistemas de Gerência de Bancos de Dados

Sem dúvida a ferramenta mais importante no desenvolvimento de sistemas de informação é o SGBD. Assim, conhecer profundamente os módulos e conceitos que envolvem o SGBD é fundamental para que se possa fazer um bom uso da ferramenta. Outro aspecto muito importante trata da integração das informações que estão armazenadas em diferentes arquivos ou bancos de dados e utilizam diferentes representações, ferramentas e tecnologias. O ambiente corporativo usualmente requer o desenvolvimento de novas bases de dados integradas com arquivos ou bases de dados de sistemas legados ou mesmo que estas novas bases de dados representem as informações que são manipuladas por sistemas legados. A adoção de uma ferramenta gerencial que permita consolidar as informações corporativas e o seu detalhamento em diferentes níveis é condição necessária para o gerenciamento do negócio de empresas modernas. O curso tem como objetivo capacitar o aluno para o uso de SGBD´s em ambientes operacionais e gerenciais, bem como na integração de dados com sistemas legados.

Ementa:
Sistemas de Gerência de Bancos de Dados — Uso de SGBD´s. Transações, concorrência e recuperação de bancos de dados. Segurança e autorização. Procedimentos armazenados e gatilhos (triggers). Uso de linguagem de programação de bancos de dados; Integração de dados — Técnicas de integração: via datawarehouse e via multidatabases. Definições. Middlewares de integração. Ferramentas de Integração. Integração via Web Services; Bancos de dados de apoio à tomada de decisão — Datawarehouses: características, modelagem e uso.

Pré-requisitos:
Modelagem de Dados e SQL.

Material:
Livro Texto: Elmasri & Navathe. Sistemas de Bancos de Dados: Fundamentos e Aplicações. 3a. edição. Ed. TLC, 2002.
Harry Singh. Datawarehousing. Ed. Makron Books.
Apostila: Cópia das transparências de aula.

Carga Horária:
Teórica: 20 h (vinte horas)
Laboratório: 20 h (vinte horas)
Total: 40 h (quarenta horas)

Professor Responsável:
Sérgio Lifschitz (Doutor, PUC-Rio)

Projeto de Sistemas Orientados a Objetos

O Curso Projeto de Sistemas Orientados a Objetos tem como meta aprofundar e cristalizar vários conceitos introduzidos na cadeira de Modelagem de Sistemas, apresentando conceitos e questões modernas presentes no dia a dia do analista de sistemas. O curso tem um cunho prático, exercitando conceitos, técnicas de modelagem e uso de padrões de projeto.
O objetivo do curso é o de capacitar o aluno à projetar sistemas de acordo com o paradigma de orientação a objetos, que permite uma melhor definição para a atividade de programação do sistema a ser desenvolvido.

Ementa:
Projeto de Sistemas — A linguagem UML. Uso de diagramas da UML. Uso de padrões de projeto. Habilidade para identificação e aplicação de padrões. Geração de projetos de sistemas orientados a objetos. Estudos de casos com uso de ferramenta Case.

Pré-requisitos:
Modelagem de Sistemas

Material:
Livro Texto: Larman, Craig. Utilizando UML e Padrões. Ed. Bookman.
Gamma, Erich et all. Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos. Ed. Bookman.
Apostila: Apostila de Estudo Dirigido para o Laboratório
Cópia das transparências de aula.

Carga Horária:
Teórica: 20 h (vinte horas)
Laboratório: 20 h (vinte horas)
Total: 40 h (quarenta horas)

Professor Responsável:
Ivan Mathias Filho (Doutor, PUC-Rio)

Segurança da Informação

Com o grande desenvolvimento da tecnologia da informação e com a adoção de ambientes distribuídos, em especial a Web, novos requisitos de segurança foram necessários de forma a proteger as informações de uma corporação, que atualmente são reconhecidas, juntamente com os seus recursos humanos, como os seus principais ativos. O curso tem como objetivo capacitar o aluno a identificar problemas e a discutir soluções sobre segurança em Sistemas de Informação.

Ementa:
Introdução à Segurança da informação — Análise de riscos. Leis, normas e padrões de segurança da informação. Auditoria de sistemas. Autenticação e controle de acesso. Aspectos tecnológicos da segurança da informação. Plano de continuidade do negócio. Boas práticas em segurança da informação. Norma ABNT (disponibilidade, integridade e confidencialidade); Comunicação Segura — Controle de temporalidade, integridade, autenticidade e confidencialidade; padrões SSL e SET). Técnicas de Autenticação e Controle de Acesso (Autenticação Multifator; Biometria). Criptografia: Conceituação, exemplos e funções de criptografia. Infra-estrutura de Chaves Públicas (ICP-Brasil). Certificação Digital; Intrusion Detection — Malware (Malicious Software — vírus e worms) e Segurança de Redes (Ataque e Defesa), Java Security — bibliotecas e funções.

Pré-requisitos:
Linguagem de Programação OO.

Material:
Livro Texto: Peltier, T. R. Information Security Policies, Procedures, and Standards: Guidelines for Effective Information Security Management. 1ª Edição. EUA: Auerbach, 2001.
Scambray, McClure & Kurtz. Hackers Expostos: Segredos e Soluções para Segurança de Redes. Ed. Makron Books.
Apostila: Cópia das transparências de aula.

Carga Horária:
Teórica: 40 h (quarenta horas)
Laboratório: 0 h (zero)
Total: 40 h (quarenta horas)

Professor Responsável:
Anderson Oliveira da Silva (Mestre, PUC-Rio, doutorando PUC-Rio)

Desenvolvimento de Sistemas Web

Nessa disciplina serão apresentados conceitos a serem considerados quando da programação de sistemas que executam em ambientes distribuídos. Serão apresentados e exercitados padrões de desenvolvimento de software em camadas. Serão apresentadas e discutidas as ferramentas de desenvolvimento de software aplicadas a cada camada. Será ainda discutido o padrão de desenvolvimento de serviços na Web.
O curso tem como objetivo capacitar o aluno a projetar sistemas utilizando uma arquitetura adequada ao ambiente Web.

Ementa:
Ambiente Web — Infra-estrutura para Sistemas Web. Modelo de desenvolvimento de aplicações em 3 camadas: o modelo Model-View-Controller (MVC); o modelo J2EE; Desenvolvimento de sistemas no ambiente Web — Desenvolvimento com Servidor de Aplicação. Desenvolvimento de software no cliente, no servidor de aplicação e no servidor de bancos de dados; O padrão Struts; Estudos de Casos; Web Services — Desenvolvimento de Web Services e seus padrões (SOAP, WSDL e UDDI). Estudos de casos.

Pré-requisitos:
Projeto de Sistemas OO
Linguagem de Programação OO

Material:
Livros Texto: Ceri, Stefano et all. Designing Data-Intensive Web Applications. 1ª Edição. EUA. Morgan Kaufmann, 2002.
Apostila: Cópia das transparências de aula.

Carga Horária:
Teórica: 20 h (vinte horas)
Laboratório: 20 h (vinte horas)
Total: 40 h (quarenta horas)

Professor Responsável:
Rogério Costa (Mestre, PUC-Rio, doutorando Univ. Coimbra)

Qualidade de Software

Nesta disciplina são apresentados os conceitos e padrões relativos à qualidade de software. No curso serão ainda apresentadas as métricas aplicadas ao desenvolvimento de software relacionadas com o padrão de projeto de sistemas adotado: pontos por função no caso de projetos estruturados e pontos por caso de uso no caso de projetos orientados a objetos.
O curso tem como objetivo habilitar o aluno a aplicar os principais conceitos e padrões relacionados com a qualidade de software e as métricas adotadas para o desenvolvimento de software.

Ementa:
Introdução — Fundamentos da qualidade de software: inspeções e revisões.; Qualidade de Software — Fundamentos da qualidade de software: inspeções e revisões. Processos de desenvolvimento de software. Qualidade do processo. Qualidade do produto. Padrões de qualidade; Métricas de qualidade — Processos de gerência da qualidade de software: métricas da qualidade de software. Métricas para o desenvolvimento de software: pontos de função e pontos por caso de uso.

Pré-requisitos:
Modelagem de Sistemas Projeto de Sistemas OO

Material:
Livro Texto: Rocha, Ana Regina. Qualidade de Software: Teoria e Prática. Ed. Prentice Hall.
Apostila: Cópia das transparências de aula.

Carga Horária:
Teórica: 40 h (quarenta horas)
Laboratório: 0 h (zero)
Total: 40 h (quarenta horas)

Professor Responsável:
Silvio Strauss Vasques (Mestre, UFF)

Teste e Validação de Software

Nesta disciplina são apresentadas técnicas de teste e validação de software bem como o gerenciamento de testes de software. Testes são experimentos controlados que visam identificar condições em que o software falha. Para serem bem sucedidos os testes devem seguir um processo bem definido e utilizar dados cuidadosamente escolhidos. Para serem econômicos testes devem, na medida do possível, ser automatizados. Além do problema do teste de programas sendo desenvolvidos localmente é necessário também capacitar profissionais a testarem software desenvolvido por terceiros. Finalmente, é altamente recomendável que o software seja desenvolvido de modo a favorecer os testes (testabilidade), a identificação de falhas (detectabilidade), a diagnose (identificação das causas) e a eliminação destas (depurabilidade). O objetivo desta disciplina é habilitar os alunos a realizarem testes de maneira sistemática visando identificar de forma eficiente e eficaz as condições em que o software poderá vir a falhar. Um objetivo secundário é identificar características que programas devem ter para que sejam mais amenos ao teste e à tolerância a falhas.

Ementa:
Testes de software — Princípios e técnicas de testes de software: teste de unidade; teste de integração; teste de regressão. Desenvolvimento orientado a testes; automação dos testes; geração de casos de teste. Teste de interfaces humanas; teste de aplicações para a WEB; testes alfa, beta e de aceitação; ferramentas de testes; planos de testes; Estudos de Casos; Gerenciamento do processo de testes — Registro e acompanhamento de problemas.

Pré-requisitos:
Desenvolvimento de Sistemas em Ambiente Distribuído.

Material:
Livro Texto: Molinari, L. Testes de Software - Produzindo Sistemas Melhores e Mais Confiáveis. 2ª Edição. Ed. Érica, 2003.
Staa, A.v.; Programação Modular; Campus, 2000
Apostila: Cópia das transparências de aula.

Carga Horária:
Teórica: 40 h (quarenta horas)
Laboratório: 0 h (zero)
Total: 40 h (quarenta horas)

Professor Responsável:
Arndt von Staa (Doutor, Univ. Waterloo)

Projeto Final

Esta disciplina tem como objetivo dar o suporte necessário aos alunos para a elaboração de um projeto de fim de curso. Os alunos serão divididos em grupos e cada grupo escolherá, em conjunto com um professor orientador, o tema a ser desenvolvido. Para cada tema, os alunos deverão elaborar um documento do sistema, que deverá conter a especificação de requisitos, o projeto do sistema a implementação do sistema e o plano de testes do mesmo. Ao final da disciplina, o projeto deverá ser defendido pelo grupo para uma banca de 3 (três) professores do curso ou convidados.

Ementa:
Orientação aos alunos no sentido de elaboração de um projeto completo de um sistema de informação, contemplando os requisitos funcionais e tecnológicos, o projeto aderente a uma determinada tecnologia, a construção de um protótipo ou de parte do sistema e o plano de validação realizado. Serão avaliadas ainda a segurança do sistema e os critérios de qualidade adotados.

Pré-requisitos:
Qualidade de Software
Testes e Validação de Software
Desenvolvimento de Sistemas Web

Carga Horária:
Orientação: 60 h (sessenta horas)

Professor Responsável:
Luiz Fernando Bessa Seibel (Doutor, PUC-Rio)