30 March 2007

Software Engineering: Functional Requirement (Definitions)

"Something that the product must do. Functional requirements are part of the fundamental processes of the product." (Suzanne Robertson & James Robertson, "Mastering the Requirements Process" 2nd Ed., 2006)

"A requirement that directly influences and describes functionality." (Lars Dittmann et al, "Automotive SPICE in Practice", 2008)

"Defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs. Functional requirements may be calculations, technical details, data manipulation and processing, and other specific functionalities that define what a system is supposed to accomplish." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"A description of expected behavior of a system given a defined set of inputs or events." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A requirement that specifies a function that a component or system must perform." (Tilo Linz et al, "Software Testing Foundations" 4th Ed., 2014)

"Detailed statements of the project’s wanted capabilities. They’re similar to the user requirements but may also include things that the users won’t see directly such as interfaces to other applications." (Rod Stephens, "Beginning Software Engineering", 2015)

"A requirement that specifies a function that a system or system component must be able to perform." (IEEE-STD-610)


27 March 2007

Software Engineering: Complexity (Definitions)

"A measure of the numbers and types of interrelationships among system elements. Generally speaking, the more complex a system, the more difficult it is to design, build, and use." (Atul Apte, "Java Connector Architecture: Building Custom Connectors and Adapters", 2002)

"Expresses a condition of numerous elements in a system and numerous forms of relationships among the elements. In general usage, complexity tends to be used to characterize something with many parts in intricate arrangement. In science there are at this time a number of approaches to characterizing complexity." (Aldo Romano & Giustina Secundo (Eds.),, "Dynamic Learning Networks: Models and Cases in Action", 2009)

