{"id":82,"date":"2023-09-12T23:47:06","date_gmt":"2023-09-12T23:47:06","guid":{"rendered":"https:\/\/libraryresources.nse.org.ng\/setextbook\/back-matter\/glossary\/"},"modified":"2023-09-12T23:47:06","modified_gmt":"2023-09-12T23:47:06","slug":"glossary","status":"publish","type":"back-matter","link":"https:\/\/libraryresources.nse.org.ng\/setextbook\/back-matter\/glossary\/","title":{"raw":"Glossary","rendered":"Glossary"},"content":{"raw":"<h2 class=\"chtitlenonumber\">Glossary<\/h2>\n<div class=\"pdfcolumn\">\n<div class=\"glossaryformat\">\n<strong>acceptance criteria\n<\/strong>Statements about functionality that, when satisfied, mean the functionality has been satisfactorily implemented.\n\n<strong>Agile\n<\/strong>A software process model and philosophy for managing and developing software projects. Agile values include individuals and interactions, working software, customer collaboration, and responding to change.\n\n<strong>attitude toward risk\n<\/strong>(Cognitive facet.) How willing a person is to take chances while using technology (risk-tolerant vs. risk-averse).\n\n<strong>business capability\n<\/strong>The capacity of a business resource or a combination of resources to generate value for customers by leveraging their environment through a process that involves both tangible and intangible resources.\u00a0<em>Source<\/em>: Michell, V. (2011). A focused approach to business capability. In\u00a0<em>Proceedings of the First International Symposium on Business Modeling and Software Design<\/em>, 105\u2013113. University of Reading.\u00a0<a href=\"https:\/\/doi.org\/10.5220\/0004459101050113\">https:\/\/doi.org\/10.5220\/0004459101050113<\/a>\n\n<strong>class diagrams\n<\/strong>In Unified Modeling Language (UML), a visualization of how classes are built in relation to other classes in object-oriented software. Includes properties and methods of individual classes and \u201chas a\u201d and \u201cis a\u201d relationships between classes.\n\n<strong>client-server architecture\n<\/strong>High-level architecture characterized by one component (the server) responding to requests and providing resources while other components (clients) request those resources.\n\n<strong>clients\n<\/strong>One or more people or organizations who are requesting the software be made and have decision-making authority about the software (e.g., because they are paying for it or otherwise providing resources).\n\n<strong>code decay\n<\/strong>Reduction of code quality over time. Can result in decreased maintainability, more bugs, and irretrievable failure.\n\n<strong>code smell\n<\/strong>Aspect of code indicating the code is of poor quality (e.g., has detriments to readability and maintainability).\n\n<strong>cognitive facet value\n<\/strong>A position on the spectrum of a cognitive facet. Also called a \u201ccognitive style.\u201d\n\n<strong>cognitive facets\n<\/strong>Five aspects of users that affect how they solve problems in software: motivations, information processing style, computer self-efficacy, attitude toward risk, learning style.\n\n<strong>cognitive style\n<\/strong>A person's preferred way of processing (perceiving, organizing and analyzing) information using cognitive mechanisms and structures. They are assumed to be relatively stable. Whilst cognitive styles can influence a person's behavior, depending on task demands, other processing strategies may at times be employed \u2013 this is because they are only preferences.\u00a0<em>Source<\/em>: Armstrong, S.J., Peterson, E.R., &amp; Rayner, S. G. (2012). Understanding and defining cognitive style and learning style: A Delphi study in the context of educational psychology.\u00a0<em>Educational Studies, 4<\/em>, 449-455.\u00a0<a href=\"https:\/\/doi.org\/10.1080\/03055698.2011.643110\">https:\/\/doi.org\/10.1080\/03055698.2011.643110<\/a>\n\n<strong>communication pipe\n<\/strong>Technology and\/or approach used for sending and receiving messages between processes.\n\n<strong>component\n<\/strong>Within a codebase, a unit of the code containing related functionality. Ideally, a component is both replaceable and reusable.\n\n<strong>computer self-efficacy\n<\/strong>(Cognitive facet.) A person\u2019s confidence in their ability to use technology (low vs. medium vs. high).\n\n<strong>constraint\n<\/strong>A restriction; what must be done or not done.\n\n<strong>contingency\n<\/strong>A future event or circumstance that may occur but depends on known and unknown factors. Can be difficult to predict far ahead of time.\n\n<strong>coupling\n<\/strong>The degree to which one unit of code is dependent on another.\n\n<strong>Daily Scrum\n<\/strong>In Agile Scrum, a 15-minute meeting during which developers discuss what has been done since the last Daily Scrum, what will be done before the next Daily Scrum, and whether there are any blockers.\n\n<strong>Definition of Done (DoD)\n<\/strong>A set of acceptance criteria that, once satisfied, means a user story has been satisfactorily implemented.\n\n<strong>Eisenhower matrix\n<\/strong>A grid for helping decide whether to do, delegate, schedule, or eliminate a task based on its urgency and importance.\n\n<strong>encapsulation\n<\/strong>In object-oriented programming, (1) combining data and the methods that act upon those data into one unit of code or (2) preventing external direct access to data within a unit of code.\n\n<strong>estimation\n<\/strong>Figuring out ahead of time how long a task is likely to take.\n\n<strong>eventual consistency\n<\/strong>Characteristic of software systems where different parts of the system can have less up-to-date information (e.g., state, data) than other parts, but the inconsistencies are temporary.\n\n<strong>extensibility\n<\/strong>Degree to which software supports adding functionality later.\n\n<strong>Extreme Programming (XP)\n<\/strong>Agile methodology that prioritizes customer satisfaction and communication, short development cycles, iteration, frequent releases, code review, teamwork, pair programming, required unit testing, and implementing only the functionality that\u2019s needed.\n\n<strong>fist of five\n<\/strong>A method for gauging and building group consensus that uses a six-level voting system (zero to five fingers).\n\n<strong>focus groups\n<\/strong>A structured conversation facilitated by a researcher with a small group of prospective users (typically 6-12 individuals). The aim of this session is to gather insights about the participants\u2019 attitudes, opinions, motivations, concerns, and challenges concerning a specific product or topic.\n\n<strong>functional requirement\n<\/strong>Description of what functionality the software needs to have.\n\n<strong>Gantt chart\n<\/strong>Horizontal bar chart showing start and end times of activities within a project schedule, along a time line.\n\n<strong>GenderMag Method\n<\/strong>A method that involves utilizing a specialized cognitive walkthrough and customizable personas (Abi, Pat, and Tim) to identify and address gender-inclusivity issues in software, thus improving its overall gender inclusiveness.\n\n<strong>given-when-then\n<\/strong>A format for writing an acceptance criterion: Given &lt;context&gt;, when &lt;action&gt;, then &lt;result&gt;.\u00a0<em>Source<\/em>: Agile Alliance. (n.d.).\u00a0<em>What is \u201cgiven - when - then\u201d?<\/em>\u00a0<a href=\"https:\/\/www.agilealliance.org\/glossary\/gwt\/\">https:\/\/www.agilealliance.org\/glossary\/gwt\/<\/a>\n\n<strong>graphical user interface (GUI)\n<\/strong>A user interface with interactive graphics, in contrast to a text-based user interface.\n\n<strong>ground rules\n<\/strong>A set of statements about the team, agreed to by each team member, for avoiding team conflict and dysfunction.\n\n<strong>heuristic evaluation\n<\/strong>A usability inspection method in which evaluators independently examine a design to ensure it aligns with a predetermined set of heuristics, and then compare their findings. <em>Source<\/em>: Nielsen, J., &amp; Molich, R. (1990). Heuristic evaluation of user interfaces. In\u00a0<em>Proceedings of the SIGCHI Conference on Human Factors in Computing Systems Empowering People\u2014CHI \u201990<\/em>. Association for Computing Machinery.\u00a0<a href=\"https:\/\/doi.org\/10.1145\/97243.97281\">https:\/\/doi.org\/10.1145\/97243.97281<\/a>\n\n<strong>high-fidelity prototype\n<\/strong>A polished illustration that looks like a finished, publishable user interface design (especially a GUI). Almost always digital.\n\n<strong>high-level architecture\n<\/strong>Abstract representation of overall code design; covers all parts of the software.\n\n<strong>ideal days\n<\/strong>The number of days it would take to complete the work if the work could be 100% focused on.\n\n<strong>implementation\n<\/strong>(Software development life cycle phase.) Using the requirements and design to code the software.\n\n<strong>inclusive design\n<\/strong>Designing with the goal of increasing usability for traditionally underserved user populations while also increasing usability for mainstream users.\n\n<strong>Inclusivity Heuristics\n<\/strong>Guidelines for making software inclusive to diverse users.\n\n<strong>Increment\n<\/strong>In Agile Scrum, a measurable increase in functionality toward completing the Product Goal.\n\n<strong>information processing style\n<\/strong>(Cognitive facet.) How a person gathers data in relation to acting on those data (comprehensive vs. selective).\n\n<strong>inspection method\n<\/strong>Any approach in which an evaluator examines a user interface.\n\n<strong>integrated development environment (IDE)\n<\/strong>Software for developing software.\n\n<strong>interaction design\n<\/strong>A method of designing technology that focuses on aiding users in comprehending the operations and events occurring within the technology, as well as guiding them on the available actions they can take.\n\n<strong>interaction diagram\n<\/strong>Visualization of collaboration between different parts of software.\n\n<strong>INVEST\n<\/strong>Characteristics of good user stories (independent, negotiable, valuable, estimable, small, testable). <em>Source<\/em>: Wake, B. (2003, August 17).\u00a0<em>Invest in good stories, and Smart Tasks<\/em>. XP123 Exploring Extreme Programming.\u00a0<a href=\"https:\/\/xp123.com\/articles\/invest-in-good-stories-and-smart-tasks\/\">https:\/\/xp123.com\/articles\/invest-in-good-stories-and-smart-tasks\/<\/a>\n\n<strong>iteration\n<\/strong>Verb: Revision. Noun (in Agile): A time-boxed software development cycle.\n\n<strong>iteration plan\n<\/strong>In Agile, establishing what will be done during a development cycle.\n\n<strong>JavaScript Object Notation (JSON)\n<\/strong>A lightweight data-interchange format that is easy for humans to read and write.\u00a0<em>Source<\/em>: JSON.org. (n.d.).\u00a0<em>Introducing JSON<\/em>.\u00a0<a href=\"https:\/\/www.json.org\/json-en.html\">https:\/\/www.json.org\/json-en.html<\/a>\n\n<strong>learning style\n<\/strong>(Cognitive facet.) How a person prefers to move through software (by tinkering vs. by mindful tinkering vs. by process).\n\n<strong>low-fidelity prototype\n<\/strong>A rough sketch of a user interface design (especially a GUI). Can be hand-drawn or digital.\n\n<strong>maintenance\n<\/strong>Development activities that improve software but that are unrelated to implementing new features (e.g., correcting bugs, improving organization of code, and the like).\n\n<strong>managerial skill mix (MSM)\n<\/strong>Three categories of skills used by managers: (1) interpersonal, (2) technical, (3) administrative\/conceptual. <em>Source<\/em>: Badawy, M. K. (1995).\u00a0<em>Developing managerial skills in engineers and scientists: Succeeding as a technical manager<\/em>. Van Nostrand Reinhold.\n\n<strong>medium-fidelity prototype\n<\/strong>A careful and detailed illustration of a user interface design (especially a GUI). Can be hand-drawn, but digital is more common.\n\n<strong>method\n<\/strong>A preestablished way of achieving a specific outcome.\n\n<strong>microservices architecture\n<\/strong>High-level architecture characterized by multiple independent components that each run in their own process and communicate between one another without direct access.\n\n<strong>minimum viable product (MVP)\n<\/strong>A cost-effective and efficient approach that allows for improved evaluation of potential user interest in a product before it is fully developed. <em>Source<\/em>: Olsen, D. (2015).\u00a0<em>The lean product playbook: How to innovate with minimum viable products and rapid customer feedback<\/em>. Wiley.\n\n<strong>mitigation plan\n<\/strong>What will be done if a contingency happens.\n\n<strong>monolith architecture\n<\/strong>High-level architecture characterized by being in one or few pieces; cannot be easily divided into components that run separately and are independently useful.\n\n<strong>motivations\n<\/strong>(Cognitive facet.) What keeps someone using technology (task completion vs. tech interest).\n\n<strong>nonfunctional requirement\n<\/strong>Description of how well software is expected to perform or what constraints or limitations it must respect.\n\n<strong>pairwise comparison\n<\/strong>A process in which entities are compared in order to determine which is preferred.\n\n<strong>paper prototype\n<\/strong>A manually created drawing utilized to convey a prospective user interface design that is intended for implementation, particularly a design focused on graphical user interface.\n\n<strong>participant\n<\/strong>In a Unified Modeling Language sequence diagram, the columns. They can represent objects, users, or other entities involved in a program\u2019s execution.\n\n<strong>persona\n<\/strong>Fictitious character created to represent specific user subsets within a target audience. They are commonly used in marketing and user interface design to aid in the concentration on particular groups of users and customers.\n\n<strong>planning fallacy\n<\/strong>An optimism bias in which predictions regarding the time required to complete a future task tend to underestimate the actual time needed.\n\n<strong>planning poker\n<\/strong>In Agile, a consensus-based method of assigning estimates to a task that involves individuals on a team each making their own estimate privately, then sharing with the team, discussing, and re-estimating as needed.\n\n<strong>prioritization\n<\/strong>Deciding which units of work to complete before others.\n\n<strong>Product Backlog\n<\/strong>In Agile Scrum, an ordered list of all that is known to be needed to improve a product.\n\n<strong>Product Owner\n<\/strong>In Agile Scrum, the person who is responsible for guiding the Scrum Team on making the most valuable software possible.\n\n<strong>project management\n<\/strong>The process of planning and executing a project while balancing the time, cost, and scope constraints.\n\n<strong>project management system\n<\/strong>Software for planning, organizing, and otherwise carrying out a project.\n\n<strong>project network diagram\n<\/strong>Graph showing the order in which a project\u2019s activities are to be completed.\n\n<strong>project priority matrix\n<\/strong>A 3 \u00d7 3 grid for documenting how to respond when there are potential changes to a project\u2019s time, cost, or scope. Options include allowing only positive change (constrain), allowing negative change (accept), or seeking positive change (enhance).\n\n<strong>pseudocode\n<\/strong>Fake code. Pseudocode looks like code but doesn\u2019t follow the rules of a particular programming language. Used to communicate programming concepts.\n\n<strong>quality attribute\n<\/strong>A characteristic of software used to describe how good it is.\n\n<strong>RACI matrix\n<\/strong>In project management, a chart for defining which roles are responsible (R) and accountable (A) for a task or deliverable, and which roles should be consulted (C) or informed (I) about the status of the task or deliverable.\n\n<strong>refactoring\n<\/strong>Improving code design without changing what the code does.\n\n<strong>release plan\n<\/strong>What will be completed for a specific software release and when the release will occur.\n\n<strong>requirement\n<\/strong>A rule the software must conform to, including what the software must do, how well it must do what it does, or the software\u2019s limitations or constraints.\n\n<strong>requirements elicitation\n<\/strong>The process of gathering requirements from project stakeholders.\n\n<strong>requirements specification\n<\/strong>Converting stakeholder requests into written requirements.\n\n<strong>risk\n<\/strong>Estimated probability of a negative contingency given known and unknown factors.\n\n<strong>risk mitigation\n<\/strong>An action taken in order to avoid a contingency.\n\n<strong>scheduling\n<\/strong>Deciding when project activities are to be completed, how long they will take, and what resources are needed to complete them.\n\n<strong>scope\n<\/strong>The boundaries and deliverables of a project.\n\n<strong>Scrum\n<\/strong>An Agile framework designed for the development and maintenance of complex software.\n\n<strong>Scrum board\n<\/strong>A way to organize and visualize tasks or work as cards on a board. The board has columns for different categories, and each card is placed within a column. A Scrum board could be a physical bulletin board with sticky notes or index cards. It is also a common feature of task management software.\n\n<strong>Scrum Master\n<\/strong>In Agile Scrum, the person who is responsible for making sure the Scrum Team is following Scrum.\n\n<strong>sequence diagram\n<\/strong>In Unified Modeling Language, an interaction diagram showing how different participants (e.g., users, software components, classes, etc.) collaborate during a single use case.\n\n<strong>service\n<\/strong>A unit of software that receives and fulfills requests.\n\n<strong>software architecture\n<\/strong>Code design. Can be shown at different levels of abstraction and detail.\n\n<strong>software development life cycle (SDLC)\n<\/strong>Phases through which a software\u2019s development proceeds: requirements, design, implementation, testing, maintenance.\n\n<strong>software engineering\n<\/strong>Systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software. <em>Source<\/em>: International Organization for Standardization, International Electrotechnical Commission, Institute of Electrical and Electronics Engineers. (2017). <em>Systems and software engineering \u2014 Vocabulary<\/em> (ISO\/IEC\/IEEE Standard No. 24765:2017). <a href=\"https:\/\/www.iso.org\/standard\/71952.html\">https:\/\/www.iso.org\/standard\/71952.html<\/a>\n\n<strong>software process model\n<\/strong>A philosophy and\/or set of approaches for software development and\/or software project management.\n\n<strong>software requirements specification (SRS)\n<\/strong>A document that contains software requirements.\n\n<strong>spike\n<\/strong>A quick and to-the-point investigation for gathering information to help the team answer a question or choose a development path.\n\n<strong>Sprint\n<\/strong>In Agile Scrum, a development period (a month or less).\n\n<strong>Sprint Backlog\n<\/strong>In Agile Scrum, the set of activities to be completed during a Sprint (from Product Backlog), the associated Sprint Goal, and a plan for completing the activities.\n\n<strong>Sprint Goal\n<\/strong>In Agile Scrum, the overall objective of the Sprint.\n\n<strong>Sprint Planning\n<\/strong>In Agile Scrum, the activity of decided what work will be done during the Sprint.\n\n<strong>Sprint Retrospective\n<\/strong>In Agile Scrum, a meeting during which the Scrum Team discusses how the last Sprint went in terms of individuals, interactions, processes, tools, and the Sprint Definition of Done.\n\n<strong>Sprint Review\n<\/strong>In Agile Scrum, a meeting during which the Scrum Team and other stakeholders discuss what happened during the Sprint and what to do during future Sprints.\n\n<strong>stakeholders\n<\/strong>Anyone who is or will be affected by the software or its development (e.g., clients, companies, users, developers, managers, politicians, and so on).\n\n<strong>story points\n<\/strong>A method for estimating an activity based on its size relative to other activities. Scale established by team.\n\n<strong>sustainability\n<\/strong>Degree to which software can continue to function over time (e.g., measured in time and how well the software is functioning).\n\n<strong>task management\n<\/strong>The collection, assignment, sharing, tracking, and scheduling of tasks.\u00a0<em>Source<\/em>: Gil, Y., Groth, P., &amp; Ratnakar, V. (2009). Leveraging social networking sites to acquire rich task structure. In\u00a0<em>Proceedings of the Workshop on User-Contributed Knowledge and Artificial Intelligence: An Evolving Synergy (WikiAI)<\/em>.\n\n<strong>task management system\n<\/strong>Software for planning and organizing project activities.\n\n<strong>tech stack\n<\/strong>The set of programming languages, frameworks, and other technologies chosen or needed for implementing a piece of software.\n\n<strong>technical debt\n<\/strong>Time and resources you (or someone else) will need to spend on modifying your software in the future because of the poor decisions you\u2019re making in the present.\n\n<strong>think-aloud protocol\n<\/strong>A feedback-gathering method to assess the usability of a design, wherein a test user verbalizes their thoughts and impressions while interacting with the design.\n\n<strong>triple constraint\n<\/strong>In project management, the three limiting factors that govern project execution: time, cost, and scope. Scope includes quality. Cost includes spending money and resources.\n\n<strong>Tuckman\u2019s model of team development\n<\/strong>A five-stage model of how a team develops over time: (1) forming, (2) storming, (3) norming, (4) performing, (5) adjourning.\n\n<strong>Unified Modeling Language (UML)\n<\/strong>A set of notation and methods for describing and designing software.\n\n<strong>usability testing\n<\/strong>The act of observing individuals as they attempt to interact with your software.\n\n<strong>use case\n<\/strong>A formal agreement outlining the expected behavior of a system.\n\n<strong>user acceptance testing (UAT)\n<\/strong>Formally testing software with end users to check not only whether it performs as expected but also whether end users will use it. Typically performed before the software is released.\n\n<strong>user interface (UI)\n<\/strong>What a user interacts with to operate a system (e.g., a graphical user interface, a command-line interface, a virtual or augmented reality interface, and the like).\n\n<strong>user story\n<\/strong>A concise and straightforward explanation of a feature presented from the viewpoint of the individual seeking the new functionality, typically a user or customer of the system.\n\n<strong>validation\n<\/strong>Confirming that software meets users\u2019 needs (\u201cDid we build the right software?\u201d).\n\n<strong>velocity\n<\/strong>In Agile, a measure of how much work is being completed.\n\n<strong>verification\n<\/strong>Confirming that software satisfied its requirements (\u201cDid we build the software right?\u201d).\n\n<strong>Waterfall\n<\/strong>Way of going about software development and management that is characterized by extensive planning, comprehensive documentation, and moving linearly through stages of the software development life cycle (SDLC).\n\n<\/div>\n<\/div>","rendered":"<h2 class=\"chtitlenonumber\">Glossary<\/h2>\n<div class=\"pdfcolumn\">\n<div class=\"glossaryformat\">\n<strong>acceptance criteria<br \/>\n<\/strong>Statements about functionality that, when satisfied, mean the functionality has been satisfactorily implemented.<\/p>\n<p><strong>Agile<br \/>\n<\/strong>A software process model and philosophy for managing and developing software projects. Agile values include individuals and interactions, working software, customer collaboration, and responding to change.<\/p>\n<p><strong>attitude toward risk<br \/>\n<\/strong>(Cognitive facet.) How willing a person is to take chances while using technology (risk-tolerant vs. risk-averse).<\/p>\n<p><strong>business capability<br \/>\n<\/strong>The capacity of a business resource or a combination of resources to generate value for customers by leveraging their environment through a process that involves both tangible and intangible resources.\u00a0<em>Source<\/em>: Michell, V. (2011). A focused approach to business capability. In\u00a0<em>Proceedings of the First International Symposium on Business Modeling and Software Design<\/em>, 105\u2013113. University of Reading.\u00a0<a href=\"https:\/\/doi.org\/10.5220\/0004459101050113\">https:\/\/doi.org\/10.5220\/0004459101050113<\/a><\/p>\n<p><strong>class diagrams<br \/>\n<\/strong>In Unified Modeling Language (UML), a visualization of how classes are built in relation to other classes in object-oriented software. Includes properties and methods of individual classes and \u201chas a\u201d and \u201cis a\u201d relationships between classes.<\/p>\n<p><strong>client-server architecture<br \/>\n<\/strong>High-level architecture characterized by one component (the server) responding to requests and providing resources while other components (clients) request those resources.<\/p>\n<p><strong>clients<br \/>\n<\/strong>One or more people or organizations who are requesting the software be made and have decision-making authority about the software (e.g., because they are paying for it or otherwise providing resources).<\/p>\n<p><strong>code decay<br \/>\n<\/strong>Reduction of code quality over time. Can result in decreased maintainability, more bugs, and irretrievable failure.<\/p>\n<p><strong>code smell<br \/>\n<\/strong>Aspect of code indicating the code is of poor quality (e.g., has detriments to readability and maintainability).<\/p>\n<p><strong>cognitive facet value<br \/>\n<\/strong>A position on the spectrum of a cognitive facet. Also called a \u201ccognitive style.\u201d<\/p>\n<p><strong>cognitive facets<br \/>\n<\/strong>Five aspects of users that affect how they solve problems in software: motivations, information processing style, computer self-efficacy, attitude toward risk, learning style.<\/p>\n<p><strong>cognitive style<br \/>\n<\/strong>A person&#8217;s preferred way of processing (perceiving, organizing and analyzing) information using cognitive mechanisms and structures. They are assumed to be relatively stable. Whilst cognitive styles can influence a person&#8217;s behavior, depending on task demands, other processing strategies may at times be employed \u2013 this is because they are only preferences.\u00a0<em>Source<\/em>: Armstrong, S.J., Peterson, E.R., &amp; Rayner, S. G. (2012). Understanding and defining cognitive style and learning style: A Delphi study in the context of educational psychology.\u00a0<em>Educational Studies, 4<\/em>, 449-455.\u00a0<a href=\"https:\/\/doi.org\/10.1080\/03055698.2011.643110\">https:\/\/doi.org\/10.1080\/03055698.2011.643110<\/a><\/p>\n<p><strong>communication pipe<br \/>\n<\/strong>Technology and\/or approach used for sending and receiving messages between processes.<\/p>\n<p><strong>component<br \/>\n<\/strong>Within a codebase, a unit of the code containing related functionality. Ideally, a component is both replaceable and reusable.<\/p>\n<p><strong>computer self-efficacy<br \/>\n<\/strong>(Cognitive facet.) A person\u2019s confidence in their ability to use technology (low vs. medium vs. high).<\/p>\n<p><strong>constraint<br \/>\n<\/strong>A restriction; what must be done or not done.<\/p>\n<p><strong>contingency<br \/>\n<\/strong>A future event or circumstance that may occur but depends on known and unknown factors. Can be difficult to predict far ahead of time.<\/p>\n<p><strong>coupling<br \/>\n<\/strong>The degree to which one unit of code is dependent on another.<\/p>\n<p><strong>Daily Scrum<br \/>\n<\/strong>In Agile Scrum, a 15-minute meeting during which developers discuss what has been done since the last Daily Scrum, what will be done before the next Daily Scrum, and whether there are any blockers.<\/p>\n<p><strong>Definition of Done (DoD)<br \/>\n<\/strong>A set of acceptance criteria that, once satisfied, means a user story has been satisfactorily implemented.<\/p>\n<p><strong>Eisenhower matrix<br \/>\n<\/strong>A grid for helping decide whether to do, delegate, schedule, or eliminate a task based on its urgency and importance.<\/p>\n<p><strong>encapsulation<br \/>\n<\/strong>In object-oriented programming, (1) combining data and the methods that act upon those data into one unit of code or (2) preventing external direct access to data within a unit of code.<\/p>\n<p><strong>estimation<br \/>\n<\/strong>Figuring out ahead of time how long a task is likely to take.<\/p>\n<p><strong>eventual consistency<br \/>\n<\/strong>Characteristic of software systems where different parts of the system can have less up-to-date information (e.g., state, data) than other parts, but the inconsistencies are temporary.<\/p>\n<p><strong>extensibility<br \/>\n<\/strong>Degree to which software supports adding functionality later.<\/p>\n<p><strong>Extreme Programming (XP)<br \/>\n<\/strong>Agile methodology that prioritizes customer satisfaction and communication, short development cycles, iteration, frequent releases, code review, teamwork, pair programming, required unit testing, and implementing only the functionality that\u2019s needed.<\/p>\n<p><strong>fist of five<br \/>\n<\/strong>A method for gauging and building group consensus that uses a six-level voting system (zero to five fingers).<\/p>\n<p><strong>focus groups<br \/>\n<\/strong>A structured conversation facilitated by a researcher with a small group of prospective users (typically 6-12 individuals). The aim of this session is to gather insights about the participants\u2019 attitudes, opinions, motivations, concerns, and challenges concerning a specific product or topic.<\/p>\n<p><strong>functional requirement<br \/>\n<\/strong>Description of what functionality the software needs to have.<\/p>\n<p><strong>Gantt chart<br \/>\n<\/strong>Horizontal bar chart showing start and end times of activities within a project schedule, along a time line.<\/p>\n<p><strong>GenderMag Method<br \/>\n<\/strong>A method that involves utilizing a specialized cognitive walkthrough and customizable personas (Abi, Pat, and Tim) to identify and address gender-inclusivity issues in software, thus improving its overall gender inclusiveness.<\/p>\n<p><strong>given-when-then<br \/>\n<\/strong>A format for writing an acceptance criterion: Given &lt;context&gt;, when &lt;action&gt;, then &lt;result&gt;.\u00a0<em>Source<\/em>: Agile Alliance. (n.d.).\u00a0<em>What is \u201cgiven &#8211; when &#8211; then\u201d?<\/em>\u00a0<a href=\"https:\/\/www.agilealliance.org\/glossary\/gwt\/\">https:\/\/www.agilealliance.org\/glossary\/gwt\/<\/a><\/p>\n<p><strong>graphical user interface (GUI)<br \/>\n<\/strong>A user interface with interactive graphics, in contrast to a text-based user interface.<\/p>\n<p><strong>ground rules<br \/>\n<\/strong>A set of statements about the team, agreed to by each team member, for avoiding team conflict and dysfunction.<\/p>\n<p><strong>heuristic evaluation<br \/>\n<\/strong>A usability inspection method in which evaluators independently examine a design to ensure it aligns with a predetermined set of heuristics, and then compare their findings. <em>Source<\/em>: Nielsen, J., &amp; Molich, R. (1990). Heuristic evaluation of user interfaces. In\u00a0<em>Proceedings of the SIGCHI Conference on Human Factors in Computing Systems Empowering People\u2014CHI \u201990<\/em>. Association for Computing Machinery.\u00a0<a href=\"https:\/\/doi.org\/10.1145\/97243.97281\">https:\/\/doi.org\/10.1145\/97243.97281<\/a><\/p>\n<p><strong>high-fidelity prototype<br \/>\n<\/strong>A polished illustration that looks like a finished, publishable user interface design (especially a GUI). Almost always digital.<\/p>\n<p><strong>high-level architecture<br \/>\n<\/strong>Abstract representation of overall code design; covers all parts of the software.<\/p>\n<p><strong>ideal days<br \/>\n<\/strong>The number of days it would take to complete the work if the work could be 100% focused on.<\/p>\n<p><strong>implementation<br \/>\n<\/strong>(Software development life cycle phase.) Using the requirements and design to code the software.<\/p>\n<p><strong>inclusive design<br \/>\n<\/strong>Designing with the goal of increasing usability for traditionally underserved user populations while also increasing usability for mainstream users.<\/p>\n<p><strong>Inclusivity Heuristics<br \/>\n<\/strong>Guidelines for making software inclusive to diverse users.<\/p>\n<p><strong>Increment<br \/>\n<\/strong>In Agile Scrum, a measurable increase in functionality toward completing the Product Goal.<\/p>\n<p><strong>information processing style<br \/>\n<\/strong>(Cognitive facet.) How a person gathers data in relation to acting on those data (comprehensive vs. selective).<\/p>\n<p><strong>inspection method<br \/>\n<\/strong>Any approach in which an evaluator examines a user interface.<\/p>\n<p><strong>integrated development environment (IDE)<br \/>\n<\/strong>Software for developing software.<\/p>\n<p><strong>interaction design<br \/>\n<\/strong>A method of designing technology that focuses on aiding users in comprehending the operations and events occurring within the technology, as well as guiding them on the available actions they can take.<\/p>\n<p><strong>interaction diagram<br \/>\n<\/strong>Visualization of collaboration between different parts of software.<\/p>\n<p><strong>INVEST<br \/>\n<\/strong>Characteristics of good user stories (independent, negotiable, valuable, estimable, small, testable). <em>Source<\/em>: Wake, B. (2003, August 17).\u00a0<em>Invest in good stories, and Smart Tasks<\/em>. XP123 Exploring Extreme Programming.\u00a0<a href=\"https:\/\/xp123.com\/articles\/invest-in-good-stories-and-smart-tasks\/\">https:\/\/xp123.com\/articles\/invest-in-good-stories-and-smart-tasks\/<\/a><\/p>\n<p><strong>iteration<br \/>\n<\/strong>Verb: Revision. Noun (in Agile): A time-boxed software development cycle.<\/p>\n<p><strong>iteration plan<br \/>\n<\/strong>In Agile, establishing what will be done during a development cycle.<\/p>\n<p><strong>JavaScript Object Notation (JSON)<br \/>\n<\/strong>A lightweight data-interchange format that is easy for humans to read and write.\u00a0<em>Source<\/em>: JSON.org. (n.d.).\u00a0<em>Introducing JSON<\/em>.\u00a0<a href=\"https:\/\/www.json.org\/json-en.html\">https:\/\/www.json.org\/json-en.html<\/a><\/p>\n<p><strong>learning style<br \/>\n<\/strong>(Cognitive facet.) How a person prefers to move through software (by tinkering vs. by mindful tinkering vs. by process).<\/p>\n<p><strong>low-fidelity prototype<br \/>\n<\/strong>A rough sketch of a user interface design (especially a GUI). Can be hand-drawn or digital.<\/p>\n<p><strong>maintenance<br \/>\n<\/strong>Development activities that improve software but that are unrelated to implementing new features (e.g., correcting bugs, improving organization of code, and the like).<\/p>\n<p><strong>managerial skill mix (MSM)<br \/>\n<\/strong>Three categories of skills used by managers: (1) interpersonal, (2) technical, (3) administrative\/conceptual. <em>Source<\/em>: Badawy, M. K. (1995).\u00a0<em>Developing managerial skills in engineers and scientists: Succeeding as a technical manager<\/em>. Van Nostrand Reinhold.<\/p>\n<p><strong>medium-fidelity prototype<br \/>\n<\/strong>A careful and detailed illustration of a user interface design (especially a GUI). Can be hand-drawn, but digital is more common.<\/p>\n<p><strong>method<br \/>\n<\/strong>A preestablished way of achieving a specific outcome.<\/p>\n<p><strong>microservices architecture<br \/>\n<\/strong>High-level architecture characterized by multiple independent components that each run in their own process and communicate between one another without direct access.<\/p>\n<p><strong>minimum viable product (MVP)<br \/>\n<\/strong>A cost-effective and efficient approach that allows for improved evaluation of potential user interest in a product before it is fully developed. <em>Source<\/em>: Olsen, D. (2015).\u00a0<em>The lean product playbook: How to innovate with minimum viable products and rapid customer feedback<\/em>. Wiley.<\/p>\n<p><strong>mitigation plan<br \/>\n<\/strong>What will be done if a contingency happens.<\/p>\n<p><strong>monolith architecture<br \/>\n<\/strong>High-level architecture characterized by being in one or few pieces; cannot be easily divided into components that run separately and are independently useful.<\/p>\n<p><strong>motivations<br \/>\n<\/strong>(Cognitive facet.) What keeps someone using technology (task completion vs. tech interest).<\/p>\n<p><strong>nonfunctional requirement<br \/>\n<\/strong>Description of how well software is expected to perform or what constraints or limitations it must respect.<\/p>\n<p><strong>pairwise comparison<br \/>\n<\/strong>A process in which entities are compared in order to determine which is preferred.<\/p>\n<p><strong>paper prototype<br \/>\n<\/strong>A manually created drawing utilized to convey a prospective user interface design that is intended for implementation, particularly a design focused on graphical user interface.<\/p>\n<p><strong>participant<br \/>\n<\/strong>In a Unified Modeling Language sequence diagram, the columns. They can represent objects, users, or other entities involved in a program\u2019s execution.<\/p>\n<p><strong>persona<br \/>\n<\/strong>Fictitious character created to represent specific user subsets within a target audience. They are commonly used in marketing and user interface design to aid in the concentration on particular groups of users and customers.<\/p>\n<p><strong>planning fallacy<br \/>\n<\/strong>An optimism bias in which predictions regarding the time required to complete a future task tend to underestimate the actual time needed.<\/p>\n<p><strong>planning poker<br \/>\n<\/strong>In Agile, a consensus-based method of assigning estimates to a task that involves individuals on a team each making their own estimate privately, then sharing with the team, discussing, and re-estimating as needed.<\/p>\n<p><strong>prioritization<br \/>\n<\/strong>Deciding which units of work to complete before others.<\/p>\n<p><strong>Product Backlog<br \/>\n<\/strong>In Agile Scrum, an ordered list of all that is known to be needed to improve a product.<\/p>\n<p><strong>Product Owner<br \/>\n<\/strong>In Agile Scrum, the person who is responsible for guiding the Scrum Team on making the most valuable software possible.<\/p>\n<p><strong>project management<br \/>\n<\/strong>The process of planning and executing a project while balancing the time, cost, and scope constraints.<\/p>\n<p><strong>project management system<br \/>\n<\/strong>Software for planning, organizing, and otherwise carrying out a project.<\/p>\n<p><strong>project network diagram<br \/>\n<\/strong>Graph showing the order in which a project\u2019s activities are to be completed.<\/p>\n<p><strong>project priority matrix<br \/>\n<\/strong>A 3 \u00d7 3 grid for documenting how to respond when there are potential changes to a project\u2019s time, cost, or scope. Options include allowing only positive change (constrain), allowing negative change (accept), or seeking positive change (enhance).<\/p>\n<p><strong>pseudocode<br \/>\n<\/strong>Fake code. Pseudocode looks like code but doesn\u2019t follow the rules of a particular programming language. Used to communicate programming concepts.<\/p>\n<p><strong>quality attribute<br \/>\n<\/strong>A characteristic of software used to describe how good it is.<\/p>\n<p><strong>RACI matrix<br \/>\n<\/strong>In project management, a chart for defining which roles are responsible (R) and accountable (A) for a task or deliverable, and which roles should be consulted (C) or informed (I) about the status of the task or deliverable.<\/p>\n<p><strong>refactoring<br \/>\n<\/strong>Improving code design without changing what the code does.<\/p>\n<p><strong>release plan<br \/>\n<\/strong>What will be completed for a specific software release and when the release will occur.<\/p>\n<p><strong>requirement<br \/>\n<\/strong>A rule the software must conform to, including what the software must do, how well it must do what it does, or the software\u2019s limitations or constraints.<\/p>\n<p><strong>requirements elicitation<br \/>\n<\/strong>The process of gathering requirements from project stakeholders.<\/p>\n<p><strong>requirements specification<br \/>\n<\/strong>Converting stakeholder requests into written requirements.<\/p>\n<p><strong>risk<br \/>\n<\/strong>Estimated probability of a negative contingency given known and unknown factors.<\/p>\n<p><strong>risk mitigation<br \/>\n<\/strong>An action taken in order to avoid a contingency.<\/p>\n<p><strong>scheduling<br \/>\n<\/strong>Deciding when project activities are to be completed, how long they will take, and what resources are needed to complete them.<\/p>\n<p><strong>scope<br \/>\n<\/strong>The boundaries and deliverables of a project.<\/p>\n<p><strong>Scrum<br \/>\n<\/strong>An Agile framework designed for the development and maintenance of complex software.<\/p>\n<p><strong>Scrum board<br \/>\n<\/strong>A way to organize and visualize tasks or work as cards on a board. The board has columns for different categories, and each card is placed within a column. A Scrum board could be a physical bulletin board with sticky notes or index cards. It is also a common feature of task management software.<\/p>\n<p><strong>Scrum Master<br \/>\n<\/strong>In Agile Scrum, the person who is responsible for making sure the Scrum Team is following Scrum.<\/p>\n<p><strong>sequence diagram<br \/>\n<\/strong>In Unified Modeling Language, an interaction diagram showing how different participants (e.g., users, software components, classes, etc.) collaborate during a single use case.<\/p>\n<p><strong>service<br \/>\n<\/strong>A unit of software that receives and fulfills requests.<\/p>\n<p><strong>software architecture<br \/>\n<\/strong>Code design. Can be shown at different levels of abstraction and detail.<\/p>\n<p><strong>software development life cycle (SDLC)<br \/>\n<\/strong>Phases through which a software\u2019s development proceeds: requirements, design, implementation, testing, maintenance.<\/p>\n<p><strong>software engineering<br \/>\n<\/strong>Systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software. <em>Source<\/em>: International Organization for Standardization, International Electrotechnical Commission, Institute of Electrical and Electronics Engineers. (2017). <em>Systems and software engineering \u2014 Vocabulary<\/em> (ISO\/IEC\/IEEE Standard No. 24765:2017). <a href=\"https:\/\/www.iso.org\/standard\/71952.html\">https:\/\/www.iso.org\/standard\/71952.html<\/a><\/p>\n<p><strong>software process model<br \/>\n<\/strong>A philosophy and\/or set of approaches for software development and\/or software project management.<\/p>\n<p><strong>software requirements specification (SRS)<br \/>\n<\/strong>A document that contains software requirements.<\/p>\n<p><strong>spike<br \/>\n<\/strong>A quick and to-the-point investigation for gathering information to help the team answer a question or choose a development path.<\/p>\n<p><strong>Sprint<br \/>\n<\/strong>In Agile Scrum, a development period (a month or less).<\/p>\n<p><strong>Sprint Backlog<br \/>\n<\/strong>In Agile Scrum, the set of activities to be completed during a Sprint (from Product Backlog), the associated Sprint Goal, and a plan for completing the activities.<\/p>\n<p><strong>Sprint Goal<br \/>\n<\/strong>In Agile Scrum, the overall objective of the Sprint.<\/p>\n<p><strong>Sprint Planning<br \/>\n<\/strong>In Agile Scrum, the activity of decided what work will be done during the Sprint.<\/p>\n<p><strong>Sprint Retrospective<br \/>\n<\/strong>In Agile Scrum, a meeting during which the Scrum Team discusses how the last Sprint went in terms of individuals, interactions, processes, tools, and the Sprint Definition of Done.<\/p>\n<p><strong>Sprint Review<br \/>\n<\/strong>In Agile Scrum, a meeting during which the Scrum Team and other stakeholders discuss what happened during the Sprint and what to do during future Sprints.<\/p>\n<p><strong>stakeholders<br \/>\n<\/strong>Anyone who is or will be affected by the software or its development (e.g., clients, companies, users, developers, managers, politicians, and so on).<\/p>\n<p><strong>story points<br \/>\n<\/strong>A method for estimating an activity based on its size relative to other activities. Scale established by team.<\/p>\n<p><strong>sustainability<br \/>\n<\/strong>Degree to which software can continue to function over time (e.g., measured in time and how well the software is functioning).<\/p>\n<p><strong>task management<br \/>\n<\/strong>The collection, assignment, sharing, tracking, and scheduling of tasks.\u00a0<em>Source<\/em>: Gil, Y., Groth, P., &amp; Ratnakar, V. (2009). Leveraging social networking sites to acquire rich task structure. In\u00a0<em>Proceedings of the Workshop on User-Contributed Knowledge and Artificial Intelligence: An Evolving Synergy (WikiAI)<\/em>.<\/p>\n<p><strong>task management system<br \/>\n<\/strong>Software for planning and organizing project activities.<\/p>\n<p><strong>tech stack<br \/>\n<\/strong>The set of programming languages, frameworks, and other technologies chosen or needed for implementing a piece of software.<\/p>\n<p><strong>technical debt<br \/>\n<\/strong>Time and resources you (or someone else) will need to spend on modifying your software in the future because of the poor decisions you\u2019re making in the present.<\/p>\n<p><strong>think-aloud protocol<br \/>\n<\/strong>A feedback-gathering method to assess the usability of a design, wherein a test user verbalizes their thoughts and impressions while interacting with the design.<\/p>\n<p><strong>triple constraint<br \/>\n<\/strong>In project management, the three limiting factors that govern project execution: time, cost, and scope. Scope includes quality. Cost includes spending money and resources.<\/p>\n<p><strong>Tuckman\u2019s model of team development<br \/>\n<\/strong>A five-stage model of how a team develops over time: (1) forming, (2) storming, (3) norming, (4) performing, (5) adjourning.<\/p>\n<p><strong>Unified Modeling Language (UML)<br \/>\n<\/strong>A set of notation and methods for describing and designing software.<\/p>\n<p><strong>usability testing<br \/>\n<\/strong>The act of observing individuals as they attempt to interact with your software.<\/p>\n<p><strong>use case<br \/>\n<\/strong>A formal agreement outlining the expected behavior of a system.<\/p>\n<p><strong>user acceptance testing (UAT)<br \/>\n<\/strong>Formally testing software with end users to check not only whether it performs as expected but also whether end users will use it. Typically performed before the software is released.<\/p>\n<p><strong>user interface (UI)<br \/>\n<\/strong>What a user interacts with to operate a system (e.g., a graphical user interface, a command-line interface, a virtual or augmented reality interface, and the like).<\/p>\n<p><strong>user story<br \/>\n<\/strong>A concise and straightforward explanation of a feature presented from the viewpoint of the individual seeking the new functionality, typically a user or customer of the system.<\/p>\n<p><strong>validation<br \/>\n<\/strong>Confirming that software meets users\u2019 needs (\u201cDid we build the right software?\u201d).<\/p>\n<p><strong>velocity<br \/>\n<\/strong>In Agile, a measure of how much work is being completed.<\/p>\n<p><strong>verification<br \/>\n<\/strong>Confirming that software satisfied its requirements (\u201cDid we build the software right?\u201d).<\/p>\n<p><strong>Waterfall<br \/>\n<\/strong>Way of going about software development and management that is characterized by extensive planning, comprehensive documentation, and moving linearly through stages of the software development life cycle (SDLC).<\/p>\n<\/div>\n<\/div>\n","protected":false},"author":1,"menu_order":2,"template":"","meta":{"pb_show_title":"","pb_short_title":"Glossary","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"back-matter-type":[38],"contributor":[],"license":[],"class_list":["post-82","back-matter","type-back-matter","status-publish","hentry","back-matter-type-glossary"],"_links":{"self":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/back-matter\/82","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/back-matter"}],"about":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/types\/back-matter"}],"author":[{"embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":0,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/back-matter\/82\/revisions"}],"metadata":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/back-matter\/82\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/media?parent=82"}],"wp:term":[{"taxonomy":"back-matter-type","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/back-matter-type?post=82"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/contributor?post=82"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/license?post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}