Context. Software defect prediction aims to reduce the large costs involved with faults in a software system. A wide range of traditional software metrics have been evaluated as potential defect indicators. These traditional metrics are derived from the source code or from the s…
Software systems are increasingly becoming ubiquitous, affecting the way we experience the world. Embedded software systems, especially those used in smart devices, have become an essential constituent of the technological infrastructure of modem societies. Such systems, in orde…
Internationalization is the process of developing an application so that it can be adapted to various languages and regions without engineering changes. It enables a single application to handle text from various languages and locals and it accommodates the targeted user specifi…
The Unified Modeling Language (UML) has been designed to be a full standard notation for Object-Oriented Modeling. UML 2.0 consists of thirteen types of diagrams: class, composite structure, component, deployment, object, package, activity, use case, state, sequence, communicati…
Agent Oriented Software Engineering poses several challenges to the traditional theory and practice of software engineering with the emergence of a variety of theories and tools proposed to deal with this challenge. Agent frameworks with formal foundations have an important role…
The cost of security vulnerabilities of a software system is high. As a result, many techniques have been developed to find the vulnerabilities at development time. Of particular interest are static analysis techniques that can consider all possible executions of a system. But, …
Software development and evaluation is the most difficult task in software engineering. The future of the software industry depends upon the development of software. For this purpose quality is considered essential step in designing software. Quality of software is dependable up…
Over the past decades, software systems have been widely adopted in almost all aspects of human lives, and are making our lives more and more convenient. However, software systems also inevitably suffer from different faults (a.k.a., bugs), which can incur great loss of properti…
Software caches for garbage collected systems are unaware which cache entries are referenced by a client program. Lacking this key information, software caches cannot determine the cache’s contribution to the program’s memory footprint. Furthermore, their eviction heuristics mus…
Knowing the expert developers of a software development project has great significance in large-scale and geographically distributed projects. However, finding these expert developers can be challenging, which becomes more complicated over time as the development team gets bigge…
Software developers are increasingly having conversations about software development via online chat services. Many of those chat communications contain valuable information, such as description of code snippets and APIs, opinions on good programming practices, and causes of com…
Model-Based Systems Engineering (MBSE) elevates models as first-class artifacts throughout the development process of a system’s lifecycle. This makes it easier to develop standard tools for automated analysis and overall management of a system process; thereby, saving cost and …