Generated by GPT-5-mini| object-oriented analysis and design | |
|---|---|
| Name | Object-oriented analysis and design |
| First appeared | 1980s |
| Paradigm | Object-oriented |
| Influenced by | Structured analysis, Simula, Smalltalk |
object-oriented analysis and design
Object-oriented analysis and design is a software engineering approach that applies concepts from Simula, Smalltalk, Alan Kay, Ole-Johan Dahl, and Kristen Nygaard to model systems using objects, classes, and interactions. It matured alongside methods from Grady Booch, James Rumbaugh, Ivar Jacobson, Bertrand Meyer, and Booch method proponents, informing standards by Object Management Group, International Organization for Standardization, and practitioners at Rational Software. The approach influenced tools and languages such as C++, Java (programming language), C#, Python (programming language), and environments like Eclipse and Visual Studio.
Early foundations trace to Simula creators Ole-Johan Dahl and Kristen Nygaard and the Smalltalk project led by Alan Kay at Xerox PARC. The 1980s saw commercial adoption by Bjarne Stroustrup with C++ and by corporate research at Bell Labs, IBM, and Hewlett-Packard. During the 1990s, methodologists Grady Booch, James Rumbaugh, and Ivar Jacobson published influential works and unified practices under Rational Unified Process at Rational Software, while standards emerged via Object Management Group and the Unified Modeling Language specification by OMG. Academic discourse and industry practice intersected at conferences like OOPSLA, ICSE, and ECOOP, and in journals such as Communications of the ACM and IEEE Software.
Core principles derive from object-centered ideas advanced by Bertrand Meyer and exemplified in Design by Contract and SOLID (object-oriented design). Concepts include classes, objects, inheritance, polymorphism, encapsulation, abstraction, and message passing, all applied within paradigms discussed by Norwegian School of Economics researchers and popularized in textbooks by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design patterns cataloged in Design Patterns and formal methods like Z notation and Petri net adaptations for object systems complement pragmatic approaches.
Methodological evolution includes Structured Systems Analysis and Design Method, Yourdon/DeMarco, Jackson Structured Programming, and later object-centric frameworks like Booch method, Object Modeling Technique, Jacobson's Use-case methodology, and Unified Process. Lifecycle processes integrated with Agile software development practices such as Scrum (software development), Extreme Programming, and governance models from Capability Maturity Model Integration and ISO/IEC 12207. Project management and configuration control often reference organizations like Project Management Institute and IEEE standards for software engineering.
Modeling draws on the Unified Modeling Language developed by Object Management Group with contributions from Grady Booch, James Rumbaugh, and Ivar Jacobson. Diagrams include Class diagram, Sequence diagram, Use case diagram, State machine, Activity diagram, and Component diagram, each with formal semantics informed by research at Carnegie Mellon University, Massachusetts Institute of Technology, and Stanford University. Domain-driven design practices inspired by Eric Evans and tactical patterns from Domain-Driven Design integrate with model transformations in tools compatible with Model-Driven Architecture promoted by OMG.
Commercial and open-source environments supporting the approach include editors and IDEs such as Rational Rose, Enterprise Architect (software), IBM Rational Software Architect, Eclipse, IntelliJ IDEA, Visual Studio, and modeling frameworks like EMF (Eclipse Modeling Framework), Papyrus (software), and ArgoUML. Version control and collaboration tie into services like GitHub, GitLab, Bitbucket (Git) and continuous integration systems such as Jenkins (software), Travis CI, and CircleCI. Academic and industrial toolchains interface with SVN, Perforce, and static analysis platforms from Coverity and SonarSource.
O-O analysis and design has been applied in systems developed by NASA, ESA, Siemens, Siemens AG, General Electric, Bell Labs, AT&T, Microsoft, Google, Amazon (company), Facebook, Meta Platforms, Inc., Netflix, Inc., SAP SE, Oracle Corporation, IBM, HP Inc., Siemens Healthineers, Philips, Boeing, Airbus, and Lockheed Martin. Case studies documented at MITRE Corporation, Carnegie Mellon University Software Engineering Institute, and in procurement projects by United States Department of Defense and European Space Agency illustrate scalability, reuse, and integration challenges in enterprise resource planning systems by SAP SE and large-scale web architectures by Amazon (company).
Critiques have come from researchers associated with Edsger W. Dijkstra’s formal methods lineage and proponents of Functional programming languages like Haskell (programming language), OCaml, and Erlang (programming language), arguing that object orientation can obscure state and complicate formal verification. Analysts at Bell Labs and academics in University of Cambridge and Princeton University note issues with inheritance misuse, fragile base class problems, and impedance with concurrent models promoted by Lambda calculus research and actor models from Carl Hewitt. Debates at venues like PLDI and ICFP contrast O-O design with component-based, service-oriented, and functional-reactive architectures adopted by companies such as Twitter, Spotify, and Netflix, Inc..