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 computer 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 software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.
Software development is the process used to conceive, specify, design, program, document, test, and bug fix in order to create and maintain applications, frameworks, or other software components. Software development involves writing and maintaining the source code, but in a broader sense, it includes all processes from the conception of the desired software through the final manifestation, typically in a planned and structured process often overlapping with software engineering. Software development also includes research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.
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.
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.
Component-based software engineering (CBSE), also called component-based development (CBD), is a style of software engineering that aims to build software out of loosely-coupled, modular components. It emphasizes the separation of concerns among different parts of a software 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.
Unicom System Architect is an enterprise architecture tool that is used by the business and technology departments of corporations and government agencies to model their business operations and the systems, applications, and databases that support them. System Architect is used to build architectures using various frameworks including TOGAF, ArchiMate, DoDAF, MODAF, NAF and standard method notations such as sysML, UML, BPMN, and relational data modeling. System Architect is developed by UNICOM Systems, a division of UNICOM Global, a United States-based company.
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.
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 (SDLC) 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.
INGENIAS is an open-source software framework for the analysis, design and implementation of multi-agent systems (MAS).