This biography of a living person relies too much on references to primary sources .(September 2009) |
Donald Firesmith | |
---|---|
Born | Oklahoma City, Oklahoma | June 14, 1952
Nationality | American |
Citizenship | United States |
Alma mater | Arizona State University |
Known for | Method Framework for Engineering System Architectures, Method engineering |
Scientific career | |
Fields | System engineering, software engineering, Requirements engineering, method engineering, and object-oriented design |
Institutions | Software Engineering Institute |
Donald G. Firesmith (born June 14, 1952) is an American software engineer, consultant, and trainer at the Software Engineering Institute.
Firesmith received his B.A. in Mathematics and German from Linfield College in 1975 and his M.A. in Mathematics from Arizona State University in 1977. He also studied one year at Ludwig Maximilian University of Munich.
Firesmith started working in the computer business as a software developer in 1979 and has been quality engineer, configuration manager, and data manager for Computer Science Corporation in the US, Germany, and Switzerland. From 1984 to 1988 he was an OO methodologist at Magnavox Electronic Systems Corporation. And from 1988 to 1995 he was President of Advanced Software Technology Specialists, a small consulting and training company.
From 1994 to 1997 he has been an acquisition editor and editor and chief of Reference Books at SIGS Books. And further he was a Senior advisory software engineer at StorageTek, where he worked as a technical leader, requirements engineer, and software architect, Chief architect Lante Corporation, which specialized in producing eMarketplaces, and Chief architect for the North American Business Unit of Cambridge Technology Partners. From 2003 through 2020, he was a Principal Engineer at the Software Engineering Institute where he works in the Client Technical Solutions Software Solutions Division helping the United States Government acquire software-intensive systems. [1] Since retiring in 2020, he has been a full-time novelist.
Firesmith was named a Distinguished Engineer by the Association for Computing Machinery in 2015. [2]
Firesmith is a co-founder with Brian Henderson-Sellers and Ian Graham of the international OPEN Consortium. [3] [4] [5] Firesmith was the principal developer of the OPEN Modeling Language. [6] Firesmith is the founder of the OPEN Process Framework Repository Organization and the developer of its large repository of free, open-source, reusable method components. [7]
The OPEN approach to software development is founded on situational method engineering (SME). This is a means by which a software development team can construct a method and process that is appropriate for their own particular situation or circumstances. [8] [9] [10] Fragments of methods, conformant with an international software engineering metamodel [11] standard such as ISO/IEC 24744 and stored in a repository, are individually selected and the method composed from these method fragments. The SME approach is based on research by many groups worldwide – results from a recent conference are published. [12]
Firesmith is the primary developer of the Method Framework for Engineering System Architectures (MFESA). [13] [14] This framework consists of the following:
He is the author of several technical books in system and software engineering as well as numerous technical articles, conference papers, and tutorials [15] A selection:
Firesmith is also the author of several modern paranormal fantasy, apocalyptic science fiction, action and adventure novels:
Kent Beck is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto, the founding document for agile software development. Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.
Martin Fowler is a British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.
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, and/or implementation of the software, while preserving its functionality. Potential advantages of refactoring may include improved code readability and reduced complexity; these can improve the source code's maintainability and create a simpler, cleaner, or more expressive internal architecture or object model to improve extensibility. Another potential goal for refactoring is improved performance; software engineers face an ongoing challenge to write programs that perform faster or use less memory.
The unified modeling language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system.
Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.
In software engineering, a design pattern describes a relatively small, well-defined aspect of a computer program in terms of how to write the code.
Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.
Grady Booch is an American software engineer, best known for developing the Unified Modeling Language (UML) with Ivar Jacobson and James Rumbaugh. He is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments.
The Zachman Framework is an enterprise ontology and is a fundamental structure for enterprise architecture which provides a formal and structured way of viewing and defining an enterprise. The ontology is a two dimensional classification schema that reflects the intersection between two historical classifications. The first are primitive interrogatives: What, How, When, Who, Where, and Why. The second is derived from the philosophical concept of reification, the transformation of an abstract idea into an instantiation. The Zachman Framework reification transformations are: identification, definition, representation, specification, configuration and instantiation.
Ivar Hjalmar Jacobson is a Swedish computer scientist and software engineer, known as a major contributor to UML, Objectory, Rational Unified Process (RUP), aspect-oriented software development, and Essence.
A metamodel is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction, and development of the frames, rules, constraints, models, and theories applicable and useful for modeling a predefined class of problems. As its name implies, this concept applies the notions of meta- and modeling in software engineering and systems engineering. Metamodels are of many types and have diverse applications.
Domain-specific modeling (DSM) is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain-specific language to represent the various facets of a system.
A system architecture is the conceptual model that defines the structure, behavior, and more views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system.
Brian Henderson-Sellers is an English computer scientist residing in Sydney, Australia, and Professor of Information Systems at the University of Technology Sydney. He is also Director of the Centre for Object Technology and Applications at University of Technology Sydney.
Domain-driven design (DDD) is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts. DDD is against the idea of having a single unified model; instead it divides a large system into bounded contexts, each of which have their own model.
Enterprise engineering is the body of knowledge, principles, and practices used to design all or part of an enterprise. An enterprise is a complex socio-technical system that comprises people, information, and technology that interact with each other and their environment in support of a common mission. One definition is: "an enterprise life-cycle oriented discipline for the identification, design, and implementation of enterprises and their continuous evolution", supported by enterprise modelling. The discipline examines each aspect of the enterprise, including business processes, information flows, material flows, and organizational structure. Enterprise engineering may focus on the design of the enterprise as a whole, or on the design and integration of certain business components.
A metaCASE tool is a type of application software that provides the possibility to create one or more modeling methods, languages or notations for use within the process of software development. Often the result is a modeling tool for that language. MetaCASE tools are thus a kind of language workbench, generally considered as being focused on graphical modeling languages.
In software engineering, a software development process or software development life cycle is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
Method engineering in the "field of information systems is the discipline to construct new methods from existing methods". It focuses on "the design, construction and evaluation of methods, techniques and support tools for information systems development".
INGENIAS is an open-source software framework for the analysis, design and implementation of multi-agent systems (MAS).