Cyber Security  ·  Level 6
Develop Computer Software
Chapter 2: Design computer software
📚 1 Topics
⚑ What you will be able to do

By the end of this chapter, you will be able to:

  • Analyze software requirements and clearly document them based on what users and the organization need.
  • Develop functional and system specifications that guide the entire software design process.
  • Structure program logic accurately using algorithms, flowcharts, and pseudocode.
  • Choose the right software architecture, like modular or object-oriented, based on the project’s needs.
  • Design data structures and databases that allow efficient data storage, retrieval, and processing.
  • Create user interface (UI) and user experience (UX) designs that follow usability standards.
  • Include important security features such as input validation, authentication, encryption, and error handling in your design.
  • Produce detailed design documents that help with software development and future maintenance.
  • Validate and review your design with stakeholders to make sure it works well and meets all requirements.

Mastering these skills will help you build software that truly meets user needs and stands strong in the real world of technology.

Designing computer software is a critical phase in the software development lifecycle, especially for cyber security professionals tasked with creating secure, reliable, and efficient systems. In Kenya's growing digital economy, the ability to design software that anticipates vulnerabilities and integrates robust security controls is essential for institutions such as banks, county governments, and hospitals. This chapter explores fundamental program design tools that help cyber security experts conceptualize and plan software solutions before coding begins, ensuring clarity, correctness, and security in development.

2.1 Program Design Tools

Program design tools are essential techniques and representations that assist software developers in planning the logic and structure of a program. For cyber security professionals, these tools facilitate the identification of potential security flaws early in the design phase, enabling more secure code. Common tools include pseudocodes, algorithms, flowcharts, and data flow diagrams, each providing distinct perspectives on program behavior and data movement.

2.1.1 Pseudocodes

Pseudocode is a simplified, informal description of a computer program’s logic written in plain language resembling code structure. It serves as an intermediary between human thinking and actual programming languages, allowing cyber security developers to focus on the logic without syntactic constraints.

Purpose of Pseudocode in Cyber Security Software Design

  • Clarifying complex logic before coding: Pseudocode helps break down complicated security algorithms like encryption or intrusion detection into understandable steps.
  • Facilitating communication among teams: Security analysts, developers, and auditors can review pseudocode to ensure security requirements align with implementation plans.
  • Enabling early detection of logical flaws: Missteps in authentication processes or access controls can be identified before development.
  • Supporting documentation for audits: Kenyan organizations such as the Central Bank can use pseudocode in regulatory compliance reviews to demonstrate secure system designs.
  • Serving as a basis for test case development: Testers derive expected behaviors from pseudocode to validate security functionalities.

Characteristics of Effective Pseudocode

  • Language neutrality: It avoids language-specific syntax, focusing on logical flow understandable across programming backgrounds.
  • Sequential and structured flow: Reflects the order of operations and decision branches clearly.
  • Use of standard control structures: Includes loops, conditionals, and function calls in an intuitive manner.
  • Conciseness without ambiguity: Balances detail and simplicity to avoid misinterpretation.
  • Inclusion of security-specific operations: Explicitly outlines cryptographic steps, validation checks, and error handling relevant to cyber security.

Writing Pseudocode for Authentication Systems

Creating pseudocode for an authentication module requires enumerating all steps from user input to validation and session creation. For example, a pseudocode segment might describe checking username and password, implementing a lockout after multiple failed attempts, and logging access events for audit trails in a hospital's patient records system.

Challenges When Using Pseudocode

  • Potential for misinterpretation without strict syntax: Ambiguities can arise if the pseudocode is too informal.
  • Lack of standardization across teams: Different developers may adopt varying conventions.
  • Over-simplification of security processes: Important checks may be omitted if not carefully detailed.
  • Difficulty in maintaining for large systems: Extensive pseudocode can become unwieldy.
  • Limited tool support for automated analysis: Unlike formal languages, pseudocode lacks direct integration with development environments.

2.1.2 Algorithms

An algorithm is a finite sequence of well-defined instructions for solving a specific problem or performing a task. In cyber security software, algorithms underpin encryption, hashing, intrusion detection, and access control mechanisms.

Characteristics of Algorithms in Security Software

  • Deterministic behavior: Given an input, the algorithm produces a predictable output, crucial for consistency in security checks.
  • Finiteness: Algorithms conclude after a finite number of steps, ensuring timely responses in security applications.
  • Input and output specification: Clearly defined inputs (e.g., user credentials) and outputs (e.g., access granted/denied).
  • Effectiveness: Steps are basic enough to be executed precisely and efficiently.
  • Robustness against attack vectors: Algorithms must resist common cyber threats such as replay attacks or brute force.

