Photo AI

Last Updated Sep 26, 2025

Software Development Simplified Revision Notes

Revision notes with simplified explanations to understand Software Development quickly and effectively.

user avatar
user avatar
user avatar
user avatar
user avatar

494+ students studying

Software Development

Software Development Processes

infoNote

Software development refers to the methods that are used in developing software applications.

A structured software development process was needed as software demands increased which meant that more people worked on developing software. This ensured that :

  • User needs are met.
  • Costs stayed within budget.
  • Software was delivered on schedule.
  • Cost of maintenance is minimised. There a several approaches to creating a software development structure.

Agile

infoNote

Agile is a software development methodology that emphasises flexibility, collaboration and customer-centricity, providing a framework for managing projects that help teams deliver high-quality software quickly and efficiently.

Key Principles of Agile

  • Engaging with customers and stakeholders throughout the development process for continuous feedback and alignment.
  • Responding and embracing change even in the late stages of development to ensure the product meets the current needs.
  • Prioritising delivering functional software over extensive documentation.

Waterfall Approach

infoNote

The waterfall approach is a more traditional, linear and less-flexible software development methodology. The project progresses through a series of distinct phases where each phase must be completed before the next one begins with little overlap between them.

Key Principles of the Waterfall Approach

  • The project progresses in a strict sequence, with each phase dependent on the completion of the previous one.
  • Extensive documentation is produced at each stage to ensure clarity and understanding of requirements, designs, and progress.
  • Extensive documentation is produced at each stage to ensure clarity and understanding of requirements, designs, and progress.

Stages of Software Development

There are six stages in a standard software development process which combine features from an agile approach and a waterfall approach.

image

Investigation

Investigation involves analysing and identifying the nature of the problem that the software is expected to solve.

infoNote

A feasibility study is a document that is often produced at the end of the investigation stage to determine if a solution to the problem is viable and worth pursuing.

Types of Feasibility

  • Technical feasibility : Assesses whether the technical resources and capabilities exist to complete the project.
  • Economic feasibility : Determines whether the project is financially viable and cost-effective.
  • Legal feasibility : Evaluates whether the project complies with all legal and regulatory requirements.
  • Operational feasibility : Examines whether the organization has the capability to operate and support the project.
  • Schedule feasibility : Assess whether the project can be completed within the desired time frame.
  • Market feasibility : Determines whether there is a demand for the project's outcomes and if it will succeed in the market.

Planning

Planning involves defining the project scope, goals, resources, timelines and risk management strategies in order to set the foundations for a successful project.

Designing

The design stage involves translating requirements into a blueprint that developers can follow to build the software.

Top-Down Design

infoNote

Top-Down Design involves breaking the system down into smaller, more manageable components starting from the highest level of abstraction and progressively refining into detailed components.

image

Modular Design

infoNote

Modular Design also involves dividing the system into smaller components. However, this approach ensures each module is a self-contained task that can be developed independently of other modules.

Prototyping

infoNote

A prototype is an early, simplified version of a product or model created to visualise and test the concept, design and functionality before full-scale development.

Key Characteristics of Prototypes

  • It represents only the essential features and functionality needed to convey the concept.
  • They are often interactive which allows users or stakeholders to utilise features early.
  • They are usually developed in iterations allowing for multiple cycles of feedback.

Benefits of Prototypes

  • Enhances Understanding : Helps clarify requirements and expectations, reducing misunderstandings.
  • Early Feedback: Provides a basis for early user and stakeholder feedback, leading to better alignment with user needs.
  • Improved Communication: Serves as a visual tool to improve communication among developers, stakeholders, and users.

User-Centered Design

infoNote

User-Centered Design is an iterative design process that focuses on the needs, preferences, and limitations of end-users at every stage of the design and development process.

infoNote

User Experience (UX) refers to the overall experience and satisfaction a user has when interacting with a system or product.

infoNote

User Interface (UI) refers to the point of interaction between the user and a digital device or software application. It encompasses all the visual and interactive elements that users engage with to control and use the product.

infoNote

Universal Design (UD) refers to the creation of products, environments, and systems that are accessible and usable by as many people as possible, regardless of their age, ability, or other factors.

7 Principles of Universal Design

  1. Equitable Use
  • The design is useful and marketable to people with diverse abilities.
lightbulbExample

Example Apple's VoiceOver is a built-in screen reader on macOS and iOS devices that allows visually impaired users to use their devices

  1. Flexibility in Use
  • Accommodates a wide range of individual preferences.
lightbulbExample

Example The Xbox Adaptive Controller is designed for gamers with limited mobility, offering multiple input methods and compatibility with various external devices.

  1. Simple & Intuitive Use
  • Easy to understand, regardless of the user's experience, knowledge, language skills, or concentration level
lightbulbExample

Example Google's search interface is designed to be extremely simple and intuitive, requiring no instructions to use effectively.

  1. Perceptible Information
  • Communicates necessary information effectively to the user, regardless of ambient conditions or the user's sensory abilities.
lightbulbExample

Example Zoom provides various accessibility features, such as closed captioning, keyboard shortcuts, and screen reader support in order to communicate necessary information through multiple modes.

  1. Tolerance for Error
  • Minimizes hazards and the adverse consequences of accidental or unintended actions.
lightbulbExample

