The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Writing comments is as important as writing code. The main purpose of using comments is to improve readability of our code but frequently thoughtless comment writing decrease understandability of source code. Comments must be concise and precise simultaneously. Also, when our code is changed, comments for this code must be changed too. While using comments in our code we must realize that if expressiveness...
One of the main challenges in teaching Software Engineering as an undergraduate course is making the need for software processes and documentation obvious. Armed with some knowledge of programming, students may feel inclined to skip any development phase not involving coding. This is most pronounced when dealing with the Requirements Engineering practices. In this paper, we describe a practical approach...
Generating and maintaining REST API documentation with usage examples can be a time consuming and expensive process for evolving APIs. Most REST API documentation tools focus on automating the documentation of the API objects, but require manual effort for capturing usage examples. Consequently, REST API developers need to know the cost vs. benefit of providing usage examples in the documentation...
Agile software development methods introduced a new approach for software development compared to traditional methods and they have become increasingly popular. While traditional methods focus on disciplined processes and rigid practices, agile methods emphasizes on individuals, communication and product. Capability Maturity Model Integration (CMMI) was introduced as a process improvement model in...
Program understanding plays a pivotal role in software maintenance and evolution: a deep understanding of code is the stepping stone for most software-related activities, such as bug fixing or testing. Being able to measure the understandability of a piece of code might help in estimating the effort required for a maintenance activity, in comparing the quality of alternative implementations, or even...
As the carrier of Application Programming Interfaces (APIs) knowledge, API documentation plays a crucial role in how developers learn and use an API. It is also a valuable information resource for answering API-related questions, especially when developers cannot find reliable answers to their questions online/offline. However, finding answers to API-related questions from API documentation might...
This paper focuses presents a study of eight years of cross-course project-based learning (CC-PjBL) in an upper-level requirements and project management (RPM) course. Project-based learning (PjBL) is a method of instruction in which students learn by investigating and solving real-world problems in and open-ended, time-limited context1. Our instantiations of CC-PjBL matched paired students in an...
A significant number of techniques dedicated to requirements specification and documentation is described in the available sources. As there is no purpose to use all of them, a selection has to be made, taking into consideration the context of a given software project, for example its size, usage of agile approach or stakeholders' technical competency. This paper is intended to provide guidelines...
The article is devoted to the experience of the Russian and Soviet Fund of algorithms and programs. The fund, created more than half a century, played a noticeable role in creating a regulatory framework for requirements for replicable software. Fund experience also contributed to the development of the copyright to the software. Currently, due to the widespread use of free software, the fund performs...
Behavior-Driven Development (BDD) is a set of software engineering practices which uses a ubiquitous language, one that business and technical people can understand, to describe and model a system by a series of textual scenarios. However, we believe that the value of those textual scenarios is connected with how well they convey and document the details discussed by the team about the behaviors needed...
Requirements engineering provides several practices to analyze how a user wants to interact with a future software. Mockups, prototypes, and scenarios are suitable to understand usability issues and user requirements early. Nevertheless, users are often dissatisfied with the usability of a resulting software. Apparently, previously explored information was lost or no longer accessible during the development...
The coverage of requirements is a fundamental need throughout the software life cycle. It gives project managers an indication how well the software meets expected requirements. A precondition for the process is to link requirements with project artifacts, like test cases. There are various (semi-) automated methods deriving traceable relations between requirements and test scenarios aiming to counteract...
We gained detailed empirical knowledge about rolespecific information needs that have to be satisfied in requirements documents in traditional software development processes. Motivated by the widespread use of agile development and existing challenges in industry regarding agile requirements engineering our current research aims at investigating whether agile teams could also benefit from results...
In agile software development projects, software engineers prioritize implementation over documentation to eliminate needless documentation. Is the cost of missing documentation greater than the cost of producing unnecessary or unused documentation? Even without these documents, software engineers maintain other software artifacts, such as tickets in an issue tracking system (ITS) or source code committed...
Much like the proliferation of different Automatic Test Equipment (ATE) within the DoD Services, there has been a similar proliferation of various programming languages for developing Test Program Sets (TPS) to be used on those same ATE. The use of multiple languages leads to a variety of unfavorable situations, including, among others: • Complexity of re-hosting software to new ATE • Difficulty transitioning...
We advocate for a paradigm shift in supporting the information needs of developers, centered around the concept of automated on-demand developer documentation. Currently, developer information needs are fulfilled by asking experts or consulting documentation. Unfortunately, traditional documentation practices are inefficient because of, among others, the manual nature of its creation and the gap between...
After changes are made to a system, developers typically perform regression testing to uncover the regression faults in previously existing functionality of the system. However, during software evolution, the program entities (i.e., classes/methods) realizing such functionality might be modified/replaced by other entities. Thus, in the new version, existing test cases containing obsolete class references...
Modern programming languages, such as Java and C#, typically provide features that handle exceptions. These features separate error-handling code from regular source code and aim to assist in the practice of software comprehension and maintenance. Having acknowledged the advantages of exception handling features, their misuse can still cause reliability degradation or even catastrophic software failures...
To obtain an accurate understanding of program behavior, developers use a set of tools and techniques such as logging outputs, debuggers, profilers, and visualizations. These support an in-depth analysis of the program behavior, each approach focusing on a different aspect. What is missing, however, is an approach to get an overview of a program execution. As a first step to fill this gap, this paper...
The article discusses the basic concepts and approaches to assessing software quality. Based on previous research in this area is formulated as recommendations for software that regulate based methods, processes and procedures used for software development.
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.