Designing Secure Algorithms for Cyber Security

When designing algorithms for Kenya's banking sector, for example, developers must ensure cryptographic algorithms resist known vulnerabilities like side-channel attacks. This involves incorporating randomness, key management, and validation steps to prevent unauthorized data access.

Steps to Develop an Algorithm for Data Encryption

  1. Define input parameters, such as plaintext and encryption key.
  2. Specify initialization procedures including key expansion.
  3. Outline the encryption rounds applying substitution and permutation.
  4. Include error handling for invalid keys or corrupted data.
  5. Describe output generation of ciphertext.
  6. Incorporate decryption process as the inverse algorithm for data retrieval.

Algorithm Analysis and Optimization

Evaluating algorithms involves assessing time complexity and space complexity, which directly impact system performance. Cyber security software deployed in Kenyan government systems must balance algorithm strength with responsiveness to avoid bottlenecks.

2.1.3 Flowcharts

Flowcharts are graphical representations of a program’s control flow using symbols and arrows to illustrate processes, decisions, and data movement. They provide a visual approach to understanding software logic.

Importance of Flowcharts in Cyber Security Design

  • Visualizing complex decision-making in access control or firewall rules.
  • Facilitating collaboration among security architects and developers through clear diagrams.
  • Supporting training and user awareness by illustrating security procedures.
  • Identifying potential security gaps by tracing data paths.
  • Documenting systems for compliance audits, such as those by NEMA for environmental data management systems.

Standard Symbols Used in Flowcharts

  • Terminator: Represents start or end points.
  • Process: Denotes actions or commands.
  • Decision: Indicates branching based on conditions.
  • Input/Output: Shows data entry or display.
  • Connector: Links different parts of the flowchart.

Creating Flowcharts for Incident Response Systems

Designing a flowchart for an incident response application in a county government office might include steps from incident detection, classification, notification, containment, eradication, recovery, to post-incident analysis, with decision points for severity assessment.

Limitations of Flowcharts

  • Can become cluttered with complex logic, making interpretation difficult.
  • May oversimplify concurrent processes common in cyber security.
  • Not suitable for representing data structures or interactions in detail.
  • Require updates to remain accurate as systems evolve.
  • Lack formal semantics, which limits automated verification.

2.1.4 Data Flow Diagrams

Data Flow Diagrams (DFDs) depict the flow of data within a system, illustrating how data moves from input sources to processes and storage. They are invaluable in cyber security for mapping data exposure points and control boundaries.

Roles of Data Flow Diagrams in Cyber Security

  • Visualizing data movement to identify potential leakage points.
  • Documenting system interfaces for secure integration.
  • Assisting threat modeling by highlighting data inputs and outputs.
  • Supporting compliance with data protection laws, such as Kenya's Data Protection Act.
  • Facilitating communication between technical and non-technical stakeholders during system design.

Levels of Data Flow Diagrams

  • Context Diagram: High-level view showing system boundaries.
  • Level 1 DFD: Breaks down major processes and data stores.
  • Level 2 and beyond: Detailed views of subprocesses and data interactions.

Components of DFDs

  • Processes: Transform incoming data to outputs.
  • Data Stores: Repositories where data is held.
  • External Entities: Sources or destinations of data outside the system.
  • Data Flows: Arrows indicating movement of data.

Developing DFDs for Secure Payment Systems

In a retail business using mobile payments, a DFD can map data from customer input through authentication, transaction processing, and confirmation, helping to identify where encryption and validation controls must be applied.

Challenges in Using DFDs

  • May not capture timing or sequencing of events critical in security.
  • Complex systems can result in overly complicated diagrams.
  • Requires careful updating to reflect system changes.
  • Does not explicitly represent control flows or exceptions.
  • Needs to be complemented with other design tools for a complete security picture.

Practice Questions

  1. Explain how pseudocode enhances the design of secure authentication systems in Kenyan public hospitals. (10 marks)
  2. Describe five key characteristics that make algorithms suitable for cryptographic applications. (10 marks)
  3. Identify and explain five standard symbols used in flowcharts and their relevance in designing a cyber security incident response system. (10 marks)
  4. Discuss the significance of data flow diagrams in ensuring compliance with Kenya’s Data Protection Act when designing software for financial institutions. (10 marks)

