04 March 2007

🌁Software Engineering: eXtreme Programming (Definitions)

"A disciplined and deliberate agile development method that focuses on the critical activities required to build software." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"An agile process created by Kent Beck. XP articulates five values to guide you in your project: Communication, Simplicity, Feedback, Courage, and Respect." (Bruce MacIsaac & Per Kroll, "Agility and Discipline Made Easy: Practices from OpenUP and RUP", 2006)

"An agile software development approach championed by Kent Beck and others." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"A software engineering methodology that promotes agility and simplicity, typically involving pair programming and a cycle of frequent testing and feedback." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

 "A development approach that focuses on building projects incrementally using frequent builds. It includes techniques such as coding to the specific problem rather than a general one, paired programming, and test-driven development." (Rod Stephens, "Start Here! Fundamentals of Microsoft® .NET Programming", 2011)

"A software engineering methodology used within agile software development whereby core practices are programming in pairs, doing extensive code review, unit testing of all code, and simplicity and clarity in code. See also Agile software development." (Requirements Engineering Qualifications Board, "Standard glossary of terms used in Requirements Engineering", 2011)

"An updated approach to Rapid Application Development using object-oriented techniques and a minimum of specifications." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A lightweight agile software engineering methodology used whereby a core practice is test-first programming." (Tilo Linz et al, "Software Testing Foundations, 4th Ed", 2014)

"A development model that takes typical programming practices (such as code reviews) to extremes (pair programming)." (Rod Stephens, "Beginning Software Engineering", 2015)

"An engineering methodology consisting of code-focused practices to ensure high quality of development." (Fayez Salma & Jorge M Gómez, "Challenges and Trends of Agile", 2021)

"A software engineering methodology used within agile software development whereby core practices are programming in pairs, doing extensive code review, unit testing of all code, and simplicity and clarity in code. See also agile software development." (IQBBA)

🌁Software Engineering: Requirements Traceability Matrix (Definitions)

"A matrix describing the traceability between requirements and work products." (Lars Dittmann et al, "Automotive SPICE in Practice", 2008)

"A table that links requirements to their origin and traces them throughout the project life cycle." (Cynthia Stackpole, "PMP Certification All-in-One For Dummies", 2011)

"A grid that links product requirements from their origin to the deliverables that satisfy them." (For Dummies, "PMP Certification All-in-One For Dummies" 2nd Ed., 2013)

"A two-dimensional table, which correlates two entities (e.g., requirements and test cases). The table is used to determine and achieve coverage, to trace back and forth from one entity to the other, and to assess the impact of proposed changes." (ISTQB)

"Is a document, usually in the form of a table, that correlates any two baselined documents that require a many to many relationship to determine the completeness of the relationship." (IQBBA)

03 March 2007

🌁Software Engineering: Hierarchy (Definitions)

"A structure in which components are ranked into levels of subordination; each component has zero, one, or more subordinates; and no component has more than one superordinate component."  (IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990)

"An organizational structure that defines the relationship between master data elements." (Janice M Roehl-Anderson, "IT Best Practices for Financial Managers", 2010)

"The principle of hierarchy advocates the creation of a hierarchical organization of abstractions using techniques such as classification, generalization, substitutability, and ordering." (Girish Suryanarayana et al, "Refactoring for Software Design Smells: Managing Technical Debt", 2015)

"An organisation structure wherein the authority available to a role increases upwards through the structure, increasing as work complexity increases. The authority structure of the organisation is made visible and accessible by means of role titles. In a correctly structured organisation each role has the authority that is necessary to perform the work assigned to the role and this provides the connection between role authority and work." (Catherine Burke et al, "Systems Leadership, 2nd Ed,", 2018)


27 February 2007

🌁Software Engineering: Service Orchestration (Definitions)

"A way of aggregating services to business processes. In contrast to choreography, orchestration composes services to a new service that has central control over the whole process." (Nicolai M Josuttis, "SOA in Practice", 2007)

"A business uses orchestration in order to define the electronic message interaction with other business partners in order to fulfill its obligations." (Christoph Bussler, "Business-to-Business (B2B) Integration", 2009)

"It is a service composition paradigm where the execution of subordinate services is coordinated in a centralized fashion. It is often referred to as a concrete service composition, which can be executed by a service engine or container." (Carlos Kamienski et al, "Managing the Future Internet: Services, Policies and Peers", 2010)

"Orchestration defines the local behavior of a component. We use UML activity diagrams to specify orchestration models." (Surya B Kathayat, "Collaboration-Based Model-Driven Approach for Business Service Composition", 2012)

