Informatics Engineering

SOFTWARE DEVELOPMENT ORGANIZATION

General Data

Type of credits: ECTS
Number of credits: 7.50
Status: Optional
Type: Course
Academic Year:
Term:
Languages: English, Portuguese
Available for Mobility Students: No
Restricted to alliance: No
Code: Sin codigo

Coordination

Description

Theory
2

Theory/Practice
1

Laboratory
2

Instructors

Nuno Silva


 

Contents

CP1. Distributed version control systems. Concepts and the case of git. (10%)
CP2. Build scripting languages (20%)
CP3. Overview of the adopted software platform. The architecture of the platform. (10%)
CP4. Automating tests. Various types of tests (functional and non-functional). Code coverage and other metrics. (20%)
CP5. Managing the product life cycle with continuous integration (CI) and continuous delivery (CD) using CI/CD tools. (10%)
CP6. Integration and Deployment pipelines and its scripting. (20%)
CP7. Deploying and releasing applications. Managing infrastructure and environments. Virtualisation and Containers (10%)

Learning Outcomes

The general goal of this unit is for students to be able to manage the life cycle of a software product. Therefore, the main contents of this unit are related to software development, namely the Continuous Integration/Continuous Delivery (CI/CD) approach. Specific topics comprise software tests, configuration management and building, versioning, virtualization, and deployment (either locally or for the cloud). Students will be able to apply these continuous delivery techniques in the other units of the program.

By the end of this unit students should be able to:
CO1. Identify, elicit, and model requirements for software continuous delivery (NB: 4/6).

CO2. Design continuous delivery approach to software development according to the requirements (BL: 6/6).

CO3. Design testing, configuration management and versioning strategies according to the requirements (BL: 6/6).

CO4. Implement software continuous delivery pipeline(s) according to the design (6/6).

CO5. Implements tests, configuration management and versioning according to the requirements (BL: 6/6).

CO6. Debate how continuous delivery can address the difficulties of the software product life cycle management (BL: 5/6).