Chapter Summary

This chapter explored essential program design tools that form the foundation for developing effective computer software. It began with pseudocodes, which provide a structured way to outline program logic in plain language, making it easier to translate ideas into code. The chapter then examined algorithms, emphasizing their role as step-by-step procedures that solve specific problems systematically. Flowcharts were introduced as visual representations of processes and decision points, aiding in understanding and communicating the flow of a program. Finally, data flow diagrams were discussed as tools to illustrate how data moves through a system, highlighting inputs, processes, and outputs. Together, these design tools help programmers plan and organize software development clearly and efficiently. Mastery of these concepts supports the creation of reliable and maintainable software solutions.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. Define pseudocode and explain its role in designing software for cyber security applications. (3 marks)
  2. Identify two advantages of using algorithms in developing intrusion detection systems. (2 marks)
  3. Which of the following is the best description of a flowchart?
    a) A textual description of program logic
    b) A graphical representation of a process flow
    c) A type of data encryption method
    d) A programming language syntax (1 mark)
  4. List three symbols commonly used in flowcharts and describe their purposes. (6 marks)
  5. Explain how data flow diagrams (DFDs) assist in modeling data movement within a cyber security monitoring system. (4 marks)
  6. Differentiate between algorithms and pseudocode with reference to software design for malware analysis tools. (4 marks)
  7. What is the significance of using program design tools in reducing errors during software development for cyber security? (3 marks)
  8. Describe a scenario where a flowchart would be more effective than pseudocode in designing a cyber security application. (3 marks)
  9. Outline four levels of data flow diagrams and their relevance in system analysis for a Kenyan financial institution’s security software. (4 marks)
  10. Explain how pseudocode can improve communication between a cyber security analyst and software developer during a project. (3 marks)
Show Answers
  1. Pseudocode is a simplified, structured, and human-readable description of a program’s logic used before coding begins. It helps cyber security professionals plan software such as firewall rules or intrusion detection systems by outlining steps clearly without syntax constraints.
  2. Algorithms provide precise step-by-step instructions, improving accuracy and efficiency; they enable automation of threat detection and response processes in cyber security tools.
  3. b) A graphical representation of a process flow
  4. Common flowchart symbols include:
    • Oval: Represents start or end points in a process
    • Rectangle: Denotes a process or operation step
    • Diamond: Indicates a decision point requiring branching logic
  5. DFDs illustrate how data moves between processes, data stores, and external entities, helping developers understand and secure sensitive data flows in monitoring systems.
  6. Algorithms are detailed stepwise procedures for solving problems, while pseudocode expresses these steps in plain language, making it easier for teams to understand malware analysis logic before coding.
  7. Program design tools help identify logical errors early, reducing costly debugging and enhancing software reliability, which is critical in cyber security to avoid vulnerabilities.
  8. A flowchart is more effective when visualizing complex decision-making processes, such as multi-layered authentication workflows, where branching paths must be clearly understood.
  9. The four DFD levels are:
    • Context diagram (overall system scope)
    • Level 0 (major system processes)
    • Level 1 (sub-processes decomposition)
    • Level 2+ (detailed process views)
      These levels help break down security software for a bank into manageable components ensuring thorough analysis.
  10. Pseudocode bridges technical and non-technical stakeholders by presenting logic in simple language, facilitating clearer discussions on security features and requirements.

B. Oral Assessment

  1. Discuss how the choice of program design tools impacts the development of a secure mobile banking application for a Kenyan SACCO. Consider usability, error reduction, and team communication.
  2. Explain how data flow diagrams can be used to identify potential security vulnerabilities in a hospital’s patient management software system.
Answer Guide

Question 1 key points:

  • Program design tools like pseudocode and flowcharts simplify complex logic, enhancing team understanding and reducing coding errors.
  • Clear design reduces vulnerabilities by ensuring security requirements are integrated early.
  • Effective communication across developers and cyber security analysts ensures usability and security compliance for SACCO clients.

Question 2 key points:

  • DFDs map data movement between processes, highlighting exposure points where sensitive patient data could be intercepted.
  • Identifying external entities and data stores helps focus security controls on vulnerable interfaces.
  • Layered DFD analysis allows prioritization of security measures in critical data flows.

C. Case Study

At Nairobi Hospital, the IT department is tasked with designing software to monitor network traffic for potential cyber threats. The team must use program design tools to ensure the software is efficient and secure.

