CodeScene
   HOME

TheInfoList



OR:

CodeScene is a software engineering intelligence platform that combines code quality metrics with behavioral code analysis. It provides visualizations based on
version control Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code t ...
data and
machine learning Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of Computational statistics, statistical algorithms that can learn from data and generalise to unseen data, and thus perform Task ( ...
algorithms that identify social patterns and hidden risks in source code. CodeScene offers several features that support software maintainability and evolution within large-scale software development environments. The platform delivers several actionable performance indicators that assist software organizations in identifying risks and bottlenecks. CodeScene’s research team employs an
evidence Evidence for a proposition is what supports the proposition. It is usually understood as an indication that the proposition is truth, true. The exact definition and role of evidence vary across different fields. In epistemology, evidence is what J ...
-based approach to validate how these indicators are associated with business-critical variables such as development velocity and defect density. The platform uses its ''Code Health''
metric Metric or metrical may refer to: Measuring * Metric system, an internationally adopted decimal system of measurement * An adjective indicating relation to measurement in general, or a noun describing a specific type of measurement Mathematics ...
to evaluate the maintainability of source code. Another significant feature is the concept of ''hotspots'' which are areas of code that are frequently modified. This concept is inspired by
geographic profiling Geographic profiling is a criminal investigative methodology that analyzes the locations of a connected series of crimes to determine the most probable area of offender residence. By incorporating both qualitative and quantitative methods, it assis ...
a technique used in criminal investigations, which is reflected in the naming of CodeScene. By focusing on improving Code Health in hotspots, CodeScene aims to assist software development organizations in prioritizing
technical debt In software development and other information technology fields, technical debt (also known as design debt or code debt) refers to the implied cost of additional work in the future resulting from choosing an expedient solution over a more robust o ...
mitigation. This approach is intended to enhance the maintainability and
quality Quality may refer to: Concepts *Quality (business), the ''non-inferiority'' or ''superiority'' of something *Quality (philosophy), an attribute or a property *Quality (physics), in response theory *Energy quality, used in various science discipli ...
of software projects.


History

CodeScene is based on the ideas from the book ''Your Code As A Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs'' by CodeScene's founder Adam Tornhill. The first version of CodeScene was released in 2016, and the current version is 6.8 which comes with auto-generated PDF reports, architectural code health metrics, quality gates for build pipelines, and can put costs on hotspots. In January of 2021, CodeScene raised from Inventure and Luminar to expand its business. In August of 2023, CodeScene also raised €7.5 Million in a financing round led by Neqst.


Overview

CodeScene measures code quality using its Code Health metric. Code Health focuses on how cognitively difficult it is for human developers to comprehend a piece of source code. The metric aligns with the mindset that the best strategy for gauging code quality is to aggregate a set of specific complexity attributes. CodeScene parses source code to identify the presence of established code smells, e.g., ‘’God Class’’, ‘’God Methods’’, and ‘’Duplicated Code’’. The presence of
code smells In computer programming, a code smell is any characteristic in the source code of a program that possibly indicates a deeper problem. Determining what is and is not a code smell is subjective, and varies by language, developer, and development met ...
is combined into a numeric value between 1 and 10. The lower end represents extremely poor maintainability, and the upper end indicates top-notch code that is easy to maintain. CodeScene categorizes files into one of three sub-intervals: healthy (9 or higher), warning (between 4 and 9), and alert (lower than 4). CodeScene includes support for the following programming languages: C, C++, C#,
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
,
Groovy ''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1960s and 1970s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context. History The word ...
,
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
,
TypeScript TypeScript (abbreviated as TS) is a high-level programming language that adds static typing with optional type annotations to JavaScript. It is designed for developing large applications and transpiles to JavaScript. It is developed by Micr ...
,
Objective-C Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was ...
, Scala,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
,
Swift Swift or SWIFT most commonly refers to: * SWIFT, an international organization facilitating transactions between banks ** SWIFT code * Swift (programming language) * Swift (bird), a family of birds It may also refer to: Organizations * SWIF ...
, Go, Kotlin,
Visual Basic .Net Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language developed by Microsoft and implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the ...
,
PHP PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
,
Perl 5 Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed by ...
, Dart, Erlang,
Ruby Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
, React,
ECMAScript ECMAScript (; ES) is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is stan ...
, Vue.js, Rational Software Architect Models,
Clojure Clojure (, like ''closure'') is a dynamic programming language, dynamic and functional programming, functional dialect (computing), dialect of the programming language Lisp (programming language), Lisp on the Java (software platform), Java platfo ...
,
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
,
TCL TCL or Tcl or TCLs may refer to: Business * TCL Technology, a Chinese consumer electronics and appliance company ** TCL Electronics, a subsidiary of TCL Technology * Texas Collegiate League, a collegiate baseball league * Trade Centre Limited ...
,
Apex The apex is the highest point of something. The word may also refer to: Arts and media Fictional entities * Apex (comics) A-Bomb Abomination Absorbing Man Abraxas Abyss Abyss is the name of two characters appearing in Ameri ...
,
Elixir An elixir is a sweet liquid used for medical purposes, to be taken orally and intended to cure one's illness. When used as a dosage form, pharmaceutical preparation, an elixir contains at least one active ingredient designed to be taken orall ...
,
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH) ...
and BrightScript. The
Software as a service Software as a service (SaaS ) is a cloud computing service model where the provider offers use of application software to a client and manages all needed physical and software resources. SaaS is usually accessed via a web application. Unlike o ...
version of CodeScene is available for free for open source projects. CodeScene is also available in an on-premise version that includes more advanced features like
continuous integration Continuous integration (CI) is the practice of integrating source code changes frequently and ensuring that the integrated codebase is in a workable state. Typically, developers Merge (version control), merge changes to an Branching (revisio ...
support, Jira integration for cost calculations, and on- and off-boarding simulations.


Scientific research and impact

CodeScene is grounded in empirical software engineering research. The company is an active contributor to the academic community through its publication of research articles, organization of academic events, and participation in peer-review service. Examples of large research collaborations supported by publicly funded projects include the European
Eureka Eureka often refers to: * Eureka (word), a famous exclamation attributed to Archimedes * Eureka effect, the sudden, unexpected realization of the solution to a problem Eureka or Ureka may also refer to: History * Eureka Rebellion, an 1854 g ...
ITEA3 TESTOMAT project, the
Vinnova Vinnova (), or the Swedish Agency for Innovation Systems, is the Swedish government agency that administers state funding for research and development. The agency's mission as defined by the government is to promote development of efficient and i ...
-backed competence center NextG2Com, and the SESAM project funded by the Swedish Knowledge Foundation. The majority of academic research concerning CodeScene has concentrated on the validation of its Code Health metric. This metric has been extensively studied to assess its efficacy in identifying software maintainability issues. The research mission at CodeScene aims to frame source code quality as a business concern, not just a technical aspect. The primary research method used by CodeScene is mining software repositories using anonymous log files from
static program analysis In computer science, static program analysis (also known as static analysis or static simulation) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs duri ...
of proprietary projects. This approach contrasts with the majority of software engineering mining studies, which typically rely on
open-source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
repositories. Example findings from empirical studies of CodeScene include: * Significant differences exist between files with low and high Code Health. Files with alert-level Code Health contain 15 times more defects than healthy files. Moreover, resolving issues in alert-level code requires, on average, 124% more development time, and issue resolutions in such code are plagued by uncertainty as they involve nine times longer maximum cycle times. * A software development organization's value creation varies across the Code Health spectrum, with strong nonlinearities at the extremes of the spectrum. This study, which received the best paper award at the International Conference on Technical Debt in 2024, indicates that the return on investment for
code refactoring In computer programming and software design, code refactoring is the process of restructuring existing source code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structure, ...
is amplified in the upper end of Code Health. * Project newcomers are particularly challenged when working with alert-level source code, requiring 45% more time for small changes and 93% more time for large changes in low-quality source code. This finding highlights the additional challenges faced by newly onboarded developers in environments burdened by technical debt. * There is a strong correlation between Code Health and the total number of security vulnerabilities. This study was conducted by independent researchers based in
Egypt Egypt ( , ), officially the Arab Republic of Egypt, is a country spanning the Northeast Africa, northeast corner of Africa and Western Asia, southwest corner of Asia via the Sinai Peninsula. It is bordered by the Mediterranean Sea to northe ...
.


Reception

CodeScene was featured on the ThoughtWorks Technology Radar as a social code analysis tool. CodeScene users report that CodeScene is "The right way to manage technical debt", "A new standard for quality assurance", and provides "Insights like never seen before". CodeScene's free version is used to visualize the case studies in Adam Tornhill's book ''Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis''.


References

{{reflist


External links


CodeScene

CodeScene Cloud
Static program analysis tools