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

24 February 2007

Software Engineering: Software Engineering (Definitions)

"Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines." (Peter Naur & Brian Randell, 1968)

“[Software engineering is the] establishment and use of sound engineering principles to obtain economically software that is reliable and works on real machines efficiently. (Friedrich Bauer, "Software Engineering", Information Processing, 1972) 

"(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. (2) The study of approaches as in (1)." (Sandy Shrum et al, "CMMI®: Guidelines for Process Integration and Product Improvement", 2003)

"(1) The disciplined and systematic application of methods, techniques, and tools to the development, operation, and maintenance of software and software-intensive systems. (2) The building of large, complex software-intensive systems by teams of engineers and programmers. (3) The study of the activities defined in (1) and (2)." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A discipline that advocates a systematic approach of developing high-quality software on a large-scale while taking into account the factors of sustainability and longevity, as well as, organizational constraints of time and resources." (Pankaj Kamthan, "Pair Modeling", 2008)

"Application of a systematic, disciplined, quantifiable approach to the development of Information Systems/Software." (Leonor Teixeira et al, "Web-Enabled System Design for Managing Clinical Information", 2008)

"Techniques, models, and processes to develop quality software" (M J Escalona & G Aragón, "The Use of Metamodels in Web Requirements to Assure the Consistence", 2008)

"To engineer the development of software comprises a rigorous analysis and design of the product, the application of formal methods in the development process an in the resulting product description, and modularization of the relevant parts of the software to allow for malleability and for reusability." (Alke Martens & Andreas Harrer, "Software Engineering in e-Learning Systems", 2008)

"It is the computer science discipline concerned with creating and maintaining software applications by applying technologies and practices from computer science, project management, engineering, application domains, and other fields." (Graciela D S Hadad & Jorge H Doorn, "Creating Software System Context Glossaries", 2009)

"Software engineering is a well-established discipline that groups together a set of techniques and methodologies for improving software quality and structuring the development process." (Ghita K Mostéfaoui, "Software Engineering for Mobile Multimedia: A Roadmap", 2009)

"The software engineering discipline covers the development of software systems. Software engineers focus on applying systematic, disciplined, and quantifiable approaches to the development, operation, and maintenance of software." (Rick Gibson, "Software and Systems Engineering Integration", 2009)

"A discipline that advocates a systematic approach of developing high-quality software on a large-scale while taking into account the factors of sustainability and longevity, as well as, organizational constraints of resources." (Pankaj Kamthan, "A Social Web Perspective of Software Engineering Education", 2010)

"Is a systematic and disciplined approach to developing software, which applies both computer science and engineering principles and practices to the creation, operation and maintenance of software systems." (Christian Scholz et al, "From the Lab to the Factory Floor: Engineering Software for Wireless Sensor Networks", 2012)

"Is the study and application of engineering to the design, development, and maintenance of software. In short, the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software." (Rosanna Costaguta, "Data Mining Applications in Computer-Supported Collaborative Learning", 2015)

"An engineering discipline that involves with all aspect of software development that applies engineering approaches in order to deliver high quality software products." (Seyed R Shahamiri, "The Challenges of Teaching and Learning Software Programming to Novice Students", 2018)

"The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software." (Tamer Abdou et al, "Developing a Glossary for Software Projects", Encyclopedia of Information Science and Technology, Fourth Edition, 2018)

"Software engineering is the discipline and best practices used in developing software." (Alex Thomas, "Natural Language Processing with Spark NLP", 2020)

"The application of engineering to the development of software in a systematic method." (Shanmuganathan Vasanthapriyan & Kalpani M U Arachchi, "Effectiveness of Scrum and Kanban on Agile-Based Software Maintenance Projects", 2020)

"The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches." (Antonio A M Costa, "Disciplined Teams vs. Agile Teams: Differences and Similarities in Software Development", 2021)

"The systematic application of engineering approaches to the development of software." (Jan Bosch et al, "Engineering AI Systems: A Research Agenda", 2021)

"It is the establishment and use of robust, targeted engineering principles to obtain economic, reliable, efficient software that satisfies the user needs." (Mirna Muñoz, "Boosting the Competitiveness of Organizations With the Use of Software Engineering", 2021)

"The application of engineering to the development of software in a systematic method." (Kamalendu Pal & Bill Karakostas, "Software Testing Under Agile, Scrum, and DevOps", 2021)

"The application and the study of systematic, disciplined, quantifiable approaches to the development, operation, and maintenance of software." (IEEE 610.12)

21 February 2007

Software Engineering: Inspection (Definition)

"Visual examination of work products to detect errors, violations of development standards, and other problems." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"The process of examining a component, subassembly, subsystem, or product for off-target performance, variability, and defects during either product development or manufacturing. The focus is typically on whether the item under inspection is within the allowable tolerances. As with all processes, inspection itself is subject to variability, and out-of-spec parts or functions might pass inspection inadvertently." (Clyde M Creveling, "Six Sigma for Technical Processes: An Overview for R Executives, Technical Leaders, and Engineering Managers", 2006)

"A core technique in software quality assurance where a group of reviewers independently and systematically examine software artifacts to find defects. Inspections are highly effective where software testing is not possible, in particular, for textual specifications and design documents." (Frank Padberg, "Counting the Hidden Defects in Software Documents", 2010)

