16 June 2007

🌁Software Engineering: Design Review (Definitions)

"A formal, documented, comprehensive, and systematic examination of a design to evaluate the design requirements and the capability of the design to meet these requirements, and to identify problems and propose solutions." (Sandy Shrum et al, "CMMI: Guidelines for Process Integration and Product Improvement", 2003)

"A process or meeting during which a system, hardware, or software design is presented to stakeholders for comment or approval." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"the quality-assurance process in which all aspects of a system are reviewed publicly prior to the striking of code." (William H Inmon, "Building the Data Warehouse", 2005)

[preliminary design review (PDR):] "in a traditional waterfall process, a review of the preliminary architectural concepts, meant to ensure the validity of subsequent work. In the Harmony/ESW process, the PDR is optional but can be performed at the end of a microcycle in which the primary architectural concerns have been addressed." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"A formal, documented, comprehensive, and systematic examination of a design to evaluate the design requirements and the capability of the design to meet these requirements, and to identify problems and propose solutions." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"A process where all aspects of a system design are reviewed publicly before code construction starts." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A series of meetings wherein all aspects of the database and application code are reviewed for efficiency, effectiveness, and accuracy." (Craig S Mullins, "Database Administration: The Complete Guide to DBA Practices and Procedures" 2nd Ed., 2012)

"A series of meetings wherein all aspects of the database and application code are reviewed for efficiency, effectiveness, and accuracy." (Craig S Mullins, "Database Administration", 2012)

" the scheduled-in checkpoints for assessing the design progress towards meeting product requirements and budget." (Atila Ertas, "Transdisciplinary Engineering Design Process", 2018)

15 June 2007

🌁Software Engineering: Mashup (Definitions)

"A program (possibly installed on a Web page) that combines content from more than one source: for example, Google Maps and a real-estate listing service." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

"A lightweight Web application that is often created by end users and combines information or capabilities from more than one existing source to deliver new functions and insights." (Martin Oberhofer et al, "The Art of Enterprise Information Architecture", 2010)

"A combination of application outputs, content objects, or data attributes that create new structures from the parts." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"An application or Web page that pulls information from multiple sources, creating a new functionality." (Linda Volonino & Efraim Turban, "Information Technology for Management" 8th Ed., 2011)

"A program (possibly installed on a web page) that combines content from more than one source, such as Google Maps and a real estate listing service." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"An assembly environment for running and creating mashups." (Martin Oberhofer et al, "The Art of Enterprise Information Architecture", 2010)

🌁Software Engineering: Markup Language (Definitions)

"A formal way of annotating a document or collection of digital data using embedded encoding tags to indicate the structure of the document or datafile and the contents of its data elements. This markup also provides a computer with information about how to process and display marked-up documents. HTML, XML, and SGML are examples of standardized markup languages." (J P Getty Trust, "Introduction to Metadata" 2nd Ed., 2008)

"A markup language is used to structure a document’s character data into logical components, and 'name' them in a manner that is useful. These labels (element names) provide either formatting information about how the character data should be visually presented (for a word processor or a web browser, for instance) or they can provide 'semantic' (meaningful) information about what kind of data the component represents. Markup languages provide a simple format for exchanging text-based character data that can be understood by both humans and machines." (Craig F Smith & H Peter Alesso, "Thinking on the Web: Berners-Lee, Gödel and Turing", 2008)

"A way of encoding information that uses plain text containing special tags often delimited by angle brackets (< and >). Specific markup languages are often created, based on XML, to standardize the interchange of information between different computer systems and services. See also XML." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

"A set of special codes placed inside a text document to identify the elements of the document and optionally to give instructions to software using the document." (Jan L Harrington, "SQL Clearly Explained" 3rd Ed. , 2010)

"A set of symbols or rules that describe format, structure, or display of a document or file separate from the actual contents." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A mechanism to identify structures in a document." (Charles Cooper & Ann Rockley, "Managing Enterprise Content: A Unified Content Strategy" 2nd Ed., 2012)