The process that governs the creation, instantiation, and composition of the different elements a service consists of. It includes a coordinated set actions at several supporting infrastructures (computing, storage, network…) and layers (local and WAN network)" (Diego R López & Pedro A. Aranda, "Network Functions Virtualization: Going beyond the Carrier Cloud", 2015)

"The logic behind the cloud that provides the services. Typically broken into Brokerage or cross cloud orchestration, service orchestration (or workflow orchestration), software orchestration (which coordinates the build of software on a platform) and infrastructure orchestration (which coordinates the build of the cloud resources for compute, network and storage that provides the platform)." (Richard Ehrhardt, "Cloud Build Methodology", 2017)

"Coordination of systems and actions that permit the instantiation of functions and/or the control and allocation of resources in order to compose a network service." (Luis Contreras, "Slicing Challenges for Operators", 2019)

"It defines the service collaboration at business process level." (Laura C Rodriguez-Martinez et al, "Service-Oriented Computing Applications (SOCA) Development Methodologies: A Review of Agility-Rigor Balance", 2021)

"The action of mixing totally different technologies and connecting security tools that cowl each security-specific and non-security facet, so as to form them cable to figure along and improve response to cyber-attacks." (Heru Susanto et al, "Data Security for Connected Governments and Organisations: Managing Automation and Artificial Intelligence", 2021)

"The automation and provisioning of network services to create the best user experience." (Forrester)

26 February 2007

🌁Software Engineering: Service Choreography (Definitions)

"A way of aggregating services to business processes. In contrast to orchestration, choreography does not compose services to a new service that has central control over the whole process. Instead, it defines rules and policies that enable different services to collaborate to form a business process. Each service involved in the process sees and contributes only a part of it." (Nicolai M Josuttis, "SOA in Practice", 2007)

"An a priori global and public model meant to capture all the interactions taking place for a given purpose among a number of participants." (Giorgio Bruno & Marcello La Rosa, "Collaboration Based on Web Services", 2008)

"Choreography is the message exchange behavior that a business exposes in order to participate in a business relationship based on electronic message exchanges." (Christoph Bussler, "Business-to-Business (B2B) Integration", 2009)

"It is a service composition paradigm where no centralized entity is responsible for coordinating the execution of the subordinate services. It is often seen as an abstract service composition since it defines cooperation (e.g., message exchanging) rules but no actual execution flow." (Carlos Kamienski et al, "Managing the Future Internet: Services, Policies and Peers", 2010)

[Web Service Choreography:] "A particular web service composition where several peer web services collaborate in a distributed environment. In a choreography there is not a services acting as a leader and synchronizing the work of the other services, as happen in case of orchestration. This makes choreography more difficult to realize in real settings." (Liliana Ardissono et al, "An Event-Based Middleware for the Management of Choreographed Services", 2012)

"Contract between two or more systems, which establishes how they cooperate to achieve some common goal." (José C Delgado, "Frameworks for Distributed Interoperability", Encyclopedia of Information Science and Technology, 2015)

"Global behavior is called choreography. Choreography is specified using UML activity diagrams. We have used two levels of choreography models: flow-global and flow-localized." (Surya B Kathayat, "Collaboration-Based Model-Driven Approach for Business Service Composition", 2012)

"Define the service collaboration at service-computing level." (Laura C Rodriguez-Martinez et al, "Service-Oriented Computing Applications (SOCA) Development Methodologies: A Review of Agility-Rigor Balance", 2021)

"Defines the requirements and sequences through which multiple Web services interact." (NIST SP 800-95)

🌁Software Engineering: Component (Definitions)

"An application-level software unit supported by a container. Components are configurable at deployment time. The J2EE platform defines four types of components: enterprise beans, Web components, applets, and application clients." (Kim Haase et al, "The J2EE™ Tutorial", 2002)

"A single part in a subassembly, subsystem, or system. An example is a stamped metal part before it has anything assembled to it." (Clyde M Creveling, "Six Sigma for Technical Processes: An Overview for R Executives, Technical Leaders, and Engineering Managers", 2006)

"A software architecture developed by Microsoft to build component-based applications. COM is used to communicate between components on the same computer. It’s part of a strategic building-block approach for developing application programs." (Evan Levy & Jill Dyché, "Customer Data Integration", 2006)

