Curso de Especialização em Engenharia de Software Modalidade Extensão Universitária

Apresentação - Inscrições - Disciplinas - Docentes - Livros - Alunos e Ex-Alunos - Calendário de Aulas - Vídeos e Depoimentos


Disciplinas

Cada disciplina ficará sob a responsabilidade de um ou mais professores do corpo docente do Curso, mas ela poderá ser ministrado por qualquer outro professor, mediante aprovação interna.

Ao professor da disciplina compete ministrar aulas, sanar dúvidas e aplicar avaliações de desempenho.


INF-0318 - Análise Orientada a Objetos e Projeto Arquitetural

INF-0319 - Projeto e Implementação Orientados a Objetos

INF-0320 - Interfaces Homem Computador

INF-0321 - Verificação e Validação de Software

INF-0323 - Linguagens e Ambientes para Programação de Software

INF-0325 - Modelagem e Projeto de Banco de Dados

INF-0326 - Qualidade de Software

INF-0329 - Prática em Engenharia de Software

INF-0330 - Requisitos de Software e Modelos de Especificação

INF-0331 - Componentização e Reuso de Software: Conceitos e Práticas

INF-0332 - Arquitetura Orientada a Serviços - SOA & WebServices: Conceitos e Práticas

INF-0333 - Gerenciamento de Projetos de Software: Aspectos Econômicos e Planejamento

INF-0334 - Tópicos em Engenharia de Software - I

 
 

INF-0318 - Análise Orientada a Objetos e Projeto Arquitetural

Carga Horária: 31 horas, 7 aulas presenciais

 

Professora: Cecília Mary Fischer Rubira

Pré-Requisito Desejável: Conhecimento de conceitos básicos de programação orientada a objetos

Ementa:

Conceitos fundamentais da análise orientada a objetos para a estruturação e modelagem de sistemas através da construção de diagramas de classes. Diagramas dinâmicos da UML, como por exemplo, diagramas de sequência e de colaboração. Modelagem estática e modelagem dinâmica. Identificação de objetos e sua classificação em classes, especificação de atributos e operações, identificação dos relacionamentos de generalização/especialização, agregação e associação entre as classes. Noções de tipos abstratos de dados, encapsulamento, polimorfismo, herança simples e múltipla, classes abstratas, interfaces, pacotes, metaclasses, delegação, e padrões de projeto. Projeto arquitetural. Conceitos básicos de arquitetura de software, definição de componentes, conectores e configurações arquiteturais, atributos de qualidade associadas à arquitetura de software e como ela deve ser usada de desenvolvimento de sistemas centrados na arquitetura.

Objetivo:

Ao final da disciplina o aluno deve ter aprendido os conceitos fundamentais de orientação a objetos e deve ser capaz de, partindo da especificação de um problema, criar um diagrama de classes que represente uma solução para o problema. Também o aluno deve ser capaz de definir a arquitetura de software do sistema alvo, de acordo com os requisitos de qualidade priorizados durante o projeto arquitetural.

Bibliografia:

Rumbaugh, J. et al., Object-Oriented Modeling and Design, Prentice Hall, 1991.

Booch, G., Object-Oriented Design with Applications, Benjamin-Cummings, 1991.

Meyer, B., Object-Oriented software construction, Prentice-Hall, 1988.

Stroustrup, B., The C + + Programming Language, Second Edition, Addison-Wesley, 1992.

Graham, N., Learning C + +, McGraw-Hill, 1991.

Daconta, M.C., Java for C/C + + Programmers, John Wiley&Sons, 1996.

Arnold, K. & Gosling, J., Programando em Java, Makron Books, 1997. 

topo da página

 
 

INF-0319 - Projeto e Implementação Orientados a Objetos

Carga Horária: 31 horas, 6 aulas presenciais e 1 aula a distância

Professor: Luiz Eduardo Buzato

Pré-Requisito Desejável: INF-0318 e INF-0323

Ementa:

