TutorChase logo
Login
AQA A-Level Computer Science

22.1.1 Problem Analysis and Requirement Gathering

Problem Analysis and Requirement Gathering involves understanding a problem clearly before attempting a solution, ensuring the system aligns closely with user needs and expectations.

Problem definition and requirement elicitation

Understanding the role of problem definition

Before starting any software project, it is vital to define the problem clearly. Problem definition involves outlining what the system is meant to achieve and identifying the constraints and goals involved. Without this step, developers risk building software that is misaligned with user needs or solves the wrong problem entirely.

A strong problem definition should answer key questions such as:

  • What is the problem to be solved?

  • Who experiences the problem (stakeholders)?

  • Why is the problem important?

  • What are the expected outcomes of the solution?

Problem definition allows developers and stakeholders to be aligned from the start, reducing the chances of wasted time and effort. It sets the foundation for the rest of the development process.

Some common issues that arise from poor problem definition include:

  • Misunderstood goals

  • Solutions that do not fit the user’s context

  • Scope creep during development

  • Budget and time overruns

Therefore, this phase must be handled with care, often involving repeated discussions with stakeholders to ensure full understanding.

The importance of requirement elicitation

Take your grades to the next level!

UPGRADING TO PREMIUM UNLOCKS
AI Tutor
AI-powered study assistant
instant feedback and guidance
Predicted Papers
Examiner-style predicted papers
based on recent exam trends
Practice Questions
All exam practice questions
by topic for each subject
Study Notes
All detailed revision notes
written by expert teachers
Cheat Sheets
Quick revision summaries
perfect for last-minute review
Past Papers
Complete collection
of practice and past exam papers
Email
Password
Confirm Password
Already have an account?

Practice Questions

FAQ

Stakeholder requirements refer to the needs, goals, and expectations of all individuals or groups with an interest in the system, including clients, managers, regulators, and business owners. These are often broad and strategic, focusing on outcomes like return on investment, legal compliance, and operational efficiency. In contrast, user requirements are more specific and relate to how the end users will interact with the system—what tasks they need to perform, how data should be presented, and how intuitive the interface must be. The distinction matters because satisfying stakeholders without meeting user needs can result in a system that technically achieves its business goals but is unpopular or ineffective in practice. Likewise, focusing solely on users may overlook critical compliance or organisational requirements. Effective requirement gathering balances both perspectives by identifying and resolving conflicts early, ensuring the final system aligns with strategic goals while remaining functional and user-friendly for those who rely on it daily.

Conflicts in user requirements often arise when different users or departments have competing priorities or expectations for the system. For example, one department might prioritise detailed reporting features, while another prefers simplicity and speed. These conflicts can be identified through methods such as cross-stakeholder interviews, collaborative workshops, and requirement traceability matrices, which help highlight overlapping or contradictory needs. Once identified, resolution involves active negotiation, often facilitated by a business analyst or project manager. Prioritisation frameworks like MoSCoW (Must have, Should have, Could have, Won’t have) help determine which requirements take precedence. Prototyping can also assist by allowing stakeholders to visualise compromises and provide feedback. In some cases, multiple user groups can be supported through customisable features or user roles that tailor the system to different needs. Transparent communication and iterative engagement ensure that final decisions are documented and understood by all, reducing the likelihood of dissatisfaction or future disputes.

Considering scalability early ensures the system can handle increased demand or expanded functionality without complete redesign. During the analysis phase, it’s common for stakeholders to focus on immediate needs. However, overlooking potential future growth—such as more users, larger data volumes, or additional features—can lead to systems that become obsolete or inefficient quickly. For example, a database designed for a small user base might fail under increased load if scalability wasn't factored into the data model or infrastructure decisions. Including scalability in requirement gathering allows developers to choose architectures, storage solutions, and modular designs that accommodate future change. It also supports more accurate cost forecasting and reduces technical debt. Questions about anticipated business growth, planned service expansion, or new user groups should be integrated into early discussions. Planning for future scalability doesn’t mean overengineering the system but designing it to evolve efficiently in response to new demands without major disruption.

Domain knowledge refers to an understanding of the specific industry, processes, terminology, and workflows where the system will be used. In requirement gathering, domain knowledge enables developers and analysts to ask the right questions, interpret user responses accurately, and anticipate potential needs or constraints that users may not articulate clearly. For example, developing a healthcare system without understanding clinical workflows or patient confidentiality regulations can lead to critical oversights. Without domain knowledge, there’s a higher risk of miscommunication, incomplete requirements, or reliance on incorrect assumptions. This can result in features that are irrelevant, confusing, or non-compliant. To compensate, development teams often include domain experts or conduct detailed background research. Collaboration with subject matter experts during requirement sessions improves the relevance and accuracy of requirements. In agile environments, involving a product owner or user representative with domain expertise in regular iterations helps ensure the evolving system aligns with real-world needs.

In global software projects, cultural and language differences can significantly impact how requirements are communicated, understood, and prioritised. Language barriers may lead to misinterpretation of questions or answers during interviews and questionnaires, causing important details to be overlooked. Even when using a common language like English, different regions may use distinct terms for the same concept or interpret phrases differently. Cultural differences also influence expectations around hierarchy, communication styles, and usability. For example, some cultures may avoid criticising early prototypes directly, limiting valuable feedback. Others might prefer more formal processes or expect different user interface conventions. Failing to account for these differences can result in a system that technically functions but feels alien or unintuitive to its users. To address this, requirement gathering should include region-specific sessions, use local facilitators where possible, and allow for translation and cultural adaptation. Incorporating user feedback from each major group ensures the final system is inclusive, relevant, and widely accepted.

Hire a tutor

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

1/2
Your details
Alternatively contact us via
WhatsApp, Phone Call, or Email