TutorChase logo
IB DP Computer Science Study Notes

1.2.3 Information Gathering for System Solutions

Information gathering forms the bedrock of system solution design, requiring an in-depth understanding of the needs, capabilities, and context within which a new system will operate.

Techniques for Gathering Information

Examining Current Systems

  • Purpose: To identify limitations and potential enhancements in existing systems.
  • Methods: Involves observing how current systems are used, collecting user feedback, and analysing performance data.
  • Outcomes: Helps identify inefficiencies, understand user expectations, and set realistic benchmarks for new systems.

Analysing Competing Products

  • Objective: Gaining insight into competitors' products to inform innovative and competitive design.
  • Techniques: Involves feature comparison, understanding market trends, and recognising strengths and weaknesses in competitors’ offerings.
  • Results: Aids in developing features that are distinct, user-focused, and market-relevant.

Assessing Organisational Capabilities

  • Aim: To align the proposed system with the organisation's current abilities and strategic goals.
  • Approach: Encompasses auditing available resources, conducting interviews with staff, and evaluating existing technology infrastructures.
  • Implications: Ensures that the proposed system is achievable and supports organisational growth.

Literature Searches

  • Purpose: To build a foundation of theoretical and empirical knowledge around the system being developed.
  • Methodology: Involves reviewing academic journals, industry-specific reports, and technical documents.
  • Benefits: Ensures that the system design is informed by up-to-date, research-based insights and innovations in the field.

Intellectual Property Considerations (S/E)

  • Understanding: Emphasising the importance of adhering to legal standards regarding intellectual property.
  • Practices: This includes ensuring compliance with copyright, patents, and trademark laws during system development.
  • Consequence: Protects against legal disputes and fosters ethical standards in IT development.

Representations of System Requirements

System Flow Charts

  • Definition: Visual representations outlining how data is processed within a system.
  • Components: Uses symbols such as arrows for direction, ovals for start/end points, rectangles for processes, and diamonds for decision-making.
  • Utility: Essential for simplifying and conceptualising complex system processes, making them understandable for stakeholders at all levels.

Data Flow Diagrams

  • Purpose: To illustrate how data is handled within a system, including its sources, destinations, and storage.
  • Structure: Consists of four major components - entities (external to the system), processes (that transform data), data stores (where data is held), and data flows (movement of data).
  • Advantage: Effectively communicates how data moves through a system, important for understanding user interactions and backend processes.

Structure Charts

  • Explanation: Demonstrates the organisational layout of a system, illustrating the hierarchical arrangement of various modules.
  • Elements: Composed of boxes representing the system modules, connected by lines showing intermodule relationships and data flows.
  • Relevance: Crucial for developers to understand how different parts of a system interconnect and rely on each other, aiding in modular design and troubleshooting.

Excluding UML

  • Reason: Given its complexity and specific use cases, UML is not covered here but remains a critical tool for more advanced system modelling.

Understanding Flow Chart Symbols

  • Basic Symbols: The common symbols used in flow charts include ovals (start/end), parallelograms (input/output), rectangles (processes), and diamonds (decisions).
  • Interpretation: These symbols provide a standard, universally understood language in system design, making the documentation and planning process more streamlined and accessible.

Relationship with Flow Charts

  • Function of Flow Charts: Serve as a graphical step-by-step representation of a system or a process, utilising various symbols to depict different actions and decisions.
  • Usage: Particularly useful in the planning stages of system development, aiding programmers and non-technical stakeholders in understanding and refining system processes.

Connection to Pseudocode

  • Definition of Pseudocode: A high-level description of an algorithm or system operation, presented in a structured but readable format.
  • Linkage: The transition from flow charts to pseudocode involves translating the visual representation into a textual form that resembles actual code structure but is simpler and language-agnostic.
  • Transition: This step is crucial as it lays the groundwork for actual coding, enabling developers to structure their code logically and efficiently.

Through meticulous information gathering about current systems, competitors, and organisational capacities, a comprehensive view of what is required for a new system emerges. This phase underpins all subsequent design and development work, ensuring that solutions are user-centric, strategically aligned, and technologically sound.

The use of system flow charts, data flow diagrams, and structure charts further refines the understanding of these requirements, providing clear, structured visualisations of the proposed system. This visual representation is crucial for stakeholders to conceptualise the system, ensuring alignment and shared understanding.

Understanding the transition from flow charts and pseudocode is pivotal in moving from system design to implementation. It enables the design to be articulated in a manner that is approachable for developers, bridging the gap between theoretical design and practical application. By focusing on this transition, students can better grasp how high-level ideas and concepts are transformed into working software, highlighting the importance of clear and logical thinking in computer science.


