Technical debt, a metaphor for the long-term consequences of weak software development, must be managed to keep it under control. The main goal of this article is to identify and analyze the elements required to manage technical debt.The research method used to identify the elements is a systematic mapping, including a synthesis step to synthesize the elements definitions. Our perspective differs from previous literature reviews because it focused on the elements required to manage technical debt and not on the phenomenon of technical debt or the activities used in performing technical debt management. Additionally, the rigor and relevance for industry of the current techniques used to manage technical debt are studied. The elements were classified into three groups (basic decision-making factors, cost estimation techniques, practices and techniques for decision-making) and mapped according three stakeholders' points of view (engineering, engineering management, and business-organizational management).The definitions, classification, and analysis of the elements provide a framework that can be deployed to help in the development of models that are adapted to the specific stakeholders' interests to assist the decision-making required in
The development of software systems must be done using platforms that allow the description of quality, complex, distributed, dynamic and reusable architectural models. We present in this paper PRISMA, an architectural modelling approach based on aspects and components, that uses a component definition language (components, connectors and systems) to define architectural types at a high abstraction level and a configuration language to design the architecture of software systems. The component definition language increases reuse allowing importation of COTS and reduces complexity by integrating two modern software development approaches: Component-Based Software Development and Aspect-Oriented Software Development. The configuration language designs the architecture of software systems by creating and interconnecting instances of the defined types including possible imported COTS. PRISMA has a metalevel with reflexive properties for these two languages. For this reason, the types of PRISMA may evolve and the topologies of PRISMA may be reconfigured dynamically.
Innovation is a driver of global economy growth. Software intensive systems (SiSs) are embedded in the systems of various leading sectors, such as the automotive, robotics, and mobile phone industries and they are creating new opportunities for innovation. However, SiSs are affected by a rapidly changing market and a reduced time to market. Software product innovation assessment is becoming important because firms need to know as soon as possible if their products are aligned with the market and customer demands.However, this is not a simple process. To identify the existing assessment schemas applicable to software product innovation, we have undertaken a systematic literature review. We found no studies specific to the development of software, but several approaches for products in general are applicable to software even when no one finding is conclusive. Therefore, this is just the first stage for assessing software product innovation. Our findings are related to three areas of focus: (i) general, (ii) product innovation assessment preparation, (iii) the assessment process.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.