Skip to content
Category

Software design

page 1
software design
process by which an agent creates a specification of a software artifact
SOLID
In object-oriented programming, SOLID is a mnemonic acronym for five principles intended to make source code more understandable, flexible, and maintainable. Although the principles apply to object-oriented programming, they can also form a core philosophy for methodologies such as agile software development and adaptive software development.
multitier architecture
computing system architecture that may typically have three tiers, composed of a presentation tier, a domain logic tier, and a data storage tier
top-down and bottom-up design
strategies of information processing and ordering of knowledge
single responsibility principle
computer-programming principle that states that every class in a computer program should have responsibility over a single part of that program's functionality, which it should encapsulate
design by contract
design of software based on formal, precise and verifiable interface specifications for software components
domain driven design
software development process
behavior-driven development
Agile software development process
compiler-compiler
In computer science, a compiler-compiler or compiler generator is a programming tool that creates a parser, interpreter, or compiler from some form of formal description of a programming language and machine.
continuous delivery
software engineering approach in which teams produce software in short cycles, aiming at building, testing, and releasing software with greater speed and frequency
open/closed principle
a computer-programming principle that states that software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
systems design
organizing components structures and behaviors for any simple to complex system
General responsibility assignment software patterns
Guidelines in object-oriented design
object-oriented analysis and design
technical approach for analyzing and designing an application, system, or business
Conway's law
observation that organizations design systems mirroring their communication structures (Melvin Conway, 1968)
meta-modeling
thumb|320px|Example of a Geologic map information meta-model, with four types of meta-objects, and their self-references.
convention over configuration
software design paradigm
interface segregation principle
states that no client should be forced to depend on methods it does not use
Structured systems analysis and design method
systems approach to the analysis and design of information systems
functional specification
specification that describes the characteristics of an object
object-oriented design
approach to software design
Class-responsibility-collaboration card
software brainstorming tool
decomposition
breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain
structured analysis
method for analyzing and converting business requirements of a project into functional specifications for its conception, its implementation and its monitoring
worse is better
the idea that quality does not necessarily increase with functionality
paper prototyping
widely used method in the user-centered design process
end-user development
computer programming by people who are not professional software developers
hexagonal architecture
software design pattern
application domain
targeted subject area of a computer program
Booch method
developed by Grady Booch
function model
structured representation of the functions (activities, actions, processes, operations) within the modeled system or subject area
Software Design Description
written design description of a software product
Object-oriented modeling
approach to modeling an application
Motor Industry Software Reliability Association
organization
domain analysis
High-level design
initial stage in software design
Empathy Map
Visualization tool in design
Android Developer Challenge
programming contest by Google