"A way of encoding information that uses plain text containing special tags often delimited by angle brackets (< and >). Specific markup languages are based on XML to standardize the interchange of information between different computer systems and services. See also XML." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"A language that uses tags to annotate the information in a document" (Nell Dale & John Lewis, "Computer Science Illuminated, 6th Ed.", 2015)

13 June 2007

🌁Software Engineering: Service-Oriented Architecture (Definitions)

"A technology framework to support the design, development, and deployment of diverse business applications in a loosely coupled way. The goal of SOA is to encourage reuse of both data and functionality via the use of units of work (services) that are made available to different business processes across the enterprise." (Jill Dyché & Evan Levy, "Customer Data Integration: Reaching a Single Version of the Truth", 2006)

"There are various definitions for SOA. Some specify only that it is an approach for architectures where the interfaces are services. However, in a more specific sense (and according to my understanding), SOA is an architectural paradigm for dealing with business processes distributed over a large and heterogeneous landscape of existing and new systems that are under the control of different owners." (Nicolai M Josuttis, "SOA in Practice", 2007)

"An architectural style for creating an enterprise architecture that exploits the principles of service orientation to achieve a tighter relationship between the business and the information systems that support the business." (Tilak Mitra et al, "SOA Governance", 2008)

"A way of designing software applications for reusability and flexibility. It involves designing loosely coupled software components called services. See also service." (John Goodson & Robert A Steward, "The Data Access Handbook", 2009)

"An architectural style in which software systems are modular and some components (service providers) are distributable, discoverable, substitutable, and shareable." (W Roy Schulte & K Chandy, "Event Processing: Designing IT Systems for Agile Companies", 2009)

"An architecture that enables IT resources to be made available to other participants in a network as independent services that are accessed in a standardized way without knowledge of the underlying platform implementation." (David G Hill, "Data Protection: Governance, Risk Management, and Compliance", 2009)

"An IT infrastructure that allows disparate applications to exchange data and use consistent processes as they interact with each other. SOA is the foundation architecture for data services. |" (Tony Fisher, "The Data Asset", 2009)

"In its most general sense, an approach for architectures where the interfaces are services. In a more specific sense, it is an architectural style for dealing with business processes distributed over a large and heterogeneous landscape of existing and new systems that are under the control of different owners. The key concepts of SOA are services, interoperability, and loose coupling." (David Lyle & John G Schmidt, "Lean Integration", 2010)

"The software design and implementation architecture of loosely coupled, coarse-grained, reusable services that can be integrated with each other through a wide variety of platform-independent service interfaces." (Alex Berson & Lawrence Dubov, "Master Data Management and Data Governance", 2010)

"An architectural concept that defines the use of services to support a variety of business needs. In SOA, existing IT assets (called services) are reused and reconnected rather than the more time consuming and costly reinvention of new systems." (Linda Volonino & Efraim Turban, "Information Technology for Management" 8th Ed, 2011)

"An application architecture in which all functions, or services, are created with invokable interfaces that are called to perform business processes." (Craig S Mullins, "Database Administration", 2012)

"A software design and software architecture design pattern independent of any vendor, product, or technology and based on discrete pieces of software providing application functionality as services to other applications. For instance, this software design defines how two computing entities, such as programs, interact in such a way as to enable one entity to perform a unit of work on behalf of another entity." (Jim Davis & Aiman Zeid, "Business Transformation: A Roadmap for Maximizing Organizational Insights", 2014)

"An information technology architecture that separates infrastructure, applications, and data into layers." (Robert F Smallwood, "Information Governance: Concepts, Strategies, and Best Practices", 2014)

"Style of architecture based on the concept of service, designed to simplify interactions between architecture blocks while providing the system with significant flexibility. " (Gilbert Raymond & Philippe Desfray, "Modeling Enterprise Architecture with TOGAF", 2014)

"A design similar to a component-based architecture except the pieces are implemented as services." (Rod Stephens, "Beginning Software Engineering", 2015)

"A method for organizing a company's entire information system functions so all information components are viewed as services that are provided to the organization." (Jan L Harrington, "Relational Database Design and Implementation" 3rd Ed., 2009)