Introdução: projeto orientado a objetos. Projeto: de sistema. Organização de um sistema em subsistemas, estruturação. Identificação de concorrência inerente ao problema. Identificação de problemas de redes, banco de dados e interface com o usuário. Projeto de objetos. Definição completa das classes. Projeto dos algoritmos para implementar as operações. Particionamento em classes e relacionamentos em módulos. Iteração, verificação e refinamento do modelo. Ambiente de implementação. Escolha do ambiente alvo para a implementação. Linguagens de programação orientadas a objetos. Ambientes de programação orientados a objetos. Estudo de casos.

Objetivo:

Ao final da disciplina o aluno deve ser capaz de traduzir uma especificação de um problema para um sistema orientado a objetos e também deve ter adquirido uma visão completa do ciclo de desenvolvimento de software orientado a objetos: análise, projeto e implementação. Esta visão inclui um estudo comparativo das principais linguagens orientadas a objetos existentes atualmente.

Bibliografia:

Rumbaugh, J. et al., Object-Oriented Modeling and Design, Prentice Hall, 1991.

Booch, G., Object-Oriented Design with Applications, Benjamin-Cummings, 1991.

Meyer, B., Object-oriented software construction, Prentice-Hall, 1988.

Stroustrup, B., The C + + Programming Language, Second Edition, Addison- Wesley, 1992. Graham, N., Learning C + +, McGraw-Hill, 1991.

Daconta, M.C. Java for C/C + + Programmers, John Wily & Sons, 1996.

Arnold, K. & Gosling, J. Programando em Java, Makron Books, 1997. 

topo da página

 
 

INF-0320 - Interfaces Homem Computador

Carga Horária: 27 horas, 6 aulas presenciais

Professor: Roberto Pereira

Pré-Requisito Desejável: INF-0330

Ementa:

Meta a ser alcançada na construção de uma interface de usuário: design de um sistema computacional que faça sentido aos seus usuários; Conceitos Básicos em IHC: Interface, Interação, Affordance; Qualidade em IHC: Usabilidade, Acessibilidade, Comunicabilidade; Fatores humanos; Princípios do Design Centrado no Usuário; Princípios do Design Universal; A importância de um processo para a construção de interfaces de usuário; IHC e Engenharia de Requisitos; Artefatos e métodos para apoiar o design de sistemas interativos. Prototipação: em papel, por meio de ferramentas; Storyboard: uso de ferramentas; análise de tarefas; Avaliação em IHC: teoria e prática; Redesign de interfaces.

Objetivo:

Desenvolver uma noção dos conceitos básicos e das principais práticas em Interação Humano-Computador (IHC) e Design da Interação. Entender a qualidade da interface de usuário como fator de sucesso de um sistema interativo. Conscientizar-se da importância da clarificação de problema  (análise de usuário, tarefas, contexto organizacional) para projetos centrados no usuário. Conhecer um processo de projeto de interface de usuário e suas técnicas subjacentes. Ser capaz de construir e avaliar um protótipo tanto em papel quanto por meio de uma ferramenta computacional. Relacionar as atividades de design em IHC com atividades de um modelo iterativo e incremental de desenvolvimento de software. Desenvolver o raciocínio crítico para o projeto de sistemas de qualidade que façam sentido aos seus usuários e demais stakeholders.

Bibliografia:

Baranauskas, M.C.C., Martins, M.C., Valente, J.A. (orgs). Codesign de Redes Digitais: Tecnologia e Educação a Serviço da Inclusão Social. Penso Editora, 2013.

Barbosa, Simone, and Bruno Silva. Interação Humano-Computador. Elsevier Brasil, 2010.

Liu, K. Semiotics in Information Systems Engineering. Cambridge University Press, 2000.

Preece, Jenny, Yvonne Rogers, and Helen Sharp. Design de interação. Bookman, 2005.

Rocha, Heloísa Vieira da, and Maria Cecília Calani Baranauskas. Design e avaliação de interfaces humano-computador. Unicamp, 2003.

Soegaard, Mads and Dam, Rikke Friis (eds.). "The Encyclopedia of Human-Computer Interaction, 2nd Ed.". Aarhus, Denmark: The Interaction Design Foundation. 2014. Available online at http://www.interaction-design.org/encyclopedia/interaction_design.html

topo da página

 
 

INF-0321 - Verificação e Validação de Software

Carga Horária: 31 horas, 7 aulas presenciais

Professores: Eliane Martins e Bruno Teixeira de Abreu