"A single part in a subassembly, subsystem or system. An example would be a stamped metal part prior to having anything assembled to it." (Lynne Hambleton, "Treasure Chest of Six Sigma Growth Methods, Tools, and Best Practices", 2007)

"A subassembly or piece/part used in a product that allows a product to achieve the desired level of functionality. A fuel injector is a component used in an automobile engine." (Steven Haines, "The Product Manager's Desk Reference", 2008)

"A metasubtype of class; a large-scale class that contains internal parts and provides services via a well-defined interface." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"A piece of computer software that can be used as a building block in larger systems. Components can be parts of business applications that have been made accessible through Web Service related standards and technologies, such as WSDL, SOAP, and XML. See WSDL, SOAP, and XML." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies 2nd Ed.", 2009)

"For our purposes, an aggregation of cohesive types that expose services through well-defined abstractions, while encapsulating implementation details and minimizing coupling to other components. (There is a wide-range of definitions for component in computer science and industry.)" (Dean Wampler & Alex Payne, "Programming Scala", 2009)

"(1) A minimal software item that e.g. can be tested in isolation. (2) A component is a potential, or actual, part of some larger system, or specification [TGilb]." (International Qualifications Board for Business Analysis, "Standard glossary of terms used in Software Engineering", 2011)

"1.A discrete object or entity that is a part of a larger system." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A program object similar to a control, but without a visible presence on the form at run time." (Rod Stephens, "Start Here! Fundamentals of Microsoft® .NET Programming", 2011)

"A programming entity similar to a control except it has only code and doesn't have a visible appearance on the screen. You still place it on a form at design time, however, and the program's code can interact with it." (Rod Stephens, "Stephens' Visual Basic® Programming 24-Hour Trainer", 2011)

"A discrete piece of content that is about a specific subject, has an identifiable purpose, and can stand alone. Components can be reused multiple times in multiple information products." (Charles Cooper & Ann Rockley, "Managing Enterprise Content: A Unified Content Strategy, 2nd Ed.", 2012)

"A piece of computer software that can be used as a building block in larger systems. Components can be parts of business applications that have been made accessible through web service–related standards and technologies, such as WSDL, SOAP, and XML." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"1. A minimal software item that has its own specification or that can be tested in isolation.  2. A software unit that fulfills the implementation standards of a component model (EJB, CORBA, .NET)." (Tilo Linz et al, "Software Testing Foundations, 4th Ed", 2014)

"An identifiable element within the program or project that provides a particular function or group of related functions." (Project Management Institute, "Navigating Complexity: A Practice Guide", 2014)

"A constituent part, element, or piece of a complex whole." (Project Management Institute, "Practice Standard for Scheduling" 3rd Ed., 2019)

"A minimal software item that can be tested in isolation." (SQA)

"General term referring to one part of something more complex" (ITIL)

25 February 2007

🌁Software Engineering: Reverse Engineering (Definitions)

"The process of analyzing a subject system with two goals in mind: (1) to identify the system’s components and their interrelationships; and, (2) to create representations of the system in another form or at a higher level of abstraction." (Margaret Y Chu, "Blissful Data ", 2004)

"The construction of a model from a set of source code files." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"The process of transforming the physical schema of any particular database into a logical model. Data modeling CASE tools have facilities for reverse engineering." (Paulraj Ponniah, "Data Warehousing Fundamentals for IT Professionals", 2010)

"The process of deriving a draft physical model representing an implemented system (application and/or database) from automated scanning of the implemented application and database objects, as a first step towards redesign." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"The process of taking a competitor's product apart and putting it back together again to better understand the manufacturing process and the product design." (Leslie G Eldenburg & Susan K Wolcott, "Cost Management" 2nd Ed., 2011)

🌁Software Engineering: Peer Review (Definitions)

"The review of work products performed by peers during development of the work products to identify defects for removal. The term peer review is used in the CMMI Product Suite instead of the term work product inspection. Essentially, these terms mean the same thing." (Sandy Shrum et al, "CMMI®: Guidelines for Process Integration and Product Improvement", 2003)

"A formal review of a complete work product performed by a group to identify defects for removal, and to collect metrics." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A system using reviewers who are professional equals; a process used for checking the work performed by one’s equals (peers) to ensure that it meets specific criteria." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"In relation to internal audit, a form of external assessment that involves a minimum of three organizations assessing each other's internal audit functions using a round-robin approach (A reviews B who reviews C who reviews A)." (Sally-Anne Pitt, "Internal Audit Quality", 2014)

