1/53
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Software Development
The process of creating software solutions to meet specific requirements or solve problems.
6 Stages of the Software Development Life Cycle
Investigate, Plan, Design, Create, Evaluate, Document
Agile/Iterative
A software development approach that emphasises flexibility, collaboration, and frequent user feedback.
Waterfall/Staged
Linear software development approach where each stage is completed before moving to the next.
Feasibility Study
An assessment of the viability and practicality of a proposed software solution.
Requirements Specification
A document that outlines the expected functionality and features of the software from the user and client perspectives.
Top-Down Design
A software design method that starts with the main system and breaks it down into smaller units in a hierarchical manner.
Modular Design
A software design approach that involves breaking a system down into independent modules or components.
Flowcharts
Visual representations that provide a clear way of communicating the software solution.
Pseudocode
A method of expressing algorithms using a combination of programming code and plain language.
Data Table
A table created to list all the data that the software will use, including data types and storage requirements.
Variable Table
A table created to list the name, type, and length of each variable used in the software.
User-Centred Design
A design approach that prioritises the needs of the user, involving them at every stage of the design process.
User Experience (UX)
The overall perception, preferences, and emotions of users before, during, and after using the software.
Universal Design (UD)
The process of designing a product so that it can be used by everyone, regardless of age or ability.
Adaptive Technology
Technologies that provide features to aid the use of software or hardware specifically for people with impairments or disabilities. For example, a keyboard designed specifically for people with poor fine-motor skills.
Assistive Technology
Technologies that help people with disabilities, but may also be used by non-disabled individuals. For example, the zoom feature of an operating system.
Localization
The process of adapting software to meet linguistic and cultural requirements specific to a region or group of people.
Internationalization
The process of designing software to be used internationally, considering different languages, currencies, and date formats.
Captioning Technologies
Technologies that provide text descriptions overlaid on videos, originally designed for people with hearing impairment but can also benefit visually impaired individuals.
Iteration
The process of revisiting and modifying the design of the software as needed during implementation, to ensure the right solution is created.
Testing
Essential process to ensure that software functions as intended and does not produce unexpected results.
Unit Testing
Testing carried out by a programmer to test individual units/components/functions of the software. For example, does the calculateTotalCost() function work as expected.
Functional Testing
Testing to ensure that the software works/functions as expected, testing a single feature at a time. For example, does the login page work/function properly. Checks for expected vs actual outcomes and that appropriate error messages are provided.
Non-functional Testing
Tests the quality of the system, like performance, usability, reliability, and security — how well the system works.
System Testing
Testing to ensure that the software works correctly within the overall system environment. This may involve testing how the software integrates with other software. Does the system work as intended by the client.
Acceptance Testing
Testing carried out by end-users to verify that the software meets their requirements.
Test Data
Inputs used to test the software, including normal, incorrect, extreme, and boundary values.
Black box testing
A type of software testing where the source code is not accessible by the tester. Testers focus on the functionality and behavior of the software from an external perspective.
White box testing
A type of software testing where source code is accessible by the tester. Testers have knowledge of the internal code, data structures, and logic, and test the software accordingly.
Project Manager
- Forms project team
- Supervises project team
- Ensures that workloads are properly allocated
- Monitors progress and ensures that project stays on track
- Motivates and supports team
- Reports to client regularly
Business Analyst
- Identifies users and establishes user requirements
- Investigates and documents the nature of the problem
- Works with project manager on feasibility study
- Works with systems analyst to produce requirements specification
System Analyst
- Designs the software to meet the specification
- Produces design documentation
- Amends design documentation if necessary
Developer
- Writes the programs
- Keeps backup copies of the programs
- Carries out unit testing
- Produces software documentation
Tester
- Produces test plans
- Produces test data
- Carries out tests
- Documents the test results
User Liaison and Trainer
- Ensures communication between users and project team is maintained
- Prepares training material and organises training
Admin Support
- Organises meetings
- Organises documentation
- Keeps track of correspondence (meetings, email, phone calls, letters etc.)
Alpha Testing
The first phase of testing software "in-house" by specific members the software development team.
Beta Testing
Conducted externally by a limited number of end-users outside the company who are given access to the product before the final release.
Investigate Stage
The first stage of the SDLC involves identifying and analysing the nature of the problem that the software is expected to solve. This stage includes carrying out a feasibility study and identifying requirements (User, Client, Hardware/Software).
Plan Stage
Roles and responsibilities are clearly defined and timescales and budgets are set out. At this stage, all parts of the project are broken down into manageable tasks. Project management software can help with this stage.
Design Stage
There are many approaches to software design, including top-down and modular design. Prototyping and flowcharting takes place at this stage. Algorithms are designed and data tables are created. User-centred and Universal Design (UD) are concepts associated with this stage, as are User Experience (UX) and User Interface (UI) ideas. Adaptive (disability specific) and assistive technology approaches (used by non-disabled people, such as magnify tools) also form part of this stage.
Create Stage
The stage at which the software is actually written. Some testing takes place during this stage.
Evaluate Stage
Once the software is written, function testing, system testing and acceptance testing are carried out. After testing has been carried out, the system is evaluated against the initial project requirements.
Document Stage
Detailed documentation of the entire SDLC must be created and stored. This can help with troubleshooting any issues which will inevitably occur into the future.
User Interface
The means by which a user interacts with a computer system to input data and view output from the system. There are two main types, GUI (Graphical User Interface) and CLI (Command Line Interface)
Graphical User Interface (GUI)
Type of user interface that allows a user to interact with software using WIMP (Windows, Menus, Icons and Pointing devices). Modern UIs like Microsoft Windows are GUIs.
Command Line Interface (CLI)
An interface that accepts text commands at a prompt, usually for immediate execution with immediate display of output.
Information System (IS)
Software used to help organise and analyse data. Most software applications are Information Systems. VSWare is an example of an IS.
Stakeholders
Groups of people that are impacted by the software - users, clients etc.
Wireframe
A visual guide that represents a computer system. Particularly useful when showing how web pages within a website are organised. Use as a planning tool.
Prototype
An incomplete version of the software application/program. Can be used at an early stage of the project to demonstrate to a client.
High-level programming language
Programming languages such as Python or JavaScript which use language close to the English language. Easy to read.
Low-level programming language
A programming language that allows direct control of the computer hardware. Machine code/binary is an example.