These are the features and functionalities that are planned to be included in the development of the program. They define the boundaries of the project and what is expected to be delivered.
The success criteria usually includes aspects of:
Functionality
Program Logic
User Interface
Code Quality
In-Scope Success Criteria - Hangman Game Example
Functionality
The program should generate a random word from a predefined list of words for the player to guess.
The program should display the hangman ASCII art to visualize the progress of the game.
Game Logic
The program should correctly determine whether a guessed letter is present in the word.
The program should deduct a life for each incorrect guess.
User Interface
The program should provide clear instructions and feedback to the player throughout the game.
The program should display the current state of the word with blanks for unguessed letters.
Code Quality
The program should be well-structured with appropriate functions and modules.
The program should use meaningful variable names and adhere to Python's PEP 8 style guide.
Identifying and documenting the project scope helps to prevent conflicts and misunderstandings about project .
Out of scope Success Criteria
This list specifies the items, requirements, or functionalities that are explicitly excluded from the scope of the project.
It helps manage stakeholders' expectations by identifying what will not be addressed or delivered as part of the current project.
Out-of-Scope Success Criteria - Hangman Game Example
The following features & functionality will not be included in the project:
Developing a graphical interface for the game.
Adding support for multiplayer mode where multiple players can take turns guessing.
Implementing functionality to add or remove words from the word bank during runtime.
Adding features like hints, difficulty levels, or scoring systems.
By defining clear success criteria like these, you can ensure that the development process stays focused and that the resulting hangman program meets the desired objectives.
Identifying what is out of scope helps to prevent scope during the project.
Flowcharts
Flowcharts are graphical representations of workflows or processes. They can be used to illustrate the flow of data within an ICT system, including inputs, processes, outputs, and decision points.
Flowcharts are useful for visualizing the sequence of steps involved in various system functions.
diagrams are useful for representing interactions between systems and users.
Pseudocode
Pseudocode can be used to describe the algorithmic logic or specific functionalities of the system in a language-independent manner. It provides a high-level description of the steps involved in performing a task or achieving a goal within the system.
Pseudocode can be included alongside other diagrams or documentation to provide additional clarity on the system's behavior.
Psuedocode - Hangman Game Example
Function check_letter_in_word(letter, word): Set is_letter_in_word to False For each character (char) in word: If char is equal to letter: Set is_letter_in_word to True Return is_letter_in_word
Pseudocode is used to outline the logic of a program before writing actual
Data Flow Diagrams (DFDs)
DFDs represent the flow of data within a system and between external entities.
They consist of processes, data stores, data flows, and external entities, showing how data moves through the system and undergoes transformation.
Which diagram is used to represent the flow of data between processes in a system?
Entity-Relationship Diagrams (ERDs)
ERDs are commonly used in database design to illustrate the relationships between different entities or data tables within the system.
They depict how data is organized and connected in the system, helping to define data requirements and relationships.
An entity relationship diagram shows the relationships between different
System Architecture Diagrams
System architecture diagrams provide an overview of the system's components, modules, interfaces, and their relationships.
They help stakeholders understand the high-level structure of the system and its various components.
Which diagram is used to depict the interactions between different system components?
Wireframes and Mockups
Wireframes and mockups are visual representations of the user interface (UI) design.
They depict the layout of screens, menus, buttons, and other UI elements, helping stakeholders visualize the user experience and understand how users will interact with the system.
State diagrams, also known as state machines, illustrate the different states that an object or system can be in and the transitions between those states.
They are useful for modeling the behavior of interactive systems and capturing state-dependent functionalities.
A state diagram shows the different a system can be in
Prototypes
Prototypes are interactive models or simulations of the system that demonstrate its functionality and user interface.
They provide stakeholders with a tangible representation of the system, allowing them to experience its features and provide feedback before development begins.
A prototype can help identify potential early in the development process.
User Stories
User Stories are brief, narrative descriptions of system features or functionalities, often written from the perspective of an end user, to capture specific requirements in an agile development environment.
A user story describes a specific requirement from the perspective of the .
Data Dictionaries
Data dictionaries are detailed descriptions of data elements used in the system, including their definitions, formats, sources, and relationships, to ensure consistency and accuracy in data handling.
A data dictionary may include information on data and relationships.
Testing Tables
Structured tables outlining the different types of tests to be performed, along with their objectives, inputs, expected outcomes, and responsible parties.
These tables help ensure thorough testing coverage and provides a reference for test planning and execution.
The testing table is a useful tool for tracking the progress of activities.
Requirements Traceability Matrix (RTM)
A table that maps requirements to their sources, such as stakeholder needs or system functions, and to other project artifacts like design documents, test cases, and code.
One of the benefits of using a Requirements Traceability Matrix is that it helps in identifying in requirements coverage.