"A review of a software work product by colleagues of the producer of the product for the purpose of identifying defects and improvements. Examples are inspection, technical review and walkthrough." (IQBBA)

🌁Software Engineering: Review (Definitions)

"A process or meeting during which a work product or set of work products is presented to stakeholders for verification or approval." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

[formal review:] "A formal meeting at which work products are presented to the end user, customer, or other interested parties (stakeholders) for comment and approval. It can also review technical activities and project status." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"Formal check of an object (e.g., document or code) against specifications and applicable guidelines, performed by reviewers. The aim is to identify defects, weaknesses, or gaps of the review object, to comment, document, and determine the object’s expected capability level." (Lars Dittmann et al, "Automotive SPICE in Practice", 2008)

"(1) Measuring, analyzing, checking of one or several characteristics of a unit (the review object), and comparing with defined requirements in order to decide if conformance for every characteristic has been achieved. (2) Abstract term for all analytical quality assurance measures independent of method and object. (3) An evaluation of a product or project status to ascertain discrepancies of the planned work results from planned results and to recommend improvements. Reviews include management review, informal review, technical review, inspection, and walkthrough." (Tilo Linz et al, "Software Testing Foundations" 4th Ed., 2014)

"An activity undertaken to determine the suitability, adequacy and effectiveness of the subject matter to achieve established objectives." (David Sutton, "Information Risk Management: A practitioner’s guide", 2014)

"An evaluation of a product or project status to ascertain discrepancies from planned results and to recommend improvements. Examples include management review, informal review, technical review, inspection, and walkthrough." (IEEE 1028)

"evaluation of a change, process, project, etc. ß its purpose it to ensure that all deliverables has been provided and to identify opportunities for improvement" (ITIL)

[formal review:] "A review characterized by documented procedures and requirements, e.g. inspection." (IQBBA)

[informal review:] "A review not based on a formal (documented) procedure." (IQBBA)

🌁Software Engineering: Agile Method (Definitions)

"Project management methodology, in which the development is characterized by the breakdown of tasks into short periods, with frequent reassessment of work and plans." (Jurgen Janssens, "Managing Customer Journeys in a Nimble Way for Industry 4.0", 2019)

"An evolutionary and iterative approach to software development with focuses on adaptation to changes." (Shanmuganathan Vasanthapriyan & Kalpani M U Arachchi, "Effectiveness of Scrum and Kanban on Agile-Based Software Maintenance Projects", 2020)

"An evolutionary and iterative approach to software development with focuses on adaption to changes." (Kamalendu Pal & Bill Karakostas, "Software Testing Under Agile, Scrum, and DevOps", 2021)

"Project management methodology, in which the development is characterized by the breakdown of tasks into short periods, with frequent reassessment of work and plans." (Jurgen Janssens, "It's All About Creating Customer Value: Activating Engagement Through CRM-Driven Projects", 2021)

🌁Software Engineering: Event-Driven Architecture (Definition)

"A software architecture pattern promoting the production, detection, consumption of, and reaction to events. Some consider EDA to be an extension of or complement to SOA; others consider EDA to be part of the SOA approach (a special message exchange pattern where the service provider sends a message to multiple consumers)." (Nicolai M Josuttis, "SOA in Practice", 2007)

"An architectural style in which one or more components in a software system are event-driven and minimally coupled. 'Minimally coupled' means that the only relationship between the event producer and the event consumer is a one-way, “fire and forget” notification. The producer does not get a response associated with the notification back from the consumer, and a notification does not prescribe the action the consumer will perform. Something is event-driven without being EDA if it is not minimally coupled." (W Roy Schulte & K Chandy, "Event Processing: Designing IT Systems for Agile Companies", 2009)

"A software architecture pattern promoting the production, detection, consumption of, and reaction to events. " (David Lyle & John G Schmidt, "Lean Integration: An Integration Factory Approach to Business Agility", 2010)

"A design where various parts of the system respond to events as they occur." (Rod Stephens, "Beginning Software Engineering", 2015)

24 February 2007

🌁Software Engineering: Quality Assurance (Definitions)

"A planned and systematic means for assuring management that the defined standards, practices, procedures, and methods of the process are applied." (Sandy Shrum et al, "CMMI®: Guidelines for Process Integration and Product Improvement", 2003)

"(1) Activities to ensure that an item or work product conforms to established requirements and standards. Also called product assurance. (2) Activities to ensure that defined standards, procedures, and processes are applied." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A business function that is responsible for the (often statistically based) evaluation of how well a product conforms to requirements (according to the PRD) and specifications (according to the PSD)." (Steven Haines, "The Product Manager's Desk Reference", 2008)

