* Conhecer e compreender, tendo por base o RUP, as várias etapas do processo de conceção e desenvolvimento de um sistema de software complexo e de grande escala e usar a linguagem UML como ferramenta de base para a sua modelação; * Conhecer e ser capaz de aplicar princípios avançados de engenharia de software (ES), designadamente IOC (Inversion of Control), DI (Dependency Injection) e de separação de camadas (cf. modelo MVC - model, view e controller), bem como aplicar padrões usuais (“design patterns”); * Saber usar tecnologias Java para desenvolvimento de aplicações Web, designadamente, Servlets, Java Server Pages (ou Java Server Faces ou Structs) e Beans (bem como tecnologias de persistência), e usá-las segundo os princípios do modelo MVC; * Saber modelar em Alloy pequenos subsistemas de um dado sistema de software e realizar a verificação formal da satisfação de propriedades que fazem parte dos requisitos funcionais de tais subsistemas.
1.- Introdução às Arquiteturas de Software Análise das plataformas J2EE e .NET 2.- Introdução ao Rational Unified Process (RUP) 3.- Engenharia de Software baseada em Modelos: UML Modelação de sistemas software usando UML Transformação sistemática de modelos UML 4.- JAVA avançado Generics; Implementação de classes genéricas Elisão de tipos em Java Mecanismo de Reflexão Factory methods 5.- Princípios de Engenharia de Software Inversão de Controlo (IOC) Injeção de Dependência (DI) 6.- Padrões de Conceção e Desenvolvimento (Design Patterns) 7.- Tecnologia Java para aplicações Web Servlets Java Server Pages (JSP) Java Beans Modelo MVC de implementação MVC usando Structs ou JSF Tecnologias para Persistência DAOs (Data Access objects) TAOs (Transfer Objects) JPA (Java Persistence API) Hibernate 8.- Validação e verificação de modelos de software em Alloy
Aulas : 45 hours Projectos diversos extra-aulas a realizar em grupo Avaliação: 2 projectos de grupo
F. Mário Martins, Notas Teóricas de Arquiteturas de Sofware, DI/UM, 2011. UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition), Martin Fowler, AddisonWesley, 2003 Core Servlets and Java Server Pages, Martin Hall and Larry Brown, free e-book, 2010. Design Patterns: Elements of reusable Object-Oriented Software, E. Gamma et al., Addison-Wesley, 2000.
• Definir, no âmbito de todo o processo de engenharia de software, a intervenção da equipa de engenharia de requisitos e o envolvimento formal dos stakeholders • Escolher a forma como devem ser capturados os requisitos, em particular decidir quais as técnicas a usar para levantar os requisitos junto das fontes identificadas • Detectar, negociar e resolver conflitos entre os requisitos capturados • Estruturar o documento de requisitos a dois níveis (os requisitos do utilizador e os requisitos de sistema) e assegurar a sua qualidade e verificabilidade • Examinar o documento de requisitos, garantindo que descreve o sistema pretendido, através de revisões formais, de inspecções ou de criação de protótipos • Gerir a alteração dos requisitos, através de técnicas de rastreabilidade e de análise de impacto
• Processo de engenharia de requisitos • Levantamento de requisitos • Análise de requisitos • Especificação e modelação de requisitos • Validação de requisitos • Gestão de requisitos
Aulas teóricas (com alguma predominância para exposição de matéria) e aulas práticas para aplicar os conceitos e as técnicas/práticas Avaliação: Teste escrito Exercícios e projetos
Aurum A, Wohlin C (eds.); Engineering and Managing Software Requirements, Springer, 2005, ISBN 978-3-54025043-2 Robertson S, Robertson J; “Mastering the Requirements Process”, 2nd edition, Addison-Wesley, 2006, ISBN 0321-41949-9
• Conceber, desenvolver, instalar e manter aplicações web • Identificar as questões de âmbito legal, profissional, social e ético envolvidas no desenvolvimento de aplicações web usáveis e acessíveis • Adaptar uma aplicação web a outros contextos de utilização, em função dos requisitos capturados • Descrever e discutir as técnicas, os métodos e as abordagens usados no desenvolvimento web
• Tecnologias • Processo de desenvolvimento • Engenharia de requisitos • Conceção de aplicações web • Adaptação • Implementação, deployment e manutenção • Avaliação da qualidade • Web semântica e 2.0
Aulas teóricas (com alguma predominância para exposição de matéria) e aulas práticas para aplicar os conceitos e as técnicas/práticas Avaliação: Teste escrito Exercícios e projetos
Emilia Mendes, Nile Mosley (Eds.), Web Engineering, Springer, ISBN 3-540-28196-7, 2006 Gerti Kappel, Birgit Pr Siegfried Reich, Werner Retschitzegger (eds.) "Web Engineering: The Discipline of oll, Systematic Development of Web Applications", John Wiley & Sons, 2003
Os estudantes que completarem esta UC com sucesso, deverão ser capazes de: 1. Discutir alternativas de aplicação das técnicas do PMBoK em projectos de software; 2. Elaborar o plano de um projeto de desenvolvimento de sistemas de informação, seguindo as orientações do PMBoK; 3. Compreender e aplicar os métodos adequados para registar o progresso de um projecto (Execução do Projecto); 4. Aplicar as técnicas propostas pelo PMBoK para monitorizar o progresso de um projecto (EVM - Earned Value Management); 5. Compreender os princípios, temas e processos propostos pelo método PRINCE2 .
1. Introdução à Gestão de Projetos 1.1.Contexto de um projeto 1.2. Organização de um projeto 1.3. A Framework do PMBoK 1.4. As Áreas de Conhecimento 2. Técnicas e Ferramentas para o Planeamento de um projeto segundo o PMBOK 2.1 Planeamento do âmbito 2.2. Planeamento do tempo 2.3. Planeamento do custo 2.4 Planeamento da qualidade 2.5. Planeamento das outras áreas de conhecimento 2.6. Mecanismo para o Planeamento de Projetos de software 3. Execução, Controlo e Encerramento do projeto (PMBOK) 3.1. Relatórios do progresso 3.2. EVM – Earned Value Management 3.3. Controlar as alterações do projeto 3.4. Encerramento do projeto 4. PRINCE2 - Projects in a Controlled Environment 4.1.Introdução 4.2. Princípios 4.3. Temas 4.4. Processos 4.5. Conclusões
Os métodos de ensino/aprendizagem incluem: • o método expositivo; • o método interrogativo; • o método activo. Método de avaliação: Inclui a realização de um projecto, individual ou em grupo, versando uma das temáticas introduzidos na unidade curricular. A nota final é calculada com base em: Nota final = 15% relatório intermédio + 85% nota de projecto
Kerzner H (2006) Project Management – A Systems Approach to Planning, Scheduling and Controlling. 9ª ed. Wiley. Hoboken, NJ, USA. Meredith JR, Mantel SJJ (2005) Project Management: A Managerial Approach. 6ª ed. Wiley. Hoboken, NJ, USA. PMI (2008) A Guide to the Project Management Body of Knowledge, PMBOK. 4ª ed. PMI Standards Committee. Upper Darby, PA, USA TSO (2009) PRINCE2 - Managing Successful Projects with PRINCE2, TSO Ireland Miguel, António (2006). Gestão moderna de projectos: melhores técnicas e práticas. FCA - Lisboa. Lewis, J. P. (2011) Project planning, scheduling & control: the ultimate hands-on guide to bringing projects in on time and on budget, 5th ed. ed., New York: McGraw-Hill Professional ; London : McGraw-Hill [distributor]