====== Ficha de Unidade Curricular ====== **Mestrado Integrado em Engenharia Eletrotécnica e de Computadores\\ Laboratório de Programação\\ Ocorrência de: 2016/2017** \\ --- \\ //**[[https://sigarra.up.pt/feup/pt/ucurr_geral.ficha_uc_view?pv_ocorrencia_id=385624|Página oficial]]**// ===== Informação geral ===== **Unidade curricular**: Laboratório de Programação\\ **Código**: EEC0030\\ **Curso**: MIEEC, 4º\\ **Ano letivo**: 2016/2017\\ **Semestre**: 1S\\ **Créditos**: 6 ECTS\\ **Horas/Semanas**: 1x2T, 3x2P\\ **Professores**: [[http://sigarra.up.pt/feup/pt/FUNC_GERAL.FORMVIEW?p_codigo=230756|João Correia Lopes]] (Regente) ===== Língua de ensino ===== //Suitable for English-speaking students// ===== Objetivos ===== No contexto da especificação, desenvolvimento e manutenção de aplicações de software com interface gráfica em arquiteturas cliente/servidor, esta unidade curricular tem por objetivos: * Promover a aquisição de conceitos, métodos e técnicas de Engenharia de Software e dotar os estudantes da capacidade de os aplicar na conceção e desenvolvimento de sistemas de software. * Dotar os estudantes de conhecimentos práticos na utilização de ferramentas de desenvolvimento de software adequadas à metodologia a usar e que permitam o acompanhamento do desenvolvimento do produto durante todo o seu ciclo de vida, incluindo a depuração, teste e documentação de código na linguagem de programação Java. ===== Competências e resultados de aprendizagem ===== Ao completar esta unidade curricular o estudante deve ser capaz de: - Identificar e documentar os requisitos de um Sistema de Software utilizando //user stories// - Descrever os casos de utilização utilizando UML - Realizar um protótipo de interface com o utilizador - Identificar e documentar os requisitos suplementares - Obter o modelo conceptual do domínio utilizando UML - Obter modelos de processos de negócio utilizando UML - Descrever a arquitetura utilizando UML - Validar a arquitetura através de um protótipo vertical - Modelar a estrutura de classes utilizando UML - Modelar o comportamento de objetos utilizando UML - Elaborar a Ajuda ao Utilizador - Elaborar o Manual de Instalação - Codificar classes em Java usando as API standard - Documentar o código Java utilizando Javadoc - Testar o código utilizando Junit - Tratar da persistência dos dados - Utilizar uma ferramenta de elaboração colaborativa de documentação - Utilizar um IDE (//Integrated Development Environment//) na manutenção do software - Utilizar um sistema de controlo de versões ===== Programa ===== * Introdução à Engenharia de requisitos. Documentação de requisitos. * Linguagem de modelação UML. * Projeto de software orientado por objetos. Modelação de arquitetura, estrutura de classes e comportamento. * Projeto de interfaces pessoa-computador. * Codificação usando a linguagem de programação Java. * Verificação, validação e teste de software. * Manutenção de software. Controlo de versões. * Persistência de dados em SQL. * Gestão e planeamento de projetos. ===== Modo de trabalho ===== Presencial ===== Pré-requisitos ===== Conhecimentos em Programação. ===== Bibliografia principal ===== * Scott Ambler, //The Object Primer//, Cambridge University Press, 3rd Edition, 2004, ISBN: 978-0-521-54018-6 ([[http://catalogo.up.pt/F/-?func=find-b&local_base=FEUP&find_code=SYS&request=000563042|Biblioteca]]) * F. Mário Martins, //Projetos de POO em JAVA//, FCA - Editora Informática, julho de 2014, ISBN: 978-972-722-792-1 ([[http://catalogo.up.pt/F/-?func=find-b&local_base=FEUP&find_code=SYS&request=000577789|Biblioteca]]) ===== Bibliografia complementar ===== * Russ Miles e Kim Hamilton, //Learning UML 2.0//, O'Reilly, 2006, ISBN: 978-0-596-00982-3 ([[http://catalogo.up.pt/F/-?func=find-b&local_base=FEUP&find_code=SYS&request=000536000|Biblioteca]]) * Bruce Eckel, //Thinking in Java//, Prentice Hall, 4th Edition, 2006, ISBN: 0131-87248-6 ([[http://catalogo.up.pt/F/-?func=find-b&local_base=FEUP&find_code=SYS&request=000536000|Biblioteca]]) * Mauro Nunes e Henrique O'Neill, //Fundamental de UML//, 3ª edição, FCA - Editora Informática, 2004, ISBN: 978-972-722-481-4 ([[http://catalogo.up.pt/F/-?func=find-b&local_base=FEUP&find_code=SYS&request=000479236|Biblioteca]]) * Alberto Manuel Rodrigues da Silva e Carlos Alberto Escaleira Videira, //UML, metodologias e ferramentas CASE//, 2ª Edição, Volume 1, Maio 2005, Centro Atlântico Editora, ISBN: 989-615-009-5 ([[http://catalogo.up.pt/F/-?func=find-b&local_base=FEUP&find_code=SYS&request=000478189|Biblioteca]]) * Henrique O'Neill, Mauro Nunes e Pedro Ramos, //Exercícios de UML//, FCA - Editora Informática, 2010, ISBN: 978-972-722-616-0 ([[http://catalogo.up.pt/F/-?func=find-b&local_base=FEUP&find_code=SYS&request=000556144|Biblioteca]]) ===== Métodos de ensino ===== A unidade curricular tem **aulas tutoriais** (2 horas por semana) e **aulas laboratoriais** (2 horas por semana) em sala de computadores. Os tempos letivos das aulas tutoriais são usados para descrever brevemente as várias fases de desenvolvimento de software e os artefactos associados e para apresentar e exemplificar a utilização das metodologias e ferramentas a usar no trabalho prático seguindo o respetivo guião. São ainda indicadas referências de leitura. Nas aulas laboratoriais os estudantes trabalham, em grupos de 4 ou 5, num projeto de software. ===== Software ===== * [[http://www.sparxsystems.com.au/|Enterprise Architect]] (Windows) * [[http://netbeans.org/|IDE NetBeans]] (Linux, MAC, Windows) * [[https://www.dokuwiki.org/|Dokuwiki]] (Web) * [[http://subversion.apache.org/|SVN]], [[https://git-scm.com/|GIT]] ===== Palavras-chave ===== Ciências Físicas > Ciência de computadores > Programação\\ Ciências Físicas > Ciência de computadores > Programação > Engenharia de software ===== Modo de avaliação ===== Avaliação distribuída sem exame final ===== Componentes de avaliação e ocupação registadas ===== ^ Descrição ^ Tipo ^ Tempo (horas) ^ Data de Conclusão ^ | Participação presencial (estimativa) | Aulas | 56 | | | P1: Protótipo de interfaces com o utilizador | Trabalho laboratorial ou de campo | 8 | 10/10/2016 | | P2: Especificação de requisitos | Trabalho laboratorial ou de campo | 6 | 24/10/2016 | | P3: Projeto de alto nível e Protótipo | Trabalho laboratorial ou de campo | 20 | 14/11/2016 | | P4: Projeto detalhado | Trabalho laboratorial ou de campo | 8 | 05/12/2016 | | P5: Produto | Trabalho laboratorial ou de campo | 60 | 02/01/2017 | | P6: Apresentação do Produto | Participação presencial | 1 | 02/01/2017 | | P7: Desempenho individual | Trabalho | | | | J1-J4: Avaliação Java | Exercício | | | | M1: Miniteste Java | Teste/Exame | 1,5 | 24/10/2016 | | M2: Miniteste UML | Teste/Exame | 1,5 | 14/11/2016 | | | Total: | 162 | | ===== Obtenção de frequência ===== O trabalho prático (PROJ) será avaliado através da documentação apresentada, da aplicação desenvolvida e do desempenho individual nas aulas (P1 a P7). Os conceitos teóricos (IND) são avaliados através da resposta individual, sem consulta, a dois mini-testes (M1 e M2), e através da elaboração de exercícios práticos em Java (J1 a J4). A aprovação na unidade curricular está condicionada à obtenção de 50% em cada um dos trabalhos da avaliação prática (P1 a P7 de PROJ) e de 40% na componente de resposta individual (IND). Esta unidade curricular, dada a sua natureza laboratorial, não é passível de avaliação em momento único, pelo que não poderá ser substituída por exame de recurso. ===== Cálculo da classificação final ===== A nota final será calculada usando a fórmula: NOTA = 80% PROJ + 20% IND sendo: PROJ = ((2*P1 + 3*P2 + 4*P3 + 2*P4 + 8*P5 + P6) / 20) + P7\\ IND = (J1 + J2 + J3 + J4 + 8*M1 + 8*M2) / 20 A classificação da componente prática (PROJ) pode variar de elemento para elemento do mesmo grupo em mais ou menos 2 valores (P7), com base na opinião dos docentes e na autoavaliação e heteroavaliação a realizar internamente em cada grupo. ===== Provas e trabalhos especiais ===== Para além da demonstração do trabalho prático, pode ter lugar uma prova oral para alguns estudantes. ===== Avaliação especial (TE, DA, ...) ===== A avaliação prática e teórica, realizada nas aulas laboratoriais durante o semestre de funcionamento da unidade curricular, é exigida a todos os estudantes, independentemente do regime de inscrição e da necessidade de obter avaliação de frequência. Os trabalhadores estudantes e equivalentes dispensados das aulas devem, com periodicidade a combinar com os docentes, apresentar a evolução dos seus trabalhos, assim como devem fazer a apresentação destes, simultaneamente com os estudantes ordinários, e realizar as provas teóricas e práticas de avaliação individual previstas. ===== Melhoria de classificação final/distribuída ===== A nota final pode ser melhorada apenas através da frequência de numa nova edição da unidade curricular. \\ --- //JCL//