Coat of Arms of the Republic of Colombia Coat of Arms of the Republic of Colombia

Software Architecture

The Software Architecture research line investigates the decisions, models, and verification techniques that shape robust and adaptable software systems, spanning structural design, quality attributes, and large-scale complexity.

Software Architecture
Description

The Software Architecture research line addresses the challenges and opportunities associated with studying different aspects of software systems architecture. Recognizing that architecture is a fundamental pillar for ensuring the quality and adaptability of software systems in modern environments, our research spans a broad spectrum of key topics in the field. This line bridges theoretical research with real-world software development practices, combining conceptual and empirical research with the development of methods, models, and tools that support architects in making informed, well-founded design decisions. Through this line, we seek not only to advance theoretical knowledge in the field but also to generate a practical impact on the construction of more robust, efficient, and adaptable software systems.

Research Topics

Structural Architectural Design Decisions

Architectural styles and patterns, and the decisions involved in discovering, selecting and combining them, to shape the structural organization of software systems.

Quality-Attribute-Driven Architectural Design Decisions

Architectural tactics and patterns, and the decisions involved in discovering, selecting and applying them, to achieve specific quality attributes (e.g., performance, scalability, security, availability, maintainability) and shape the non-functional behavior of software systems.

Software Architecture for Large-Scale Systems

Architectural design principles for building software systems that handle high complexity in terms of structural size, concurrency and critical quality scenarios.

Software Architecture Modeling

Use of architectural models and representations to design, analyze, and generate software architectures, enabling automation, consistency, and early verification of architectural design decisions.

Software Architecture Verification

Techniques and tools to analyze whether software architectures comply with functional and non-functional requirements, and to verify architectural conformance in the early stages of design, before system implementation.