Competencies and objectives
- Course context for academic year 2023-24
- Course content (verified by ANECA in official undergraduate and Master’s degrees)
- Learning outcomes (Training objectives)
- Specific objectives stated by the academic staff for academic year 2023-24
Course context for academic year 2023-24
The development of a software system involves making decisions about how the development will be organized and planned throughout the project's life cycle. Agile development methodologies allow realistic planning, which allows taking changes minimizing their impact on the development of the system, while ensuring the quality of developed software.
This course will implement some of the most widespread practices in agile development of applications, by developing group projects using the methodologies reviewed in the lectures. It will also provide insight into the software modeling techniques seen in previous courses, with special emphasis on creating robust and flexible designs by applying design patterns.
In order to successfully follow the subject, it is recommended to have good knowledge of object-oriented programming and basic knowledge of UML.
Course content (verified by ANECA in official undergraduate and Master’s degrees)
Specific Competences (CE)
- CE1 : Capacity to design, develop, select and evaluate computer systems and applications, ensuring their reliability, security and quality in accordance with ethical principles and the legislation and regulations in force.
- CE13 : Understand and apply the tools needed for the storage, processing and access to Information Systems, including web-based systems.
- CE16 : Understand and apply the principles, methodologies and life cycles of software engineering.
- CE7 : Understand, design and use the most appropriate data types and structures to solve problems in the most efficient manner.
Learning outcomes (Training objectives)
Specific objectives stated by the academic staff for academic year 2023-24
- Get an overview of the major generic process frameworks, techniques and notations in Software Engineering.
- Know the main characteristics of the most widespread agile development methodologies.
- Being able to implement management techniques, modeling and agile development in a software project.
- Being able to analyze software development processes existing in organizations and suggest improvements to them based on the processes, techniques and tools in the subject studied.
- Understanding the relationship between analytical artifacts (studied in other subjects) and artifacts of design and implementation of a software system within the various software development processes.
- Understand the concept of pattern, and some of the best-known design architectural patterns, and learn to identify their advantages and disadvantages.
- Being able to apply patterns and mechanisms of abstraction to simplify and identify opportunities for reuse of software components.
- Understanding the role of quality assurance in software engineering.