30 June 2007

šŸŒSoftware Engineering: Black Box (Definitions)

"Objects or chunks of code that can function independently, where changes made to one part of a piece of software will not affect others." (Gavin Powell, "Beginning Database Design", 2006)

"A component or device with an input and an output, whose inner workings need not be understood by or accessible to the user." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

"A risk model that lacks transparency of its specific risk assumptions, measures, and findings. These models sometimes create as many risks for the organization as they are meant to manage." (Annetta Cortez & Bob Yehling, "The Complete Idiot's Guide® To Risk Management", 2010)

"A component or device with an input and an output whose inner workings need not be understood by or accessible to the user." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"Is a metaphor describing how people are unable to see or understand how technologies work and is particularly used to characterize the lack of understanding of how an algorithm works. While we can understand the outputs of artificial intelligence (AI) - in terms of recommendations, decisions and so on - the processes to achieve them are too complicated for us to understand. Concerns about the black box nature of AI center on its apparent lack of accountability, potential unseen biases and the inability to have clear visibility into what is driving an AI’s potentially life-changing decisions." (Accenture)

šŸŒSoftware Engineering: Feature (Definitions)

"An attribute of a component or system specified or implied by requirements documentation (for example reliability, usability or design constraints). (IEEE 1008) 

"A product capability or attribute that fulfills a specific customer or market need and provides an appropriate benefit. A mobile device battery with a long life (the feature) meets the need of a customer who uses their portable device for communicating and Web browsing (needs)." (Steven Haines, "The Product Manager's Desk Reference", 2008)

[features:] "The specific attributes of a product or service." (Gina Abudi & Brandon Toropov, "The Complete Idiot's Guide to Best Practices for Small Business", 2011)

"Feature is used in data science and machine learning contexts for both “raw” or observable variables and “latent” ones, extracted or constructed from the original set." (Robert J Glushko, "The Discipline of Organizing: Professional Edition" 4th Ed, 2016)

"A distinctive factual attribute of a product or service." (Pamela Schure & Brian Lawley, "Product Management For Dummies", 2017)

"An aspect of system state (e.g., audit logs, network activity) that can be monitored for potential use in the detection of some phenomena of interest, such as an attack on a target system." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"A distinguishing characteristic of a software item (e.g., performance, portability, or functionality)." (IEEE 829)

"In a machine learning context, a feature is an attribute of an input, especially a numerical attribute. For example, if the input is a document, the number of unique tokens in the document is a feature. The words present in a document are also referred to as features." (Alex Thomas, "Natural Language Processing with Spark NLP", 2020)

šŸŒSoftware Engineering: Fault Tolerance (Definitions)

"A property of neural computing systems that allows the system to function and gradually degrade when a small number of processing elements are destroyed or disabled." (Guido Deboeck & Teuvo Kohonen (Eds), "Visual Explorations in Finance with Self-Organizing Maps" 2nd Ed., 2000)

"Fault Tolerance is the ability of an IT system to continue to function as designed even though a fault has occurred." (Martin Oberhofer et al, "Enterprise Master Data Management", 2008)

"The ability of a system to provide an uninterrupted service, despite the failure of one or more of the system’s components." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

"The ability of a system or component to continue normal operation despite the presence of hardware or software faults." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"The capability of a system to provide uninterrupted service despite the failure of one or more of the system’s components." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"1. The capability of the software product or a component to maintain a specified level of performance in case of wrong inputs (see also robustness). 2. The capability of the software product or a component to maintain a specified level of performance in case of software faults (defects) or of infringement of its specified interface." (Tilo Linz et al, "Software Testing Foundations" 4th Ed., 2014)

"The ability of a system to tolerate a fault and continue to operate. Fault tolerance systems often use redundant hardware, such as additional hard drives or additional servers, to eliminate a single point of failure." (Darril Gibson, "Effective Help Desk Specialist Skills", 2014)

"Ability to continue operate after failure of a component part" (ITIL)

"The capability of the software product to maintain a specified level of performance in cases of software faults (defects) or of infringement of its specified interface." (ISO 9126)

26 June 2007

šŸŒSoftware Engineering: Design Pattern (Definitions)

