In software engineering and computer science, abstraction is.
Agile software development describes an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s).
In software engineering, an amelioration pattern is an anti-pattern formed when an existing software design pattern was edited (i.e. rearranged, added or deleted) to better suit a particular problem so as to achieve some further effect or behavior.
Android Studio is the official integrated development environment (IDE) for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development.
William G. Griswold is a professor of Computer Science and Engineering at the University of California, San Diego.
In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).
A class browser is a feature of an integrated development environment (IDE) that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming code.
Code review is systematic examination (sometimes referred to as peer review) of computer source code.
CodeRush Classic is a refactoring and productivity plugin by DevExpress that extends native functionality of Microsoft Visual Studio|Visual Studio.NET 2003, 2005, 2008, 2010, 2013, and 2015.
A computer program is a collection of instructions for performing a specific task that is designed to solve a specific class of problems.
Cyclomatic complexity is a software metric, used to indicate the complexity of a program.
A database refactoring is a simple change to a database schema that improves its design while retaining both its behavioral and informational semantics.
Decomposition in computer science, also known as factoring, is breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain.
Delphi is an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, developed by Embarcadero Technologies.
In software deployment, an environment or tier is a computer system in which a computer program or software component is deployed and executed.
A design pattern is the re-usable form of a solution to a design problem.
The DMS Software Reengineering Toolkit is a proprietary set of program transformation tools available for automating custom source program analysis, modification, translation or generation of software systems for arbitrary mixtures of source languages for large scale software systems.
Duplicate code is a computer programming term for a sequence of source code that occurs more than once, either within a program or across different programs owned or maintained by the same entity.
Eclipse is an integrated development environment (IDE) used in computer programming, and is the most widely used Java IDE.
Extensibility is a software engineering and systems design principle where the implementation takes future growth into consideration.
In software engineering, the Extract Class refactoring is applied when a class becomes overweight with too many methods and its purpose becomes unclear.
Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.
A fellow is a member of a group (or fellowship) that work together in pursuing mutual knowledge or practice.
In computer programming, field encapsulation involves providing methods that can be used to read from or write to the field rather than accessing the field directly.
Forth is an imperative stack-based computer programming language and environment originally designed by Charles "Chuck" Moore.
Fortran (formerly FORTRAN, derived from Formula Translation) is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.
In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a specification of behavior between outputs and inputs.
In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, and most commonly, digital logic circuits.
In object-oriented programming, inheritance is the mechanism of basing an object or class upon another object (prototypal inheritance) or class (class-based inheritance), retaining the same implementation.
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development.
IntelliJ IDEA is a Java integrated development environment (IDE) for developing computer software.
Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
JDeveloper is a freeware IDE supplied by Oracle Corporation.
JetBrains s.r.o. (formerly IntelliJ Software s.r.o.) is a software development company whose tools are targeted towards software developers and project managers.
In engineering, maintainability is the ease with which a product can be maintained in order to.
Martin Fowler (born 1963) is a British software developer, author and international public speaker on software development, specializing in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.
A method in object-oriented programming (OOP) is a procedure associated with a message and an object.
Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft.
Modular programming is a software design technique that emphasizes separating the functionality of a programme into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
NetBeans is an integrated development environment (IDE) for Java.
In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors.
In software development, obfuscation is the deliberate act of creating source or machine code that is difficult for humans to understand.
In computing, object model has two related but distinct meanings.
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self").
Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.
Photran is an Integrated Development Environment (IDE) for FORTRAN 77, Fortran 90, Fortran 95, Fortran 2003 and Fortran 2008 based on Eclipse and the CDT.
In programming languages and type theory, polymorphism (from Greek πολύς, polys, "many, much" and μορφή, morphē, "form, shape") is the provision of a single interface to entities of different types.
Prefactoring is the application of experience to the creation of new software systems.
A program transformation is any operation that takes a computer program and generates another program.
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.
PyCharm is an integrated development environment (IDE) used in computer programming, specifically for the Python language.
PyDev is a third-party plug-in for Eclipse.
Python is an interpreted high-level programming language for general-purpose programming.
Ralph E. Johnson is a Research Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign.
Readability is the ease with which a reader can understand a written text.
Rename Method is a refactoring that changes a name of a method into a new one, that better reveals its purpose.
Scientific method is an empirical method of knowledge acquisition, which has characterized the development of natural science since at least the 17th century, involving careful observation, which includes rigorous skepticism about what one observes, given that cognitive assumptions about how the world works influence how one interprets a percept; formulating hypotheses, via induction, based on such observations; experimental testing and measurement of deductions drawn from the hypotheses; and refinement (or elimination) of the hypotheses based on the experimental findings.
In computer science, separation of concerns (SoC) is a design principle for separating a computer program into distinct sections, such that each section addresses a separate concern.
Smalltalk is an object-oriented, dynamically typed, reflective programming language.
Computer software, or simply software, is a generic term that refers to a collection of data or computer instructions that tell the computer how to work, in contrast to the physical hardware from which the system is built, that actually performs the work.
Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures.
A software bug is an error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design.
In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management.
In software development, peer review is a type of software review in which a work product (document, code, or other) is examined by its author and one or more colleagues, in order to evaluate its technical content and quality.
In computing, source code is any collection of code, possibly with comments, written using a human-readable programming language, usually as plain text.
In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.
Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, and Linux.
Synopsys, Inc., an American company, is the leading company by sales in the Electronic Design Automation industry.
Technical debt (also known as design debt or code debt) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer.
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved to pass the new tests, only.
A text editor is a type of computer program that edits plain text.
Type generalization is a technique commonly used in refactoring.
In computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use.
VHDL-AMS is a derivative of the hardware description language VHDL (IEEE standard 1076-1993).
Visual Assist is a plugin for Microsoft Visual Studio developed by Whole Tomato Software.
In computer security, a vulnerability is a weakness which can be exploited by a Threat Actor, such as an attacker, to perform unauthorized actions within a computer system.
William F. (Bill) Opdyke (born c. 1958) is an American computer scientist, and enterprise architect at JPMorgan Chase, known for his early work on code refactoring.
The Wing is an integrated development environment (IDE) from Wingware that is designed specifically for the programming language Python, to reduce development and debugging time, coding errors, and make it easier to understand and navigate Python code.
Xcode is an integrated development environment (IDE) for macOS containing a suite of software development tools developed by Apple for developing software for macOS, iOS, watchOS, and tvOS.
Automated code refactoring, Automated refactoring, Automatic refactoring, Code Grooming, Code Refactoring, Code refactor, Extract Method, Hardware refactoring, Redesign (software), Reengineering (software), Refactor, Refactor code, Refactored, Refactored solutions, Refactoring, Refactorings.