Engenharia de Software › 41492

código no paco
41492
área científica
Informática / Sistemas de Informação
créditos
6
escolaridade
ensino teórico (T) - 2 horas/semana
ensino prático e laboratorial (PL) - 2 horas/semana
idioma(s) de lecionação
Português, Inglês
objectivos

O principal objectivo deste curso é aplicar DevOps para especificar, desenvolver e instalar uma aplicação usando uma plataforma de nível empresarial (J2EE & spring boot).

O projecto desenvolvido pelos alunos será fulcral para consolidar e aplicar os conhecimentos e aspectos técnicos ao longo da UC. Durante a UC vários assuntos relacionados com a DevOps serão abordados desde aspectos mais gerais como aplicação de padrões de desenho  até assuntos mais pragmáticos como instalar e manter a infraestrutura que dá suporte ao ciclo da DevOps ( desenvolvimento, teste e instalação automática, … ). O curso irá usar a JavaEE / spring boot e o ecosystem DevOps como solução de referência.

competências

After the completing the course students will:

Know:

  •  J2EE & spring boot frameworks
    • design and architectural patterns
  • DevOps from a developer and operations perspective
    • Process and human roles ( development, management, infrastructure)
    • Process and related concerns (quality, automation, deployment): Basic tools & tool chains
  • Test / behaviour driven approach
    • Tests as specification  
    • Functional and non functional test options

Understand:

  • The trade off between design, technical and infrastructure level in terms of
    • Specification
    • Development process & Automation
    • Quality assessment criteria and objectives
  • Working product means provide functional and nonfunctional quality assessment
    • Tests can be a missing link via (testable) specification
    • Validation and verification for (working) system
  • Deliver a product means deploy a working system, not having working code

Be able to:

  • DELIVER a WORKING medium size system within a team using j2EE and/or spring boot
    • Deploy a DevOps infrastructure
    • Evolve from specification to deployment
    • Quality assessment: functional and nonfunctional requirements testing
  • Work in a team within an agile iterative framework
    • Team and personal accountability
    • Deliver results on time according to specification
conteúdos

Lectures:

Course overview

Design patterns and architecture styles

  • Runtime, servers and containers
  • Persistence, Services , Messaging
  • Dependency injection & naming service

Devops: basic concepts, the toolchain & deployment

Basic testing concepts: testing patterns, BDD, Mocks,

Enterprise testing

  • component, integration and acceptance testing
  • non functional: performance , user interface

Labs:

JavaEE & spring-boot

  • basic tools: maven, junit, logging
  • http based application: servlets, JAX-RS, JAX-WS
  • Presentation layer: Java Server Fases
  • Messaging: JMS, kafka
  • Persistence: JPA
  • Services: Enterprise Java Beans

DevOps toolchain

  • Testing: Junit, cucumber and mocks
  • Continuous integration & QA: jenkins
  • Entreprise testing: embedded containers, arquillian
  • Performance: jmeter
  • Ops: Docker
  • Logging
avaliação

O curso adopta a avaliação contínua. A avaliação será suportada no projecto do curso baseda a em duas componentes:

- equipa (40%)

            Baseada na avaliação do resultado final mas também na evolução do projecto ao longo de várias iterações e apresentações. 

- pessoal (60%)

            Baseada nos resultados dos testes e  inclui desempenho pesoal nas apresentações pessoais e na avaliação da participação pessoal no âmbito do projecto e da equipa.

 

requisitos

Desejável possuir alguma experiência em programação orientada por objectos (e.g. Java, C++, C#) e na modelação de sistemas baseada em UML (e.g. modelação de casos de uso, modelaçao de classes, ...)

metodologia

O principal objectivo do curso é aplicar DevOps na especificação, desenvolvimento e instalação de um projecto de média complexidade usando uma plataforma de nível empresarial ( J2EE , spring boot).

O projecto é o  resultado principal e será onde os alunos irão aplicar os conhecimentos adquiridos nas aulas. As aulas serão usadas para suportar o projecto e para abordar matérias identificadas como relevantes durante o decorrer dos projectos.

Os projectos terão equipas de 4 a 6 elements. O âmbito e cenários dos projectos dependerão dos temas e desafios apresentados anualmente. O projecto será dividido em várias iterações com o foco a) incremento das funcionalidades do sistema final e b) no uso de uma aproximação DevOps para instalação e teste do sistema no final do curso.

A avaliação do projecto dependerá dos cumprimento dos objectivos a cada iterações e de uma entrega (código, documentação)  e demonstração final.

bibliografia base
Main reference Software Architect's Handbook /Joseph Ingeno / 2018 - ISBN 139781788624060 Other references: Emergent Design: The Evolutionary Nature of Professional Software Development / Scott L. Bain / 2008 The Process of Software Architecting /Peter Eeles, Peter Cripps / 2009 Manage Software Testing / Peter Farrell-Vinay / 2008 - ISBN-10: 0849393833
bibliografia recomendada

Main reference

  • Software Architect's Handbook / Joseph Ingeno / 2018 - ISBN 139781788624060

Other references:

  • Emergent Design: The Evolutionary Nature of Professional Software Development / Scott L. Bain / 2008
  • The Process of Software Architecting /Peter Eeles, Peter Cripps / 2009
  • Manage Software Testing / Peter Farrell-Vinay  / 2008 
Este sítio web utiliza cookies sem recolher informação pessoal que permita a identificação dos utilizadores. Ao navegar neste sítio está a consentir a sua utilização.saber mais
Para que esta página funcione corretamente deve ativar a execução de Javascript. Se tal não for possível, algumas funcionalidades poderão estar limitadas.