Informatics Engineering
SOFTWARE DEVELOPMENT ORGANIZATION
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).