Tasks:
a) Create a pseudocode snippet outlining the steps for detecting unusual login attempts. (5 marks)
b) Develop a flowchart representing the decision-making process for blocking suspicious IP addresses. (5 marks)
c) Explain how a data flow diagram can help the team understand the data sources and storage involved in this monitoring system. (5 marks)

Suggested Approach

a) The pseudocode should include initializing monitoring, capturing login data, comparing attempts against thresholds, and triggering alerts. For example:

  • Start
  • Initialize login attempt counter
  • For each login attempt:
     - Check if IP is blacklisted
     - If not, increment counter
     - If attempts exceed limit, flag as suspicious

  • End

b) The flowchart should visually represent start/end, process steps like checking IP status, decision nodes for suspicious activity, and actions such as blocking IP or allowing access. Symbols like ovals, rectangles, and diamonds should be used appropriately.

c) The DFD explanation should highlight how mapping interactions between external entities (users), processes (monitoring software), data stores (logs), and data flows clarifies where sensitive information travels, enabling focused security controls and risk assessment.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with worked answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain the role of pseudocode in designing cybersecurity software for a bank's fraud detection system. (4 marks)
  2. Describe the main characteristics that an algorithm must have to ensure reliable intrusion detection in a network security application. (4 marks)
  3. Draw a simple flowchart to represent the process of authenticating a user login in a secure government portal. (4 marks)
  4. How do data flow diagrams help in identifying vulnerabilities during the design phase of a cybersecurity software system? (4 marks)
  5. List and explain five benefits of using pseudocode when developing malware analysis tools. (4 marks)
  6. Identify and explain five common symbols used in flowcharts for designing security software workflows. (4 marks)
  7. What are the key differences between algorithms and pseudocode in the context of developing encryption software? (4 marks)
  8. Outline the steps involved in creating a data flow diagram for a secure online payment system. (4 marks)
  9. How can flowcharts improve communication between cybersecurity analysts and software developers during software design? (4 marks)
  10. Discuss how algorithms contribute to the efficiency of antivirus software in detecting threats. (4 marks)
Section A - Answers
  1. Pseudocode provides a detailed, plain-language outline of the logic behind the fraud detection system, enabling programmers and cybersecurity experts at the bank to understand and verify the process before coding.
  2. An algorithm must be clear, unambiguous, finite, efficient, and correct to reliably detect intrusion patterns without false positives or negatives.
  3. The flowchart should include start/end symbols, input for username and password, decision symbol for credentials verification, and output for access granted or denied.
  4. Data flow diagrams visually map how data moves through the system, helping identify points where data could be intercepted or altered, thus highlighting security weaknesses early.
  5. Benefits include clarity in logic, easier debugging, improved collaboration, documentation for future reference, and facilitation of algorithm translation into code.
  6. Common symbols include: oval (start/end), parallelogram (input/output), rectangle (process), diamond (decision), and arrows (flow direction).
  7. Algorithms are step-by-step procedures often expressed mathematically or in code, while pseudocode is a human-readable description of these steps; pseudocode bridges conceptual design and coding in encryption software development.
  8. Steps include identifying external entities, defining processes, determining data stores, mapping data flows between these components, and validating the diagram with stakeholders.
  9. Flowcharts provide a visual representation of processes, making it easier for analysts and developers to discuss, identify errors, and agree on the software logic.
  10. Algorithms optimize scanning procedures by prioritizing threat signatures, reducing false alarms, and enabling real-time detection, thus enhancing antivirus software performance.

SECTION B (60 Marks) - Answer any TWO Questions

Question 11 (Compulsory - 20 marks)
At the Kenya Revenue Authority (KRA), a new cybersecurity software is being designed to monitor and prevent unauthorized access to sensitive taxpayer data.

a) Using pseudocode, outline the logic for a module that verifies user credentials and grants access only if the user has the required clearance level. (10 marks)
b) Develop a data flow diagram illustrating how data moves between the user interface, authentication server, and database during the login process. (10 marks)

Question 12 (20 marks)
Explain how flowcharts and algorithms can be integrated to design an effective malware detection software for a leading Kenyan hospital. Include examples of key steps and decision points.

Question 13 (20 marks)
Discuss the advantages and limitations of using pseudocode and data flow diagrams in the development of secure mobile banking applications in Kenya. Provide recommendations on how to mitigate the limitations.