Pré-Requisito Desejável: INF-0318INF-0319 e INF-0323

Ementa:

Introdução: definição, importância da verificação e validação ao longo do ciclo de vida; classificação das técnicas. Revisões técnicas: passeio (walkthrough); inspeção do produto. Testes: fundamentos; os testes e o ciclo de vida. Técnicas de teste: caixa branca e caixa preta. Testes de unidade, de integração e de sistemas. Testes OO. Documentação de testes. Automação de testes. Metodologias de teste.

Objetivo:

Ao final da disciplina espera-se que o aluno tenha adquirido consciência sobre a importância da Verificação e Validação para a qualidade do software que é produzido. Em especial, espera-se criar a conscientização de que testes são essenciais, mas não são a única forma de se garantir a qualidade de um sistema. Com relação aos testes, espera-se que o aluno tenha compreendido a importância dos mesmos, seu impacto nos custos de desenvolvimento do software e também que se trata de uma atividade a ser levada em conta desde cedo no desenvolvimento do software e que, como o desenvolvimento, o processo de testes também deve ser dividido em fases e deve ser documentado.

Bibliografia:

Beizer, B., Sottware Testing Techniques, International Thomson Computer Press. 2th Edition, 1990.

Beizer, Boris. Black Box Testing. John Wiley, 1995.

Myers, G. M. The Art of Software Testing. Wiley, 1979.

Siegel, Shel. Object Orientd Software Testing: a Hierarchical Approach. John Wiley, 1996.

Andrioli, S.J. Software Validation, Verification, Testing and Documentation, Petrocelli Books. 1986.

Hetzel, W. Teste de Software, Campus, 1987. 

topo da página

 
 

INF-0323 - Linguagens e Ambientes para Programação de Software

Carga Horária: 27 horas, 6 aulas presenciais

Professor: Guido Costa Souza de Araújo

Pré-Requisito Desejável: Conhecimento básico em programação

Ementa:

Esta disciplina introduz conceitos básicos de programação orientada a objetos, como encapsulamento, tipos abstratos de dados, herança, classes abstratas, agregação, acoplamento dinâmico, polimorfismo e noções de interface, pacotes e tratamento de exceções. Para exemplificar os conceitos, a disciplina toma como base uma linguagem de programação moderna (Java), e um ambiente de projeto amplamente utilizado (Eclipse).

Objetivo:

Espera-se que ao final do curso o aluno tenha compreendido os conceitos principais de uma linguagem OO moderna, e saiba utilizá-los para programar aplicações de médio porte em um ambiente de programação realista.

Bibliografia:

G. Araújo, Programando em Java, apostila, IC-Unicamp, 2007.

C.M.F.Rubira & P.H.S.Brito, Introdução à Programação Orientada a Objetos usando Java, apostila, IC-Unicamp, 2007.

Ken Arnold & James Gosling, The Java Programming Language, 2nd, Addison-Wesley, 1997.

Bruce Eckel, Thinking in Java, 3a Edição, 2002. 

topo da página

 
 

INF-0325 - Modelagem e Projeto de Banco de Dados

Carga Horária: 24 horas, 5,5 aulas presenciais

Professores: Célio Cardoso Guimarães e Ricardo da Silva Torres

Pré-Requisito Desejável: Conhecimento básico em ciência da computação

Ementa:

Conceitos básicos; Modelagem de dados (MER); Projeto lógico de dados (Modelo Relacional); Conceitos de normalização de dados relacionais; A Linguagem SQL - Teoria e Prática; Projeto e implementação de aplicações em Sistemas de Informação usando bancos de dados e Banco de dados objeto-relacional e persistência de objetos.

Objetivo:

Ao final da disciplina o aluno deverá estar familiarizado com a Tecnologia de Banco de Dados de forma que possam desenvolver modelos de sistemas baseados nesta tecnologia.

Bibliografia:

Fundamentos de banco de dados. Guimarães, Célio. UNICAMP. 2003.

Elmasri, R. and Navathe, S.B. -- Sistemas de Banco de Dados, Addison-Wesley, 4a.edição, 2005.

Korth, H.F. e Silberschatz, A. -- Sistemas de Bancos de Dados, Makron Books, 5.ªedição, 2006.

