06 February 2007

Software Engineering: Synchronization (Definitions)

"Enforcing constraints on the ordering of events occurring in different UEs. This is primarily used to ensure that shared resources are accessed by a collection of UEs in such a way that the program is correct regardless of how the UEs are scheduled." (Beverly A Sanders, "Patterns for Parallel Programming", 2004)

"Coordination in the execution of multiple threads. The most common cases of synchronization occur when you provide mutually exclusive access to shared resources or gather all threads at a point in the code before they are allowed to proceed." (Clay Breshears, "The Art of Concurrency", 2009)

"Timekeeping which requires the coordination of events to operate a system in unison." (Chen Liu et al, "Simultaneous MultiThreading Microarchitecture", 2010)

"The coordination, of tasks or threads, in order to obtain the desired runtime order. Commonly used to avoid undesired race conditions." (Michael McCool et al, "Structured Parallel Programming", 2012)

"A technique for coordinating threads or processes to have appropriate execution order." (Masoud Hemmatpour et al, "Cost Evaluation of Synchronization Algorithms for Multicore Architectures", 2018)

"In multiprocessing systems, joining multiple independent processes in order to reach an agreement or commit to a certain sequence of actions." (Gen'ichi Yasuda, "A Formal Approach to the Distributed Software Control for Automated Multi-Axis Manufacturing Machines", 2018)

"Process of coordinating two or more activities in time." (Dharmendra T Patel, "Distributed Computing for Internet of Things (IoT)", 2019)


02 February 2007

🌁Software Engineering: Proof-of-Concept [PoC] (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)

30 January 2007

🌁Software Engineering: Application Programming Interface (Definitions)

"A set of routines available in an application for use by software programmers when designing an application interface. An excellent example is ADO. APIs make it simple for programmers to add powerful integration capabilities within an application. APIs shield programmers from many of the complexities of coding." (Anthony Sequeira & Brian Alderman, "The SQL Server 2000 Book", 2003)

"A set of routines that an application uses to request and carry out lower-level services." (Evan Levy & Jill Dyché, "Customer Data Integration", 2006)

"Represents a set of functions and methods that other developers can use to access the functionality within another application." (Sara Morganand & Tobias Thernstrom , "MCITP Self-Paced Training Kit: Designing and Optimizing Data Access by Using Microsoft SQL Server 2005 - Exam 70-442", 2007)

"This is a well-defined interface provided by an application or service to support requests and communications from other applications." (Michael Coles, "Pro T-SQL 2008 Programmer's Guide", 2008)

"A set of public programmatic interfaces that consists of a language and a message format to communicate with an operating system or other programmatic environment, such as databases, Web servers, and so forth. These messages typically call functions and methods available for application development." (David Lyle & John G Schmidt, "Lean Integration", 2010)

"An interface implemented by a software program to enable interaction with other software, in much the same way that a user interface facilitates interaction between humans and computers. APIs are implemented by applications, libraries, and operating systems to determine the vocabulary and calling conventions the programmer should employ to use their services. It may include specifications for routines, data structures, object classes, and protocols used to communicate between the consumer and implementer of the API." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"A toll that allows programs to talk to or interact with one another." (Linda Volonino & Efraim Turban, "Information Technology for Management 8th Ed", 2011)

"A published standard format for communicating with application programs." (Craig S Mullins, "Database Administration: The Complete Guide to DBA Practices and Procedures" 2nd Ed, 2012)

"A set of routines that an application uses to request and carry out lower-level services performed by a computer's operating system. These routines usually carry out maintenance tasks such as managing files and displaying information." (Microsoft, "SQL Server 2012 Glossary", 2012)

"This is a well-defined interface provided by an application or service to support requests and communications from other applications." (Jay Natarajan et al, "Pro T-SQL 2012 Programmer's Guide" 3rd Ed, 2012)

"A way of standardizing the connection between two software applications. It is essentially a standard hook that an application uses to connect to another software application." (Robert F Smallwood, "Information Governance: Concepts, Strategies, and Best Practices", 2014)

"A well-defined interface provided by an application or service to support requests and communications from other applications." (Miguel Cebollero et al, "Pro T-SQL Programmer’s Guide" 4th Ed, 2015)

"A set of definitions, protocols, and tools used to build software. Especially important to define when different software parts need to work together." (Pamela Schure & Brian Lawley, "Product Management For Dummies", 2017)

"A set of definitions, protocols, and tools for building software applications, and for allowing software components from different sources to communicate with each other." (Jonathan Ferrar et al, "The Power of People", 2017)

"An interface that allows an application program that is written in a high-level language to use specific data or functions of the operating system or another program." (Sybase, "Open Server Server-Library/C Reference Manual", 2019)

🌁Software Engineering: Object-Oriented Design (Definitions)

"The process of designing a computer application that utilizes OOP concepts in the design to show active objects that are to be developed." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"The specification of a logical software solution in terms of software objects, such as their classes, attributes, methods, and collaborations." (Craig Larman, "Applying UML and Patterns", 2004)

"The craft of partitioning the system into objects, organizing the objects into class hierarchies, and devising messages that communicate between the objects. See the Bibliography for references on this subject." (James Robertson et al, "Complete Systems Analysis: The Workbook, the Textbook, the Answers", 2013)

"A modular approach to system design in which functions are logically grouped together along with their data structures into objects. These objects generally correspond to logical real-world entities and interact with other objects through well-defined interfaces and hide their internal data structures to protect them from error by objects that have no need to know the internal workings of the object." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"A software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterized by its class, its state (data elements), and its behavior. OOAD encompasses Object-oriented analysis (OOA) and Object-oriented design (OOD)." (IQBBA) 

27 January 2007

🌁Software Engineering: Conceptual Models (Definitions)

"A conceptual model is simply a framework or schematic to understand the interaction of workforce education and development systems with other variables in a society." (Jay W Rojewski, "International Perspectives on Workforce Education and Development", 2004)

"The conceptual model is a non-software specific description of the simulation model that is to be developed, describing the objectives, inputs, outputs, content, assumptions and simplifications of the model." (Stewart Robinson, "Simulation: The Practice of Model Development and Use", 2004) 

"A conceptual model is a mental image of a system, its components, its interactions. It lays the foundation for more elaborate models, such as physical or numerical models. A conceptual model provides a framework in which to think about the workings of a system or about problem solving in general. An ensuing operational model can be no better than its underlying conceptualization." (Henry N Pollack,"Uncertain Science … Uncertain World", 2005)

"A conceptual model is a qualitative description of 'some aspect of the behaviour of a natural system'. This description is usually verbal, but may also be accompanied by figures and graphs." (Howard S. Wheater et al., "Groundwater Modelling in Arid and Semi-Arid Areas, 2010) 

"[…] a conceptual model is a diagram connecting variables and constructs based on theory and logic that displays the hypotheses to be tested." (Mary Wolfinbarger Celsi et al, "Essentials of Business Research Methods", 2011)

"A conceptual model of an interactive application is, in summary: the structure of the application - the objects and their operations, attributes, and relation-ships; an idealized view of the how the application works – the model designers hope users will internalize; the mechanism by which users accomplish the tasks the application is intended to support." (Jeff Johnson & Austin Henderson, "Conceptual Models", 2011)

"Simply put, a conceptual model is a simplified representation of reality, devised for a certain purpose and seen from a certain point of view."(David W Emble & Bernhard Thalheim, "Handbook of Conceptual Modeling", 2012)

"A conceptual model is a framework that is initially used in research to outline the possible courses of action or to present an idea or thought. When a conceptual model is developed in a logical manner, it will provide a rigor to the research process." (N Elangovan & R Rajendran, "Conceptual Model: A Framework for Institutionalizing the Vigor in Business Research", 2015)

"Briefly, a conceptual model is the configuration of conceptual elements and the navigation between them. As such, a conceptual model is the foundation of the user interface of any interactive system." (Avi Parush, "Conceptual Design for Interactive Systems", 2015)

"A model or conceptual model is a schematic or representation that describes how something works." (James Padolsey, "Clean Code in JavaScript", 2020)

20 January 2007

🌁Software Engineering: Design Pattern (Definitions)

"The design patterns [...] are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context." (Erich Gamma et al, "Design Patterns: Elements of Reusable Object-Oriented Software", 1994)

"A recurring structure or approach to a solution." (Atul Apte, "Java Connector Architecture: Building Custom Connectors and Adapters", 2002)

"A ready-to-use solution for a frequent design problem, expressed as partial design, consisting of classes and associations. Each design pattern is embedded in a set of constraints." (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"A generalized solution to a commonly occurring problem. Design patterns are characterized by their name, applicability, scope, structure, behavior, and consequences." (Bruce P Douglass, "Real-Time Agility", 2009)

"A solution to a problem in a context. A code idiom or design structure that satisfies the needs of a frequently occurring problem, constraint, requirement, etc." (Dean Wampler & Alex Payne, "Programming Scala", 2009)

"A solution to a problem in a context. A code idiom or design structure that satisfies the needs of a frequently occurring problem, constraint, requirement, etc. The 'context' portion of the definition is important, as it specifies conditions when the pattern is an appropriate choice and when it isn’t." (Dean Wampler, "Functional Programming for Java Developers", 2011)

"A general term for pattern that includes not only algorithmic strategy patterns but also patterns related to overall code organization." (Michael McCool et al, "Structured Parallel Programming", 2012)

"In object-oriented programming, an arrangement of classes that interact to perform some common and useful task. Similar to an object-oriented algorithm." (Rod Stephens, "Beginning Software Engineering", 2015)

"Design and program templates created to facilitate the construction of robust and reliable programs by capturing knowledge about how to best construct such programs in various domains." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"Reusable, well-proven solution to recurring modeling/design problems or scenarios." (Panos Alexopoulos, "Semantic Modeling for Data", 2020)

🌁Software Engineering: Data/Information Hiding (Definitions)

"In programming, the practice of locating some parts of the system in software structures that are invisible (inaccessible) to others. Usually, the information so hidden includes details that the programmer considers inessential and those aspects of the system that result from design decisions that are somehow difficult or likely to change. Compare with abstraction, which is a category of techniques by which one can make decisions about what information to hide." (Bill Pribyl & Steven Feuerstein, "Learning Oracle PL/SQL", 2001)

"Hiding the state of a class in private member variables." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"The ability of an object to hide its members from other parts of a program to protect those members from accidental change." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"The ability of a class to hide the details about how it works from outside code." (Rod Stephens, "Start Here! Fundamentals of Microsoft .NET Programming", 2011)

"The practice of hiding the details of a module with the goal of controlling access to the details of the module" (Nell Dale & John Lewis, "Computer Science Illuminated" 6th Ed., 2015)

"Use of segregation in design decisions to protect software components from negatively interacting with each other. Commonly enforced through strict interfaces." (Adam Gordon, "Official (ISC)2 Guide to the CISSP CBK" 4th Ed., 2015)

"The practice of hiding details within a module with the goal of controlling access to the details from the rest of the system" (Nell Dale et al, "Object-Oriented Data Structures Using Java" 4th Ed., 2016)

"The dependability concept of not allowing functions access to data structures unless they are specifically designated to do so in the context of a module or object." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"Concealing the structure of some (potentially unstable) parts of a program behind a stable interface." (Karl Beecher, "Computational Thinking - A beginner's guide to problem-solving and programming", 2017)

"The intentional denial of access to operate directly on data without going through specified encapsulating procedures, which operate on the data in a well-controlled manner. See encapsulation." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

15 January 2007

Software Engineering: Agile (Definitions)

 "A software development process (life cycle model) that evolves a product in a series of rapid iterations (several weeks or less) using continuous involvement with end user representatives. Several variations exist." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A lightweight, minimal-ceremony approach to software and system development emphasizing product quality, meeting customer needs, team collaboration, and responsiveness to change." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"Methodologies that describe rapid iterations to get to a target in software development." (Martin Oberhofer et al, "The Art of Enterprise Information Architecture", 2010)

"An umbrella term for several lightweight development processes and specific practices that are designed to minimize process waste, while improving code quality and communications with project stakeholders." (Dean Wampler, "Functional Programming for Java Developers", 2011)

"A framework for developing software or a product that focuses on small iteration cycles (usually two to four weeks), heavy stakeholder interaction, and delivery of functional product at each cycle." (Jason Williamson, Getting a Big Data Job For Dummies, 2015)

13 January 2007

🌁Software Engineering: Architecture Principles (Definitions)

 "Underlying guidelines that hold true across the architecture of multiple systems. These guidelines define the essence of the architecture by capturing the thinking behind it, and they provide a decision framework that enables the process of making decisions on the architecture." (Tilak Mitra et al, "SOA Governance", 2008)

"Architecture principles, policies, and guidelines define the underlying general rules and guidance that an organization will use to deploy business and IT resources and assets across the enterprise." (Allen Dreibelbis et al, "Enterprise Master Data Management", 2008)

"Policies and guidelines that define the underlying rules that an organization uses to deploy business and IT resources across the enterprise." (Martin Oberhofer et al, "The Art of Enterprise Information Architecture", 2010)

"Set of stable rules and recommendations concerning the architecture in its entirety." (Gilbert Raymond & Philippe Desfray, "Modeling Enterprise Architecture with TOGAF", 2014)

11 January 2007

🌁Software Engineering: Agile Development (Definitions)

[agile method:] "A software development process (life cycle model) that evolves a product in a series of rapid iterations (several weeks or less) using continuous involvement with end user representatives. Several variations exist." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"An evolutionary and highly collaborative approach to development in which the focus is on delivering high-quality, tested software that meets the highest-priority needs of its stakeholders on a regular basis." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"An IT development philosophy that argues in favor of quick, incremental implementations that focus on small, combined teams of users and developers, and quick turnaround of small slices of functionality. See Bottom-up development." (Evan Levy & Jill Dyché, "Customer Data Integration", 2006)

"An adaptive, iterative method or framework for developing software." (Victor Isakov et al, "MCITP Administrator: Microsoft SQL Server 2005 Optimization and Maintenance (70-444) Study Guide", 2007)

"A philosophy that embraces uncertainty, encourages team communication, values customer satisfaction, vies for early delivery, and promotes sustainable development." (Pankaj Kamthan, "Pair Modeling", 2008)

[agile methods:] "a lightweight, minimal-ceremony approach to software and system development emphasizing product quality, meeting customer needs, team collaboration, and responsiveness to change." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"A group of software development methodologies based on iterative development, in which requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization, and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"A term coined in 2001 with the formulation of the Agile Manifesto to refer to software development methodologies based on iterative development where requirements and solutions evolve through collaboration among self-organizing, cross-functional teams." (Paulraj Ponniah, "Data Warehousing Fundamentals for IT Professionals", 2010)

"A development approach that focuses on building projects incrementally using frequent builds." (Rod Stephens, "Start Here! Fundamentals of Microsoft .NET Programming", 2011)

"A group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A group of software development methodologies based on iterative incremental development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams." (IQBBA, "Standard glossary of terms used in Software Engineering", 2011)

"An umbrella term for several lightweight development processes and specific practices that are designed to minimize process waste, while improving code quality and communications with project stakeholders." (Dean Wampler, "Functional Programming for Java Developers", 2011)

"The creation of working software through rapid iteration, focused on customer collaboration and self-organizing teams." (Jon Radoff, "Game On: Energize Your Business with Social Media Games", 2011)

"A method of software development that stresses quick development cycles; it is seen as an alternative to the 'waterfall' method." (Bill Holtsnider & Brian D Jaffe, "IT Manager's Handbook" 3rd Ed., 2012)

"A software-development methodology that emphasizes iterative and incremental development driven by cross-functional collaboration and co-location." (Evan Stubbs, "Delivering Business Analytics: Practical Guidelines for Best Practice", 2013)

"A development model where you initially provide the fewest possible features at the lowest fidelity to still have a useful application. Over time, you add more features and improve existing features until all features have been implemented at full fidelity." (Rod Stephens, "Beginning Software Engineering", 2015)

"An iterative and incremental approach to, typically, software development that involves short phases of work followed by checking that the work achieves the agreed upon goals and adapting to new information given market changes." (Pamela Schure & Brian Lawley, "Product Management For Dummies", 2017)

"A term used to describe a mindset of values and principles as set forth in the Agile Manifesto." (Project Management Institute, "Practice Standard for Scheduling" 3rd Ed., 2019)

"Agile is a rapid and flexible software development approach includes collaboration of self-organizing, cross-functional team and customer." (Sinemis Zengin, "Customer Centric Innovation in Banking Sector", Handbook of Research on Managerial Thinking in Global Business Economics, 2019)

 "A software development approach to convey rapid changes in the market and customer requirements on high-quality terms." (Fayez Salma & Jorge M Gómez, "Challenges and Trends of Agile", 2021)

"Agile is a development approach that delivers software in increments by following the principles of the Manifesto for Agile Software Development." (Gartner)

07 January 2007

🌁Software Engineering: Design (Definitions)

(1) The process of defining the architecture, components, interfaces, and other characteristics of a system or component. (2) The result of the process in (1)."  (IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990)

"A process that uses the products of analysis to produce a specification for implementing a system. A logical description of how a system will work." (Craig Larman, "Applying UML and Patterns", 2004)

"The activity of identifying and defining the architecture, components, interfaces, and attributes of a system or product. See also architectural design. (2) The result of the process in (1)." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"Analysis discovers what needs to be done. Design figures out how what has been analyzed, can and should be done." (Gavin Powell, "Beginning Database Design", 2006)

"The act of crafting a technological solution to fit the requirements, within the constraints." (Suzanne Robertson & James Robertson, "Mastering the Requirements Process" 2nd Ed, 2006)

"The process of optimizing an analysis model through the selection of design technologies, decisions, and patterns." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"1.A deliberate, purposeful plan, layout, delineation, arrangement, and specification of the component parts and interfaces of a product or system. A logical design is an abstract design for fulfilling requirements without consideration for physical constraints. A physical design considers the requirements along with physical constraints. 2.Verb. To conceive, plan, define, arrange, and specify a product or system." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A plan or outline to accomplish goals and purpose based on evidence and analysis. Degree of detail depends on the situation, such as prototypes and storyboards." (Joan C Dessinger, "Fundamentals of Performance Improvement" 3rd Ed, 2012)

"The process of defining how a system will be implemented; the objective is to use the available technology to implement the essential requirements so that the implemented system looks as much like the essential system, and hence the problem, as possible." (James Robertson et al, "Complete Systems Analysis: The Workbook, the Textbook, the Answers", 2013)

"Design is an iterative process and the goal is to describe the system architecture that will satisfy the functional and non-functional requirements. It involves describing the system at a number of different levels of abstraction, with the designer starting off with an informal picture of the design that is then refined by adding more information." (Gerard O’Regan, "Concise Guide to Software Engineering: From Fundamentals to Application Methods", 2017)

"Activity or process that identifies requirements and then defines a solution that is able to meet these requirements" (ITIL)

03 January 2007

🌁Software Engineering: Algorithm (Definitions)

"(1) A finite set of well-defined rules for the solution of a problem in a finite number of steps; for example, a complete specification of a sequence of arithmetic operations for evaluating sine x to a given precision. (2) Any sequence of operations for performing a specific task."(IEEE, "IEEE Standard Glossary of Software Engineering Terminology", 1990)

"A computational procedure; a neural net training algorithm is a step by step procedure for setting the weights of the net. Training algorithms are also known as learning rules." (Laurene V Fausett, "Fundamentals of Neural Networks: Architectures, Algorithms, and Applications", 1994)

"A process or rule a machine uses for processing." (Patrick Dalton, "Microsoft SQL Server Black Book", 1997)

"A series of steps or expressions that solves a problem." (Microsoft Corporation, "Microsoft SQL Server 7.0 Data Warehouse Training Kit", 2000)

"A common procedure or step-by-step methodology for performing a specific task and producing desired results." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"open, cyclic, or arbitrarily structured sequence of exactly defined unconditional or conditional instructions." (Teuvo Kohonen, "Self-Organizing Maps" 3rd Ed., 2001)

"A set of statements organized to solve a problem in a finite number of steps." (Margaret Y Chu, "Blissful Data ", 2004)

"A set of rules for the solution of a problem in a finite number of steps; for example, a complete specification of a sequence of arithmetic operations for calculating a numeric value to a given precision." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A set of statements organized to solve a problem in a finite number of steps." (William H Inmon, "Building the Data Warehouse", 2005)

"A computer program (or procedure) that is a step-by-step procedure, solving a problem, in a finite number of steps." (Gavin Powell, "Beginning Database Design", 2006)

"An algorithm is a finite sequence of instructions for solving a particular problem or performing a task. In terms of cryptography, an algorithm is a step-by-step procedure for encrypting, decrypting, or calculating cryptographic hashes from data." (Michael Coles & Rodney Landrum, , "Expert SQL Server 2008 Encryption", 2008)

"A formula or procedure for solving a problem or carrying out a task. An algorithm is a set of steps in a very specific order, such as a mathematical formula or the instructions in a computer program." (J P Getty Trust, "Introduction to Metadata" 2nd Ed, 2008)

"Sets of steps, operations, or procedures that will produce a particular outcome; like a recipe." (Robert Nisbet et al, "Handbook of statistical analysis and data mining applications", 2009)

"A mathematical rule for solving a problem; a predetermined set of rules used to solve a problem in a finite number of steps." (Linda Volonino & Efraim Turban, "Information Technology for Management 8th Ed", 2011)

"A set of rules or steps that will result in a defined end from a defined start." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A well-defined sequence of steps, explained clearly enough that even a computer could do them." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"A finite series of well-defined steps that achieve a desired outcome. These steps may be deterministic or include random or probabilistic elements." (Evan Stubbs, "Delivering Business Analytics: Practical Guidelines for Best Practice", 2013)

"A finite series of well-defined steps that achieve a desired outcome. These steps may be deterministic or include random or probabilistic elements." (Evan Stubbs, "Big Data, Big Innovation", 2014)

"The instructions that govern the flow of activity in a procedure" (Daniel Linstedt & W H Inmon, "Data Architecture: A Primer for the Data Scientist", 2014)

"A mathematical formula used to analyze data." (Jason Williamson, "Getting a Big Data Job For Dummies", 2015)

"A software recipe that explains how to solve a particular programming problem." (Rod Stephens, "Beginning Software Engineering", 2015)

"A step-by-step description of a specific process, procedure, or method." (Judith S Hurwitz, "Cognitive Computing and Big Data Analytics", 2015)

"Unambiguous instructions for solving a problem or subproblem in a finite amount of time using a finite amount of data" (Nell Dale & John Lewis, "Computer Science Illuminated" 6th Ed., 2015)

"A sequence of unambiguous instructions that solve a problem, within a finite amount of time, given a set of valid input" (Nell Dale et al, "Object-Oriented Data Structures Using Java" 4th Ed., 2016)

"Finite sequence of operations feasible, unambiguous, the execution gives a solution to a problem. Or what is easier to say, an instruction to do something. Featured on the new design processes to systematize computer graphics operations." (Mauro Chiarella, "Folds and Refolds: Space Generation, Shapes, and Complex Components", 2016)

"A sequence of clearly defined steps that describe a process to follow a finite set of unambiguous instructions with clear start and end points." (Karl Beecher, "Computational Thinking - A beginner's guide to problem-solving and programming", 2017)

"A step-by-step set of rules to follow in calculations to meet analytical objectives such as prediction or classification." (Jonathan Ferrar et al, "The Power of People: Learn How Successful Organizations Use Workforce Analytics To Improve Business Performance", 2017)

"A set of rules for calculating results or solving problems that have been programmed for use in a model-driven DSS." (Ciara Heavin & Daniel J Power, "Decision Support, Analytics, and Business Intelligence" 3rd Ed., 2017)

"A set of computational rules to be followed to solve a mathematical problem. More recently, the term has been adopted to refer to a process to be followed, often by a computer." (Soraya Sedkaoui, "Big Data Analytics for Entrepreneurial Success", 2018)

"A step-by-step recipe that you follow to achieve a goal, not unlike baking a cake." (Terrence J Sejnowski, "The Deep Learning Revolution", 2018)

"An algorithm is a procedure that solves a given problem by a finite number of steps. A problem solved by an algorithm is said computable ." (Crescenzio Gallo, "Building Gene Networks by Analyzing Gene Expression Profiles", 2018)

"a rule or formula that takes input variables and produces an output, such as a prediction, a classification, or a probability" ((David Spiegelhalter, "The Art of Statistics: Learning from Data", 2019)

"An algorithm is a well-defined procedure that allows a computer to solve a problem. A particular problem can typically be solved by more than one algorithm. Optimization is the process of finding the most efficient algorithm for a given task." (Edward T Chen, "Deep Learning and Sustainable Telemedicine", 2020)

"An algorithm is an ordered, accurate step-by-step process for a problem that provides a solution in a finite number of steps and that is unambiguous." (Hari K Kondaveeti et al, "Deep Learning Applications in Agriculture: The Role of Deep Learning in Smart Agriculture", 2021)

"Rules that allow AI to learn patterns in the data, classify, and to predict." (Sujata Ramnarayan, "Marketing and Artificial Intelligence: Personalization at Scale", 2021)

 "A set of rules and operations optimized for a specific outcome." (Forrester)

01 January 2007

🌁Software Engineering: Architecture (Definitions)

"The organizational structure of a system or component." (IEEE, "IEEE Standard Glossary of Software Engineering Terminology", 1990)

"The structure (components, connections, and constraints) of a product, process, or element. The architecture of a particular application is defined by the classes and the interrelation of the classes. At another level, the architecture of a system is determined by the arrangement of the hardware and software components. The terms logical architecture and physical architecture are often used to emphasize this distinction." (Atul Apte, "Java Connector Architecture: Building Custom Connectors and Adapters", 2002)

"A term used to designate the structure/foundation of a computer system and its applications." (Margaret Y Chu, "Blissful Data ", 2004)

"A framework defining key elements of a product that includes the hardware (platform) and software components, their partitioning (structures, arrangement, and relations), and the rules governing the interactions (data transfer, control, error handling) between these components, and between these components and external entities (users and other systems). Partitioning describes the (static) structure and relations between the components, including (a) which software components reside on which hardware components, and (b) the nature and scope of each component (i.e., the functions and data allocated to each component). The rules for the dynamic interaction of the components include error detection, propagation, and handling; interprocess communication and synchronization; human/machine interactions ('look and feel'); fundamental data elements (definition, allowed values, range, precision, default value, internal representation, units of measure; standard coordinate systems; internal units of measure; and physical models. May optionally define design and construction constraints (e.g., specific COTS components to be used)." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"The science or art of building. This includes the designing and planning process that occurs in problem solving." (Sharon Allen & Evan Terry, "Beginning Relational Data Modeling" 2nd Ed., 2005)

"In information processing, the design approach taken for developing a program or system." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

"The specification of the largest-scale design optimization decisions for a system. This is divided into five primary views: subsystem and component architecture, concurrency and resource architecture, distribution architecture, safety and reliability architecture, and deployment architecture." (Bruce P Douglass, "Real-Time Agility", 2009)

[reference architecture:] "Provides a proven template of an architecture for a particular domain that contains the supporting artifacts to enable their reuse." (Martin Oberhofer et al, "The Art of Enterprise Information Architecture", 2010)

"An organized set of consensus decisions on policies, principles, services, common solutions, standards, and guidelines as well as specific vendor products and technologies used to provide information technology (IT)." (Craig S Mullins, "Database Administration", 2012)

"In information processing, the design approach taken in developing a program or system. " (Marcia Kaufman et al, "Big Data For Dummies", 2013)

[application architecture:] "Enterprise architecture domain focused on the logical knowledge of applications, their links, and their positioning in the system. By extension, the logical structure of the IS, which can include SOA components, data repositories, or elements to interface with the outside world." (Gilbert Raymond & Philippe Desfray, "Modeling Enterprise Architecture with TOGAF", 2014)

"Reference architecture serves as a blueprint for all enterprise information management (EIM) solutions in an enterprise. Therefore, it can be seen as the big picture view of information management for a given enterprise. The reference architecture has all the relevant solution components needed to build an end-to-end EIM solution for the enterprise and includes the layers - information sourcing, master information management, information integration and exchange, information warehousing, and reservoir and information delivery and consumption." (Saumya Chaki, "Enterprise Information Management in Practice", 2015)

"1.A formal description of a system, or a detailed plan of the system at component level, to guide its implementation (source: ISO/IEC 42010:2007). 2.The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time." (by Brian Johnson & Leon-Paul de Rouw, "Collaborative Business Design", 2017)

"The way the component parts of an entity are arranged, organized, and managed." (William Stallings, "Effective Cybersecurity: A Guide to Using Best Practices and Standards", 2018)

"The architecture of a software system (at a given point in time) is its organization or structure of significant components interacting through interfaces; these components comprise successively smaller components and interfaces." (Bruce MacIsaac & Per Kroll, "Agility and Discipline Made Easy: Practices from OpenUP and RUP", 2006)

"The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution." (ANSI/IEEE)

"The structure of a system or service, including the relationships of components to each other and to the environment they are in" (ITIL)

31 December 2006

✏️Danyel Fisher - Collected Quotes

"A dimension is an attribute that groups, separates, or filters data items. A measure is an attribute that addresses the question of interest and that the analyst expects to vary across the dimensions. Both the measures and the dimensions might be attributes directly found in the dataset or derived attributes calculated from the existing data." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"A well-operationalized task, relative to the underlying data, fulfills the following criteria: (1) Can be computed based on the data; (2) Makes specific reference to the attributes of the data; (3) Has a traceable path from the high-level abstract questions to a set of concrete, actionable tasks." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"An actionable task means that it is possible to act on its result. That action might be to present a useful result to a decision maker or to proceed to a next step in a different result. An answer is actionable when it no longer needs further work to make sense of it." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Every dataset has subtleties; it can be far too easy to slip down rabbit holes of complications. Being systematic about the operationalization can help focus our conversations with experts, only introducing complications when needed." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Color is difficult to use effectively. A small number of well-chosen colors can be highly distinguishable, particularly for categorical data, but it can be difficult for users to distinguish between more than a handful of colors in a visualization. Nonetheless, color is an invaluable tool in the visualization toolbox because it is a channel that can carry a great deal of meaning and be overlaid on other dimensions. […] There are a variety of perceptual effects, such as simultaneous contrast and color deficiencies, that make precise numerical judgments about a color scale difficult, if not impossible." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Creating effective visualizations is hard. Not because a dataset requires an exotic and bespoke visual representation - for many problems, standard statistical charts will suffice. And not because creating a visualization requires coding expertise in an unfamiliar programming language [...]. Rather, creating effective visualizations is difficult because the problems that are best addressed by visualization are often complex and ill-formed. The task of figuring out what attributes of a dataset are important is often conflated with figuring out what type of visualization to use. Picking a chart type to represent specific attributes in a dataset is comparatively easy. Deciding on which data attributes will help answer a question, however, is a complex, poorly defined, and user-driven process that can require several rounds of visualization and exploration to resolve." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Dashboards are a type of multiform visualization used to summarize and monitor data. These are most useful when proxies have been well validated and the task is well understood. This design pattern brings a number of carefully selected attributes together for fast, and often continuous, monitoring - dashboards are often linked to updating data streams. While many allow interactivity for further investigation, they typically do not depend on it. Dashboards are often used for presenting and monitoring data and are typically designed for at-a-glance analysis rather than deep exploration and analysis." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Designing effective visualizations presents a paradox. On the one hand, visualizations are intended to help users learn about parts of their data that they don’t know about. On the other hand, the more we know about the users’ needs and the context of their data, the better we can design a visualization to serve them." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Dimensionality reduction is a way of reducing a large number of different measures into a smaller set of metrics. The intent is that the reduced metrics are a simpler description of the complex space that retains most of the meaning. […] Clustering techniques are similarly useful for reducing a large number of items into a smaller set of groups. A clustering technique finds groups of items that are logically near each other and gathers them together." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Maps also have the disadvantage that they consume the most powerful encoding channels in the visualization toolbox - position and size - on an aspect that is held constant. This leaves less effective encoding channels like color for showing the dimension of interest." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"[…] no single visualization is ever quite able to show all of the important aspects of our data at once - there just are not enough visual encoding channels. […] designing effective visualizations to make sense of data is not an art - it is a systematic and repeatable process." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"[…] the data itself can lead to new questions too. In exploratory data analysis (EDA), for example, the data analyst discovers new questions based on the data. The process of looking at the data to address some of these questions generates incidental visualizations - odd patterns, outliers, or surprising correlations that are worth looking into further." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"The field of [data] visualization takes on that goal more broadly: rather than attempting to identify a single metric, the analyst instead tries to look more holistically across the data to get a usable, actionable answer. Arriving at that answer might involve exploring multiple attributes, and using a number of views that allow the ideas to come together. Thus, operationalization in the context of visualization is the process of identifying tasks to be performed over the dataset that are a reasonable approximation of the high-level question of interest." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"The general concept of refining questions into tasks appears across all of the sciences. In many fields, the process is called operationalization, and refers to the process of reducing a complex set of factors to a single metric. The field of visualization takes on that goal more broadly: rather than attempting to identify a single metric, the analyst instead tries to look more holistically across the data to get a usable, actionable answer. Arriving at that answer might involve exploring multiple attributes, and using a number of views that allow the ideas to come together. Thus, operationalization in the context of visualization is the process of identifying tasks to be performed over the dataset that are a reasonable approximation of the high-level question of interest." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"The goal of operationalization is to refine and clarify the question until the analyst can forge an explicit link between the data that they can find and the questions they would like to answer. […] To achieve this, the analyst searches for proxies. Proxies are partial and imperfect representations of the abstract thing that the analyst is really interested in. […] Selecting and interpreting proxies requires judgment and expertise to assess how well, and with what sorts of limitations, they represent the abstract concept." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"The operationalization process is an iterative one and the end point is not precisely defined. The answer to the question of how far to go is, simply, far enough. The process is done when the task is directly actionable, using the data at hand. The analyst knows how to describe the objects, measures, and groupings in terms of the data - where to find it, how to compute, and how to aggregate it. At this point, they know what the question will look like and they know what they can do to get the answer." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"The intention behind prototypes is to explore the visualization design space, as opposed to the data space. A typical project usually entails a series of prototypes; each is a tool to gather feedback from stakeholders and help explore different ways to most effectively support the higher-level questions that they have. The repeated feedback also helps validate the operationalization along the way." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Rapid prototyping is a process of trying out many visualization ideas as quickly as possible and getting feedback from stakeholders on their efficacy. […] The design concept of 'failing fast' informs this: by exploring many different possible visual representations, it quickly becomes clear which tasks are supported by which techniques." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Too many simultaneous encodings will be overwhelming to the reader; colors must be easily distinguishable, and of a small enough number that the reader can interpret them."  (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

"Visualizations provide a direct and tangible representation of data. They allow people to confirm hypotheses and gain insights. When incorporated into the data analysis process early and often, visualizations can even fundamentally alter the questions that someone is asking." (Danyel Fisher & Miriah Meyer, "Making Data Visual", 2018)

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.