"How difficult the new product will be perceived by the end-user. High complexity can become a barrier to diffusion." (Gina C O'Connor & V K Narayanan, "Encyclopedia of Technology and Innovation Management", 2010)

"The degree to which the new system is perceived to be difficult to understand and use, measured on a continuum from easy to difficult." (Linda Volonino & Efraim Turban, "Information Technology for Management" 8th Ed,, 2011)

"A characteristic of a program or project or its environment, which is difficult to manage due to human behavior, system behavior, and ambiguity." (Project Management Institute, "Navigating Complexity: A Practice Guide", 2014)

"An interdisciplinary lens through which to articulate the learning behaviours in/of systems wherein perpetual emergence and adaption occurs. Central to the understanding of complexity is the notion that individual agents within the system are involved in continuously negotiated and in-flux self-organization and decentralized control." (Kathy Sanford & Tim Hopper, "Digital Media in the Classroom: Emergent Perspectives for 21st Century Learners", Handbook of Research on Digital Media and Creative Technologies, 2015)

"Complexity is a phenomenon that involves a lot of interaction and interference between a very large number of units." (Mauro Chiarella, "Folds and Refolds: Space Generation, Shapes, and Complex Components", 2016)

"The condition of having many diverse and autonomous but interrelated and interdependent components linked through many dense interconnections." (Kijpokin Kasemsap, "Utilizing Complexity Theory and Complex Adaptive Systems in Global Business", Handbook of Research on Chaos and Complexity Theory in the Social Sciences, 2016)

"Refers to the inherent difficulty in accomplishing a computational task such as sorting a list or establishing the trustworthiness of an entire system." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"(1) The degree to which a system or component has a design or implementation that is difficult to understand and verify. (2) Pertaining to any of a set of structure-based metrics that measure the attribute in (1)." (IEEE Std 610.12-1990) 

 "The degree to which a component or system has a design and/or internal structure that is difficult to understand, maintain and verify." (SQA)

16 March 2007

Software Engineering: Rapid Application Development (Definitions)

"A tool than enables you to design and build a complete application quickly." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"A method of building computer systems in which the system is programmed and implemented in segments, rather than waiting until the entire project is completed for implementation. Developed by programmer James Martin, RAD uses such tools as CASE and visual programming." (Microsoft, "SQL Server 2012 Glossary", 2012)

"An approach to software development that is highly evolutionary in nature that typically involves significant amounts of user interface prototyping." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"Methods, tools and techniques that dramatically accelerate application development time." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"Development models that emphasize producing code and deemphasize planning. These models produce code iteratively and incrementally as quickly as possible. RAD principles include small teams, frequent customer interaction, frequent integration and testing, and short time-boxed iterations." (Rod Stephens, "Beginning Software Engineering", 2015)

15 March 2007

Software Engineering: Component Model (Definitions)

"A component diagram and the corresponding documentation for that diagram. A component diagram shows the software components, their interrelationships, interactions, and public interfaces that comprise the software for a small component, an application, or the software architecture for an entire enterprise." (Scott W Ambler & Larry L Constantine, "The Unified Process Construction Phase: Best Practices for Completing the Unified Process", 2000)

"A set of standards for component implementation, documentation and deployment." (Ian Sommerville, "Software Engineering" 8th Ed., 2007)

"Component models provide the basis for middleware to support executing components." (Ian Sommerville, "Software Engineering" 8th Ed., 2007)

"A component model is a specification of patterns for component implementation, documentation, deployment, and usage." (Elthon Oliveira et al, "Formal Modeling and Verification of Virtual Community Systems", Encyclopedia of Networked and Virtual Organizations, 2008)

"Structure adopted to develop any software element of a given application or library." (Emmanuel Dubois et al, "Modelling and Simulation of Mobile Mixed Systems", 2008)

"The MDM Component Model refers to the set of technical architecture diagrams and associated descriptions that provide lower-level specifications about the MDM Reference Architecture." (Allen Dreibelbis et al, "Enterprise Master Data Management", 2008)

"Describes the structure of specific types of content, for example, a recipe, a value proposition, or an overview. Component models can be used over and over again with different content. The structure remains the same; only the content changes." (Charles Cooper & Ann Rockley, "Managing Enterprise Content: A Unified Content Strategy" 2nd Ed., 2012)

09 March 2007

Software Engineering: Audit (Definitions)

"In CMMI process improvement work, an independent examination of a work product or set of work products to determine whether requirements are being met." (Sandy Shrum et al, "CMMI: Guidelines for Process Integration and Product Improvement", 2003)

"An independent examination of work products or work processes to assess compliance with defined processes, procedures, standards, specifications, or other criteria." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"An inspection of the plans, procedures, or records of a part of a business to determine whether or not a plan was followed and if a desired outcome was achieved. In this book, an audit looks into various aspects of a product launch or a bidding situation (win/loss)." (Steven Haines, "The Product Manager's Desk Reference", 2008)

"In the context of security, a review of a system in order to validate the security of the system. Generally, this either refers to code auditing or reviewing audit logs." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"Review of a company’s financial and accounting records and supporting documents by a professional, such as a certified public accountant. This also refers to an examination of an individual’s or a corporation’s tax returns to verify accuracy." (Sue Johnson & Gwen Moran, "The Complete Idiot's Guide® To Business Plans", 2010)

"An independent evaluation of software products or processes to ascertain compliance to standards, guidelines, specifications, and/or procedures based on objective criteria, including documents that specify the following: 
- The form or content of the products to be produced 
- The process by which the products shall be produced
- How compliance to standards or guidelines shall be measured." (Tilo Linz et al, "Software Testing Foundations" 4th Ed, 2014)

"The systematic, independent and documented process for obtaining audit evidence and evaluating it objectively to determine the extent to which the audit criteria are fulfilled" (David Sutton, "Information Risk Management: A practitioner’s guide", 2014)

"An independent assessment that takes a well-defined approach to examining an organization’s internal policies, controls, and activities." (Weiss, "Auditing IT Infrastructures for Compliance" 2nd Ed, 2015)

"A systematic assessment of significant importance to the organization that determines whether the system or process being audited satisfies some external standards." (Shon Harris & Fernando Maymi, "CISSP All-in-One Exam Guide" 8th Ed, 2018)

 "An independent evaluation of software products or processes to ascertain compliance to standards, guidelines, specifications, and/or procedures based on objective criteria, including documents that specify: (1) The form or content of the products to be produced (2) The process by which the products shall be produced (3) How compliance to standards or guidelines shall be measured [IEEE 1028]." (Software Quality Assurance)

"Formal inspection and verification to check whether a standard or set of guidelines is being followed, that records are accurate, or that efficiency and effectiveness targets are being met" (ITIL)

08 March 2007

Software Engineering: Reverse Engineering (Definitions)

"The process of analyzing existing software code and associated documentation to recover its architectural design and specification." (Ian Sommerville, "Software Engineering", 1996)

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

"Reverse engineering is the process of discovering the functions and their interrelationships of a software system as well as creating representations of the system in another form or at a higher level of abstraction." (Chia-Chu Chiang, "Software Modernization of Legacy Systems for Web Services Interoperability", 2008)

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

"The process of transforming code into a model through a mapping from a specific implementation language." (Liliana M Favre et al, Foundations for MDA Case Tools", 2009)

[database reverse engineering:] "The process through which the logical and conceptual schemas of a legacy database, or of a set of files, are recovered, or rebuilt, from various information sources such as DDL code, data dictionary contents, database contents, or the source code of application programs that use the database." (Jean-Luc Hainaut et al, "Database Reverse Engineering", 2009)

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

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

"The process of discovering the technological principles of a device, object or system through analysis of its structure, function and operation." (Tian Ge & Jianfeng Feng, "Granger Causality: Its Foundation and Applications in Systems Biology", 2011) 

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

"The process of analyzing and comprehending available software artifacts, such as requirements, design, architectures and code in order to extract information and provide high-level views of the system." (Liliana Favre et al, "Reverse Engineering of Object-Oriented Code: An ADM Approach" , 2015)

"It is a process in which a machine is completely dismantled in order to understand the intricacies of the machine. Finally, it is reassembled with added improvisation." Kuldeep K Saxena & Ankita Awasthi, "Novel Additive Manufacturing Processes and Techniques in Industry 4.0", 2020)

"The analysis of a subject system to identify its components and their interrelationships, and to create its representations in another form, or at higher level of abstraction." (Djelloul Bouchiha, "Reengineering Legacy Systems Towards New Technologies", 2021)

07 March 2007

Software Engineering: Waterfall Development (Definitions)

"A method in which each stage is completed before the product is passed on to the next stage. Each stage is discrete and self-contained." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"The simplest sequential software process model, where the analysis, design, coding, and testing phases are done sequentially for the entire system." (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"A product development process that follows the sequence of analyze, design, code, and test. The underlying assumption is that each phase does not begin until the preceding phase is complete. There are no overlaps or iterations." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A predictive development where each project phase flows into the next." (Rod Stephens, "Beginning Software Engineering", 2015)

"A methodical and linear approach to technical development. While rigorous, waterfall development usually implies going through an entire development lifecycle before deploying functionality to end users, and usually begins with business analysis. See Top-down development." (Evan Levy & Jill Dyché, "Customer Data Integration", 2006)

"An approach to software development in which the requirements, architecture, design, implementation, integration, and testing are sequentially defined." (Bruce MacIsaac & Per Kroll, "Agility and Discipline Made Easy: Practices from OpenUP and RUP", 2006)

"A sequential software development process in which progress is seen as flowing steadily downward (like a waterfall) through the phases of conception, initiation, analysis, design, development, testing, and deployment." (Mark S Merkow & Lakshmikanth Raghavan, "Secure and Resilient Software Development", 2010)

"A systems development methodology that dictates the completion of one activity before beginning the next." (James Robertson et al, "Complete Systems Analysis", 2013)

"The SDLC, so called because any one development activity must be done before the next activity can begin and because the output from any one level of activity becomes the input into the next level." (Daniel Linstedt & W H Inmon, "Data Architecture: A Primer for the Data Scientist", 2014)

"A development model that uses a series of waterfall cascades. Each cascade ends with the delivery of a usable application called an increment." (Rod Stephens, "Beginning Software Engineering", 2015)

"A linear and sequential development methodology where, for the product development part, product managers define all aspects of the product before it is given to engineering to create. There is no official role for feedback loops and flexible changes in waterfall development." (Pamela Schure & Brian Lawley, "Product Management For Dummies", 2017)

"A method of deploying software or systems in which development moves through a series of fairly well-defined stages. With large projects, once each stage is complete, it cannot be easily reversed, much as it is impossible to move up a waterfall. This traditional system engineering flow allows for a requirements-driven process that leads to assured and verified function. Note that although this indicates a linear sequence through the stages, the ability to iterate and propagate changes discovered in one facet to the others is typically observed." (William Stallings, "Effective Cybersecurity: A Guide to Using Best Practices and Standards", 2018)

06 March 2007

Software Engineering: Simple Object Access Protocol (Definitions)

"An XML-based protocol for invoking remote procedures. SOAP has become one of the cornerstones of Web services, and has been accepted as a standard by all major vendors including Microsoft, SUN, IBM, and others." (Atul Apte, "Java™ Connector Architecture: Building Custom Connectors and Adapters", 2002)

"A standardized protocol used to call Internet-based services (Web services) by exchanging XML messages." (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"Designed by the World Wide Web Consortium (W3C), this transport protocol provides a standard way to send messages between applications using XML." (Sara Morganand & Tobias Thernstrom , "MCITP Self-Paced Training Kit : Designing and Optimizing Data Access by Using Microsoft SQL Server 2005 - Exam 70-442", 2007)

"is a protocol for exchange of information in a distributed environment. It is an XML based protocol consisting of three parts: an envelope (a framework for describing what is in a message and how to process it), a set of encoding rules (for expressing instances of application-defined datatypes), and a convention for representing remote procedure calls and responses." (Craig F Smith & H Peter Alesso, "Thinking on the Web: Berners-Lee, Gödel and Turing", 2008)

"A protocol for exchanging XML messages over a network. It defines the structure of the XML messages (the SOAP envelope), and a framework that defines how these messages should be processed by software." (Mark Olive, "SHARE: A European Healthgrid Roadmap", 2009)

"A wrapper specification from the World Wide Web Consortium (W3C) for requests for web services that facilitates interoperability between a broad mixture of programs and platforms." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A protocol specification for exchanging structured information in a Web services implementation." (Craig S Mullins, "Database Administration", 2012)

"A protocol specification for exchanging data. Along with REST, it is used for storing and retrieving data in the Amazon storage cloud." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"A common protocol used to establish a session between a Web server and mobile app; it is stateless by design." (Mike Harwood, "Internet Security: How to Defend Against Attackers on the Web" 2nd Ed., 2015)

"A lightweight protocol for exchange of information in a decentralized, distributed environment." (Adam Gordon, "Official (ISC)2 Guide to the CISSP CBK" 4th Ed., 2015)

"A standard format in XML for sending data between a client and a Web service. The service's WSDL file specifies the format of the SOAP messages it expects and will return." (Microfocus)

05 March 2007

Software Engineering: Protocol (Definitions)

"The language or rules and conventions that two computers use to pass messages across a network medium. Networking software generally implements multiple levels of protocols layered one on top of another." (Owen Williams, "MCSE TestPrep: SQL Server 6.5 Design and Implementation", 1998)

"A set of rules or standards designed to enable computers to connect with one another and exchange information." (Microsoft Corporation, "SQL Server 7.0 System Administration Training Kit", 1999)

"The way in which two computers transfer data between each other." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours 2nd Ed.", 2001)

"A list of methods that a class must implement to conform or adopt the protocol. Protocols provide a way to standardize an interface across classes." (Stephen G Kochan, "Programming in Objective-C", 2003)

"A set of rules that govern a transaction." (Marcus Green & Bill Brogden, "Java 2™ Programmer Exam Cram™ 2 (Exam CX-310-035)", 2003)

"A set of semantic and syntactic rules that determines the behavior of functions in achieving communication." (Sharon Allen & Evan Terry, "Beginning Relational Data Modeling" 2nd Ed., 2005)

"A language and a set of rules that allow computers to interact in a well-defined way. Examples are FTP, HTTP, and NNTP." (Craig F Smith & H Peter Alesso, "Thinking on the Web: Berners-Lee, Gödel and Turing", 2008)

"A specification - often a standard - that describes how computers communicate with each other, for example, the TCP/IP suite of communication protocols or the OAI-PMH." (J P Getty Trust, "Introduction to Metadata" 2nd Ed., 2008)

"To communicate effectively, client applications and database servers need a commonly agreed-upon approach. A protocol is a communication standard adhered to by both parties that makes these conversations possible." (Robert D Schneider and Darril Gibson, "Microsoft SQL Server 2008 All-In-One Desk Reference For Dummies", 2008)

"A set of rules that computers use to establish and maintain communication amongst themselves." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

"the forms and ceremony used to manage the interaction of elements." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"The rules governing the syntax, semantics, and synchronization of communication." (David Lyle & John G Schmidt, "Lean Integration", 2010)

"A list of methods that a class must implement to conform to or adopt the protocol. Protocols provide a way to standardize an interface across classes. See also formal protocol and informal protocol." (Stephen G Kochan, "Programming in Objective-C" 4th Ed., 2011)

"A set of conventions that govern the communications between processes. Protocol specifies the format and content of messages to be exchanged." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"The standard or set of rules that govern how devices on a network exchange and how they need to function in order to 'talk' to each other." (Linda Volonino & Efraim Turban, "Information Technology for Management" 8th Ed., 2011)

"A standard set of formats and procedures that enable computers to exchange information." (Microsoft, "SQL Server 2012 Glossary", 2012)

"In networking, an agreed-upon way of sending messages back and forth so that neither correspondent will get too confused." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"A set of guidelines defining network traffic formats for the easy communication of data between two hosts." (Mark Rhodes-Ousley, "Information Security: The Complete Reference, Second Edition, 2nd Ed.", 2013)

"A set of instructions, policies, or fully described procedures for accomplishing a service, operation, or task." (Jules H Berman, "Principles of Big Data: Preparing, Sharing, and Analyzing Complex Information", 2013)

"A set of rules controlling the communication and transfer of data between two or more devices or systems in a communication network." (IBM, "Informix Servers 12.1", 2014)

"A rule or custom that governs how something is done. In a computer context, it refers to a standard for transferring data." (Faithe Wempen, "Computing Fundamentals: Introduction to Computers", 2015)

"A set of rules that defines how data is formatted and processed on a network" (Nell Dale & John Lewis, "Computer Science Illuminated" 6th Ed., 2015)

"Defined policies or standards that users adhere to. Protocols are well-defined and accepted procedures. In computer networking, the term refers to algorithms for exchanging various types of data and their interpretation at origination and destination." (Mike Harwood, "Internet Security: How to Defend Against Attackers on the Web" 2nd Ed., 2015)

04 March 2007

Software Engineering: eXtreme Programming (Definitions)

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

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

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

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

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

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

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

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

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

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

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

Software Engineering: Requirements Traceability Matrix (Definitions)

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

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

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

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

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

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.