Ramakrishnan, R. -- Database management systems, McGraw-Hill, 1998.

Ullman, J.D. and Widom, J. -- A first course in database systems, Prentice-Hall, 1997.

Garcia-Molina, H. and Ullman, J.D. and Widom, J. – Database System Implementation, Prentice-Hall, 2000.

Date, C.J. – Introdução a sistemas de Banco de Dados, Campus, 8.ª edição, 2003. 

topo da página

 
 

INF-0326 - Qualidade de Software

Carga Horária: 24 horas, 5,5 aulas presenciais

Professor: Mario Lúcio Côrtes

Pré-Requisito Desejável: INF-0321

Ementa:

Conceitos de qualidade de produto e de processo. Qualidade do produto de software: ISO/IEC 9126 e ISO 2500. Sistemas da Qualidade: ISO 90003 e ISO 9001. Modelos de qualidade de software. CMMI (Capability Maturity Model Integration). PSP (Personal Software Process). SPICE - ISO 15504. Evoluções recentes.

Objetivo:

Ao final da disciplina o aluno deverá ter refinado suas instituições a respeito de quais aspectos são importantes para a qualidade de um software, e estar familiarizado com vários modelos de qualidade do processo de desenvolvimento do software.

Bibliografia:

Modelos de Qualidade. Cortes, M. L., Chiossi, T. C., Ed da Unicamp, 2001.

Software Engineering Metrics and Models. Conte. S. D et al. 1986.

Software Quality assurance and Evaluation. Dobbins. J. H ed ASQC Quality Press. 1990.

Software Quality Assurance and Manegement. Evans. M. W and Marcianic. J. J., John Wiley and Sons. 1987.

Software Quality: theory & management. Gillies, A. C., Chap, am and Hall, 1992.

Software Quality Management and ISO 9001. Jenner, M. G., Wiley-QED, 1995. 

topo da página

 
 

INF-0329 - Prática em Engenharia de Software

Carga Horária: 31 horas, 6 aulas presenciais e 1 aula a distância

Professor: Luiz Eduardo Buzato

Pré-Requisito Desejável: INF-0319INF-0321 e INF-0323

Ementa:

Definição de um problema. Elaboração de uma proposta de desenvolvimento. Análise e projeto do sistema. Implementação e teste.

Objetivo:

Ao final da disciplina o aluno terá praticado noções teóricas envolvidas na construção de módulos de software.

Bibliografia:

Engenharia de Software. Pressman, R.S., Makron Books, 1995.

Software Validation, Verification, Testing and Documentation. Andrioli, S. J., Petrocelli Books, 1986.

Modelagem e projetos Baseados em Objetos. Rumbaugh, J et al. Campus, 1994.

Sistemas de Bancos de Dados. Korth, H.F.et al., McGraw Hill, 1989.

Software Testing Techniques, Beizer, B. International Thomson Computer Press. 2th ed, 1990.

Developing Software for the User Interface, Bass, L. & Coutaz, J., Addison- Wesley, 1991. 

topo da página

 
 

INF-0330 - Requisitos de Software e Modelos de Especificação

Carga Horária: 31 horas, 7 aulas presenciais

 

Professores: Ariadne Maria Brito Rizzoni Carvalho e Sindo Vasquez Dias

Pré-Requisito Desejável: Conhecimento básico em ciência da computação

Ementa:

Introdução a engenharia de software. Paradigmas de desenvolvimento. Elicitação, especificação, documentação e validação de requisitos. Modelos para especificação de sistema de software.

Objetivo:

Ao final da disciplina o aluno deve compreender as diferentes atividades envolvidas no desenvolvimento de um software, e como o paradigma de desenvolvimento escolhido afeta estas atividades. Finalmente, o aluno deve ser capaz de levantar, avaliar e especificar os requisitos do usuário utilizando modelos.

Bibliografia:

Introdução à Engenharia de Software, Carvalho, A e Chiossi, T,. Editora da UNICAMP, 2001.

Software Engineering: A practitioner’s Approach, Pressman, R. 4ª ed., McGraw-Hill,2004.

Requirements Engineering, Hull, E, Jackson, K.,Dick, J., SpringerVerlag, 2004.