Question 14 (20 marks)
Describe the process of converting a complex cybersecurity algorithm into a flowchart, using an example related to network traffic monitoring at a county government office. Highlight challenges and best practices.

Section B - Answers

Question 11
a) Pseudocode example:

START  
Prompt user for username and password  
IF username and password are correct THEN  
    Check user clearance level  
    IF clearance level >= required level THEN  
        Grant access  
    ELSE  
        Deny access with message "Insufficient clearance"  
    ENDIF  
ELSE  
    Deny access with message "Invalid credentials"  
ENDIF  
END  

b) Data Flow Diagram:

  • External entity: User
  • Process: Authentication Server
  • Data store: User Database
  • Data flows: User credentials from User to Authentication Server; validation query from Authentication Server to User Database; authentication response back to Authentication Server; access granted/denied message to User.

Question 12
Flowcharts visually represent the sequence of operations and decision points such as file scanning, signature matching, and quarantine actions, while algorithms define the precise steps and logical conditions for detection. For instance, the algorithm includes steps to scan files, compare with known malware signatures, and decide on action; the flowchart maps these steps with decision diamonds for signature matches. Integration ensures clarity and precision in malware detection software design for the hospital.

Question 13
Advantages include clear communication of software logic and detection of design flaws early. Limitations involve pseudocode ambiguity and DFD complexity with large systems. Mitigation includes adopting standardized pseudocode conventions and modularizing DFDs to manage complexity in mobile banking app development.

Question 14
Converting a cybersecurity algorithm to a flowchart involves identifying key steps such as packet capture, traffic analysis, anomaly detection, and alert generation. Challenges include representing complex logic and ensuring readability. Best practices involve using standard symbols, modular flowcharts, and iterative reviews with network security analysts at the county office.

References

  1. TVET CDACC - Develop Computer Software Curriculum (Cycle 3, 2025)
  2. TVET CDACC - Develop Computer Software Occupational Standards

Chapter Practical Activities

Practical 1: Writing Pseudocode for User Authentication Module

Time: 2 Hours | Type: Individual

Resources Required:

  • Laptop with pseudocode editor software (e.g. Visual Studio Code, Notepad++)
  • Reference materials on authentication processes
  • Access to a simulated user login scenario document

At a county referral hospital in Nakuru, you are tasked with designing the user authentication process to secure patient records in the hospital management system.

Tasks:
i. Draft pseudocode that outlines the steps for user login, including input validation, password verification, and account lockout after three failed attempts.
ii. Incorporate conditional statements to handle invalid inputs and successful login.
iii. Include comments describing each major step of the pseudocode.
iv. Save and submit the pseudocode file for review.

Assessor Observation Criteria:

  • [ ] Logical sequence of steps in the pseudocode
  • [ ] Correct use of conditional and loop constructs
  • [ ] Clarity and meaningful commenting in the pseudocode
  • [ ] Completeness of the authentication process coverage

Practical 2: Designing an Algorithm for Malware Detection Alert System

Time: 2 Hours | Type: Individual

Resources Required:

  • Laptop with algorithm design software or plain text editor
  • Access to malware characteristics documentation
  • Whiteboard and marker for sketching flow

Working as a cyber security professional at a Nairobi university IT department, you must design an algorithm to detect and alert on malware signatures in incoming files.

Tasks:
i. Write an algorithm that scans file metadata and content for predefined malware signatures.
ii. Define steps to trigger alerts when malware is detected.
iii. Include error handling for unreadable files.
iv. Illustrate the algorithm logic on a whiteboard or paper.

Assessor Observation Criteria:

  • [ ] Completeness of malware detection logic
  • [ ] Clear stepwise description and flow
  • [ ] Inclusion of error handling steps
  • [ ] Logical and efficient structure of the algorithm

Practical 3: Constructing a Flowchart for Data Encryption Process

Time: 2.5 Hours | Type: Individual

Resources Required:

  • Laptop with flowchart software (e.g. Draw.io, Microsoft Visio)
  • Encryption process documentation
  • Projector or screen for presentation

At Equity Bank branch in Eldoret, you have been asked to visually represent the data encryption workflow for securing customer transaction data.

Tasks:
i. Develop a flowchart that includes key steps: data input, encryption algorithm selection, encryption, and output storage.
ii. Use standardized flowchart symbols for processes, decisions, and inputs/outputs.
iii. Add annotations explaining each step briefly.
iv. Present the flowchart to peers for feedback.

