Buscar

CMP1069_PlanoEnsino_20211

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS 
PRÓ-REITORIA DE GRADUAÇÃO 
ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO 
 
 
PLANO DE ENSINO 
 
Disciplina: TECNOLOGIA DE CONSTRUÇÃO DE SOFTWARE 
Curso: Ciência da Computação 
Professora/Responsável: Lucília Gomes Ribeiro 
Código Nº de Créditos Pré-requisitos: Ano/Semestre 
CMP1069 06 CMP1063 2021/1 
 
EMENTA 
Métodos, técnicas e ferramentas para construção de código de software; Aspectos qualitativos na construção 
de software; Prática de construção de software; Integração dos produtos de software. 
OBJETIVOS GERAIS 
1. Fazer com o que o aluno entenda o processo de desenvolvimento de um Sistema de Software, a partir dos 
conceitos e da documentação previamente apresentados nos estudos sobre Arquitetura de Software. 
2. Conceber condições ao aluno de iniciar a execução dos trabalhos de implementação. 
OBJETIVOS ESPECÍFICOS 
1. Entender os conceitos da concepção de um software, desde a fase de sua formulação inicial até sua total 
conclusão. 
2. Decidir sobre estratégias e padrões que otimizem os trabalhos de implementação de um software, 
mitigando as necessidades de correções. 
3. Oferecer métricas para a avaliação e validação do software concebido e sua qualidade. 
CONTEÚDO PROGRAMÁTICO 
1. Introdução à Construção de Software 
- Visão Geral 
- Requisitos 
- Decisões de Construção 
2. Qualidade de Software 
- Projeto de Software na Construção 
- Classes e Rotinas de alta qualidade 
- Programação defensiva 
3. Padrão de Codificação 
- Regras para Variáveis 
- Regras para Instruções 
- Controlando Estruturas e Complexidades 
4. Melhoria de Código 
- O panorama da Qualidade de Software 
- Construção Colaborativa 
- Testes 
- Depuração 
- Refatoração 
- Otimização 
5. Análise da Construção 
- Métricas 
- Gerência de Construção 
- Integração 
- Ferramentas de Programação 
6. Artesanato de Software 
Em paralelo com o conteúdo programático, 
orientar pequenos projetos nos seguintes 
paradigmas: 
 
- PROJETO 1:HTML, CSS e Wordpress: 
construir o portfólio digital 
- PROJETO 2: Orientação a Objetos: 
problema da vida real 
- PROJETO 3: Chatbot com Prolog e 
AIML 
- PROJETO 4: Ciência de Dados com 
Python 
 
 
Enquanto fazem, os alunos podem revisar os 
seguintes conteúdos: 
- Engenharia de Software, 
- Algoritmos, lógica 
- Complexidade algorítmica, 
- Estrutura de Dados, 
- Arquitetura de Computadores, 
- Sistemas Operacionais, 
- Redes de Computadores, 
- Interface Homem-Máquina, 
- Inteligência Artificial 
 
- Documentando o Código 
automaticamente 
- Caráter Pessoal 
7. Estudos de Caso 
METODOLOGIA 
• Aulas expositivas; 
• Atividades envolvendo problemas que exigem a aplicação dos conceitos e técnicas abordadas; 
• PBL – Aprendizado baseado em Problemas; 
• Leitura de artigos com resumos e discussões; 
• Trabalhos em grupo ou individuais; 
• Implementação das técnicas. 
AVALIAÇÃO 
• A Nota Final da disciplina - NF, será resultante da média ponderada de dois conjuntos de notas, N1 e 
N2, conforme a expressão NF = (0,4 * N1) + (0,6 * N2). 
• As notas N1 e N2 serão compostas por no mínimo duas notas, resultantes de várias atividades práticas, 
sendo que na composição da N2 uma das notas será resultante da Avaliação Interdisciplinar (AI) 
segundo as regras definidas pela Pró-Reitoria de Graduação. 
• A N1 será composta por várias atividades que serão feitas em sala de aula e dois pequenos projetos 
(P1 e P2). As tarefas dos projetos serão desenvolvidas nas aulas de quinta e ajudarão na execução do 
Trabalho Final. 
N1 = ( (A1 + A2 + ... + An) / n ) + P1 + P2 ) / 3 
• A N2 contará com outros dois pequenos projetos (6 pontos) e a AED que será descrita posteriormente 
N2 = (P3 + P4 + AED) / 3 
• 90% da frequência será computada através de chamada feita durante as aulas; e 10% será obtida 
através da Atividade Externa à Disciplina (AED). 
• Será considerado aprovado na disciplina o aluno que obtiver a frequência mínima de 75% e Nota Final 
igual ou superior a seis. 
ATIVIDADE EXTERNA DA DISCIPLINA 
• AED: Elaboração de um sistema funcional em qualquer paradigma/linguagem, bem como pesquisa 
sobre ferramentas atuais no mercado para teste e desenvolvimento de software. 
• Objetivo da atividade: proporcionar ao aluno um experimento de uma situação real de 
desenvolvimento de software. 
• Descrição da atividade: desenvolver uma aplicação funcional, aplicando o conteúdo apresentado no 
decorrer do semestre na disciplina, de preferência com uma temática e aplicação atual (como o covid-
19).; realizar uma pesquisa de mercado, apresentando, descrevendo e exemplificando ferramentas de 
teste e desenvolvimento que estão em uso ou que sejam emergentes. Deverá estar descrito qual 
ferramenta automatizada de teste poderia ser utilizada na aplicação. 
• Cronograma da atividade: o aluno deve entregar sua atividade completa até o dia 01/06, onde as 
equipes irão apresentar o seminário a partir dessa data. 
• Forma de registro: será elaborado um artefato de software no formato PDF e o código compartilhado 
no gitHub 
• Forma (critérios) de avaliação: a execução e entrega da atividade pontuará com 12 (doze) presenças 
no mês de maio. A execução, entrega e apresentação da atividade valerá uma das notas na N2 
BIBLIOGRAFIA BÁSICA 
• 1. BARNES, David. Programação orientada a objetos com Java: uma introdução prática usando o BlueJ. 
4. ed. São Paulo: Pearson, 2009. 
• 2. DEITEL, Paul J; DEITEL, Harvey M. Java como programar. 8. ed. São Paulo: Prentice Hall, 2010. 
• 3. MCCONNEL, Steve. Code Complete: um guia prático para a construção de software. Tradução da 
segunda edição. USA: Microsoft Press, 2004. 
BIBLIOGRAFIA COMPLEMENTAR 
• 1. BRAUDE, Eric. Projeto de software. Porto Alegre: Bookman, 2005. 
• 2. IEEE Computer Society. SWEBOK: software engineering body of knowledge, 2004. 
• 3. LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a 
objetos e ao desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman, 2007. 
• 4. PILONE, Dan; MILES, Russ. Head first software development. Dallas: OReilly, 2008. 
• 5. SOMMERVILLE, Ian. Engenharia de software. 8. ed. São Paulo: Pearson, 2007. 
CRONOGRAMA 
 