Requirements Engineering: A Good Practice Guide, Sommerville, I. and Sawyer, P. John Wiley & Sons, 1997.

Issues in Requirements Elicitation. Chistel, M.G. and Kang, K.C. Software Engineering Institute, Technical Report CMU/SEI-92-Tr-12, Pittsburgh, PA.Carnegie Mellon University, Sep, 1992.

Applying Use Cases- A practical guide, Schneider, G., Winters, J., Addison-Wesley, 1998. 

topo da página

 
 

INF-0331 - Componentização e Reuso de Software: Conceitos e Práticas

Carga Horária: 27 horas, 6 aulas presenciais

Professor: André Santanchè

Pré-Requisito Desejável: Conhecimento em análise e projeto orientados a objetos

Ementa:

Introdução a componentização, reuso e CBSE. Componentes de software: principais características, propriedades e categorias. Especificações, modelagem e arquiteturas de componentes utilizando a UML. Componentes e a Arquitetura orientada a serviços (SOA). Implementação, modelos (padrões) e frameworks de componentes. Padrão SCA. Manutenção, evolução e gerência de configuração (CM) de componentes e soluções componentizadas. Gestão estratégica de componentes.

Objetivo:

Permitir aos alunos adquirirem uma visão ampla dos conceitos e técnicas da engenharia de software baseada em componentes, desde a identificação e arquitetura de componentes, passando-se pela sua especificação, modelagem, implementação, implantação e evolução. Os laboratórios da disciplina exercitam a modelagem de componentes, utilizando uma abordagem extremamente prática.

Bibliografia:

UML Components: A Simple Process for Specifying Component-Based Software. John Cheesman, John Daniels - Addison-Wesley Professional; 1ST edition (October 13, 2000)

Large Scale Component Based Development (Paperback). Alan W. Brown - Prentice Hall Ptr; 1ST edition (December 15, 2000)

Core J2EE Patterns: Best Practices and Design Strategies, Second Edition. Deepak Alur, Dan Malks, John Crupi - Prentice Hall Ptr; 2 edition (May 10, 2003)

Enterprise Unified Process: The Strategic Reuse Discipline. Scott Ambler, John Nalbone e Michel J. Vizdos - Prentice Hall (Fevereiro, 2005)

Measuring Software Reuse: Principles, Practices and Economic Models. Jeffrey S. Poulin - Addison-Wesley Professional; Primeira edição (Novembro, 1996)

Software Reuse: Architecture, Process and Organization for Business Success. I. Jacobson, M. Griss, P. Jonsson - Addison-Wesley Professional; Primeira edição (Maio, 1997)

UML Components: A Simple Process for Specifying Component-Based Software. John Cheesman, John Daniels - Addison-Wesley Professional; 1ST edition (October 13, 2000)

Large Scale Component Based Development (Paperback). Alan W. Brown - Prentice Hall Ptr; 1ST edition (December 15, 2000)

Core J2EE Patterns: Best Practices and Design Strategies, Second Edition. Deepak Alur, Dan Malks, John Crupi - Prentice Hall Ptr; 2 edition (May 10, 2003)

Enterprise Unified Process: The Strategic Reuse Discipline. Scott Ambler, John Nalbone e Michel J. Vizdos - Prentice Hall (Fevereiro, 2005)

Measuring Software Reuse: Principles, Practices and Economic Models. Jeffrey S. Poulin - Addison-Wesley Professional; Primeira edição (Novembro, 1996)

Software Reuse: Architecture, Process and Organization for Business Success. I. Jacobson, M. Griss, P. Jonsson - Addison-Wesley Professional; Primeira edição (Maio, 1997). 

topo da página

 
 

INF-0332 - Arquitetura Orientada a Serviços - SOA & WebServices: Conceitos e Práticas

Carga Horária: 22 horas, 5 aulas presenciais

 

Professor: Kleber Rogério Bacili

Pré-Requisito Desejável: Conhecimento em análise e projeto orientados a objetos

Ementa:

