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.
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.
The life cycle of a software system includes repetitive tasks that in most cases involve an increase in the duration and costs of the project. Our goal is to analyze different mechanisms to automate these tasks through the conception of the Model-Driven Software Engineering paradigm. From a set of metamodels, models and transformations, software design problems are addressed and the generation of different software artefacts, mainly source code, is automated. These models are built from the design of Domain-Specific Languages, and the use of representations, both graphical and textual.
Software architecture specifies the structure of structures of a software system. These structures comprise a set of design decisions that meet great challenges in terms of software size, complexity, and quality. Our goal is to analyze, design, and model these structures in order to create software systems that ensure compliance with functional and non-functional requirements from the highest levels of abstraction. The research line includes the study of architectural styles, architectural patterns and quality attributes. In this way, emphasis is placed on the factors that influence the design and evolution of architectures, the creation and representation of architectural models, and the conception of large-scale software architectures.
The new ways of approaching the teaching of Engineering in the XXI Century, to deliver knowledge and principles to the new engineers, also raise the need to have a research line that articulates research in this field with what happens in Software Engineering - SE. The teaching-learning methods traditionally used in SE, as well as pedagogical practices in this field require a new approach or at least an analysis to find new ways of teaching. Methods such as “Problem-Based Learning” - PBL, complemented by the need to consider virtuality as an essential or complementary element, invite us to rethink the teaching activity and the models traditionally used so that students are the center of an interactive process and collaborative, which trains professionals who interact with reality and provide solutions to productive environments. The work with schools of other faculties will be necessary to enrich the proposals in this research area; for example, with the "Master's Degree in Education" or with the "Institute of Research in Education" of Universidad Nacional Colombia. It would allow us to carry out multidisciplinary work that consolidates and strengthens the proposals for SE education.
"The fourth industrial revolution will involve the creation of cyber-physical systems that will converge digital technologies with physical and biological ones; This entails a radical change in the way we build our world. The paradigm shift in its relationship with the physical world will require a new technological strategy that will affect the way of building software, and, therefore, it is necessary to rethink software engineering as a required discipline in the construction of these new systems. "Cyber-physical" systems will combine new computational architectures, with hardware, software and network elements, where programs, sensors, nanotechnology and communications must be rethought. Wireless Sensor Networks and Ubiquitous Wireless Sensor Networks (WSN / USN) are a reality that will be mixed with Internet of Things (IoT) developments to enable new possibilities in building 4th revolution systems. Emerging technologies such as 5G, computing on mobile devices and cloud services will facilitate the definition of new systems supported on the infrastructure of the 4th revolution.
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.