Unit 40: Distributed Software Applications

Unit 40: Distributed Software Applications 

Unit code:M/601/1525

QCF Level 5:BTEC Higher National

Credit value:15


To provide learners with an understanding of the principles of distributed computing, and apply the skills to design and build software applications delivered on distributed platforms.

Unit abstract

Irrespective of framework or delivery platform, the development of distributed software applications is now at the core of many commercial applications development projects. Where no single resource contains the entire system and the client-server environment has moved to a more web-based and cloud-based solution.

This unit allows learners to become familiar with the underpinning concepts of distributed software applications design, without needing to develop particular skills in one chosen language. Each of the languages have the capacity to develop distributed and it is not important which language is chosen and can be based on the range of languages available in the qualification.

Content in this unit ties into skills developed in other programming units. All units may be delivered in partnership to offer the learner the best possible experience and scope for a larger project. As with all programming, the unit’s focus of developing a distributed software application solution to meet identified needs is made along with one that emphasises the importance of testing and reviewing. Learners taking this unit may work on distributed video, networked applications or remote database calls amongst other systems.

Learning outcomes

On successful completion of this unit a learner will:

1     Understand the principles of distributed computing

2     Be able to design distributed software applications

3     Be able to implement distributed software applications

4     Be able to test distributed software applications.

Unit content

1     Understand the principles of distributed computing

Frameworks: considerations eg selection of networking class libraries, selection of classes, identification of resources, suitability for system requirement; remote calls; data exchange; distribution system eg database, networked application, data exchange, web server, game, audio communication, video communication, data stream

Communications: specification eg protocols used, design of new protocols, data stream, use of networking class library, use of remote calls, use of database requests, framework interactions, DNS, addressing requirements, ports

Interaction: requirements eg selection of framework, language requirements, system requirements

Security: procedures eg remote access considerations, local defence, firewall rules, network traffic rules, Quality of Service (QoS) limitations

2     Be able to design distributed software applications

Application: selection eg identification of programming language, identification of libraries, selection of development environment

Design methodology: tactic eg reuse of existing resources, adaptation of code, use of open source

Design method: technique eg class responsibilities, collaboration cards, class diagrams, identification of dependencies and inheritances

Specification: contents eg input, output, processes, user needs, purpose, communications method

Creation of application: use of development environment; debugging

Delivery environment: device eg mobile, handheld, web based, desktop, dedicated device, server

Interaction: considerations eg remote exchange of data, local exchange of data, environment, compliance, compatibility, recognition of standards employed

ommunications: specification eg bandwidth, protocol, compatibility, port, security considerations

3     Be able to implement distributed software applications

Implement: tools and techniques eg tool boxes and controls, selection, loops, event handlers, event driven triggers, listeners, objects and object properties, menus, debugging tools

Data: data types eg variables, declaring variables, scope of variables, constants

Remote communication: method eg use of existing methods, use of existing classes,

Programming: options eg use of methods, use of ‘traditional coding’, use of libraries Complexity: complex techniques eg multiple classes, multiple code elements, remote communication

IDE: typical elements eg source code editor, compiler, interpreter, build automation tools, debugger

4     Be able to test distributed software applications

Testing: mechanisms eg valid declarations, debugging code, comment code, naming conventions, checking functionality against requirements, documentation

Communications testing: testing eg bandwidth, traffic analysis

Errors: handling eg management of extremes, use of system imposed statements, interaction between .Net classes

Impact testing: types eg range testing, input testing, load testing, system compatibility

Documentation: technical documentation eg designs, delivery system, platform, environment, file structures, coding, constraints, maintenance requirements

Learning outcomes and assessment criteria

Learning outcomes

On successful completion of this unit a learner will:

Assessment criteria for pass

The learner can:


Understand the principles of distributed computing

1.1 discuss the principles, characteristics and features of distributed computing

1.2 critically evaluate the impact of distributed software applications delivered on distributed computing platforms


Be able to design distributed software applications

2.1 design a distributed software application for a given problem

2.2 explain the components and data and file structures required to implement a given design


Be able to implement distributed software applications

3.1 implement a distributed software application solution based on a prepared design

3.2 define relationships between components to implement design requirements

3.3 identify and implement opportunities for error handling and reporting

3.4 make effective use of an Integrated Development Environment (IDE) including code and screen templates


Be able to test distributed software applications

4.1 critically review and test a distributed software application

4.2 analyse actual test results against expected results to identify discrepancies

4.3 evaluate independent feedback on a developed distributed software application and make recommendations for improvements

4.4 create user documentation for the developed distributed software application

4.5 create technical documentation for the support and maintenance of a distributed software application.


Links to National Occupational Standards, other BTEC units, other BTEC qualifications and other relevant units and qualifications

The learning outcomes associated with this unit are closely linked with:

Level 3

Level 4

Level 5

Unit 18: Procedural Programming

Unit 39: Computer Games Design Development

Unit 19: Object Oriented Programming

Unit 40: Distributed Software Applications

Unit 20: Event Driven Programming Solutions

Unit 41: Programming in Java

Unit 21: Software Applications Testing

Unit 42: Programming in .NET

Unit 22: Office Solutions Development

Unit 23: Mathematics for Software Development

This unit has links to the Level 4 and Level 5 National Occupational Standards for IT and Telecoms Professionals, particularly the areas of competence of:

•     Software Development.

Essential requirements

Whilst some programming languages are commercially available, there are also free languages available incorporating an advanced set distributed components deployed on many platforms. You must ensure that in the case of mobile platforms the applicable free emulators are available or where security policies dictate, local work stations are equipped with virtualised operating systems containing the programming environment.



Kshemkalyan A and Singhal M http://www.amazon.co.uk/Distributed-Computing-Principles-Algorithms-Systems/dp/0521876346/- Distributed Computing: Principles, Algorithms, and Systems (Cambridge University Press, 2008) ISBN-10: 0521876346

Tanenbaum A and van Steen M Distributed Systems: Principles and Paradigms (Pearson Education, 2008) ISBN-10: 0136135536




Employer engagement and vocational contexts

Working with a local programming-based organisation or using internet-based open source projects would enhance the learners’ experience and offer a relevant vocational context.