"A design pattern is a reusable solution for a software design problem. Patterns are platform independent, the same pattern can be used in different environments." (Jens Dietrich, "From Business Rules to Application Code: Code Generation Patterns for Rule Defined Associations", 2009)

"A way of representing a contextualized solution to a design problem with sufficient precision and explanation that it is an effective guide to action, but allowing scope for creative adaptation to specific needs." (Peter Goodyear & Dai F Yang, "Patterns and Pattern Languages in Educational Design", 2009)

"Common solutions to common problems, particularly in software design." (Tony C Shan & Winnie W Hua, "Data Caching Patterns" [in "Encyclopedia of Information Communication Technology"] 2009)

"Defines and explains systematically a general design to a recurrent problem of design in object oriented system." (Fuensanta Medina-DomĆ­nguez et al, "Patterns in the Field of Software Engineering" [in "Encyclopedia of Information Science and Technology" 2nd Ed.], 2009)

"Describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that one can use this solution a million times over without ever doing it the same way twice." (Franca Garzotto & Symeon Retalis, "A Critical Perspective on Design Patterns for E-Learning", 2009)

"Design patterns are standard solutions to common problems in software design." (Ghita K MostƩfaoui, "Software Engineering for Mobile Multimedia: A Roadmap", 2009)

"Design patterns represent solutions to problems that arise when developing software within a particular context. Design patterns capture the static and dynamic structure and collaboration among key participants in software designs. Design patterns are generic design pieces that need to be instantiated before uses." (Jing Dong et al, "Design Patterns from Theory to Practice" [in "Encyclopedia of Information Science and Technology" 2nd Ed.], 2009)

"Expressing the gist of a solution so that it can be reused many times. Defining a pattern, or a pattern system, is a way to capture the design knowledge of a community, to share it and to leverage it for future developments." (Eddy Boot et al, "Supporting Decision Making in Using Design Languages for Learning Designs and Learning Objects", 2009)

"In software engineering, it is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. [...] Design patterns deal specifically with problems at the level of software design." (Salvatore Scifo, "Accessing Grid Metadata through a Web Interface", 2009)

"A design pattern is a general, proven, and beneficial solution to a common, reoccurring problem in software design. Built upon similar experiences, design patterns represent 'best-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)

"A semi-formal way of documenting a solution to a design problem in a particular field of expertise." (Manuel Ecker et al, "Game-Based Learning Design Patterns: An Approach to Support the Development of 'Better' Educational Games", 2011)

"A well-tried solution to a common problem that captures experience and good practice in a form that can be reused. It is an abstract representation than can be instantiated in a number of ways." (Ian Sommerville, "Software Engineering" 9th Ed., 2011)

"General solution for a common problem that occurs when designing software. A design pattern is reusable, so that it might be applied in many systems that suffer of a common problem." (MƔrcio Ribeiro et al, "Recommending Mechanisms for Modularizing Mobile Software Variabilities", 2012)

"[...] a design pattern [...] describes a solution to a 'typical' software design problem. A pattern provides a general template for a solution that can be applied in many different situations. It describes the main elements of a solution in an abstract way that can be specialized for a specific problem at hand." (Michael T Goodrichet al, "Data Structures and Algorithms in Python", 2013)

"A design pattern is an abstract description of best practice that has worked successfully in different systems and environments, and it acts as a reusable solution that may be used in many situations. It is more a description or template on how to solve the problem within a particular context, rather than a finished solution." (Gerard O’Regan, "Concise Guide to Software Engineering: From Fundamentals to Application Methods", 2017)

"Design patterns consists of shared guidelines helping design problems. Design patterns commonly used in software engineering and is also used in ontological engineering to solve common problems." (Galip Kaya & Arif Altun, "Educational Ontology Development" [in "Encyclopedia of Information Science and Technology" 4th Ed.], 2018)

25 June 2007

šŸŒSoftware Engineering: Arity (Definitions)

 "How many terms an operator takes. The possible values for a C++ operator's arity are unary, binary, and ternary." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"The characteristic defining the quantity allowed in a relationship. For example, unary = 1, binary = 2, and ternary = 3." (Sharon Allen & Evan Terry, "Beginning Relational Data Modeling" 2nd Ed., 2005)