🌁Software Engineering: Analysis (Definitions)

 "An investigation of a domain that results in models describing its static and dynamic characteristics. It emphasizes questions of 'what', rather than 'how'. architecture Informally, a description of the organization, motivation, and structure of a system. Many different levels of architectures are involved in developing software systems, from physical hardware architecture to the logical architecture of an application framework." (Craig Larman, "Applying UML and Patterns", 2004)

[systems analysis] "The craft of modeling the system's functions and data." (Suzanne Robertson & James Robertson, "Mastering the Requirements Process" 2nd Ed., 2006)

"The initial fact-finding process discovering what is to be done by a computer system." (Gavin Powell, "Beginning Database Design", 2006)

"The process of separating a problem into its constituent parts or basic principles so as to determine the nature of the whole and to examine it methodically. Related to planning." (Robert McCrie, "Security Operations Management" 2nd Ed., 2006)

[systems analysis] "Conducting a needs assessment to determine what a new or modified information system should do." (Jan L Harrington, "Relational Database Design and Implementation" 3rd Ed., 2009)

"The process of identifying the essential characteristics of a system or element." (Bruce P Douglass, "Real-Time Agility", 2009)

[system analysis] "A set of activities, methods, techniques, tools focused on the translation of the business requirements into systems requirements. It describes a system and its limitations to the environment and provides a well-founded understanding of the environment and the system requirements." (IQBBA, "Standard glossary of terms used in Software Engineering", 2011)

"Separation of the whole into its parts; an examination of a complex, its individual parts, and their relations; the separation of the ingredients of a substance; a statement of the constituents of a mixture." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

[systems analysis:] "The process that establishes the need for and the extent of an information system." (Carlos Coronel et al, "Database Systems: Design, Implementation, and Management" 9th Ed., 2011)

"Process of breaking complex concepts into smaller component aspects in order to increase understanding of underlying issues." (Joan C Dessinger, "Fundamentals of Performance Improvement" 3rd Ed, 2012)

"Thoughtful investigation of real-world systems." (Meta S Brown, "Data Mining For Dummies", 2014)

"A common interaction with an organizing system." (Robert J Glushko, "The Discipline of Organizing: Professional Edition" 4th Ed., 2016)

08 June 2007

🌁Software Engineering: Anti-pattern (Definitions)

"An antipattern is just like a pattern, except that instead of a solution it gives something that looks superficially like a solution, but isn’t one." (Andrew Koenig, Journal of Object-Oriented Programming Vol 8(1), 1995)

"[...] an antipattern is a common approach to solving a problem that leaves us worse off than when we started." (Scott W Ambler & Larry L Constantine, "The Unified Process Construction Phase: Best Practices for Completing the Unified Process", 2000)

"An antipattern is a structure used in software design that seems to be beneficial initially, but has significant, unintended negative consequences." (Jens Dietrich, "From Business Rules to Application Code: Code Generation Patterns for Rule Defined Associations", 2009)

"An anti-pattern is a general, proven, and non-beneficial problem (i.e., bad solution) in a software product or process. It strongly classifies the problem that exhibits negative consequences and provides a solution. Built upon similar experiences, anti-patterns represent 'worst-practices' about how to structure or build a software architecture." (Jörg Rech et al, "Knowledge Patterns" [in "Encyclopedia of Knowledge Management" 2nd Ed.], 2011)

"An antipattern is a software design practice that is ineffective or counterproductive—in other words, the opposite of a 'best practice'. To put it another way, an antipattern is something that the software allows you to do, but that may have an adverse functional or performance impact." (Google)

"An inferior process pattern that teams follow or a design solution that teams commonly make. Antipatterns are used to reinforce better planning and provide a problem solving reference point." (IBM)

"Repeated action, process, structure or reusable solution that initially appears to be beneficial and is commonly used but is ineffective and/or counterproductive in practice." (ISQTB)

05 June 2007

🌁Software Engineering: Implementation (Definitions)

"Carrying out of planned activity." (Timothy J  Kloppenborg et al, "Project Leadership", 2003)