"Examining or measuring to verify whether an activity, component, product, result, or service conforms to specified requirements. " (Cynthia Stackpole, "PMP® Certification All-in-One For Dummies®", 2011)

"A type of review that relies on visual examination of documents to detect defects - for example, violations of development standards and nonconformance to higher-level documentation. Inspection is the most formal review technique and therefore always based on a documented procedure." (Tilo Linz et al, "Software Testing Foundations" 4th Ed., 2014)

"A verification method in which one member of a team reads the program or design aloud line by line and the others point out errors" (Nell Dale & John Lewis, "Computer Science Illuminated" 6th Ed., 2015)

"Examination of a work product to determine whether it conforms to documented standards." (Project Management Institute, "A Guide to the Project Management Body of Knowledge (PMBOK® Guide )", 2017)

 "A type of review that relies on visual examination of documents to detect defects, e.g. violations of development standards and non- conformance to higher level documentation. The most formal review technique and therefore always based on a documented procedure" (IEEE 610, IEEE 1028)

20 February 2007

Software Engineering: Black-Box Testing (Definitions)

"A specification-based test that looks at a system or unit exclusively from the outside, that is, over its public interface;" (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"This test compares the externally observable behavior at the external software interfaces (without knowledge of their structure) with the desired behavior. Black-Box tests are frequently equated with »functional tests«, although they can of course also include non-functional tests. See also White-box test." (Lars Dittmann et al, "Automotive SPICE in Practice", 2008)

"A software testing methodology that looks at available inputs for an application and the expected outputs from each input." (Mike Harwood, "Internet Security: How to Defend Against Attackers on the Web" 2nd Ed., 2015)

"A test designed by someone who doesn’t know how the code works internally." (Rod Stephens, "Beginning Software Engineering", 2015)

"A testing technique that tests the functionality of the application under test without knowledge of the internal code structure, implementation details, and internal paths of the software." (Pooja Kaplesh & Severin K Y Pang, "Software Testing", Software Engineering for Agile Application Development, 2020)

"A method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied to virtually every level of software testing: unit, integration, system and acceptance." (NIST SP 800-192)

"A test methodology that assumes no knowledge of the internal structure and implementation detail of the assessment object." (CNSSI 4009-2015)

[black-box test design technique:] "Procedure to derive and/or select test cases based on an analysis of the specification, either functional or non-functional, of a component or system without reference to its internal structure." (ISTQB)

"Testing, either functional or non-functional, without reference to the internal structure of the component or system." (ISTQB)

19 February 2007

Software Engineering: White-box Testing (Definitions)

"An implementation-based test, in contrast to a specification-based test" (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"This test is derived knowing the inner structure of the software and based on the program code, design, interface descriptions, and so on. White-box tests are also called» structure based tests." (Lars Dittmann et al, "Automotive SPICE in Practice", 2008)

[white box test design technique:] "Any technique used to derive and/or select test cases based on an analysis of the internal structure of the test object (see also structural test)." (Tilo Linz et al, "Software Testing Foundations" 4th Ed., 2014)

"A software testing methodology that examines the code of an application. This contrasts with black box testing, which focuses only on inputs and outputs of an application." (Mike Harwood, "Internet Security: How to Defend Against Attackers on the Web" 2nd Ed., 2015)

"A test designed by someone who knows how the code works internally. That person can guess where problems may lie and create tests specifically to look for those problems." (Rod Stephens, "Beginning Software Engineering", 2015)

"The testing method where test cases are generated in order to test a program at a source code level." Pedro Delgado-Pérez et al, "Mutation Testing", 2015)

"A testing technique to test the internal structure, design and coding of a software solution." (Pooja Kaplesh & Severin K Y Pang, "Software Testing, Software Engineering for Agile Application Development", 2020)

"A test methodology that assumes explicit and substantial knowledge of the internal structure and implementation detail of the assessment object." (NIST SP 800-137)

[white-box test design technique:] "Procedure to derive and select test cases based on an analysis of the internal structure of a component or system." (ISTQB)

"Testing based on an analysis of the internal structure of the component or system." (ISTQB)

16 February 2007

Software Engineering: Traceability (Definitions)

"The evidence of an association between a requirement and its source requirement, its implementation, and its verification." (Sandy Shrum et al, "CMMI®: Guidelines for Process Integration and Product Improvement", 2003)

"A discernable association among two or more logical entities such as requirements, system elements, verifications, or tasks." (Sandy Shrum et al, "CMMI: Guidelines for Process Integration and Product Improvement" 2nd Ed., 2006)

"The quality of information to be linked to its background or sources." (Martin J Eppler, "Managing Information Quality" 2nd Ed., 2006)

[horizontal traceability:] "The tracing of requirements for a test level through the layers of test documentation (e.g., test plan, test design specification, test case specification, and test procedure specification or test script)." (Tilo Linz et al, "Software Testing Practice: Test Management", 2007)

[vertical traceability:] "The tracing of requirements through the layers of development documentation to components." (Tilo Linz et al, "Software Testing Practice: Test Management", 2007)

"Starting from requirements, traceability establishes a correlation between elements of different development steps." (Lars Dittmann et al, "Automotive SPICE in Practice", 2008)

"The degree to which each element of a product can be mapped back to the individual requirement or requirements, which in-turn, are linked back to the original validated market or customer need." (Steven Haines, "The Product Manager's Desk Reference", 2008)

"Capability of linking artifacts produced by enterprise architecture or realization activities to other artifacts from which they originate or to which they refer." (Gilbert Raymond & Philippe Desfray, "Modeling Enterprise Architecture with TOGAF", 2014)

[traceable:] "Information that is sufficient to make a determination about a specific aspect of an individual's activities or status." (NIST SP 800-122)

"The ability to identify related items in documentation and software, such as requirements with associated tests. " (ISTQB)

"The degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor-successor or master-subordinate relationship to one another" (IEEE 1233-1998)

Software Engineering: Refactoring (Definitions)

"Rebuilding and restructuring code in very small steps without changing the behavior visible from outside." (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"Revising software design and code to improve their structure, without changing the functions and behavior of the software, in order to facilitate future modification and enhancement of the software. Used in many agile methods. Refactoring is a broader term than code restructuring." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A programming technique that enables you to evolve your code slowly over time, to take an evolutionary approach to programming." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"A simple change to source code that retains its behavioral semantics: You neither add functionality when you are refactoring nor take it away. A refactoring merely improves the design of your code - nothing more and nothing less." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"Refactoring is used to restructure existing software regarding aspects like modularity, flexibility, and extensibility, without changing the main software functionality." (Alke Martens & Andreas Harrer, "Software Engineering in e-Learning Systems", Encyclopedia of Information Technology Curriculum Integration, 2008)

"To clarify and simplify computer code." (Michael Coles & Rodney Landrum, , "Expert SQL Server 2008 Encryption", 2008)

"A structural transformation that provides a systematic way of eradicating the undesirable(s) from an artifact while preserving its behavioral semantics." (Pankaj Kamthan, "Pattern-Oriented Use Case Modeling", 2009)

[database refactoring:] "It indicates little changes in the database schema which preserve both the meaning of the data and the behaviors of the applications. These changes improve the quality of the design." (Vincenzo Deufemia et al, "Evolutionary Database: State of the Art and Issues", 2009)

"(1) Refactoring (noun): A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. (2) Refactor (verb): To restructure software by applying a series of refactorings without changing its observable behavior." (Jay Fields et al, Refactoring: Ruby Edition, 2010)

"Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure." (Jay Fields et al, Refactoring: Ruby Edition, 2010)

"A (software) refactoring is an explicit, replicable, and beneficial activity that transforms the structure or representation of a software component without changing its meaning (i.e., behavior). The goal of software refactoring is the improvement of the quality (e.g., maintainability) of the software system." (Jörg Rech et al, "Knowledge Patterns" [in "Encyclopedia of Knowledge Management" 2nd Ed.], 2011)

"Restructuring a program to make it more reliable, easier to read, or easier to maintain without changing its outward behavior." (Rod Stephens, "Stephens' Visual Basic® Programming 24-Hour Trainer", 2011)

"Reorganizing code to make it better suited for some purpose, such as parallelization." (Michael McCool et al, "Structured Parallel Programming", 2012)

"The act of changing code to improve some aspect of it, such as how it does something, without changing what it does." (Mark C Lewis, "Introduction to the Art of Programming Using Scala", 2012)

"A process by which existing code or processes are reengineered or restructured to improve nonfunctional aspects without impacting outcomes. It is usually done to make existing assets more manageable, efficient, and maintainable." (Evan Stubbs, "Delivering Business Analytics: Practical Guidelines for Best Practice", 2013)

"To restructure software code without altering its behavior for the purpose of improving quality attributes, easing future extension or adaptation, or adhering to an architectural style." (Project Management Institute, "Software Extension to the PMBOK Guide" 5th Ed, 2013)

"The process of rearranging and rewriting code to make it easier to understand, debug, and maintain." (Rod Stephens, "Beginning Software Engineering", 2015)

"A product quality technique whereby the design of a product is improved by enhancing its maintainability and other desired attributes without altering its expected behavior." (PMI, "A Guide to the Project Management Body of Knowledge" 6th Ed., 2017)

"Refactoring is the activity of improving the internal structure or operation of a code or component without changing its external behavior." (Dean Leffingwell, "SAFe 4.5 Reference Guide: Scaled Agile Framework for Lean Enterprises" 2nd Ed., 2018)

Software Engineering: Quality Function Deployment (Definitions)

"A disciplined process for obtaining, translating, and deploying the voice of the customer into the various phases of technology development and the ensuing commercialization of products or processes during product design." (Clyde M Creveling, "Six Sigma for Technical Processes: An Overview for R Executives, Technical Leaders, and Engineering Managers", 2006)

"A process for translating the voice of the customer into technical requirements at the product level. As part of the critical parameter-management process, QFD uses a series of matrixes called Houses of Quality to translate and link system requirements to subsystem requirements, which, in turn, are translated and linked to subassembly requirements, which are translated and linked to component requirements, which are translated and linked to manufacturing process requirements." (Clyde M Creveling, "Six Sigma for Technical Processes: An Overview for R Executives, Technical Leaders, and Engineering Managers", 2006)

"A disciplined process for obtaining, translating, and deploying the Voice of the Customer into the various Phases of Technology Development and the ensuing commercialization of products or processes during Product Design." (Lynne Hambleton, "Treasure Chest of Six Sigma Growth Methods, Tools, and Best Practices", 2007)

"1.A method of defining and implementing customer requirements. 2.An organized approach to involving customers in requirements specification and product design." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A facilitated workshop technique that helps to determine critical characteristics for new product development. " (For Dummies, "PMP Certification All-in-One For Dummies" 2nd Ed., 2013)

"A method to transform user demands into design quality, to deploy the functions forming quality, and to deploy methods for achieving the design quality into subsystems and component parts, and ultimately to specific elements of the manufacturing process." (ISTQB, "Standard Glossary", 2015)

"QFD is a facilitation technique using the voice-of-the-customer technique." (Cate McCoy & James L Haner, "CAPM Certified Associate in Project Management Practice Exams", 2018)

14 February 2007

Software Engineering: Reliability (Definitions)

"[...] the characteristic of an information infrastructure to store and retrieve information in an accessible, secure, maintainable, and fast manner." (Martin J Eppler, "Managing Information Quality 2nd Ed.", 2006)

"The measure of robustness over time. The length of time a product or process performs as intended." (Lynne Hambleton, "Treasure Chest of Six Sigma Growth Methods, Tools, and Best Practices", 2007)

"Reliability describes a product’s ability to maintain its defined functions under defined conditions for a specified period of time." (Lars Dittmann et al, "Automotive SPICE in Practice", 2008)

"A stochastic measure of the likelihood that a system will be able to deliver a service." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"The degree to which the new system is perceived as being better than the system it replaces, often expressed in the economic or social status terms that will result from its adoption." (Linda Volonino & Efraim Turban, "Information Technology for Management" 8th Ed, 2011)

"The ability for a component (server, application, database, etc.) or group of components to consistently perform its functions." (Craig S Mullins, "Database Administration", 2012)

"A set of characteristics relating to the ability of the software product to perform its required functions under stated conditions for a specified period of time or for a specified number of operations." (Tilo Linz et al, "Software Testing Foundations" 4th Ed, 2014)

 "It is a characteristic of an item (component or system), expressed by the probability that the item (component/system) will perform its required function under given conditions for a stated time interval." (Harish Garg,  "Predicting Uncertain Behavior and Performance Analysis of the Pulping System in a Paper Industry using PSO and Fuzzy Methodology", 2014)

"A characteristic of an item (component or system), expressed by the probability that the item (component/system) will perform its required function under given conditions for a stated time interval." (Harish Garg, "A Hybrid GA-GSA Algorithm for Optimizing the Performance of an Industrial System by Utilizing Uncertain Data", 2015)

"A sub-set of statistical engineering methodology that predicts performance of a product over its intended life cycle and understanding of the effects of various failure modes on system performance." (Atila Ertas, "Transdisciplinary Engineering Design Process", 2018)

"The ability of the software product to perform its required functions under stated conditions for a specified period of time, or for a specified number of operations" (ISO 9126)

"The ability of the software product to perform its required functions under stated conditions for a specified period of time, or for a specified number of operations." (ISO/IEC 25000)

"The capability of a system or component to perform its required functions under stated conditions for a specified period of time." (IEEE Std 610.12-1990) 

Software Engineering: Validation (Definitions)

"An independent test process whereby the performance of the neural network is tested against the acceptance requirements." (Joseph P Bigus, "Data Mining with Neural Networks: Solving Business Problems from Application Development to Decision Support", 1996)

"Confirmation that the product, as provided (or as it will be provided), will fulfill its intended use. In other words, validation ensures that 'you built the right thing'." (Sandy Shrum et al, "CMMI®: Guidelines for Process Integration and Product Improvement", 2003)

"Confirmation or corroboration of something, such as a business need or an identified opinion or recommendation." (Teri Lund & Susan Barksdale, "10 Steps to Successful Strategic Planning", 2006)

"the process of checking that a system meets the user needs." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"The assurance that a product, service, or system meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external customers. Contrast with verification." (Cynthia Stackpole, "PMP® Certification All-in-One For Dummies®", 2011)

"Testing if a development result fulfills the individual requirements for a specific use." (Tilo Linz et al, "Software Testing Foundations" 4th Ed., 2014)

"Determines if the product provides the necessary solution for the intended real-world problem." (Adam Gordon, "Official (ISC)2 Guide to the CISSP CBK" 4th Ed., 2015)

"Validation is the process of verifying that a document or data structure conforms with its schema or schemas." (Robert J Glushko, "The Discipline of Organizing: Professional Edition" 4th Ed, 2016)

"The assurance that a product, service, or result meets the needs of the customer and other identified stakeholders." (Project Management Institute, "A Guide to the Project Management Body of Knowledge (PMBOK® Guide )", 2017)

"The assurance that a product, service, or system meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external customers." (Jeffrey K Pinto, "Project Management: Achieving Competitive Advantage" 5th Ed., 2018)

 "activity that ensures a new or changed service, process, plan or other deliverable, meets the needs of the business." (ITIL)

"Confirmation by examination and through provision of objective evidence that the requirements for a specific intended use or application have been fulfilled" [ISO 9000]

"Confirmation, through the provision of objective evidence, that the requirements for a specific intended use or application have been fulfilled." (NIST SP 800-160)

"Confirmation (through the provision of strong, sound, objective evidence) that requirements for a specific intended use or application have been fulfilled." (NIST SP 800-161)

"Confirmation (through the provision of strong, sound, objective evidence) that requirements for a specific intended use or application have been fulfilled (e.g., a trustworthy credential has been presented, or data or information has been formatted in accordance with a defined set of rules, or a specific process has demonstrated that an entity under consideration meets, in all respects, its defined attributes or requirements)." (CNSSI 4009-2015)

"The process of determining that an object or process is acceptable according to a pre-defined set of tests and the results of those tests." (NIST SP 800-152)

"The process of demonstrating that the system under consideration meets in all respects the specification of that system." (INCITS/M1-040211)

12 February 2007

Software Engineering: Usability (Definitions)

"The ease with which a user can learn to operate, prepare inputs for, and interpret outputs of a system or component." (IEEE, "IEEE Standard Glossary of Software Engineering Terminology", 1990)

"The characteristic of an information environment to be user-friendly in all its aspects (easy to learn, use, and remember)." (Martin J Eppler, "Managing Information Quality" 2nd Ed., 2006)

"The ability to use an element or work product in a different circumstance or environment." (Bruce P Douglass, "Real-Time Agility", 2009)

"A pragmatic quality characteristic that is a measure of the degree to which the information presentation is directly and efficiently usable for its purpose." (David C Hay, "Data Model Patterns: A Metadata Map", 2010)

"A multifaceted term that refers to how easy it is for users to accomplish whatever task they need to do." (Matt Telles, "Beginning Programming", 2014)

"A questionnaire-based usability test technique for measuring software quality from the end user's point of view. [Kirakowski93]" (Standard Glossary, "ISTQB", 2015)

"Computing the degree to which a software application or a website is easy to use with no specific training. Usability is the art and science of designing systems or web sites that are easy to learn, easy to remember how to use, efficient to use, error tolerant and engaging." (European Commission [Usability Glossary])

"Easiness with which an application, product or service can be used" (ITIL)

"Extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction in a specified context of use." (ISO/IEC 9241-11)

"The capability of the software to be understood, learned, used and attractive to the user when used under specified conditions." (ISO 9126, 25000)

"Usability is the degree to which something - software, hardware or anything else - is easy to use and a good fit for the people who use it." (Usability BoK)

Software Engineering: Maintainability (Definitions)

"The ease of maintenance that a program’s author puts into the program by writing clear code." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"The characteristic of an information environment to be manageable at reasonable costs in terms of content volume, frequency, quality, and infrastructure. If a system is maintainable, information can be added, deleted, or changed efficiently." (Martin J Eppler, "Managing Information Quality" 2nd Ed., 2006)

"a measure of how quickly and effectively a CI/service can be restored to normal after a failure." (ITIL)

 Maintainability is defined as the probability that a system or system element can be repaired in a defined environment with defined resources within a specified period of time. Increased maintainability implies shorter repair times. (Created for SEBoK)

"The capability of the software product to adhere to standards or conventions relating to maintainability." (Software Quality Assurance)

"The ease with which a software product can be modified to correct defects, modified to meet new requirements, modified to make future maintenance easier, or adapted to a changed environment." (ISO 9126)

"The probability that a given maintenance action for an item under given usage conditions can be performed within a stated time interval when the maintenance is performed under stated conditions using stated procedures and resources." (ASQ)

"The process of testing to determine the maintainability of a software product." (ISTQB)

11 February 2007

Software Engineering: Multithreading (Definitions)

"When there are several independent paths of execution within a program. Each thread may have access to the main memory and resources of the entire program." (Marcus Green & Bill Brogden, "Java 2™ Programmer Exam Cram™ 2 (Exam CX-310-035)", 2003)

"Concurrent execution of multiple threads." (Max Domeika, "Software Development for Embedded Multi-core Systems", 2011)

"Executing multiple threads within a single process, either multitasking on a single central processing unit (CPU) or simultaneously on multiple cores." (Rod Stephens, "Start Here!™ Fundamentals of Microsoft® .NET Programming", 2011)

"The act of having a program that allows more than one thread of control to be active at a time. This effectively allows multiple instructions to execute simultaneously. This is a form of shared-memory parallelism." (Mark C Lewis, "Introduction to the Art of Programming Using Scala", 2012)

"A mode of operation in which the operating system can run different parts of a program, called threads, simultaneously." (IBM, "Informix Servers 12.1", 2014)

"Applications that can carry out multiple activities simultaneously by generating different instruction sets (threads)." (Adam Gordon, "Official (ISC)2 Guide to the CISSP CBK" 4th Ed., 2015)

"A term used to describe both a facility provided by the operating system which allows an application to create threads of execution within a process, and applications whose architecture takes advantage of the multi-threading provided by the operating system." (Microfocus)

"Multithreading is concurrent processing of more than one message (or similar service request) by an application program." (Gartner)

"Multithreading is the ability of a program or an operating system process to manage its use by more than one user at a time and to even manage multiple requests by the same user without having to have multiple copies of the programming running in the computer." (Techtarget)

10 February 2007

Software Engineering: Trustworthiness (Definitions)

"Having reliable, appropriate, and validated levels of security." (Mark Rhodes-Ousley, "Information Security: The Complete Reference" 2nd Ed., 2013)

"Worthy of being trusted to have certain specified properties." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"The perception and confidence in the quality of the model by its users." (Panos Alexopoulos, "Semantic Modeling for Data", 2020)

"Computer hardware, software and procedures that - 1) are reasonably secure from intrusion and misuse; 2) provide a reasonable level of availability, reliability, and correct operation; 3) are reasonably suited to performing their intended functions; and 4) adhere to generally accepted security procedures." (NIST SP 800-12 Rev. 1)

"Worthy of being trusted to fulfill whatever critical requirements may be needed for a particular component, subsystem, system, network, application, mission, enterprise, or other entity. Note From a privacy perspective, a trustworthy system is a system that meets specific privacy requirements in addition to meeting other critical requirements." (NISTIR 8062)

"The degree to which an information system (including the information technology components that are used to build the system) can be expected to preserve the confidentiality, integrity, and availability of the information being processed, stored, or transmitted by the system across the full range of threats. A trustworthy information system is a system that is believed to be capable of operating within defined levels of risk despite the environmental disruptions, human errors, structural failures, and purposeful attacks that are expected to occur in its environment of operation." (NIST SP 800-53 Rev. 4)

"The degree to which the security behavior of a component is demonstrably compliant with its stated functionality." (NIST SP 800-160)

Software Engineering: Thread (Definitions)

"A mechanism that allows one or more paths of execution through the same instance of an application. Each device requires one thread, and each remote site requires two threads. SQL Server uses the native thread services of Windows NT. There are separate threads for each network, a separate thread for database checkpoints, and a pool of threads for all users." (Microsoft Corporation, "SQL Server 7.0 System Administration Training Kit", 1999)

"An operating system component that allows the logic of multiuser applications to be performed as several separate, asynchronous execution paths." (Anthony Sequeira & Brian Alderman, "The SQL Server 2000 Book", 2003)

"a kind of concurrency unit supported by most operating systems, typically 'lighter-weight' than a task." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"The operating system object that executes the instructions of a process." (Clay Breshears, "The Art of Concurrency", 2009)

"A sequence of executing instructions within a process that may execute in parallel with other threads." (Rod Stephens, "Start Here!™ Fundamentals of Microsoft® .NET Programming", 2011)

"Software, operating system entity that contains an execution context (instruction pointer and a stack)." (Max Domeika, "Software Development for Embedded Multi-core Systems", 2011)

"A single unit of control in a program that shares memory with other threads." (Mark C Lewis, "Introduction to the Art of Programming Using Scala", 2012)

"A type of object within a process that runs program instructions. Using multiple threads allows concurrent operations within a process and enables one process to run different parts of its program on different processors simultaneously. A thread has its own set of registers, its own kernel stack, a thread environment block, and a user stack in the address space of its process." (Microsoft, "SQL Server 2012 Glossary", 2012)

"In general, a software thread is any software unit of parallel work with an independent flow of control, and a hardware thread is any hardware unit capable of executing a single flow of control (in particular, a hardware unit that maintains a single program counter). Threads are a mechanism for implementing tasks." (Michael McCool et al, "Structured Parallel Programming", 2012)

"Like a forked process, but without fork’s inherent memory protection. A thread is lighter weight than a full process, in that a process could have multiple threads running around in it, all fighting over the same process’s memory space unless steps are taken to protect threads from one another." (Jon Orwant et al, "Programming Perl, 4th Ed.", 2012)

"A stream of computer instructions that is in control of a process. In some operating systems, a thread is the smallest unit of operation in a process. Several threads can run concurrently, performing different jobs." (IBM, "Informix Servers 12.1", 2014)

"Instruction set generated by a process when it has a specific activity that needs to be carried out by an operating system. When the activity is finished, the thread is destroyed." (Adam Gordon, "Official (ISC)2 Guide to the CISSP CBK" 4th Ed., 2015)

"A path of execution through Open Server application and library code and the path’s associated stack space, state information, and event handlers." (Sybase, "Open Server Server-Library/C Reference Manual", 2019)

"The DB2 structure that describes the connection of an application, traces its progress, processes resource functions, and delimits its accessibility to DB2 resources and services. Most DB2 functions execute under a thread structure." (Sybase, "Open Server Server-Library/C Reference Manual", 2019)

"An independent stream of execution within a program. Because Java is a multithreaded programming language, more than one thread may be running within the Java interpreter at a time. Threads in Java are represented and controlled through the Thread object." (Daniel Leuck et al, "Learning Java, 5th Ed.", 2020)

"In computing, a thread is a subsequence of instructions in a program that may be executed in parallel." (Alex Thomas, "Natural Language Processing with Spark NLP", 2020)

08 February 2007

Software Engineering: Interoperability (Definitions)

"The capability of two or more systems or components to exchange usable information." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"This allows instant communications among multiple responders and agencies at the same time. All responders may communicate as a team and perform their jobs to the highest level possible. A goal for all advanced, complex security systems." (Robert McCrie, "Security Operations Management" 2nd Ed., 2006)

"The ability of different systems to communicate with each other. Interoperability between different platforms and programming languages is a fundamental goal of SOA." (Nicolai M Josuttis, "SOA in Practice", 2007)

"The ability of different information systems to work together, particularly in the correct interpretation of data semantics and functionality." (J P Getty Trust, "Introduction to Metadata" 2nd Ed., 2008)

"the ability of diverse systems and organizations to operate together." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"The ability of different systems to communicate with each other. Interoperability between different applications, platforms, and programming languages is a fundamental goal of integration." (David Lyle & John G Schmidt, "Lean Integration", 2010)

"Connectivity between devices. Refers to the ability to provide services to and accept services from other systems or devices." (Linda Volonino & Efraim Turban, "Information Technology for Management" 8th Ed., 2011)

"The ability of various types of computers and programs to work together and share data across different platforms." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"the ability for two (or more) components of technology to interface and work together." (Bill Holtsnider & Brian D Jaffe, "IT Manager's Handbook" 3rd Ed., 2012)

"The capability of a product to interface with many other products; usually used in the context of software. " (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"Capability of sharing information and services." (Gilbert Raymond & Philippe Desfray, "Modeling Enterprise Architecture with TOGAF", 2014)

"The ability of heterogeneous software and hardware to communicate and share information." (Mahdi Gueffaz, "ScaleSem Approach to Check and to Query Semantic Graphs", 2015)

"The ability of software and hardware on multiple machines and from multiple commercial vendors to communicate" (Nell Dale & John Lewis, "Computer Science Illuminated" 6th Ed., 2015)

"Interoperability goes beyond integration to mean that systems, applications, or services that exchange information can make sense of what they receive. Interoperability can involve identifying corresponding components and relationships in each system, transforming them syntactically to the same format, structurally to the same granularity, and semantically to the same meaning." (Robert J Glushko, "The Discipline of Organizing: Professional Edition" 4th Ed., 2016)

"Data interoperability is the ability of multiple applications to communicate (and exchange data)." (Piethein Strengholt, "Data Management at Scale", 2020)

"The ability of multiple systems with different hardware and software platforms, data structures, and interfaces to exchange data with minimal loss of content and functionality." (NISO)

"The capability of the software product to interact with one or more specified components or systems"(ISO/IEC 25000)

"The capability of the software to interact with one or more specified components or systems" (ISO 9126)

 "The ability of one application to use the same code when accessing data in different DBMSs." (Microsoft, "ODBC Glossary")

07 February 2007

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'." (Craig Larman, "Applying UML and Patterns", 2004)

"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." (Robert McCrie, "Security Operations Management" 2nd Ed., 2006)

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

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

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

06 February 2007

Software Engineering: Web Service(s) (Definitions)

"The programmatic interfaces that enable different applications to communicate and process data via the Web." (Evan Levy & Jill Dyché, "Customer Data Integration", 2006)

"A set of standards that serves as one possible way of realizing a SOA infrastructure. Initially started with the core standards XML, HTTP, WSDL, SOAP, and UDDI, it now contains over 60 standards and profiles developed and maintained by different standardization organizations, such as W3C, OASIS, and WS-I." (Nicolai M Josuttis, "SOA in Practice", 2007)

"A software component designed to support interoperable machine-to-machine interaction over a network based on Internet standards." (Victor Isakov et al, "MCITP Administrator: Microsoft SQL Server 2005 Optimization and Maintenance (70-444) Study Guide", 2007)

"A software system used to transfer data. A common use of a Web service is to transfer data across the Internet. A Web service provider receives requests for data and responds. For example, a weather Web service could accept a zip code as input and respond with weather data for the zip code." (Robert D. Schneider and Darril Gibson, "Microsoft SQL Server 2008 All-In-One Desk Reference For Dummies", 2008)

"A software component created with an interface consisting of a WSDL definition, an XML schema definition, and a WS-Policy definition. Collectively, these could be called a service contract - or, alternatively, an API." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies 2nd Ed.", 2009)

"A software system designed to allow inter-computer interaction over a network to perform a task. Other computers interact with a web service, in a manner prescribed by its interface, using messages which are enclosed in a SOAP envelope and are often conveyed by HTTP. Software applications can use web services to exchange data over a network." (Mark Olive, "SHARE: A European Healthgrid Roadmap", 2009)

"As defined by the W3C, a Web service is a software system designed to support interoperable machine-to-machine interaction over a network. Web services are frequently just Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. Service-Oriented Architecture (SOA) is most often implemented using Web services, which defines how SOA services interact using the following standards: Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), and Universal Description, Discovery and Integration (UDDI)." (John Goodson & Robert A Steward, "The Data Access Handbook", 2009)

"A set of standards that serves as one possible way of realizing an SOA infrastructure." (David Lyle & John G Schmidt, "Lean Integration", 2010)

"A program running on a network that another program can call for service." (Rod Stephens, "Start Here!™ Fundamentals of Microsoft® .NET Programming", 2011)

"Modular business and consumer applications, delivered over the Internet, that users can select and combine through almost any device, enabling disparate systems to share data and services. These are software systems designed to support machine-to-machine interactions over a network." (Linda Volonino & Efraim Turban, "Information Technology for Management 8th Ed", 2011)

"Platform-neutral, vendor-independent protocols that enable distributed processing to be performed using XML and Web-based technologies. Sometimes instantiated as remote procedure calls in which the request is an XML document." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A server-based collections of data, plus a collection of software routines operating on the data, that can be accessed by remote clients. One of the features of Web services is that they permit client users (e.g., humans or software agents) to discover the kinds of data and methods offered by the Web service and the rules for submitting server requests. To access Web services, clients must compose their requests as messages conveyed in a language that the server is configured to accept, a so-called Web services language." (Jules H Berman, "Principles of Big Data: Preparing, Sharing, and Analyzing Complex Information", 2013)

"A software component created with an interface consisting of a WSDL definition, an XML schema definition, and a WS-Policy definition. Collectively, components could be called a service contract or, alternatively, an API." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"A service that provides a standardized web-based interface so that it is easy to invoke over the Internet." (Rod Stephens, "Beginning Software Engineering", 2015)

"An application-level service that runs on a server and is accessed in a standard way using XML for data marshalling and HTTP as its network transport." (Daniel Leuck et al, "Learning Java" 5th Ed., 2020)

"A set of standards and mechanisms that enables software components to be deployed so that they can be invoked across the Internet or an intranet, with data passed between client and component in the form of text files containing XML. This means the client application does not need to know anything about the language or deployment mechanism of the component it is invoking. Since Web Services is the name of a facility, the term is singular." (Microfocus)

"A software component deployed using the Web Services standards and mechanisms." (Microfocus)

"A Web service is a unit of application logic that provides data and services to other applications, regardless of language or platform, through an Internet connection. Generally, a Web service is exposed by one company so that another company or software program can use that service." (Microfocus)

"Web Services is a technology that enables software components, regardless of the language in which they are written or the platform on which they run, to be accessed by applications across the Internet." (Microfocus)

02 February 2007

Software Engineering: Proof-of-Concept (Definitions)

"A software trial that allows a prospect to test the product before buying it, while at the same time delivering a realistic slice of functionality." (Jill Dyché & Evan Levy, "Customer Data Integration: Reaching a Single Version of the Truth", 2006)

"Originally a term referring to a prototype proving a technical solution’s feasibility. Recently, the term has become synonymous with early-stage revenue-proving market feasibility. For example, without proof of concept revenue for early adopters, the inventor was having difficulty proving anyone needed what he had built." (Brad Feld & Sean Wise, "Startup Opportunities" 2nd Ed., 2017)

"A minimal implementation or execution of a process that serves as a sample sufficient to prove the success of the whole implementation or process." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"Is a realization of a certain method or idea in order to demonstrate its feasibility or a demonstration in principle with the aim of verifying that some concept or theory has practical potential. PoC represents a stage during the development of a product when it is established that the product will function as intended." (Soraya Sedkaoui & SRY Consulting, "Big Data Applications in Business", 2019)

"A demonstration of the feasibility of a particular method. PoC is used to test theoretical calculations and hypotheses in practice." (Kaspersky)

"A proof of concept (POC) is a demonstration of a product, service or solution in a sales context. A POC should demonstrate that the product or concept will fulfill customer requirements while also providing a compelling business case for adoption." (Gartner)

"A proof of concept (POC) is a demonstration to verify that certain concepts or theories have the potential for real-world application. In a nutshell, a POC represents the evidence demonstrating that a project or product is feasible and worthy enough to justify the expenses needed to support and develop it." (Techopedia) [source]

"A proof of concept (POC) is an exercise in which work is focused on determining whether an idea can be turned into a reality. A proof of concept is meant to determine the feasibility of the idea or to verify that the idea will function as envisioned." (Search CIO) [source]

"A proof of concept (POC) or a proof of principle is a realization of a certain method or idea to demonstrate its feasibility, or a demonstration in principle, whose purpose is to verify that some concept or theory has the potential of being used. A proof of concept is usually small and may or may not be complete." (SensiML)

01 February 2007

Software Engineering: Quality Assurance (Definitions)

"Testing and evaluation of a system to ensure correct results." (Microsoft Corporation, "Microsoft SQL Server 7.0 Data Warehouse Training Kit", 2000)

"Group of techniques and methods to assure that the developed software is according to system requirements" (M J Escalona & G Aragón, "The Use of Metamodels in Web Requirements to Assure the Consistence", 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)

"The process of ensuring that the development effort will result in the desired product. Quality assurance focuses on defect prevention. Typical quality assurance tools are check lists, project audits, and documented standards. QA activities typically occur up-front in a project." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"The practice of improving, auditing, and stabilizing a product, service, or other result based on quality requirements and the results of quality control measurements. The focus of QA is to avoid or minimize defects or errors." (Bonnie Biafore & Teresa Stover, "Your Project Management Coach: Best Practices for Managing Projects in the Real World", 2012)

"A set of activities that assess adherence to, and the adequacy of the software processes used to develop and modify software products. SQA also determines the degree to which the desired results from software quality control are being obtained." (Project Management Institute, "Software Extension to the PMBOK® Guide" 5th Ed., 2013)

"Software quality assurance is defined as follows: (1) a planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements; and (2) a set of activities designed to evaluate the process by which products are developed or manufactured." (Kamalendu Pal & Bill Karakostas, "Software Testing Under Agile, Scrum, and DevOps", 2021)

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

Related Posts Plugin for WordPress, Blogger...

About Me

My photo
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.