01 – 18/02 – QUI Apresentação da Disciplina e do Plano de Ensino - Teams 
02 – 22/02 – SEG Revisão - Teams 
03 – 24/02 – QUA Ética na Engenharia de Software - Teams 
04 – 25/02 – QUI Introdução à Construção de Software - Visão Geral, Requisitos - Teams 
05 – 01/03 – SEG Projeto1 – HTML, CSS e Wordpress 
06 – 03/03 – QUA Introdução à Construção de Software - Decisões de Construção - Teams 
07 – 04/03 – QUI Projeto1 - Teams 
08 – 08/03 – SEG Projeto1 
09 – 10/03 – QUA Projeto1 - Teams 
10 – 11/03 – QUI Projeto1 – Entrega e Apresentação - Teams 
11 – 15/03 – SEG Projeto2 – Orientação a Objetos 
12 – 17/03 – QUA Projeto2 - Teams 
13 – 18/03 – QUI Padrão de Codificação – Regras para Variáveis e Instruções - Teams 
14 – 22/03 – SEG Projeto2 
15 – 24/03 – QUA Projeto2 - Teams 
16 – 25/03 – QUI Projeto2 – Entrega e Apresentação -- Teams 
17 – 29/03 – SEG Melhoria de Código – Qualidade de Software 
18 – 31/03 – QUA Melhoria de Código – Qualidade de Software - Teams 
XX – 01/04 – QUI Feriado 
19 – 05/03 – SEG Projeto3 – Chatbot 
20 – 07/03 – QUA Qualidade de Software – Programação Defensiva – Teams 
21 – 08/03 – QUI Melhoria de Código – Testes, Depuração, Refatoração, Otimização - Teams 
22 – 12/04 – SEG Feedback – Entrega N1 
23 – 14/04 – QUA Projeto3 - Teams 
24 – 15/04 – QUI Projeto3 - Teams 
25 – 19/04 – SEG Projeto3 
XX – 21/04 – QUA FERIADO 
26 – 22/04 – QUI Projeto3 – Entrega e Apresentação 
27 – 26/04 – SEG Análise da Construção 
28 – 28/04 – QUA Análise da Construção – Ferramentas de Programação - Teams 
29 – 29/04 – QUI Análise da Construção – Ferramentas de Programação Teams 
30 – 03/05 – SEG Análise da Construção – Métricas, Integração 
31 – 05/05 – QUA Análise da Construção – Métricas, Integração – Teams 
32 – 06/05 – QUI Avaliação Institucional (AI)33 – 10/05 – SEG Artesanato de Software – Caráter Pessoal 
34 – 12/05 – QUA Artesanato de Software – Caráter Pessoal - Teams 
35 – 13/05 – QUI Artesanato de Software – Caráter Pessoal - Teams 
36 – 17/05 – SEG Projeto4 – Ciência de Dados com Python 
37 – 19/05 – QUA Projeto4 - Teams 
38 – 20/05 – QUI Projeto4 - Teams 
XX – 24/05 – SEG Feriado 
39 – 26/05 – QUA Projeto4 
40 – 27/05 – QUI Projeto4 – Entrega e Apresentação - Teams 
41 – 31/05 – SEG EAD 
42 – 02/06 – QUA EAD - Teams 
XX – 03/06 – QUI Feriado 
43 – 07/06 – SEG Entrega da EAD 
44 – 09/06 – QUA Apresentação EAD - Teams 
45 – 10/06 – QUI Apresentação EAD - Teams 
46 – 14/06 – SEG Feedback - Entrega N2 
47 – 16/06 – QUA Recuperação - Teams 
48 – 17/06 – QUI Recuperação – Teams 
46 – 22/06 – SEG 
47 – 24/06 – QUA 
48 – 25/06 - QUI 
49 – 60 EAD 
MATERIAL DE APOIO 
• Slides para apresentação de notas de aulas práticas e teóricas; 
• Material para TBL; 
• Plataforma Teams para atividades remotas; 
• (Material disponibilizado no site: www.lucilia.com.br)

Continue navegando