DEVELOPMENT METHODOLOGIES

Academic year
2023/2024 Syllabus of previous years
Official course title
DEVELOPMENT METHODOLOGIES
Course code
CM0639 (AF:451586 AR:245311)
Modality
On campus classes
ECTS credits
6 out of 12 of SOFTWARE ARCHITECTURES AND DEVELOPMENT METHODOLOGY
Degree level
Master's Degree Programme (DM270)
Educational sector code
ING-INF/05
Period
1st Semester
Course year
1
Where
VENEZIA
Moodle
Go to Moodle page
This course aims at introducing advanced concepts in software development and operations methodologies and tools for improving software quality.
The first part of the course will cover advanced aspects of software development: multi-threaded programming, network service programming.
The second part will focus on the different methodologies and tools used before and during deployment with particular focus on testing: unit testing, black-box and white-box testing, integration testing, performance testing, DevOps tools for build and deployment automation.
The third part will provide an overview of alternative programming methodologies: rule-based programming, logic programming, model-driven development.
Most of the examples will be based on Java language, whose knowledge is taken for granted.
The goal of the course is to transfer knowledge of
- advanced topics in Java programming language,
- the importance of different types of testing,
- the use of software tools for build and deployment automation,
- the specific programming knowledge for different types of systems.
The labs will help experimenting with tools and acquiring practical knowledge of the topics.
It is necessary to have a good knowledge of Java programming language, and a basic knolwedge of networking, and software engineering.
It is advisable to attend all the lectures as the course has theoretical and practical components.
The learning of concepts is eased by the use of software tools in the labs and discussion of practical examples.
The course will present different topics:
- Advanced aspects of software development: multi-threaded programming, event-based and GUI programming, network programming and microservices.
- Software Testing: unit testing, integration testing, performance testing
- DevOps tools for build and deployment automation.
- Advanced topics in Software Development.
Lecture Notes from the Professor, mostly based on:
1. R. Urma, M. Fusco, A. Mycroft. "Modern Java in Action: Lambdas, streams, functional, and reactive programming." Manning, 2019.
2. M. Pezzè, M. Young, "Software Testing and Analysis: Process, Principles, and Techniques", Wiley, 2008, ISBN 8126517735.
3. G. Kim, P. Debois, J. Willis, J. Humble, "The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations", IT Revolution Press, 2016, ISBN 1942788002
4. R. Meier, I. Lake, "Professional Android", Wiley, 2018.
5. S. Amey, "Software Test Design: Write comprehensive test plans to uncover critical bugs in web, desktop, and mobile apps", Packt Publishing, 2022, ISBN 1804612561
6. M. Winteringham, "Testing Web APIs", Manning, 2022, ISBN 1617299537
7. C.S. Pasareanu, "Symbolic Execution and Quantitative Reasoning: Applications to Software Safety and Security", Morgan & Claypool, 2020, ISBN 1681738562
The assessment is based on written exam, aiming at verifying the knowledge of the different topics of the course.
The assignment consists of a practical problem to solve, or in making a presentation to the class of a research paper or a tutorial on a software tool related to the topics of the course.
Solving assignments give extra score with respect to the the mark of the written exam.
Theoretical lectures and practical laboratory classes;
Audio and Video online resources;
Chat and forum;
Assignments on various topics that give extra score;
Practical labs
English
written

This subject deals with topics related to the macro-area "Cities, infrastructure and social capital" and contributes to the achievement of one or more goals of U. N. Agenda for Sustainable Development

Definitive programme.
Last update of the programme: 21/08/2023