
The research line in Software Architecture of our group is focused on addressing the challenges and opportunities associated with the study of 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 covers a broad spectrum of key topics, including:
• Architectural design decisions: exploration of styles and patterns at the structural level, as well as tactics and patterns oriented toward quality attributes, that guide the organization, behavior, and non-functional properties 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, critical scenarios, and other factors.
• 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 for analyzing whether software architectures meet functional and non-functional requirements and for verifying architectural conformity in the early stages of design, before system implementation.
• Teaching software architecture: design of pedagogical strategies to train the next generation of software architects.
Through this line, we seek not only to advance theoretical knowledge in the field, but also to generate a practical impact in the construction of more robust, efficient and adaptable systems.

Over the years, various frameworks and methods have been proposed to organize, control, and improve the development process of software systems. None of these methods is better than the others, each one has a limited scope, and all of them have strengths and weaknesses. Our aim is to study these methods, evaluate them, and also, propose improvements and adaptations to these methods and the tools that support them. The design of tools and technologies to support or automate software development activities is also a subject included in this research line. Associated topics:
• Software Methods
• Software Project Management
• Software Sizing and Estimation
• Human Aspects of Software Engineering

Enterprise architecture's main goal is to ensure the proper alignment between business processes and information technologies, in order to achieve compliance with the strategic goals set up by the organization. That is why the management of the business processes that operate throughout the organization, must be an essential point of support for the fulfillment of those objectives. Thus, a correct implementation of an enterprise architecture, aligned with the respective business process and leveraged in a service-oriented architecture, are, nowadays, a key combination that supports strategic decision making in order to respond quickly and effectively to the organizational and opportunity changes that occur in an increasingly globalized environment. Associated topics:
• Information Systems - IS
• Business Process - BP
• Business Process Management cd - BPM
• Service-Oriented Architecture - SOA

Throughout its life, a software system is repeatedly updated to fulfill the ever changing requirements of its operating environment. Our goal is to analyze these processes of change, build models to describe the past, present and future of the evolution of a software system; and design and implement tools to support and analyze those processes. The study of the evolution of a software system is important because the higher software costs are related to adaptation and maintenance tasks; and because, its lifespan depends heavily on the approaches and techniques used for implementing the required changes, enhancements, and extensions. Associated topics:
• Software Comprehension
• Reengineering
• Software Analysis and Metrics
• Software Visualization