Baixe o app para aproveitar ainda mais
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)
Compartilhar