Software design and development
Development methodologies
Software design is a process with definite phases. Modern design methodology involves repeating stages of the process in a cycle until a satisfactory piece of software is finalised.
Analysis
The purpose of a piece of software is the starting point for the analysis phase. The purpose and functional requirements can be defined in terms of inputs, processes and outputs.
Design
Pseudocode, flow charts and structure diagram are techniques that are used to design software. These allow data flow, constructs and variables to be identified before coding begins.
Implementation: Data types and structures
Data is stored differently depending on its type. Numbers are stored as integers or real numbers, text as string or characters. Lists of the same type of data can be stored in an array.
Implementation: Computational constructs
Programs use computational constructs such as loops and predefined functions to break programs up into sections. This makes programs more compact, easier to write and easier to maintain.
Implementation: Algorithm specification
Algorithms are created to allow users to tell a computer how to solve a problem. Understanding how to construct three of the most common algorithms is a critical skill for budding software developers.
Testing and documentation
The aim of testing is to prevent software failure. Using normal, exceptional and extreme test data as part of a test plan will reduce the prevalence of syntax, logic and execution errors in code.
Evaluation
Appropriate use of coding constructs is evaluated to determine the efficiency of software as it relates to use of RAM. Software is measured against the functional requirements to evaluate fitness for purpose.
Reference language
It is important to read and understand a formal language. Declaring variables and data types, using selection statements, iteration and using operators are comprehensions required before coding.
Computer systems
Data representation
Processors handle binary numbers while humans use denary. Binary to denary conversion aids understanding of data representation. ASCII represents text. Bitmapped graphics are stored as binary. Vector graphics store objects as a list of attributes.
Computer structure
The CPU handles instructions. Translators in the form of an interpreter or compiler translate code into binary. Buses are used to allow data to move between RAM and the Processor (ALU, Control Unit and Registers).
Environmental impact
Computer systems require a lot of power at start-up and are often left running when not in use. Using power down, sleep, hibernate and standby can reduce unnecessary use of natural resources.
Security precautions
Large amounts of data enter and leave networks and systems on a daily basis. Firewalls protect systems by checking incoming and outcoming data packets. Encryption ensures that data is secure during transfer, with keys used to keep data encoded.
Database design and development
Introducing databases
Flat file databases cause insertion, deletion and update anomalies. Use of relational databases where primary and foreign keys are used to link tables helps overcome these issues.
Analysis
Inputs, processes and outputs are identified for further design as forms, queries and reports. Specific end user needs are considered when analysing the requirements prior to database development.
Design
Designing queries and establishing a data dictionary are important. Decisions should be informed by the Data Protection Act. Entities, attributes and relationships should be clearly defined.
Implementation
Structured Query Language is used to allow database developers to generate queries and interrogate the data held in a database. SELECT, FROM, WHERE, AND and OR are key areas of SQL.
Testing and evaluation
A database is fit for purpose if it meets the end use and functional requirements. Testing queries and examining actual output against expected output helps to determine fitness for purpose.
Web design and development
Analysis
Thorough analysis that takes account of user needs, such as accessibility needs and use of mobile devices, will result in the production of end user and functional requirements.
Design
Understanding hierarchical and linear site structures as well as the implications of the Copyright, Designs and Patents Act ensures that wireframe designs are fit for purpose.
Implementation: CSS
Cascading Style Sheets (CSS) are used to apply styles to a webpage (internal) or website (external). Understanding the properties of text and backgrounds provides fundamental knowledge of CSS and how to apply styles using selectors, classes and IDs.
Implementation: HTML
The main structure of an HTML page makes use of <head>, <title> and <body> tags. Implementation of HTML through use of titles, videos, audio, div, anchor, headings, paragraphs and links provides a solid basis for future implementation.
Implementation: JavaScript
JavaScript events such as Onmouseover and Onmouseout can be used to ensure that web content responds to the user in real time. Use of functions to activate events is often necessary.
Testing and evaluation
Websites are deemed fit for purpose if they satisfy end user and functional requirements. Testing links and media playback as well as user interface design will inform evaluation.
Links
- External linkExternal link
- External linkExternal link
- External linkExternal link