"A process for evaluating project performance in relation to the specified standard of quality." (Bonnie Biafore, "Successful Project Management: Applying Best Practices and Real-World Techniques with Microsoft® Project", 2011)

"All activities within quality management focused on providing confidence that quality requirements are fulfilled." (Tilo Linz et al, "Software Testing Foundations" 4th Ed., 2014)

"Part of quality management focused on providing confidence that quality requirements will be fulfilled." (ISO 9000)


🌁Software Engineering: Kanban Board (Definitions)

"A big board. (See big board.) Typically, columns indicate each task’s status. Columns might be labeled Backlog, Ready, Coding, Testing, Approval, and Done. In some variations, rows indicate the person assigned to each task." (Rod Stephens, "Beginning Software Engineering", 2015)

"A visualization tool that enables improvements to the flow of work by making bottlenecks and work quantities visible." (PMI, "Practice Standard for Scheduling" 3rd Ed., 2019)

"A workflow and work visualization chart describing activities flow within a project, originally created in the 1940s by Toyota." (Miguel A Garcia-Ruiz et al, "A User Study of Virtual Reality for Visualizing Digitized Canadian Cultural Objects", 2019)

🌁Software Engineering: Kanban (Definitions)

"An agile methodology where a team member who finishes his current item takes the next highest priority item from the project’s backlog. Kanban seeks to restrict the amount of work in progress at any given time." (Rod Stephens, "Beginning Software Engineering", 2015)

"In software development, a method for developing software on a just-in-time basis. Kanban removes the scrum time boxed method to track work, which is useful when your development team members have specialized skills." (Pamela Schure & Brian Lawley, "Product Management For Dummies", 2017)

"Agile method to manage work by limiting work in progress. Team members pull work as capacity permits, rather than work being pushed into the process when requested. Stimulates continuous, incremental changes. Aims at facilitating change by minimizing resistance to it." (Jurgen Janssens, "Managing Customer Journeys in a Nimble Way for Industry 4.0", 2019)

"An agile method inspired by the original Kanban inventory control system and used specifically for knowledge work." (Project Management Institute, "Practice Standard for Scheduling"  3rd Ed., 2019)

"An agile process framework with a flow control mechanism used for just-in-time pull driven production where the upstream processing activities are started by the downstream process request signals." (Shanmuganathan Vasanthapriyan & Kalpani M U Arachchi, "Effectiveness of Scrum and Kanban on Agile-Based Software Maintenance Projects", 2020)

"A method in software development which considered as a system for visualizing work and converting it into flow to reduce waste time and maximizing customer value." (Fayez Salma & Jorge M Gómez, "Challenges and Trends of Agile", 2021)

🌁Software Engineering: Microservices (Definitions)

"In computing, a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic Application Programming Interface (API). These services are small and highly decoupled and focus on doing a small task." (Pierre Pureur & Murat Erder, "Continuous Architecture", 2015)

"Are an IT architectural pattern for decoupling dependencies between complex software applications and enabling independent processes that than work together through independent APIs." (Anna Wiedemann et al, "Transforming Disciplined IT Functions: Guidelines for DevOps Integration", 2021)

"It is a specific way of decomposition of services in a greater granularity. Also, microservice represents a capability of the business process in a lesser level of abstraction than a service, Then, a microservice is a service but with greater granularity or in a lesser level of abstraction." (Laura C Rodriguez-Martinez et al, "Service-Oriented Computing Applications (SOCA) Development Methodologies: A Review of Agility-Rigor Balance", 2021)

"A piece of code or complete application that does one thing and does it well." (Forrester)

"Microservices is both an approach to software architecture that builds a large, complex application from multiple small components which each perform a single function (such as authentication, notification, or payment processing) and the term for the small components themselves. Each microservice is a distinct unit within the software development project, with its own codebase, infrastructure, and database. The microservices work together, communicating through web APIs or messaging queues to respond to incoming events." (NGINX) [source

"Microservices refer to the thousands of independent web standards, programming languages, database platforms, and web server components that are found in the contemporary software development lifecycle as developer tools." (VMWare) [source]

"The microservices architecture is a design approach to build a single application as a set of small services. Each service runs in its own process and communicates with other services through a well-defined interface using a lightweight mechanism, typically an HTTP-based application programming interface (API). Microservices are built around business capabilities; each service is scoped to a single purpose." (Amazon) 

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.