Unit 12 – Software Development

Summary:
Unit 12 – Software Development is another one of the many assignment-based units. As with all the units, unit 12 has multiple learning aims, each which cover multiple different topics. Unit 2 covers the characteristics and uses of software programs, designing and developing software and finally testing the software, under these specific learning aims:

  1. Understand the characteristics and uses of a software program;
  2. Design a software program;
  3. Develop and test a software program;
  4. Review the finished software program;

Learning Aim 1:
The first learning aim of Unit 12 covers the characteristics and uses of software.

You start by learning why software is used – to automatically carry out a set of instructions to solve problems or improve productivity – and some of the most common uses, such as: gaming and entertainment – e.g. computer games, computer generated imagery in movies, even social networking – as well as improving productivity – e.g. automating processes in manufacturing and stock control systems – or storage and management – e.g. booking and scheduling systems.

Next you look at the characteristics of software programs, such as programming languages and the constructs and techniques. There are many types of programming languages, you look at procedural languages like Pascal and C as well as event-driven languages like VB, VB.NET and Visual C++. Programming languages contain a range of constructs and techniques, such as command words, subroutines, basic string and file handling, different data structures and usually event handling. You need to understand – the reasons for compiling programs, that there are a variety of program design methods and how flowcharts can be used to represent the processes within programs.

The final part of the first learning aim covers the quality of software programs. You need to know that software design and techniques affect the quality of the program developed. These could be the performance – the amount of system resources a program consumes, such as processing time, memory used and the speed or accessing storage media – or the maintainability – the ease within which a program can be modified by its current or future developers – or even the reliability – such as the accuracy of its output – and finally the usability – how difficult it is for an end-user to use for its intended purpose.

Learning Aim 2:
The second learning aim of Unit 12 covers the life cycle of software development and the designing of a software program.

You start with the software development life cycle, which includes: the access requirements, design specification, such as: the scope, inputs, outputs, processing, user interface and constraints – programming language and timescales for development – and then developing the code, testing and finally maintaining.

Next you need to create designs for your software, which include the intended purpose and user requirements from the brief as well as a problem definition statement and a proposed solution using the design tools – such as: a description of the main program tasks (input and output format, such as to add two numbers together like a very simple calculator) – as well as any screen layouts and navigation, including any prototypes – such as initial splash screens or the main activity screen.

You should also include any algorithm which a description of the method of solution, such as flowcharts or pseudocode along with any data structures and storage and control structures. Additionally, you should include details referring to data validation and error handing as well as reporting.

Your plan should also include a brief outline of alternative solutions for the intended software program, such as different screen layout or navigation, and a list of any pre-defined programs and code snippets as well as their sources.

For the final parts of your plan, you need to also include a test plan along with some test data, such as testing the inputs and expected outputs as well as the compilation of the code. Additionally, your plan must also contain some details referring to any constraints, such as device capabilities including connectivity or memory storage.

Learning Aim 3:
The third learning aim of Unit 12 covers the development of the software programming as well as the testing and refining of the software.

For the first part of this learning aim and before you can develop your software program, first you need to understand what a development environment is and how it is used to produce code as well the suitable programming languages and their constructs and techniques, such as: comments, constants – variables with constant value which cannot be changed – and operators like arithmetic – addition, subtraction, division, multiplication and percentages – or logical – less than, less-or-equal to, greater than, greater or equal to, and, or, true and false.

Also included are reversed words that have a special meaning within the programming language as they are used to write instructions, such as ‘get’ and ‘repeat’ are reserved in Visual Basic – as well as input and output commands, local variables that only exist inside subroutines where they have been declared and global variables which exit throughout the entire program.

Some more are iterations, such as while, do, repeat, until, for and next, as well sequential statements, such as if-then-else and subroutines, functions and procedures. You also need to understand different data types, such as characters, strings, integers and Booleans. As well, you must know what different data structures are, such as user-defined data types and record structures as well as arrays.

Finally, you must understand what is meant by event handling and some common uses, such as forms, assigning properties to screen components, such as buttons, boxes, data validation, action and imported structures.

Additionally, you must annotate all your code to demonstrate your understanding and to allow effective repair/debugging of the programs and general maintainability. You should also compile the program into a suitable format to create an executable program.

The final part of this learning aim, covers the testing and refining of the software, so you should test the program for functionality against the test plan with the test data. You should review the quality of your program in terms of reliability, usability, performance and maintainability. Additionally, you must also gather feedback from others on the quality, reliability, usability, performance, maintainability.

You should document any changes made to the design, including changes to the source table for pre-defined assets.

Learning Aim 4:
The fourth and final learning aim of Unit 12 covers the reviewing of the software program.

You need to review the finished software program, checking it is suitable for the user requirements and is fit for its intended purpose. You should also consider the user’s experience, such as the ease of navigation.

Next, you must consider any constraints, such as programming language, time, device capabilities – memory, connectivity – as well as the quality of the program – reliability, usability and the performance.

Finally, you should mention any strengths and improvements you could make.