Search results
Results from the WOW.Com Content Network
In software programming, SOLID is a mnemonic acronym for five design principles intended to make object-oriented designs more understandable, flexible, and maintainable. Although the SOLID principles apply to any object-oriented design, they can also form a core philosophy for methodologies such as agile development or adaptive software ...
In the field of software engineering, the interface segregation principle (ISP) states that no code should be forced to depend on methods it does not use. [1] ISP splits interfaces that are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them.
The single-responsibility principle (SRP) is a computer programming principle that states that "A module should be responsible to one, and only one, actor." [1] The term actor refers to a group (consisting of one or more stakeholders or users) that requires a change in the module.
Liskov's notion of a behavioural subtype defines a notion of substitutability for objects; that is, if S is a subtype of T, then objects of type T in a program may be replaced with objects of type S without altering any of the desirable properties of that program (e.g. correctness).
In object-oriented programming, the open–closed principle (OCP) states "software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification"; [1] that is, such an entity can allow its behaviour to be extended without modifying its source code.
Robert Cecil Martin (born 5 December 1952), colloquially called "Uncle Bob", [3] is an American software engineer, [2] instructor, and author. He is most recognized for promoting many software design principles and for being an author and signatory of the influential Agile Manifesto.
Separation of concerns is a form of abstraction. As with most abstractions, separating concerns means adding additional code interfaces, generally creating more code to be executed. The extra code can result in higher computation costs in some cases, but in other cases also can lead to reuse of more optimized code.
Larman states that "the critical design tool for software development is a mind well educated in design principles. It is not UML or any other technology." [ 3 ] : 272 Thus, the GRASP principles are really a mental toolset, a learning aid to help in the design of object-oriented software.