Competencies and objectives

 

Course context for academic year 2026-27

Software Design is an engineering activity that transforms requirements into a structured representation of the system and constitutes a key phase in the software lifecycle. Its purpose is to reduce complexity, manage design decisions, and promote quality attributes such as maintainability, reliability, efficiency, scalability, usability, interoperability, and security.

The course studies architectural design and detailed design, with attention to architecture, components, interfaces, and data. It also covers architectural styles and patterns, SOLID principles, GRASP, GoF design patterns, and strategies such as composition over inheritance, dependency injection, inversion of control, and programming to interfaces.

 

 

Learning outcomes / Course competencies (verified by ANECA in official undergraduate and Master’s degrees) for academic year 2026-27

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)

No data

 

 

Specific objectives stated by the academic staff for academic year 2026-27

• Understand the foundations, principles, and characteristics of the main software development paradigms, from agile approaches to model-

driven development.

• Understand software design as a systematic problem-solving process that transforms requirements into structured solutions, guided by quality criteria.

• Identify, select, and appropriately apply techniques, notations, and artefacts specific to different software development processes and paradigms.

• Relate analysis artefacts to design and implementation artefacts, understanding their continuity and evolution throughout the lifecycle of a software system.

• Understand the concept of a pattern, as well as the main design and architectural patterns, and assess their advantages, limitations, and areas of application.

• Apply architectural patterns, design patterns, and design principles in a well-founded manner during the analysis and design phases of software solutions.

• Translate software designs expressed in UML or other formalisms into executable code, maintaining coherence between the model and the implementation.

• Integrate modelling, design, and development techniques within the context of a software project, applying quality criteria and sound engineering practices.

• Explore the use of artificial intelligence techniques as support for software design and development.

 

 

General

Code: 34026
Lecturer responsible:
Abreu Salas, José Ignacio
Credits ECTS: 6,00
Theoretical credits: 1,20
Practical credits: 1,20
Distance-base hours: 3,60

Departments involved

  • Dept: Software and Computing Systems
    Area: Languages and Computing Systems
    Theoretical credits: 1,2
    Practical credits: 1,2
    This Dept. is responsible for the course.
    This Dept. is responsible for the final mark record.

Study programmes where this course is taught