"(1) The process of translating a design into hardware components, software components, or both. Includes detailed design, coding (for software), fabrication and inspection (for hardware), and unit (component) test. For software, detailed design and coding are usually combined. (2) The result of the process in (1). Also called construction." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"The process of creating software from a design of that software. A physical database is an implementation of a database model." (Gavin Powell, "Beginning Database Design", 2006)

"Deploying a software solution in a company is accomplished through an iterative sequence of activities. These activities are bundled into an implementation project." (Janice M Roehl-Anderson, "IT Best Practices for Financial Managers", 2010)

"All organizational activities involved in the introduction, management, and acceptance of technology to support one or more organizational processes." (Linda Volonino & Efraim Turban, "Information Technology for Management" 8th Ed., 2011)

"Installing and converting to use of a software application." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"Execution or fulfillment of a plan or design; putting into action." (Joan C Dessinger, "Fundamentals of Performance Improvement" 3rd Ed., 2012)

"How a piece of code actually goes about doing its job. Users of the code should not count on implementation details staying the same unless they are part of the published interface." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"The activity of making the essential requirements work in the real world." (James Robertson et al, "Complete Systems Analysis: The Workbook, the Textbook, the Answers", 2013)

"When used by programmers, this term usually means writing the code. When used by managers, this often means deployment." (Rod Stephens, "Beginning Software Engineering", 2015)

03 June 2007

🌁Software Engineering: Rational Unified Process (Definitions)

"A customizable method framework providing guidance for a variety of project types and enterprise needs. RUP is an extension of OpenUP/Basic and is delivered through the IBM Rational Method Composer." (Bruce MacIsaac & Per Kroll, "Agility and Discipline Made Easy: Practices from OpenUP and RUP", 2006)

"A rigorous, four-phase software development process created by IBM Rational that is evolutionary in nature." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"An iterative software development process framework created by the Rational Software Corporation. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by development organizations and software project teams, who select the elements of the process that are appropriate for their needs." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"An Iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process but rather an adaptable process framework intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the unified process." (Pierre Pureur & Murat Erder, "Continuous Architecture", 2015)

"A proprietary adaptable iterative software development process framework consisting of four project lifecycle phases: inception, elaboration, construction and transition." (IQBBA)

01 June 2007

🌁Software Engineering: Error (Definitions)

"(1) The difference between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. For example, a difference of 30 meters between a computed result and the correct result. (2) An incorrect step, process, or data definition. For example, an incorrect instruction in a computer program. (3) An incorrect result. For example, a computed result of 12 when the correct result is 10. (4) A human action that produces an incorrect result. For example, an incorrect action on the part of a programmer or operator."  (IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990)

"A problem or defect in code that usually causes a program to halt." (Michael Fitzgerald, "Learning Ruby", 2007)

"A systematic fault or mistake." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"A human action that produces an incorrect result. Also a general, informally used term for terms like mistake, fault, defect, bug, failure." (Tilo Linz et al, "Software Testing Foundations, 4th Ed", 2014)

"Act that departs from what should be done; imprudent deviation, unintentional mistake or omission." (Tom Klammer, "Statement of Cash Flows: Preparation, Presentation, and Use", 2018)

"An error is that part of the system state that may cause a subsequent failure: a failure occurs when an error reaches the service interface and alters the service." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"Design flaw or malfunction that causes a failure of one or more CIs/services" (ITIL)

"Human action that produces an incorrect result." (Software Quality Assurance) [after IEEE 610] 

"The difference between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. For example, a difference of 30 meters between a computed result and the correct result. (2) A human action that causes an incorrect result. See discussion under failure. See also defect, fault, mistake, problem." (IEEE Std 610.12-1990)

20 May 2007

🌁Software Engineering: DevOps (Definitions)

"An application delivery philosophy that stresses communication, collaboration, and integration between software developers and their information technology (IT) counterparts in operations. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services." (Pierre Pureur & Murat Erder, "Continuous Architecture", 2015)

DevOps is an approach based on lean and agile principles in which business owners and the development, operations, and quality assurance departments collaborate to deliver software in a continuous manner that enables the business to more quickly seize market opportunities and reduce the time to include customer feedback. Indeed, enterprise (Sanjeev Sharma & Bernie Coyne, "DevOps For Dummies" 2nd Ed, 2015)

