Preliminary Software Engineering
Unit 1 - Programming Fundamentals
Unit 1 - Programming Fundamentals
  • 1 - Programming Fundamentals
    • Programming Fundamentals Content
  • 2 - Python
    • Expected Python Knowledge
    • GitHub
    • Learning Python
    • Data Structures and File Management
      • Data Structures
        • Lists
        • Arrays
          • Single and Multi-Dimensional Arrays
        • Lists vs Arrays
          • Activities
        • Tuples
        • Sets
        • Dictionaries
          • Activities
      • File Handling
        • Loops, Lists, Dictionaries
        • Activities
  • 3 - Theory Content
    • Theory Content Explained
      • NESA Directional Verbs
      • Responding to Directional Verbs
  • 4 - Software Development and Management
    • Approaches to Software Development
      • Waterfall Model
      • Agile Model
      • Summary: Waterfall vs Agile
      • Activities
    • Software Development Steps
      • Sample Exam Question
      • Requirements Definition
        • Understanding the Need
        • Key Questions to Ask
        • Examples
        • Activities
        • Sample Exam Question
      • Determining Specifications
        • Functional Specifications
        • Non-Functional Specifications
        • Activities
      • Design
        • Top-Down Design Approach
        • Bottom-Up Design Approach
      • Development
        • Optimising Code
      • Integration
        • Example: Payment Program
        • Activity
        • Application Programming Interface (API)
          • Example: OpenWeather API
          • Example: WeatherAPI
          • Activity: Prepare Spells
      • Testing and Debugging
        • Test Data
          • Activities
        • Testing the System
          • Activities
        • Debugging
          • Types of Errors
            • Activities
          • Python Debugger
            • Activities
          • VS Code Debugger
            • Activities
      • Installation
        • Activities
        • Sample Exam Question
      • Maintenance
  • Charts and Algorithms
    • Example: IPO Charts and Pseudocode
      • Activities
    • Algorithms, Flowcharts, Pseudocode
      • Pseudocode Activities
      • Flowchart Activities
      • Sample Exam Questions
    • Structure Charts
      • Activities
      • Sample Exam Questions
    • Data Flow Diagrams
      • Activities
    • Data Dictionaries
      • Activities
    • Decision Trees
      • Activities
      • Sample Exam Questions
    • Gantt Chart
    • Class Diagrams
      • Sample Exam Question
    • Storyboards
      • Sample Exam Question
  • Testing and Debugging
    • Test Data
      • Activities
    • Testing the System
      • Activities
    • Debugging
      • Types of Errors
        • Activities
      • Python Debugger
        • Activities
      • VS Code Debugger
        • Activities
  • Computational Thinking
    • Decomposition
    • Abstraction
    • Activities
  • Version Control
    • Git
    • GitHub
    • Activities
  • Number Systems
    • Binary Systems
    • Hexadecimal Numbers
    • Using Two's Complement
    • Activities
  • 5 - Assessment Task 1
    • Data Science Project
      • Before we Start
        • Setting up GitHub Repository
        • Setting Up Markdown Documentation
      • Examples of API Usage
        • Starter Code: NASA Scenario
        • Starter Code: Spell Book
        • Starter: Pokédex Explorer
        • Starter Code: Weather App
        • Example: OpenWeather API
        • Example: WeatherAPI
        • Example: Prepare Spells
    • Task Guide
      • Requirements Definition
      • Determining Specifications
        • Use Cases
      • Design
        • Gantt Chart
        • Structure Chart
        • Algorithms
        • Data Dictionary
      • Development
        • Comments vs DocStrings
        • UI - main.py
        • Create Python Module
          • Example: NASA Module
          • Example: WeatherFetch Module
          • Example: SpellBook Module
      • Integration
        • Example: Pokedex
      • Testing and Debugging
        • Commit Changes
      • Installation
      • Maintenance
    • Submitting Your Task
Powered by GitBook
On this page
  • Outcomes
  • Key Aspects
  1. 4 - Software Development and Management
  2. Software Development Steps

Determining Specifications

This phase is about specifying the exact functionalities, user interface designs, performance criteria, security features, and integration capabilities the tool must have.

It includes understanding the needs of the users, the functional and non-functional requirements, and any constraints or limitations.

This phase bridges the gap between the initial concept and the actual development, laying down a clear blueprint for the project.

Determining specifications not only ensures that all stakeholder requirements are captured and understood but also minimises the risk of scope creep, and sets a solid foundation for the subsequent phases of the SDLC.

Outcomes

  • Precise definition of the project's functional and non-functional requirements.

  • Detailed documentation of system specifications including user interface designs, system features, performance requirements, and security protocols.

  • Agreement on the project's scope, deliverables, and acceptance criteria among stakeholders.

Key Aspects

  • Requirement Analysis: The information gathered during the requirement gathering phase is analysed to identify any inconsistencies, ambiguities, or incompleteness. This step is crucial for clarifying and documenting the exact requirements of the project.

  • Specification Development: Based on the requirement analysis, detailed specifications are developed. These specifications serve as a guideline for the next phase of the SDLC. They detail the software's functions, features, and operational constraints, providing a blueprint for the design and development teams.

  • Validation and Verification of Specifications: The specifications must be validated and verified to ensure they accurately reflect the user and stakeholder requirements and are achievable within the project constraints. This might involve feedback sessions, reviews, and adjustments to the specifications document.

  • Prioritisation and Trade-offs: Often, not all user requirements can be met within the constraints of time, budget, and technology. This step involves prioritising the requirements based on their importance and the project's objectives, and making trade-offs where necessary.

  • Baseline Specification Document: The final step is to create a baseline specification document that formally records all the project requirements and specifications. This document is used throughout the SDLC to guide development and ensure the project stays on track to meet its defined goals.

PreviousSample Exam QuestionNextFunctional Specifications