Assessor Observation Criteria:

  • [ ] Correct use of flowchart symbols and conventions
  • [ ] Logical flow from data input to encrypted output
  • [ ] Clear labeling and annotations
  • [ ] Professional presentation and explanation

Practical 4: Developing a Data Flow Diagram for Network Intrusion Detection

Time: 3 Hours | Type: Group of 3

Resources Required:

  • Laptops with diagramming software (e.g. Lucidchart, Microsoft Visio)
  • Network intrusion detection system (NIDS) workflow documentation
  • Flip chart and markers

In the cyber security unit at a county government office in Kisumu, your team is tasked with illustrating data flows for network intrusion detection activities.

Tasks:
i. Identify major entities, processes, data stores, and data flows involved in network intrusion detection.
ii. Construct a Level 0 Data Flow Diagram showing overall system context.
iii. Expand to a Level 1 diagram detailing key processes like packet capture, analysis, and alert generation.
iv. Present the DFD on a flip chart and explain the components.

Assessor Observation Criteria:

  • [ ] Accurate identification of entities and processes
  • [ ] Correct representation of data flows and stores
  • [ ] Clarity and readability of diagrams
  • [ ] Effective teamwork and presentation skills

Practical 5: Translating Pseudocode to a Program for Password Strength Checker

Time: 3 Hours | Type: Individual

Resources Required:

  • Laptop with Python IDE installed (e.g. PyCharm, IDLE)
  • Reference document on password strength criteria
  • Sample pseudocode for password validation

At a Nairobi-based cybersecurity consultancy, you are required to implement a password strength checker based on provided pseudocode.

Tasks:
i. Review the pseudocode describing password strength rules (length, character types, etc.).
ii. Write a Python program implementing the pseudocode logic.
iii. Test the program with multiple password inputs and record results.
iv. Debug and refine the code to handle edge cases.

Assessor Observation Criteria:

  • [ ] Accurate translation of pseudocode logic into code
  • [ ] Correct implementation of password strength rules
  • [ ] Thorough testing with documented outcomes
  • [ ] Code readability and commenting standards

Practical 6: Creating an Algorithm for Secure File Transfer Protocol

Time: 2 Hours | Type: Individual

Resources Required:

  • Laptop or desktop computer
  • Access to secure file transfer protocol specifications (e.g., SFTP)
  • Text editor or algorithm design tool

While working at a KRA service centre in Mombasa, you need to design an algorithm that ensures secure file transfer between client and server.

Tasks:
i. Draft an algorithm that includes establishing connection, authentication, file encryption, transfer, and confirmation.
ii. Include steps to verify file integrity after transfer.
iii. Handle exceptions such as connection failure or authentication errors.
iv. Save and submit the algorithm document.

Assessor Observation Criteria:

  • [ ] Inclusion of all key steps in secure file transfer
  • [ ] Logical flow and error handling
  • [ ] Clarity and completeness of the algorithm
  • [ ] Presentation and formatting quality

Practical 7: Designing a Flowchart for Incident Response Procedure

Time: 2.5 Hours | Type: Group of 2

Resources Required:

  • Laptops with flowchart software or paper and drawing tools
  • Incident response policy document
  • Case study on a recent cyber incident

At a large hotel in Naivasha, your cyber security team needs a visual flowchart to guide staff on the incident response procedure following a data breach.

Tasks:
i. Analyze the policy document and case study to identify key incident response steps.
ii. Draw a detailed flowchart illustrating detection, reporting, containment, eradication, recovery, and review.
iii. Use appropriate flowchart symbols and decision points.
iv. Present and explain the flowchart to the class.

Assessor Observation Criteria:

  • [ ] Accuracy in representing incident response stages
  • [ ] Appropriate use of symbols and decision nodes
  • [ ] Clear, logical progression of steps
  • [ ] Quality of presentation and explanation

Practical 8: Constructing a Data Flow Diagram for Employee Access Control System

Time: 3 Hours | Type: Individual

Resources Required:

  • Laptop with DFD software (e.g. SmartDraw, Edraw Max)
  • Access control system requirements and documentation
  • Sample employee database structure

In a SACCO office in Eldoret, you are tasked with modeling the data flow for an employee access control system to restrict sensitive areas.

