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)

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)

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.