Software Development  ·  Level 5
Software System Requirements
Chapter 2: To analyze user requirements
📚 4 Topics

Analyzing user requirements is a critical phase in software system development that ensures the final product aligns with the actual needs of its users. In Kenya’s diverse professional landscape, organizations ranging from county referral hospitals to retail businesses rely on clear and comprehensive requirements to avoid costly project failures and ensure user satisfaction. This chapter explores the different types of user requirements, providing a framework for capturing and understanding what stakeholders expect from software systems.

2.1 Types of User Requirements

User requirements describe what a software system must do and the constraints under which it must operate. They form the foundation for system design, development, and validation. In Kenyan workplaces, capturing accurate requirements demands engaging multiple stakeholders such as end users, IT staff, and management across sectors like education, banking, and agriculture. These requirements fall into various categories including functional, non-functional, technical, budget and timeline, and legal and regulatory requisites. Understanding each type helps ensure the software system delivers value, complies with regulations, and fits within organizational constraints.

2.1.1 Functional Requirements

Functional requirements specify the essential actions and behaviors the software must perform to meet the user’s needs. They define what the system must do in terms of inputs, processes, and outputs, serving as the blueprint for developers and testers. For instance, at a county government office, a payroll system’s functional requirements would include calculating salaries, generating pay slips, and managing tax deductions accurately.

Definition of Functional Requirements

Functional requirements describe specific functions or features the software must provide to satisfy user tasks and objectives. They often include user interactions, data processing, and system responses. These requirements are usually expressed as “The system shall…” statements to clearly articulate expected behavior.

Importance of Functional Requirements

Functional requirements ensure the software addresses core business needs and user tasks. Without them, developers risk building irrelevant or incomplete features, leading to user dissatisfaction and wasted resources. For example, in a SACCO’s loan management system, missing a functional requirement for loan approval workflow could cause operational delays.

Examples of Functional Requirements

Common types of functional requirements include data input validation, report generation, user authentication, transaction processing, and notifications. A retail business’s inventory system might require real-time stock level updates and automatic reorder alerts as key functional needs.

Methods for Eliciting Functional Requirements

Functional requirements are typically gathered through interviews, questionnaires, observation, and workshops involving users and stakeholders. In a university setting, engaging lecturers, administrators, and students helps clarify functional needs for a learning management system.

2.1.2 Non-Functional Requirements

Non-functional requirements define the quality attributes and constraints that the system must satisfy, shaping how the system performs its functions. These include aspects such as usability, reliability, performance, and security. For example, a hospital’s patient record system must ensure data confidentiality and system availability to comply with healthcare standards.

Definition of Non-Functional Requirements

Non-functional requirements specify system properties that do not directly relate to specific functions but impact user experience and system operation. They often govern system behavior under certain conditions, such as response time limits or fault tolerance.

Categories of Non-Functional Requirements

Key categories include performance (speed, throughput), security (access control, encryption), usability (ease of use, accessibility), reliability (uptime, error rates), and maintainability (ease of updates). Each category influences design decisions and testing criteria.

Importance in Kenyan Context

In Kenya’s public sector, non-functional requirements like security and reliability are critical to protect sensitive data at institutions such as the Kenya Revenue Authority. Similarly, banks require high availability to support continuous transactions.

Techniques to Specify Non-Functional Requirements

Non-functional needs are often captured through stakeholder interviews, benchmarking, and standards compliance. For instance, a hotel booking system may adhere to international usability standards to enhance customer satisfaction.

2.1.3 Technical Requirements

Technical requirements outline the technological environment and constraints within which the software must operate. They include hardware platforms, operating systems, network configurations, and integration with existing systems. For example, a cooperative society’s accounting software may be required to run on affordable local servers and integrate with mobile money platforms.

Scope of Technical Requirements

These requirements define system compatibility, scalability, and technology stacks. They ensure the software fits into the organization's current infrastructure and future IT plans.

Hardware and Software Specifications

Technical requirements specify minimum hardware specifications such as processor speed, memory, and storage. Software dependencies like database management systems or programming languages are also identified.

Integration and Interoperability

Systems often need to interface with other applications or databases. For example, a county hospital’s patient management system must integrate with the national health insurance database to verify coverage.

Constraints and Standards Compliance

Technical requirements may include adherence to industry standards or organizational policies, such as using secure protocols or approved software licenses to comply with NEMA’s digital record-keeping policies.

2.1.4 Budget and Timeline