"Is a method for software development and management that integrates the development and deployment cycles to achieve a more agile, continuous evolution of software-based products and services" (Diego R López & Pedro A. Aranda, "Network Functions Virtualization: Going beyond the Carrier Cloud", 2015)

"DevOps is a mindset, a culture, and a set of technical practices. It provides communication, integration, automation, and close cooperation among all the people needed to plan, develop, test, deploy, release, and maintain a Solution." (Dean Leffingwell, "SAFe 4.5 Reference Guide: Scaled Agile Framework for Lean Enterprises" 2nd Ed., 2018)

"Short for development operations, an information technology environment in which development and operations are tightly tied together, yielding small incremental releases to gain user feedback." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"The practice of incorporating developers and members of operations and quality assurance (QA) staff into software development projects to align their incentives and enable frequent, efficient, and reliable releases of software products." (Shon Harris & Fernando Maymi, "CISSP All-in-One Exam Guide" 8th Ed., 2018)

"The tighter integration between the developers of applications and the IT department that tests and deploys them. DevOps is said to be the intersection of software engineering, quality assurance, and operations." (William Stallings, "Effective Cybersecurity: A Guide to Using Best Practices and Standards", 2018)

"A software engineering practice that aims at unifying software development (Dev) and software operation (Ops)." (Jun Bi et al, "Automatic Address Scheduling and Management for Broadband IP Networks", Emerging Automation Techniques for the Future Internet, 2019)

"Develop operations, or DevOps, is an agile methodology that merges the functions of software development and operations in the enterprise software development domain. This approach has been adopted in the networking world to facilitate a programmable approach to network operations. Often when applied to networking the term is changed to NetOps." (Patrick Moore, "Model-Centric Fulfillment Operations and Maintenance Automation", Emerging Automation Techniques for the Future Internet, 2019)

"Practices and technologies that promote tighter coupling of software development (Dev) and operations (Ops) - typically marked by more automation, continuous monitoring, shorter development cycles and higher deployment frequencies. A key driver for security policy automation. DevSecOps is a related term that refers to practices and technologies that aim to embed security in DevOps practices." (Myo Zarny et al, "Network Security Policy Automation: Enterprise Use Cases and Methodologies", 2019)

"Development and operations is an abbreviation for 'development' and 'operations'; is a software engineering methodology for managing software development (Dev) and technology operations (Ops). The main aim of DevOps is to enable automation and tracing for all phases of software implementation, from integration, testing, releasing to deployment and infrastructure management." (Antoine Trad & Damir Kalpić, "Using Applied Mathematical Models for Business Transformation", 2020)

"Development and operations (DevOps) has been adopted by prominent software and service companies (e.g., IBM) to support enhanced collaboration across the company and its value chain partners. In this way, DevOps facilitates uninterrupted delivery and coexistence between development and operation facilities, enhances the quality and performance of software applications, improving end-user experience, and help to simultaneous deployment of software across different platforms." (Kamalendu Pal & Bill Karakostas, "Software Testing Under Agile, Scrum, and DevOps", 2021)

"DevOps is a sprint-based approach that can catch coding flaws during the development of code due to security reviews, rework on previous sprint cycles, and testing." (David A Bird, "Hacker and Non-Attributed State Actors", Real-Time and Retrospective Analyses of Cyber Security, 2021)

"It is a set of practices emerging to bridge the gaps between operation and developer teams to achieve a better collaboration." (Mirna Muñoz, "Boosting the Competitiveness of Organizations With the Use of Software Engineering", 2021)

"It is a way to work were the software is rapidly developed and immediately deployed for operating in a computational productive environment. It is continuous delivery product development lifecycle. It must automate the development process. DevOps is both a culture and a set of technologies and tools used for automation." Laura C Rodriguez-Martinez et al, "Service-Oriented Computing Applications (SOCA) Development Methodologies: A Review of Agility-Rigor Balance", 2021)

