This week I was on a virtual meeting of IST/5, the BSI committee responsible for programming language standards in the UK. It’s been three years since I last reported on the programming language standards’ world, what has been going on? tl;dr: Business as usual, with a handful of active committees. I have been meeting secretary […]
Current use of LLMs in software engineering has focused on using them as proficient coding assistants or having them write programs from specifications. Algorithm selection is an important issue that has yet to attract much attention within the software engineering LLM ecosystem. While much of a program’s functionality is mundane, and the accuracy/performance of the […]
The source code of individual functions is written a particular way by individuals to solve particular problems. When source code use of programming constructs are counted, in a sufficiently large quantity of source code, various patterns emerge. The most common patterns involve power laws and exponentials. The plot below shows the number of functions containing […]
Fault reports are generated by a program’s users, and the extreme difficulty of obtaining any information about how users use a program and number of users makes it almost impossible to do reliable fault prediction. Source code is often available. Are there any source code characteristics that could be used to make fault predictions? A […]
Version control systems usually include support for classifying each check-in as being a particular instance of some category, e.g., Adaptive, Corrective, Perfective, or Other (this software maintenance category has a long history). Categories have been studied for over 2,000 years. Categories is the first subject of Aristotle’s six works on logical analysis and dialectic. Categorization […]
Until April this year there were only two non-trivial publicly available software project datasets (i.e., Sip and CESAW) containing software project data relating to human effort, e.g., people time, elapsed time, and tasks performed. The SiP data contains 10-years of software development tasks by one company, and the CESAW data contains the tasks involved in […]
Some programs perform one basic task, e.g., analyse input to calculate some quantity. These programs often take a set of input values and produce some output. If a program contains a single coding mistake and the probability of producing incorrect output, for one set of inputs, is , the probability of the ‘th output being […]
N-version programming was first proposed in 1978, probably the most known paper on the subject was published in 1986, after which activity was mostly within safety-critical systems circles. Cost was a major issue, it’s expensive to create one version of a program, and producing independent versions is around times more expensive. Now that LLM have […]
The use of LLM to write software has focused on integrating them within existing practices, i.e., using LLMs as very fancy auto-completers for chunks of code or functionality. This use is programming by conversation, or less politely, programming by stream of thought. The term vibe-coding creates an illusion of trendiness; after all, software engineering is […]
When working on a project, what process do developers use to select the next task to implement? One way to answer this question is to ask the developers/managers working on the project. However, these people are not always available, and sometimes the actual process used is not what management say it is. Analysis of the […]