Unit 40 Distributed Software Applications
· Aim
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:
- Understand the principles of distributed computing
- Be able to design distributed software applications
- Be able to implement distributed software applications
- 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
Communications: 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: |
LO1 Understand the principles of distributed computing | discuss the principles, characteristics and features of distributed computingcritically evaluate the impact of distributed software applications delivered on distributed computing platforms |
LO2 Be able to design distributed software applications | design a distributed software application for a given problemexplain the components and data and file structures required to implement a given design |
LO3 Be able to implement distributed software applications | implement a distributed software application solution based on a prepared designdefine relationships between components to implement design requirementsidentify and implement opportunities for error handling and reportingmake effective use of an Integrated Development Environment (IDE) including code and screen templates |
LO4 Be able to test distributed software applications | critically review and test a distributed software applicationanalyse actual test results against expected results to identify discrepanciesevaluate independent feedback on a developed distributed software application and make recommendations for improvementscreate user documentation for the developed distributed software applicationcreate technical documentation for the support and maintenance of a distributed software application. |
Guidance
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.