Students are introduced to the field of Software Methodology, covering the different Software Development Life Cycles (SDLC) that can be applied during software project development. The course begins with the study of design patterns that must be considered when producing an Object-Oriented Design. It then focuses on the use of Agile methodologies, introducing the fundamental concepts of Scrum and its advantages over other software development methodologies. Different approaches to Agile adoption within organizations are analysed, together with the characteristics and values required for successful implementation. Finally, students study a range of techniques for achieving continuous improvement in both the software product and the development project.
No prior knowledge is required.
Upon successful completion of the course, students will be able to:
- Understand the fundamental principles of software methodology and the different software development life cycles.
- Understand the fundamentals of Agile methodologies for software project management.
- Understand the Scrum framework, including its roles, events, and artifacts, as well as its advantages over other software development methodologies.
- Plan and manage product development using Scrum throughout the software development life cycle.
- Understand Kanban and other Agile methodologies, identifying their appropriate application contexts.
- Analyze different strategies for implementing Agile methodologies within an organization, identifying the key success factors and values required for their successful adoption.
- Apply continuous improvement techniques to enhance both the product and the software development process.
- Analyze practical case studies and select the most appropriate methodologies and tools according to the project's context, objectives, and constraints.
- 1. Introduction to Software Methodology.
- 2. Software Lifecycle and Project Requirements Management.
- 3. Artificial Intelligence Project Development. AI Systems Lifecycle, Reproducibility, Version Control, Documentation, and Best Practices.
- 4. Agile Project Management Methodologies: Scrum and Kanban.
- 5. Product Management and Change Management.
- 6. Practical Case Studies.
Teaching Methodology
The course is structured into two main modules: Software Methodology and Agile Methodologies.
Both modules combine lectures with practical activities aimed at applying the concepts covered in class.
Students engage in practical case studies, problem-solving exercises, individual assignments, and collaborative team activities. During the Agile (Scrum)-based projects, they assume different roles and responsibilities, simulating real-world software development environments.
The learning activities promote active participation, decision-making, teamwork, and critical reflection on the proposed solutions.
Team-based activities are also included as part of the course assessment.
The following aspects will be assessed:
- Understanding of the fundamentals of software methodology, the different software development life cycles, and the criteria for selecting the most appropriate methodology according to the project context.
- Understanding of the principles, values, and practices of Agile methodologies, particularly Scrum and Kanban, as well as their application to software project planning and management.
- Ability to manage product development using Agile methodologies, participating in the different phases of a project and applying Scrum roles, practices, and artifacts.
- Ability to analyze different strategies for implementing Agile methodologies within an organization, identifying success factors and the main challenges associated with organizational change.
- Ability to apply continuous improvement techniques to enhance product quality and increase the efficiency of the software development process.
- Ability to organize, manage, and present technical information in a structured manner, as well as to work collaboratively in software development projects.
- Ability to analyze and solve practical case studies, justifying methodological decisions according to the project's objectives, constraints, and requirements.
- Sommerville, I. (2016). Software Engineering (10th ed.). Pearson.
- Burkov, A. (2020). Machine Learning Engineering. True Positive Inc.
- Huyen, C. (2022). Designing Machine Learning Systems. O'Reilly Media.
- Rubin, K. S. (2012). Essential Scrum. Addison-Wesley.
- Sommerville, I. (2016). Software Engineering (10th ed.). Pearson.
- Burkov, A. (2020). Machine Learning Engineering. True Positive Inc.
- Huyen, C. (2022). Designing Machine Learning Systems. O'Reilly Media.
- Rubin, K. S. (2012). Essential Scrum. Addison-Wesley.