Example Gmail allows users to undo the sending of an email within a short period after hitting the send button, minimising the adverse consequences of accidental or unintended actions

  1. Low Physical Effort
  • Can be used efficiently and comfortably with minimum fatigue.
lightbulbExample

Example Amazon's one-click purchase feature allows users to buy items with a single click, without needing to go through multiple steps in the checkout process, reducing the physical effort needed to make a purchase.

  1. Size & Space for Approach & Use
  • Provides appropriate size and space for approach, reach, manipulation, and use regardless of user's body size, posture, or mobility.
lightbulbExample

Example The Apple Watch comes with a variety of strap options in different materials and sizes, ensuring a comfortable and secure fit for users with different wrist sizes

infoNote

Localisation is the process of adapting a product or service to meet the language, cultural and other local requirements of a particular target market or region.

infoNote

Internationalisation is the process of designing and developing a product, application, or content so that it can be easily adapted for various languages, regions, and cultures.

Creation

The creation stage is where the software is actually written

Evaluation

Testing

Testing software refers to the process of evaluating and verifying that a software application or system meets the specified requirements and works as expected.

Objectives of Testing

  • Correctness : Ensures that the overall system still works even if a portion of the system has been altered, removed or added on.
  • Verification : Ensures the software is built according to the specifications and design documents
  • Fixing Bugs : Identifies defects in the software that could cause incorrect behavior or performance issues.
infoNote

Testing is a popular exam topic. Make sure you can :

  • Distinguish between different type of testing.
  • Identify test cases for Python code or existing algorithms.
  • Identify suitable testing types for different scenarios.

Types of Testing

infoNote

Unit testing focuses on validating the functionality of individual units or components of a software application. The goal is to ensure that each unit of the software performs as expected.

lightbulbExample

Example Consider an e-commerce platform. A unit test can be written to ensure that the total amount of the items in the shopping cart are true.

infoNote

Functional testing focuses on verifying that the functions of a software application operate in conformance with the required specifications. It is more concerned with the business requirements than individual functionalities and components.

lightbulbExample

Example A functional test may be written to verify that the system performs specific functions as expected which may include :

  • Adding items to the cart.
  • Proceeding to checkout.
  • Placing the order
infoNote

Non-functional testing focuses on the non-functional aspects of the system, such as performance, usability, reliability, and security. It ensures that the system meets certain criteria and performs well under specific conditions.

lightbulbExample

Example A non-functional test may be written to ensure the platform can handle high-traffic during a sale. This might involve simulating thousands of users accessing the website simultaneously to verify if the website remains stable and responsive under this load.

infoNote

Integration testing focuses on verifying the interactions between different components or systems to ensure they work together as expected.

lightbulbExample

Example An integration test may be written to test the interaction between the payment gateway and the checkout system.

infoNote

Regression testing involves re-running previously conducted tests to ensure that new code changes have not adversely affected existing functionalities

lightbulbExample

Example After adding a new feature, such as a discount code functionality, regression testing would verify that existing features like product search, checkout, and payment processing still work correctly.

infoNote

System testing involves testing the entire integrated system to verify that it meets the specified requirements.

lightbulbExample

Example A system test is usually done after unit and other types of testing which would include testing user registration and login, browsing and searching for products, viewing product details etc.

infoNote

Exam Focus

  • SEC 2024 HL Section A Question 6
  • SEC 2023 HL Section B Question 13 (b)

Documentation

infoNote

Documentation refers to the comprehensive collection of written materials that describe and explain various aspects of a software application

Documentation is a broad term in terms of software, it may include :

  • Requirement documentation to describe functional and non-functional requirements of the software application.
  • Design document to describe the architecture of the software.
  • Technical document to provide detailed information about the code.
  • User documentation on how to use the software such as tutorial and installation instructions.
Books

Only available for registered users.

Sign up now to view the full note, or log in if you already have an account!

500K+ Students Use These Powerful Tools to Master Software Development

Enhance your understanding with flashcards, quizzes, and exams—designed to help you grasp key concepts, reinforce learning, and master any topic with confidence!

30 flashcards

Flashcards on Software Development

Revise key concepts with interactive flashcards.

Try Computer Science Flashcards

3 quizzes

Quizzes on Software Development

Test your knowledge with fun and engaging quizzes.

Try Computer Science Quizzes

12 questions

Exam questions on Software Development

Boost your confidence with real exam questions.

Try Computer Science Questions

27 exams created

Exam Builder on Software Development

Create custom exams across topics for better practice!

Try Computer Science exam builder

27 papers

Past Papers on Software Development

Practice past papers to reinforce exam experience.

Try Computer Science Past Papers

Other Revision Notes related to Software Development you should explore

Discover More Revision Notes Related to Software Development to Deepen Your Understanding and Improve Your Mastery

96%

114 rated

Software Development

Software Development

user avatar
user avatar
user avatar
user avatar
user avatar

287+ studying

194KViews
Load more notes

Join 500,000+ Leaving Cert students using SimpleStudy...

Join Thousands of Leaving Cert Students Using SimpleStudy to Learn Smarter, Stay Organized, and Boost Their Grades with Confidence!

97% of Students

Report Improved Results

98% of Students

Recommend to friends

500,000+

Students Supported

50 Million+

Questions answered