Tasks:
i. Identify external entities, data inputs, processes, data stores, and outputs for the system.
ii. Draw a Level 0 Data Flow Diagram to illustrate overall system interactions.
iii. Develop a Level 1 DFD to detail authentication and authorization processes.
iv. Annotate the diagrams and submit for evaluation.

Assessor Observation Criteria:

  • [ ] Completeness and correctness of entities and processes
  • [ ] Accurate depiction of data flows and storage
  • [ ] Clear and professional diagram presentation
  • [ ] Detailed annotations explaining components

Practical 9: Writing Pseudocode for Automated Backup Scheduling Tool

Time: 2 Hours | Type: Individual

Resources Required:

  • Laptop with text editor
  • Backup scheduling requirements document
  • Sample backup logs

At a county government office in Kisumu, you are required to design pseudocode for an automated backup scheduler protecting critical system files.

Tasks:
i. Write pseudocode that defines scheduling frequency, backup location selection, and error notification.
ii. Include conditional checks for backup success or failure.
iii. Comment on each major step for clarity.
iv. Submit the pseudocode for review.

Assessor Observation Criteria:

  • [ ] Logical and complete scheduling steps
  • [ ] Inclusion of error detection and notification
  • [ ] Clear and concise comments
  • [ ] Overall readability and structure

Practical 10: Creating a Flowchart for User Account Creation Process

Time: 2 Hours | Type: Individual

Resources Required:

  • Laptop with flowchart software
  • User account management policy document
  • Sample user data forms

At a university IT department in Nairobi, you must design a flowchart to standardize the process of creating new user accounts.

Tasks:
i. Develop a flowchart showing steps from data collection, verification, account creation, to notification.
ii. Use decision symbols to handle data validation failures.
iii. Label all steps clearly and include inputs/outputs.
iv. Save and present the flowchart.

Assessor Observation Criteria:

  • [ ] Proper use of flowchart symbols and conventions
  • [ ] Logical and complete process flow
  • [ ] Clear step labeling and decision handling
  • [ ] Presentation neatness and professionalism

Practical 11: Drafting an Algorithm for Firewall Rule Evaluation

Time: 2 Hours | Type: Individual

Resources Required:

  • Laptop with text editor
  • Firewall rules documentation
  • Network traffic sample data

At a telecommunications company in Mombasa, you are assigned to create an algorithm that evaluates incoming network packets against firewall rules.

Tasks:
i. Write an algorithm that reads packet attributes and compares them to firewall rules.
ii. Include steps to accept, reject, or log packets based on rule matching.
iii. Handle exceptions for malformed packets.
iv. Submit the algorithm document.

Assessor Observation Criteria:

  • [ ] Accurate representation of firewall rule evaluation logic
  • [ ] Inclusion of all decision outcomes (accept/reject/log)
  • [ ] Exception handling implementation
  • [ ] Clarity and structure of the algorithm

Practical 12: Designing a Data Flow Diagram for Cybersecurity Incident Reporting System

Time: 3 Hours | Type: Group of 3

Resources Required:

  • Laptops with DFD software
  • Incident reporting requirements document
  • Flip chart and markers

At a large retail chain's head office in Nairobi, your group is tasked with modeling the data flow for their cybersecurity incident reporting system.

Tasks:
i. Identify system users, data inputs, processes, and data stores involved in incident reporting.
ii. Draw a Level 0 DFD showing system context and external entities.
iii. Develop a Level 1 DFD detailing incident submission, validation, escalation, and resolution processes.
iv. Present the diagrams and explain roles of each component.

Assessor Observation Criteria:

  • [ ] Comprehensive identification of all entities and processes
  • [ ] Correct and clear representation of data flows
  • [ ] Logical decomposition from Level 0 to Level 1
  • [ ] Quality of group collaboration and presentation
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 17 questions Start quiz ▾
0%
0 / 2
🔒

15 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • Analyze software requirements and clearly document them based on what users and the organization need.
  • Develop functional and system specifications that guide the entire software design process.
  • Structure program logic accurately using algorithms, flowcharts, and pseudocode.
  • Choose the right software architecture, like modular or object-oriented, based on the project’s needs.
  • Design data structures and databases that allow efficient data storage, retrieval, and processing.
  • Create user interface (UI) and user experience (UX) designs that follow usability standards.
  • Include important security features such as input validation, authentication, encryption, and error handling in your design.
  • Produce detailed design documents that help with software development and future maintenance.
  • Validate and review your design with stakeholders to make sure it works well and meets all requirements.

Tick each one you can genuinely do.

So, are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.