"The number of arguments to a function." (Dean Wampler & Alex Payne, "Programming Scala", 2009)

"In object role modeling, the number of objects t a role in a predicate, or relationship." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"The degree or arity of a relationship is the number of entity types or categories of resources in the relationship. This is usually, though not always, the same as the number of arguments in the relationship expression." (Robert J Glushko, "The Discipline of Organizing: Professional Edition" 4th Ed., 2016)

šŸŒSoftware Engineering: Patterns (Definitions)

"A named description of a problem, solution, when to apply the solution, and how to apply the solution in new contexts." (Craig Larman, "Applying UML and Patterns", 2004)

"A named strategy for solving a recurring problem." (Bruce MacIsaac & Per Kroll, "Agility and Discipline Made Easy: Practices from OpenUP and RUP", 2006)

"A reusable entity representing knowledge and experience aggregated by an expert in solving a recurring problem in a domain." (Pankaj Kamthan, "A Perspective on Software Engineering Education with Open Source Software", 2007)

"Patterns (in the computer science sense) describe best practice solutions and different realization variants of a special group of systems. Patterns are abstractions from concrete forms. Examples are architecture patterns, design patterns, and process patterns." (Alke Martens & Andreas Harrer, "Software Engineering in e-Learning Systems", Encyclopedia of Information Technology Curriculum Integration, 2008)

"Patterns provide a proven solution to a repeating problem in a given context. In other words, patterns should be considered as a way to put artifacts into context and to describe a reusable solution to a recurring problem. These artifacts can be best practices, guidelines, services, blueprints, source code skeletons, and frameworks." (Martin Oberhofer et al, "Enterprise Master Data Management", 2008)

"A common combination of logic, interactions, and behaviors that form a consistent or characteristic arrangement. An important use of patterns is the idea of design templates that are general solutions to integration problems. They will not solve a specific problem, but they provide a sort of architectural outline that may be reused in order to speed up the development process." (David Lyle & John G Schmidt, "Lean Integration: An Integration Factory Approach to Business Agility", 2010)

"A recurring combination of data and task management, separate from any specific algorithm. Patterns are universal in that they apply to and can be used in any programming system. Patterns have also been called dwarfs, motifs, and algorithmic skeletons. Patterns are not necessarily tied to any particular hardware architecture or programming language or system." (Michael McCool et al, "Structured Parallel Programming", 2012)

"A general reusable solution to a commonly occurring problem within a given context." Sergey V Zykov, "Crisis Response and Management", 2018) 

šŸŒSoftware Engineering: Service-Oriented Architecture [SOA] (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", 2006)

"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 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)

"A way of designing software applications for reusability and flexibility. It involves designing loosely coupled software components called services." (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)

"An architectural style to enable loosely coupled systems and promote re-usable services based on open standards." (Martin Oberhofer et al, "The Art of Enterprise Information Architecture", 2010)

"Defines a development paradigm which has loosely coupled, distributed modules called 'services' as its build blocks. Services offer clear interfaces through which service consumers can discover and make use of them." (Carlos Kamienski et al, "Managing the Future Internet: Services, Policies and Peers", 2010)

"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." (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)

"An approach to building applications that implements business processes or services by using a set of loosely coupled black-box components orchestrated to deliver a well-defined level of service." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"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)

"Service-Oriented Architecture expresses an architecture that define the use of software services." (Laura C Rodriguez-Martinez et al, "Service-Oriented Computing Applications (SOCA) Development Methodologies: A Review of Agility-Rigor Balance", 2021)

"A multitier architecture relying on services that support computer-to-computer interaction over a network." (Oracle, "Oracle Database Concepts")

"Service-oriented architecture (SOA) is a design paradigm and discipline that helps IT meet business demands. Some organizations realize significant benefits using SOA including faster time to market, lower costs, better application consistency and increased agility. SOA reduces redundancy and increases usability, maintainability and value. This produces interoperable, modular systems that are easier to use and maintain." (Gartner) 

"Service‑oriented architecture (SOA) is an architectural approach to designing applications around a collection of independent services. A service can be any business functionality that completes an action and provides a specific result, such as processing a customer order or compiling an inventory report." (NGINX) [source

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)

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.