Budget and timeline constraints define the financial resources and schedule within which the software project must be completed. These constraints impact scope, technology choices, and resource allocation. For example, a retail business launching an e-commerce platform must balance features against available capital and market deadlines.

Budget Planning and Estimation

Budget requirements involve estimating costs for development, licenses, hardware, and maintenance. Proper budgeting prevents project overruns and ensures sustainable operations, as seen in county government IT projects funded by devolved funds.

Scheduling and Milestones

Timeline requirements specify project start and end dates, key deliverables, and review points. A university implementing a new student information system may schedule phased rollouts aligned with academic calendars.

Impact on Requirements Scope

Budget and timeline often require prioritizing features, leading to minimum viable product approaches or phased enhancements. For example, a SACCO may first develop core savings and loan modules before adding advanced analytics.

Risk Management Related to Budget and Time

Identifying risks such as funding delays or resource unavailability helps in planning contingencies. A hotel chain deploying a new reservation system must consider seasonal peak periods when setting timelines.

2.1.5 Legal and Regulatory Requirements

Legal and regulatory requirements ensure the software complies with applicable laws, policies, and standards. In Kenya, these may include data protection laws, tax regulations, and sector-specific guidelines. For instance, a bank’s customer data system must comply with the Data Protection Act and Central Bank regulations.

Understanding Applicable Laws

Developers and analysts must identify relevant legislation such as the Kenya Data Protection Act, the Finance Act, or health sector regulations. This ensures software functionality aligns with legal obligations.

Data Privacy and Security Regulations

Systems handling personal data must implement controls for consent, data access, and breach notifications. For example, a county referral hospital’s patient management system must safeguard patient confidentiality in compliance with national health laws.

Industry-Specific Compliance

Different sectors have unique regulatory requirements. Agricultural cooperatives may need traceability features to comply with export standards, while educational institutions must adhere to KNEC data policies.

Documentation and Audit Trails

Legal requirements often mandate maintaining records of transactions and system changes. A SACCO’s loan system must generate audit logs for regulatory inspections by the Sacco Societies Regulatory Authority.

Practice Questions

  1. Explain the difference between functional and non-functional requirements, providing examples from the banking sector. (10 marks)
  2. Discuss how technical requirements influence software system design in a county government office. (10 marks)
  3. Describe five types of legal and regulatory requirements that a university’s student information system must comply with. (10 marks)
  4. Outline the steps involved in managing budget and timeline constraints during software development for a retail business. (10 marks)
The rest of this chapter
🔒

Create a free account to open more of this chapter.

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒2.2 Identification of System Application Requirements

Identifying system application requirements is a critical phase in software development that ensures the final product effectively meets user needs. In the Kenyan professional environment, from county referral hospitals to retail businesses, clear understandin…

🔒2.3 Analysis of system application requirements

In the development of software systems across Kenyan industries, analyzing application requirements is a critical step that ensures the system meets user needs while aligning with organizational goals. Whether implementing a patient management system at a coun…

🔒2.4 Documenting system application requirements specifications process

Documenting system application requirements specifications is a critical step in software development that ensures all stakeholders have a clear understanding of what the system must achieve. In Kenyan workplaces such as county government offices, banks, and h…

Chapter Summary

This chapter explored the various types of user requirements essential for effective software system development, including functional, non-functional, technical, budget and timeline, as well as legal and regulatory requirements. It emphasized the importance of accurately identifying the system application requirements by clarifying the purpose and goals of the system. The analysis phase was detailed through feasibility studies, prioritization of requirements, and thorough examination of functional, non-functional, design, and risk factors to ensure a comprehensive understanding of what the system must achieve. The process of documenting system application requirements specifications was also covered, highlighting the need for clear articulation of functional, non-functional, design, and technical requirements alongside assumptions, constraints, a glossary, and appendices. Finally, the chapter underscored the critical role of reviewing and revising these specifications to maintain accuracy and relevance throughout the software development lifecycle. This structured approach ensures that user needs are thoroughly captured and translated into actionable system requirements.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. What distinguishes functional requirements from non-functional requirements in a software system? Provide one example of each from a county government office system. (4 marks)
  2. Identify and explain three types of technical requirements that might be critical for an online banking platform. (6 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with worked answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Differentiate between functional and non-functional requirements in a software system, illustrating your answer with examples from a county referral hospital. (4 marks)
  2. Explain the importance of technical requirements when developing software for a SACCO. (4 marks)
🔒18 more in this section.
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

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

16 more in this section.

Create a free account