Involving stakeholders in the information gathering process for system requirements is essential because it ensures that the system meets the actual needs and expectations of its users and other affected parties. Stakeholders can provide diverse perspectives, practical insights, and pinpoint challenges that might not be evident to the development team alone. Their input helps in creating a system that is not only technically sound but also user-friendly, relevant, and more likely to be accepted by its intended audience. Neglecting stakeholder input can lead to overlooking crucial requirements, underutilising system capabilities, and ultimately results in a system that fails to meet its intended purpose effectively.

Data Flow Diagrams (DFDs) are particularly useful in system development because they provide a focused representation of how data moves and is processed within a system, without getting bogged down in the complexities of the actual implementation. DFDs help clarify the sources of data input, the processes that transform this data, the points at which data is stored, and its ultimate destinations. This clarity is beneficial in understanding the interactions between different parts of the system, ensuring data integrity, and designing efficient data processing routines. They are especially valuable in large, complex systems where understanding the flow of data can prevent bottlenecks and inefficiencies and ensure the system's scalability and reliability.

Structure charts are particularly valuable in managing and modifying complex systems because they offer a clear and hierarchical visual representation of the system's architecture. By delineating the different modules of a system and their interrelationships, structure charts make it easier to understand how changes in one part of the system will impact others. They help in identifying dependencies and potential integration issues between various system components. This clarity is crucial when updating or scaling the system, as it aids developers in pinpointing where changes need to be made, assessing the impact of these changes, and planning their implementation in a way that minimizes disruption to the overall system.

Intellectual property considerations significantly impact the process of gathering information from competing products. When analysing competitors, it's crucial to avoid infringing on their intellectual property (IP) rights, such as patents, copyrights, and trademarks. This means that while it's beneficial to learn from competing products in terms of features, user interface design, and functionality, directly copying any proprietary elements can lead to legal disputes and financial penalties. Moreover, this practice is unethical and can harm the reputation of the company. It's essential to use the information gathered as inspiration for innovation rather than imitation, creating a product that is both unique and respectful of others' IP rights.

Examining current systems is critical in identifying both the strengths and weaknesses of existing practices and technologies. This analysis provides valuable insights into what functionalities should be retained, improved, or discarded in the new system. It involves evaluating the system's efficiency, user-friendliness, and how well it meets current objectives and user needs. Challenges in this process include resistance to change from users accustomed to the old system, the difficulty in objectively evaluating a system one is familiar with, and the risk of inheriting overlooked flaws from the current system. It requires a careful balance between valuing the existing system's merits and being open to innovative solutions that address its deficiencies.

Practice Questions

Describe the process and significance of conducting a literature search when planning a new IT system. Include in your answer the type of sources one might consult and the intellectual property considerations that should be taken into account.

A literature search in IT system planning involves systematically reviewing academic journals, industry-specific reports, and technical documents to gather pertinent information. It allows the designer to incorporate proven methods and innovative ideas into the system, ensuring it is both current and effective. Sources might include peer-reviewed journals for academic and theoretical insights, market analyses for understanding industry trends, and case studies for practical applications. Intellectual property considerations are crucial; the designer must respect copyright laws, patents, and trademarks to avoid legal issues and maintain ethical standards. This includes not plagiarising software code or design elements and appropriately citing sources. The aim is to build a system informed by existing knowledge while contributing new insights or improvements.

Explain how flow charts, data flow diagrams, and structure charts contribute to system design and development. Provide examples to illustrate your answer.

Flow charts, data flow diagrams (DFDs), and structure charts are instrumental in visualising and planning IT systems. Flow charts depict the sequence of operations in a process or system using standard symbols, such as arrows and ovals, simplifying complex procedures. For example, they can outline the steps for user data processing in a software application. DFDs focus specifically on how data moves through a system, identifying its sources, transformations, storage, and outputs. An example would be showing how customer data flows from an online form to a database in an e-commerce system. Structure charts illustrate the hierarchical organisation of system modules, clarifying the relationships and dependencies between different parts of a system, such as how the user interface module interacts with the authentication module in a software application. Each of these tools helps in breaking down and organising system components, making the development process more efficient and understandable.

Alfie avatar
Written by: Alfie
Cambridge University - BA Maths

A Cambridge alumnus, Alfie is a qualified teacher, and specialises creating educational materials for Computer Science for high school students.

Hire a tutor

Please fill out the form and we'll find a tutor for you.

1/2 About yourself
Still have questions?
Let's get in touch.