"People from software development and operations work together to enhance the speed of delivery of new software features. It is a concept for bridging the gap between software development and software operations and integrating the logic of common responsibility for the complete software delivery lifecycle into one cross-functional team." (Anna Wiedemann et al, "Transforming Disciplined IT Functions: Guidelines for DevOps Integration", 2021)

"DevOps is a set of tools and processes that help automate IT operations." (Aniruddha Deswandikar,"Engineering Data Mesh in Azure Cloud", 2024)

"DevOps is a catch‑all term for the blending of roles between developers and operations engineers. As the barriers between roles such as database administrator, systems administrator, and software engineer have eroded, the term DevOps has emerged as a way of describing the intersection of responsibilities from all these camps, and their increasing interrelation in the lifecycle of a product. A crucial enabling aspect of this movement is the increased use of automation in building, deploying, and monitoring large applications." (NGINX) [source]

"DevOps is a collection of best practices and working methods for the software development process whose cumulative goal is to shorten the development life cycle and support practice such as continuous integration, continuous delivery and continuous deployment." (Sum Logic) [source]

"DevOps is a set of practices that works to automate and integrate the processes between software development and IT teams, so they can build, test, and release software faster and more reliably." Atlassian [source

"DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes." (Amazon) [source]

"DevOps refers to a broad range of practices related to the development and operation of software code in production in cloud data centers. DevOps is centered in Agile project management techniques and microservice support. DevOps approaches the entire software development lifecycle with automation based around version control standards." (VMWare) [source]

"The cultural movement that stresses communication, collaboration and integration between software developers and IT operations." (Global Knowledge)

16 May 2007

🌁Software Engineering: Prototype (Definitions)

"A preliminary type, form, or instance of a product or product component that serves as a model for later stages or for the final, complete version of the product. This model (e.g., physical, electronic, digital, analytical) can be used for the following (and other) purposes: assessing the feasibility of a new or unfamiliar technology; assessing or mitigating technical risk; validating requirements; demonstrating critical features; qualifying a product; qualifying a process; characterizing performance or product features; elucidating physical principles; quality. The ability of a set of inherent characteristics of a product, product component, or process to fulfill requirements of customers." (Sandy Shrum et al, "CMMI®: Guidelines for Process Integration and Product Improvement", 2003)

"Software program, hardware assembly, or mockup built to assess feasibility or risks, validate requirements, demonstrate critical features, quantify (measure) performance, or evaluate alternative designs." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A simulation of the product using either software prototyping tools, low-fidelity whiteboards, or paper mock-ups. The prototype is intended to make iteasier for stakeholders to understand and describe their requirements." (Suzanne Robertson & James Robertson, "Mastering the Requirements Process" 2nd Ed., 2006)

"A validated build of a system produced at the end of an iteration microcycle." (Bruce P Douglass, "Real-Time Agility", 2009)

"1.An artifact in iterative development. A prototype may be disposable or the base for further incremental development. 2.Verb. To create a test artifact for the sole purpose of determining whether the design is feasible or will be successful given environmental restraints." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"An early sample or model built to test a concept or process or to act as a thing to be replicated or learned from. In Requirements Engineering prototypes can be used for requirements elicitation and validation." (IQBBA, "Standard glossary of terms used in Software Engineering", 2011)

"A method of obtaining early feedback on requirements by providing a working model of the expected product before actually building it. " (For Dummies, "PMP Certification All-in-One For Dummies" 2nd Ed., 2013)

"A simulation, usually automated, of the computer system to be implemented." (James Robertson et al, "Complete Systems Analysis: The Workbook, the Textbook, the Answers", 2013)

"A mockup of some or all of the application to let the developers and customers study an aspect of the system. Typically a software prototype is a program that mimics part of the application you want to build." (Rod Stephens, "Beginning Software Engineering", 2015)

"The first model of a product. In software, it’s the incomplete product used for testing and validation before final development." (Pamela Schure & Brian Lawley, "Product Management For Dummies", 2017)

15 May 2007

Software Enfineering: Model-Driven Development (Defintions)

[Model Driven Software Development:] "The process of developing software using different models on different levels of abstraction with (automated) transformations between these models." (Anneke Kleppe et al, "MDA Explained: The Model Driven Architecture™: Practice and Promise", 2003)

[Agile Model-Driven Development (AMDD):] "A highly iterative approach to development in which you create agile models before you write source code." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

[Model-driven software development (MDSD):] "An approach where a significant amount of schematic code, which has the same structure but varies depending on the concrete situation, is generated out of an abstract model." (Nicolai M Josuttis, "SOA in Practice", 2007)

[Model-Driven Engineering:] "Paradigm of software engineering where the development of software is directed using models and transformations." (M J Escalona & G Aragón, "The Use of Metamodels in Web Requirements to Assure the Consistence", 2008)

[Model-Driven Engineering:] "This software development methodology is centered around the notion of modeling (as opposed to coding) to be the primary activity in the software development process. Model refinement, transformation and code generation techniques are then applied to produce executable software artifacts in a semi-automatic way." (Cesare Pautasso, "Compiling Business Process Models into Executable Code", Handbook of Research on Business Process Modeling, 2009)

[Model-Driven Development (MDD):] "A software development process that creates models or abstractions of a system or data in order to increase basic compatibility between systems." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"Is a software design and implementation approach that encourages efficient use of models in the software development process, and supports reuse of best practices when creating families of systems. In general, it provides a way to organize and manage software architectures supported by automated tools and services for both defining the models and facilitating transformations between different models, including the automated transformation of the software system specification into automated code generation." (Christian Scholz et al, "From the Lab to the Factory Floor: Engineering Software for Wireless Sensor Networks", 2012)

[Model-Based Systems Engineering (MBSE):] "Model-Based Systems Engineering is the practice of developing a set of related system models that help define, design, and document a system under development. These models provide an efficient way to explore, update, and communicate system aspects to stakeholders, while significantly reducing or eliminating dependence on traditional documents." (Dean Leffingwell, "SAFe 4.5 Reference Guide: Scaled Agile Framework for Lean Enterprises" 2nd Ed., 2018)

08 May 2007

🌁Software Engineering: Exception (Definitions)

"An error condition that will divert a program's flow of control to an exception handler or to the calling program. PL/SQL supports both built-in system exceptions and programmer-defined exceptions. Exceptions may be named or unnamed." (Bill Pribyl & Steven Feuerstein, "Learning Oracle PL/SQL", 2001)

"An object that is passed from the area of code where a problem occurs to the part of the code that is going to handle the problem." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"A runtime error-reporting mechanism that requires programs to handle raised exceptions or have their stack unwound until each exception is handled (caught) or the thread terminates." (Damien Watkins et al, "Programming in the .NET Environment", 2002)

"Allows you to catch and manage runtime and other errors while programming. Managed with rescue, ensure, and raise. Compare with error." (Michael Fitzgerald, "Learning Ruby", 2007)

"a condition that violates one or more preconditional invariants; a kind of event sent to indicate such a violation." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"Object that represents some kind of error such as an attempt to divide by zero or an attempt to parse a string that has an invalid format." (Rod Stephens, "Stephens' Visual Basic® Programming 24-Hour Trainer", 2011)

"A fancy term for an error." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"A condition or event that cannot be handled by a normal process." (IBM, "Informix Servers 12.1", 2014)

"An error that prevents the program from continuing unless handled by the software." (Matt Telles, "Beginning Programming", 2014)

"An unexpected condition in a program such as a divide by zero or trying to access a missing file. If the code doesn’t catch and handle the exception, the program crashes." (Rod Stephens, "Beginning Software Engineering", 2015)

"Associated with an unusual, sometimes unpredictable event, detectable by software or hardware, which requires special processing; the event may or may not be erroneous" (Nell Dale et al, "Object-Oriented Data Structures Using Java" 4th Ed., 2016)

"A signal that some unexpected condition has occurred in the program. In Java, exceptions are objects that are subclasses of Exception or Error (which themselves are subclasses of Throwable). Exceptions in Java are “raised” with the throw keyword and handled with the catch keyword. See also catch, throw, and throws." (Daniel Leuck et al, "Learning Java" 5th Ed., 2020)

06 May 2007

🌁Software Engineering: Use Case (Definitions)

"A description of how the system will be used." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"The definition of a behavior of the software product based on gradually described interactions between user and system." (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"A set of possible sequences of interactions (scenarios) between systems and users (actors) in a particular environment and related to a particular goal. The use case and goal are sometimes considered to be synonymous. Use cases capture the intended behavior of the system, without specifying how that behavior is implemented. Use cases can be employed to identify, clarify, and organize system requirements, and, during later stages of software development, to validate design, create test cases, and create online help and user manuals." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A sequence of actions a system performs that yields an observable result of value to a particular actor. A use-case class contains all main, alternate, and exception flows of events related to producing the 'observable result of value'." (Bruce MacIsaac & Per Kroll, "Agility and Discipline Made Easy: Practices from OpenUP and RUP", 2006)

"A concrete usage of a system, characterized by a set of scenarios, a set of requirements to which it traces, and a specification state machine." (Bruce P Douglass, "Real-Time Agility", 2009)

"A description of how end users will use a software code. It describes a task or a series of tasks that users will accomplish using the software and includes the responses of the software to user actions. Use cases may be included in the Software Requirements Document (SRD) as a way of specifying the end users’ expected use of the software." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"A model of human/machine interaction similar to data flow diagrams, in that it represents communications between external entities (here called 'Actors') and processes, but the assumption is that the processes involved represent systems (typically shown only as a single process representing the entire system). The content of data flows are not documented and, rather than being decomposed into lower-level detail, these details are simply described in text as 'steps'. There is no notion of storing data in intermediate 'data stores'." (David C Hay, "Data Model Patterns: A Metadata Map", 2010)

"A sequence of transactions in a dialogue between an actor and a component or system with a tangible result, where an actor can be a user or anything that can exchange information with the system." (IQBBA, "Standard glossary of terms used in Software Engineering", 2011)

"A sequence of transactions in a dialogue between an actor and a component or system with a tangible result. An actor can be a user or anything that can exchange information with the system." (Tilo Linz et al, "Software Testing Foundations" 4th Ed, 2014)

"A description of a series of interactions between actors. The actors can be users or parts of the application. A simple template might include a title, main success scenario, and extensions (other variations on the scenario)." (Rod Stephens, "Beginning Software Engineering", 2015)

"It is a list of events and actions among systems and users in a specific environment and for a specific goal." (Yassine Maleh et al, 'Strategic IT Governance and Performance Frameworks in Large Organizations", 2019)

"Technique used to define required functionality and objectives, and to design tests." (ITIL)

30 April 2007

🌁Software Engineering: Failover (Definitions)

"The process in which, in response to a node or resource failure, resources in a cluster switch ownership and start on another node in the server cluster. This term applies to a server cluster/failover cluster combination only. In log shipping implementations, the similar terms switch and role change are used to describe the change in ownership that occurs between primary and secondary servers." (Allan Hirt et al, "Microsoft SQL Server 2000 High Availability", 2004)

"The ability of a secondary device to take the place of a primary device during failure of the primary device." (Tom Petrocelli, "Data Protection and Information Lifecycle Management", 2005)

"The process that allows a secondary member of a replica set to become primary in the event of a failure." (MongoDb, "Glossary", 2008)

"A backup operation that automatically switches to a standby system if the primary system fails or is taken offline. It is an important fault-tolerant function that provides system availability." (Shon Harris & Fernando Maymi, "CISSP All-in-One Exam Guide" 8th Ed., 2018)

"An automatic operation that switches to a redundant or standby system or node in the event of a software, hardware, or network interruption. See also failback." (Sybase, "Open Server Server-Library/C Reference Manual", 2019)

Related Posts Plugin for WordPress, Blogger...

About Me

My photo
Koeln, NRW, Germany
IT Professional with more than 24 years experience in IT in the area of full life-cycle of Web/Desktop/Database Applications Development, Software Engineering, Consultancy, Data Management, Data Quality, Data Migrations, Reporting, ERP implementations & support, Team/Project/IT Management, etc.