Introdução SOA: motivadores, definições, benefícios e desafios. Principais características: provider, consumer & registry. Estudo de casos nacionais e internacionais. Identificação e modelagem de serviços. Principais tecnologias de web services: XML, WSDL, SOAP e UDDI. Interoperabilidade em web services, especificações emergentes e ferramentas. Governança SOA e métricas de reuso. Infraestrutura SOA (ESB, Registries and Repositories etc.); Roadmap de adoção nas empresas e tendências de mercado.

Objetivo:

O objetivo dessa disciplina é apresentar aos alunos a forma de construção de aplicações através da utilização de arquitetura orientada a serviços (SOA) e das principais tecnologias WebServices. Trata-se de uma abordagem que vem atraindo muita atenção do mercado pois permite a aplicação dos conceitos de componentização e reuso reduzindo custo e prazo de novos projetos de desenvolvimento. Os alunos serão capacitados nos principais conceitos, benefícios, técnicas, boas práticas, aplicações em estudo de casos e exercícios. O objetivo é que os alunos estejam capacitados a planejar a implantação do conceito SOA dentro de suas empresas e a projetar aplicações orientadas a serviços lançando mão de um amplo leque de tecnologias e produtos.

Bibliografia:

Understanding SOA with Web Services (Independent Technology Guides). Eric Newcomer, Greg Lomow - Addison-Wesley Professional (December 14, 2004)

Service-Oriented Architecture (SOA): Concepts, Technology, and Design. Thomas Erl - Prentice Hall Ptr (August 2, 2005)

Service-Oriented Architecture (SOA): A Planning and Implementation Guide for Business and Technology. Eric A. Marks and Michael Bell - Wiley (April 28, 2006)

Enterprise SOA : Service-Oriented Architecture Best Practices. Dirk Krafzig, Karl Banke, Dirk Slama - Prentice Hall Ptr (November 9, 2004) 

topo da página

 
 

INF-0333 - Gerenciamento de Projetos de Software: Aspectos Econômicos e Planejamento

Carga Horária: 31 horas, 7 presenciais

Professora: Thelma Cecília dos Santos Chiossi

Pré-Requisito Desejável: INF-0330

Ementa:

Conceitos de Gerenciamento de Projetos de Software. Métricas de processo e de produto. Modelos de previsão de custo/duração. Planejamento: estudo de viabilidade, organização de projetos, análise de risco, acompanhamento e controle de projetos.

Objetivo:

Ao final da disciplina os alunos deverão ser capazes de: elaborar medição do produto de software utilizando Pontos de Função e Pontos de Caso de Uso, elaborar estimativas de custo do produto baseando-se nas medidas realizadas e produzir um plano de desenvolvimento do produto de software baseado nas estimativas.

Bibliografia:

Software Management, Reifer, D. J., Computer Society, 6ª ed, 2002.

Software Metrics - A Rigorous & Practical Approach. Fenton, E. N. and Pfleeger, L. S., 2ª ed., PWS Publishing Company, 1998.

Análise de Pontos de Função: Medição, Estimativas e Gerenciamento de Projetos de Software, Simões, C. V., Albert, R.,G., ed Érica, 2003.

Planejamento de Sistemas de Informação e Informática, Rezende, D. A., ed Atlas S.A, 2003.

The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition. Brooks, F., Addison-Wesley, 1995.

Managing the Software Process. Humphrey. W. S., Addison-Wesley. 1990.

Software Engineering Economics. Boehm, B. W., Prentice Hall. 1981. 

topo da página

 
 

INF-0334 - Tópicos em Engenharia de Software - I

Carga Horária: 23 horas, 6 aulas a distância

Professor:

Ementa:

Temas atuais e emergentes em Engenharia de Software, envolvendo tanto tecnologias quanto metodologias. Temas atuais transversais à Engenharia de Software. Ambientes e ferramentas para Engenharia de Software.

Objetivo:

Atualizar os alunos em um conjunto de temas recentes em Engenharia de Software.

Fornecer aos alunos uma visão crítica de como novas tecnologias e novas metodologias se relacionam e impactam a Engenharia de Software.

Permitir aos alunos terem contato com especialistas de mercado e da academia nos assuntos selecionados para a disciplina.

 

Bibliografia:

Artigos dos congressos de Engenharia de Software, tais como, ICSE e XP.

Referências fornecidas durante o curso pelos convidados.

 

topo da página