====== Ficha de Unidade Curricular ====== **Mestrado Integrado em Engenharia Eletrotécnica e de Computadores\\ Laboratório de Programação\\ Ocorrência de: 2013/2014** \\ --- \\ //**[[https://sigarra.up.pt/feup/pt/ucurr_geral.ficha_uc_view?pv_ocorrencia_id=333623|Página oficial]]**// ===== Informação geral ===== **Unidade curricular**: Laboratório de Programação\\ **Código**: EEC0030\\ **Curso**: MIEEC, 4º\\ **Ano letivo**: 2013/2014\\ **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]] | [[https://sigarra.up.pt/feup/pt/func_geral.FormView?p_codigo=424415|Daniel Silva]] ===== 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 narrativas de utilizador * 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 o comportamento de objetos utilizando UML * Modelar a estrutura de classes utilizando UML * Elaborar a Ajuda ao Utilizador * Elaborar o Manual de Instalação * Codificar classes em Java usando as API standard * Realizar versões de componentes de software * Documentar o código Java utilizando Javadoc * Testar o código utilizando Junit * Utilizar uma ferramenta de elaboração colaborativa de documentação * Utilizar um IDE na manutenção do software * Utilizar um sistema de controlo de versões ===== Programa ===== * Introdução à Engenharia de Software e à modelação ágil. * 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. * Codificação em Java. * Verificação, validação e teste de software. * Manutenção de software. Gestão de configurações. Controlo de versões. * 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://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=000153367|Biblioteca]] * Bruce Eckel, //Thinking in Java//, Prentice Hall, 4th Edition, 2006, ISBN: 0131-87248-6 [[http://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=000055636|Biblioteca]] ===== Bibliografia complementar ===== * 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://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=000125543|Biblioteca]] * Russ Miles e Kim Hamilton, //Learning UML 2.0//, O'Reilly, 2006, ISBN: 978-0-596-00982-3 [[http://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=000126325|Biblioteca]] * Ian Sommerville, //Software engineering//, Addison-Wesley, 9th Edition, 2010, ISBN: 0-321-31379-8 [[http://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=000078024|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://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=000069561|Biblioteca]] * Henrique O'Neill, Mauro Nunes e Pedro Ramos, //Exercícios de UML//, FCA - Editora Informática, 2010, ISBN: 978-972-722-616-0 ===== Métodos de ensino ===== A unidade curricular tem aulas teóricas (2 horas por semana) e aulas laboratoriais (2 horas por semana) em sala de computadores. Os tempos letivos das aulas teóricas 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. São ainda indicadas referências de leitura. Nas aulas laboratoriais os estudantes trabalham, em grupos de 5, num projeto de software. ===== Software ===== * [[http://www.sparxsystems.com.au/|Enterprise Architect]] (Windows) * [[http://uml.sourceforge.net/|Umbrello]] (Linux) * [[http://netbeans.org/|IDE NetBeans]] (Linux e Windows) * [[https://www.dokuwiki.org/|Dokuwiki]] * [[http://argouml.tigris.org/|ArgoUML]] * [[http://subversion.apache.org/|SVN]] ===== 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 | | TP1: Protótipo de Interfaces com o Utilizador | Trabalho laboratorial ou de campo | 10 | 03/10/2013 | | TP2: Especificação de Requisitos | Trabalho laboratorial ou de campo | 7 | 17/10/2013 | | TP3: Projeto de Alto Nível | Trabalho laboratorial ou de campo | 14 | 24/10/2013 | | TP4: Protótipo | Trabalho laboratorial ou de campo | 18 | 14/11/2013 | | TP5: Projeto Detalhado | Trabalho laboratorial ou de campo | 19 | 28/11/2013 | | TP6: Produto | Trabalho laboratorial ou de campo | 30 | 19/12/2013 | | TP7: Apresentação do Produto | Participação Presencial | 2 | 19/12/2013 | | TP8: Desempenho Individual | Trabalho | | | FT1: Modelo de Casos de Utilização | Exercício | 1,5 | 17/10/2013 | | FT2: Modelo Conceptual do Domínio | Exercício | 1,5 | 24/10/2013 | | FT3: Modelo de Arquitetura | Exercício | 1,5 | 31/10/2013 | | FT4: Java | Exercício | 1,5 | 21/11/2013 | | | Total: | 162 | | ===== Obtenção de frequência ===== O trabalho prático (TP) será avaliado através da documentação apresentada, da aplicação desenvolvida e do desempenho individual nas aulas (TP1 a TP8). Os conceitos teóricos são avaliados através da resposta individual a folhas de perguntas (FT1 a FT4), a realizar em algumas aulas laboratoriais. A aprovação na unidade curricular está condicionada à obtenção de 50% em cada um dos trabalhos da avaliação prática (TP1 a TP8) e de 40% na média das folhas de perguntas relacionadas com a matéria teórica (FT1 a FT4). 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% TP + 20% FT sendo: TP = (TP1 + 3* TP2 + 2* TP3 + 2* TP4 + 2* TP5 + 8* TP6 + TP7 + TP8 ) / 20\\ FT = (FT1 + FT2 + FT3 + FT4) / 4 A classificação da componente prática (TP) pode variar de elemento para elemento do mesmo grupo em mais ou menos 2 valores, com base na opinião dos docentes e na autoavaliaçã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. ===== Observações ===== \\ --- //JCL//