Engenharia de Software › 41492

código no paco
41492
área científica
Informática / Sistemas de Informação
créditos ects
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 um sistema de software usando uma plataforma de nível empresarial no contexto de um projecto em equipa

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

Saber:

  • Principais plataformas baseadas em java para aplicações empresariais
    • Desenho e padrões de arquitectura
    • Modelos e Componentes
  • DevOps
    • Processos de desenvolvimento e ferramentas básicas
    • Preocupações nomeadamente ao nível de QA, automação e operação
  • BDD (Behaviour driven approach)
    • Principais conceitos sobre testes funcionais e não funcionais
    • Testes como especificação
  • Instalação baseada em “containers”
    • Conceitos e principais ferramentas

Compreender:

  • Custo benefício entre opções de desenho, técnicas e infraestrutura
    • Processo de desenvolvimento  vs. automação
    • critérios de  QA vs objectivo do sistema
  • Necessidade de processo de testes de Qualidade
    • Testes podem ser uma forma de especificação
    • Validação e verificação de sistemas 
  • O resultado pretendido  é um sistema funcional e não apenas código funcional

Ser capaz de:

  • Entregar um sistema funcional baseado em plataformas baseadas em java
    • Com uma infraestrutura DevOps 
    • Conforme a especificação
    • Verificado através de QA: functional and nonfunctional requirements testing
    • Deliver results on time according to specification
  • Trabalhar em equipa incluindo (auto) avaliação de contribuição pessoal
conteúdos

Teóricas:

Desenho, padrões e arquitecturas de software

  • “Runtime”, servidores e “containers”
  • Persistência, serviços e mensagem
  • Injecção de dependência

Devops: conceitos básicos e processo para manutenção e instalação 

Conceitos básicos de testes e Qualidade de software (QA)

Enterprise testing

  • Testes de componentes, integração e aceitação
  • Testes não funcionais: interfaces com utilizador, desempenho, ...

Labs:

Ferramentas básicas: maven, junit, logging, docker

JavaEE & spring-boot

  • Aplicações web baseadas em http: servlets, JAX-RS, 
  • Sistemas de mensagens 
  • Soluções de persistência
  • Componentes de servidores aplicacionais

DevOps toolchain

  • Testes e Integração contínua baseada em Jenkins
    • QA, Ops & instalação
  • Monitorização e 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 sistema de software de média complexidade usando uma plataforma de nível empresarial no contexto de um projecto em equipa.

O sistema de software é o resultado principal do curso 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 
  • Software Requirements (3rd Edition)  / Karl Wiegers, Joy Beatty / 2013
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.