€¦ · web viewthe software engineering for business degree has been developed in collaboration...
TRANSCRIPT
Tech Industry GoldSoftware Engineering for Business
(SEfB) Degree
Degree Specification and Learning Outcomes
This document specifies the key attributes of the Software Engineer for Business degree and sets out the topics’ learning outcomes as identified through employer consultation. The latter describes what students must have achieved / will be able to do on completion of the degree
CONFIDENTIAL
Contact: Sue Stevens
Mobile: 07939 536430Email: [email protected]
Version: 4.1 Final
Last updated: 29th October 2018
© Copyright Tech Partnership Degrees Ltd 2018
CONFIDENTIAL
Programme Aims
The Software Engineering for Business degree has been developed in collaboration with some of the UK's leading companies and Universities. The programme commenced in September 2014. The overall aim of this programme is to produce software engineering / development graduates who are capable of making a real contribution to their new employer within a few months of graduation. The programme will strive to improve software engineering practices through a curriculum that connects current research, education and practical development, covering all fundamental principles of software engineering.
The programme will deliver a team-based, project-centred curriculum encouraging relevant work experience to build sufficient technical, business and management knowledge. Students will be able to develop high quality, well-designed software within a global and changing context, through sound academic knowledge and practical abilities. The degree will equip graduates with a breadth of skills; these are core technical/programming skills with good business, interpersonal skills and user understanding, as identified by employers.
Upon graduation, it will also develop the following core areas:
8.1 A broad background of the full development lifecycle and the fit with business operations, to understand the wider business context surrounding the software development.
8.2 Key personal and interpersonal skills enabling them to work in teams and effectively communicate with employees in non- Computing/IT related areas of an organisation.
8.3 High-level competence in analysis, critical thinking, entrepreneurial and problem-solving skills to enable progression in their chosen career.
Collaboration between Partners
The degree is positioned as a collaborative venture between employers, Tech Partnership Degrees and all the universities involved. A Document of Understanding (DOU) exists as part of the Software Engineering for Business degree framework to outline areas of agreed activity in the spirit of the programme.
The University will contribute wholeheartedly to this collaboration to ensure that, for example, Industry Insight Lectures and Student / Employer Events and Course Director Meet-Ups are used to best advantage and best practice is shared across the programme.
© Copyright Tech Partnership Degrees Ltd 2018 Page 2 of 26
CONFIDENTIAL
Degree Specification
Title and brand of the degreeTech Partnership Degrees’ first undergraduate degree programme, IT Management for Business (ITMB), has built a strong brand identity with employers and increasingly with prospective students. Following a similar model, to maintain and take advantage of the brand identity, it is strongly encouraged that the degree title is ‘Software Engineering for Business (SEfB)’. In any event, the degree should be sub-branded as ‘a Tech Industry Gold Degree’ which is the generic name given to the employer accreditation. The degree may be either a BEng or BSc.
The degree will be with Honours and is encouraged to be a four-year full-time programme (5 year under Scottish qualification) including an industry-based sandwich year to acquire valuable practical skills. Students should have the option to switch to a three-year full-time (or other) mode of study option as appropriate. Part time delivery or any other flexible delivery models should be discussed with Tech Partnership Degrees.
Degree contentThe Learning Outcomes for the Software Engineering for Business degree are designed to support four key content areas: technology, business, personal /interpersonal and project management skills and are split as follows with reference to student learning time:
60-65% Technology (Software)10-15% Business10-15% Personal and Interpersonal Skills 10-15% Project Management
It is recognised that, at the time of accreditation,details of the assessment programme are unlikely to be available. However, it is expected that students will be assessed in all learning outcomes and skill requirements, including personal and interpersonal skills, before completing the degree and evidence of this may be sought as part of the quality assurance process. As part of the accreditation process, the University will show a mapping of the student’s learning experience within each module against the four key areas.
Learning outcomes and skills requirementsThe University will need to show formally that the learning modules it proposes to use adequately address the high-level learning outcomes developed by the Software Degree Employer Steering Group. These are listed in the separate Learning Outcomes section later in the document.
As part of the accreditation process, the University will provide:
A mapping between the high-level learning outcomes and the course modules
A description of how the four key content areas are included in the course to teach a balanced curriculum
See Endorsement Guideline document for details.
© Copyright Tech Partnership Degrees Ltd 2018 Page 3 of 26
CONFIDENTIAL
Delivery methodologiesKey to the Software Engineering for Business degree is the delivery method in the following areas:
Industry delivered ‘Industry Insight Lectures’
The annual series of industry delivered ‘Industry Insight Lectures’ – sourced by Tech Partnership Degrees - will form a part of the degree. The series consists of about 8-10 employer lectures per academic year; content and lecturers are different year on year.
Each lecture is hosted at one of the universities delivering the degree and the university will record this. The recordings are then made available via tpdegrees.com within a week so that other universities can watch the lecture too.
Tech Partnership Degrees and the employers require that there is at least one element of assessment based on the Industry Insight series; this can be included in any year during the course. Students, independent of level, should however be encouraged to attend and participate in the series of lectures.
Forthcoming lectures will be published on tp.degrees.com.
Group work
In order to address a number of the Learning Outcomes and Skills Requirements – particularly in the personal and interpersonal skills area – it is essential that the degree contains a substantial amount of group work, ideally with access to external mentors from industry.
Project work
It is a requirement that there is a significant amount of practical project work undertaken in collaboration with external employers. This can range from case studies supplied by employers to an on-site project with specific deliverables. For example, in the second year the students might work in groups on employer supplied case studies and in the final year, a student could undertake an individual project for an employer. This requirement is especially important where there is not a placement year available.
Tech Partnership Degrees would welcome the University counselling an employer’s opinion when formulating its own assessment of the student’s project work.
AssessmentThe Tech Partnership recognises the right of each participating university to manage the assessment process. This will be done by specifying, setting and marking an appropriate number of assessments, which cover all of the required learning outcomes, and are of an appropriate standard and size.
The only Tech Partnership Degrees’ requirement in this area is that at least one assessment during the course includes elements based on one or more of the Industry Insight Lectures.
Tech Partnership Degrees also reserves the right to monitor student assessment criteria by, for example, asking for detail in the Annual Review Report.
AdmissionsThe degree is aimed at high potential, mathematical, creative thinking students who are interested in the design and development of software applications and systems. Alongside building technical aspects of complex software systems, the taught programme would cover
© Copyright Tech Partnership Degrees Ltd 2018 Page 4 of 26
CONFIDENTIAL
team-working, personal/interpersonal, management and project skills spread across all roles that drive fundamental technologies of the world today.
Through its sister degree (ITMB), Tech Partnership Degrees has a strong track record of attracting an excellent balance of female and male students. A key aim of this degree is to continue this trend, helping to address the issue of low female numbers in IT-related Higher Education and careers. Tech Partnership Degrees will work closely with universities to promote a curriculum and learning environment that is attractive to females and addresses the gender imbalance within the education and industry community.
Tech Partnership Degrees recognises the University's right to admit students based on its own criteria. However, this is a challenging and demanding degree and the Tech Partnership has set two requirements:
Employers have requested students should have strong foundations in Mathematics prior to pursuing the Software Engineering for Business degree. Therefore, it is a requirement for universities to set minimum grade B at A-Level Mathematics as a pre-requisite onto the course. Where this is not possible, universities should ensure students demonstrate sufficient evidence of mathematical and logical problem-solving capabilities upon joining the course. In this instance, universities will be expected to demonstrate how they bridge the training gap and sufficiently prepare non-A-Level Mathematics students for the degree programme.
In order to be attractive to potential employers, it is also expected that selected applicants should be capable of achieving at least a 2:1 classification upon graduation.
Tech Partnership Degrees recommends that the University begins marketing the new degree as soon as possible. From experience, we have found that waiting until completion of accreditation before beginning marketing can seriously impact student intake in the early years of a new course.
© Copyright Tech Partnership Degrees Ltd 2018 Page 5 of 26
CONFIDENTIAL
High Level Learning Outcomes
This document defines the learning outcomes that Graduates of the undergraduate Software Engineering for Business degree programme must be able to demonstrate.
The high-level degree competency outcomes are:
1 Show competence in custom software development processes, including the knowledge, skills, and professional competences necessary to begin practice as a software engineer in a business environment.
Students, through learning, regular reinforcement and practice, and exposure to real world software development paradigms need to gain confidence in their ability to perform software development practice. Through a structured program of study, the knowledge, understanding and skills are acquired through a staged approach with increasing levels of competence being achieved as the degree progresses. Graduates need to develop an understanding and appreciation of professional issues in software development related to ethics and professional conduct, economics, and the needs of employers.
2 Be able to confidently work as an individual and as part of a team to develop and deliver quality software deliverables.
Students need to develop the ability to perform software development tasks that involve work both as an individual and also working in a team. Developing an appreciation and experience of effective team working is essential to operating effectively in a business environment. The degree programme must include an emphasis on the importance of team working as a disciplined approach, the need to adhere to deadlines, communication, and team as well as individual performance evaluation.
3 Design appropriate solutions in a range of application contexts/domains using software development approaches that deliver business value.
Students need to be exposed to a variety of software design contexts, including desktop applications, internet and mobile device software and apps. They need to understand and develop appropriate approaches to software design in the general sense, and to problem solving for specific application domains. They need to be able to understand the strengths and the weaknesses of the various options available and the implications of the selection of appropriate approaches for a given context. They must develop competence in designing solutions within business constraints of time, cost and quality as well as addressing security. Also having a thorough understanding of business requirements for software that are testable (including non-functional requirements), and how to interpret and prioritise requirements.
4 Build and test software solutions for a range of application contexts/domains.
Students need to be able to apply software development to a wide range of contexts and environments. These include operating systems, internet and fixed platforms, apps, games, business solutions etc. They need to be able to understand how to transfer development principles to new and different technologies. They need to be able to assure the functionality and the verification of requirements of their solutions through testing and embed secure development principles to all stages of development. Students also need to understand that a significant amount of software development work, involves updating, maintaining and refactoring existing solutions. They need to develop and demonstrate confidence in reading and reviewing existing software and the need to increase efficiency through refactoring.
© Copyright Tech Partnership Degrees Ltd 2018 Page 6 of 26
CONFIDENTIAL
5 Reconcile conflicting project objectives, finding acceptable compromises recognising the limitations of capability, capacity, cost, and time.
Students should develop a professional approach to managing their contribution to project deliverables. In the business environment they will need to understand how to estimate activities and balance meeting the specification while delivering on time and to the right quality level. Students need to understand how to approach conflicting demands and engage in exercises that expose them to conflicting and changing requirements. There should be a strong real-world emphasis in the study. Students should appreciate when to question deliverables – e.g. is an activity to fix an error (bug) to achieve the stated quality or is it an enhancement request that needs to be considered as an additional requirement with impact assessment, planning, resourcing and costing decisions to be made on if and when to consider the additional request. The degree programme should address these issues, with the aim of ensuring high quality requirements and a feasible software design.
6 Demonstrate an understanding of and apply current theories, models, and techniques that provide a basis for problem identification and analysis, software design, development, implementation, verification, and documentation.
The students focus should be on development and at the end of a software development program of study, should have developed competence across the individual elements bringing this together to enable the student to tackle a software project and demonstrate their ability to bring together learning and competence from a variety of topics and apply them effectively. This mechanism allows students to demonstrate their appreciation of the broad range of software development topics and their ability to apply their skills to genuine effect. This should also include the ability to offer reflections on their achievements.
7 Demonstrate an understanding and appreciation for the importance of negotiation, effective work habits, leadership, and good communication with stakeholders in a typical software development business environment.
It is important that students gain an insight and understanding of range of professional interpersonal skills required to be effective in business when producing a solution for a problem domain (requirements, design, solution development etc). Software engineers must recognise that effective software development is achieved as a result of a dynamic and interactive team-based approach. Employer visits, guest lectures from practicing software engineers etc will aid students in better comprehending the business team environment, and the importance of professionalism.
8 Learn new models, techniques, and technologies as they emerge and appreciate the necessity of such continuing professional development.
On graduating, students should clearly demonstrate that they are self-motivated life-long learners. They should understand the continuous nature of emerging technologies, and how and when is best to harness and exploit their benefits for business gain. Students should be capable of identifying, selecting and applying new technologies, tools and methods and be able to assess their contribution to software development. The final year project allows students to apply critical thinking and use context driven software development to plan and complete a significant project (not simply a software deliverable).
9 Embedding security in the software development life cycle.
Security has become a widespread and significant issue in the development and ongoing safeguarding of software systems. Students should have a robust understanding of software security issues, and the principle models of security in relation to information systems. They should understand the nature of risk, threats and vulnerabilities and be able to incorporate preventative measures into software design. They should be aware of current approaches to
© Copyright Tech Partnership Degrees Ltd 2018 Page 7 of 26
CONFIDENTIAL
safeguarding the systems that they are involved in developing, including security testing. Throughout the degree they should be thinking about security implications and adopt secure architecture, design and development practices.
Skills Topics for Custom Software Development
The table below lists the skills topics to be covered by a Software Engineering for Business degree. It is not intended that the list is used as a pro-forma curriculum. Each university will have its own approach to delivering the degree and progression. The skills and derived learning outcomes that are detailed in the following section will provide a checklist to ensure that each degree covers each of the learning outcomes appropriately.
Skills Topics for Custom Software Development1. IT in Business
1.1 The nature of IT in business1.2 Business organisation 1.3 Business exploitation of technology1.4 Hardware architecture in context1.5 Open source operating systems, software applications and productivity tools
2. Software Development Essentials 2.1 Software development foundations2.2 Development technologies2.3 Development tools 2.4 Formal development methods 2.5 Software development process as aligned to industry practice
3. Data and Algorithms3.1 Mathematical foundations of data3.2 Low level language3.3 Algorithmic foundations for software and pseudo code3.4 Algorithmic processing3.5 Search techniques3.6 Common pitfalls and mitigations
4. Software Modelling & Analysis 4.1 Modelling foundations 4.2 Analysis v, design models4.3 Industry standard modelling4.4 Analysis fundamentals4.5 Common pitfalls and mitigations
5. Software Architecture5.1 Multi-tiered architecture5.2 Separating concerns5.3 Architecture and design5.4 Common pitfalls and mitigations
6. Software Requirements Management6.1 Requirements fundamentals 6.2 Eliciting requirements6.3 Functional & Non-functional requirements6.4 Document requirements6.5 Prioritize Requirements 6.6 Requirements validation
© Copyright Tech Partnership Degrees Ltd 2018 Page 8 of 26
CONFIDENTIAL
7. Software Design7.1 Design concepts 7.2 Design patterns 7.3 Human computer interface design and DDA7.4 Detailed design7.5 Common pitfalls and mitigations
8. Software Verification and Testing8.4 Testing foundations8.5 Reviewing requirements 8.6 Test planning8.7 Testing practice8.8 Automated testing8.9 Test results analysis and reporting8.10 Common pitfalls and mitigations
9. Software Development Process9.1 Software development process concepts9.2 Software development methods and deliverables9.3 Software process implementation9.4 Industry standard software development process,9.5 Common pitfalls and mitigations
10. Software Development in Context10.1 Practical software development10.2 Real time and embedded systems10.3 Development tools10.4 GUI development10.5 Develop software solutions using recognised programming languages 10.6 Common pitfalls and mitigations
11. Software Configuration and release management11.1 Software configuration management 11.2 Change control 11.3 Versioning11.4 Industry standard version control11.5 Build and Release software11.6 Industry standard release management11.7 Common pitfalls and mitigations
12. Software Deployment12.1 Deployment fundamentals12.2 Deployment context12.3 User documentation and training 12.4 User training12.5 Common pitfalls and mitigations
13. Software Maintenance13.1 Software maintenance fundamentals13.1 Analyse Read, review, existing software solutions 13.2 Update and maintain existing software solutions13.3 Code improvement through refactoring13.4 Common pitfalls and mitigations
14. Legacy Systems14.1 Understand legacy architectures and technologies14.2 Identify and review legacy system documentation
© Copyright Tech Partnership Degrees Ltd 2018 Page 9 of 26
CONFIDENTIAL
14.3 Analyse, read, review, existing legacy software source code14.4 Understand the risks associated with replacing or keeping legacy systems14.5 Identify the legacy system data architecture14.6 Common pitfalls and mitigations
15. Software Quality15.1 Software quality concepts and culture15.2 Software quality standards15.3 Software quality processes15.4 Industry standard frameworks15.5 Common pitfalls and mitigations
16. Data Modelling, Database Development and Data Analysis16.1 Data modelling principles16.2 Industry standard modelling16.3 Database design16.4 Database implementation16.5 Data querying16.6 Data mining16.7 Big data analysis16.8 Common pitfalls and mitigations
17. Software Security17.1 Risk17.2 Information Security foundations17.3 Security risks, threats and vulnerabilities17.4 Security testing of software and systems17.5 Secure architecture 17.6 Secure development17.7 Common pitfalls and mitigations
18. Software Project Management18.1 Project management standards18.2 Project planning and estimating18.3 Project resourcing and organisation 18.4 Project control18.5 Earned value management18.6 Project risk management18.7 Project documentation18.8 Common pitfalls and mitigations
19. Professional Practice19.1 Leadership, team working, team dynamics 19.2 Distributed working19.3 Presentation19.4 Written communications 19.5 Personal preferences19.6 Negotiation 19.7 Professionalism - Careers and CPD19.8 Professional body membership19.9 Keep up to date19.10 Common pitfalls and mitigations
20. Innovation20.1 Technology innovation and emerging technologies20.2 Technology road mapping20.3 Business innovation
© Copyright Tech Partnership Degrees Ltd 2018 Page 10 of 26
CONFIDENTIAL
20.4 Industry standard tools for innovation20.5 Common pitfalls and mitigations
Table 1: Skills topics coverage in the Software Development for Business degree
Learning Outcomes
This section details the learning outcomes against each of the software development degree topics listed in table 1 above.
1 IT in Business
1. IT in Business1.1 The nature of IT in business1.2 Business organisation1.3 Business exploitation of technology1.4 Hardware architecture in context1.5 Open source operating systems, software applications and productivity tools
SD01.L1 Assess the contribution of technology in the current global business environment and how this might change and develop in the future
SD01.L2 Have demonstrated a mastery of basic business functions and organisational structures, in different sectors including an international dimension, with a sound understanding of contemporary working practices, covering work in the office, at home, on the move and in a virtual environment
SD01.L3 Understand why a business case is needed and create a business case for a technology-enabled business solution, including an assessment of business benefits, impacts, risks and return on investment
SD01.L4 Design a small-scale system suitable for business use, including server, PCs, mobile communications, networking and security mechanisms
SD01.L5 Conduct a review of open-source software, operating systems, development tools and materials using appropriate guidelines
2 Custom Software Development Essentials
2. Software Development Essentials 2.1 Software Development Foundations2.2 Development methodologies2.3 Development tools 2.4 Formal development methods 2.5 Software development process as aligned to industry practice
SD02.L1 Understand the foundations of custom software development that support the design and construction of software products, including the transformation of a design into an implementation, the tools used during this process, formal software construction methods and maintainability
SD02.L2 Understand software design and development methodology (e.g., structured or object-oriented), and be able to apply appropriate industry standard design notation such as UML and agile user story management
SD02.L3 Select, with justification, an appropriate set of tools to support the development of a range of software products
© Copyright Tech Partnership Degrees Ltd 2018 Page 11 of 26
CONFIDENTIAL
SD02.L4 Explain the potential benefits and drawbacks of using formal specification languages
SD02.L5 Understand the software development process as aligned to industry practice
3 Data and Algorithms
3. Data and Algorithms3.1 Mathematical foundations of data3.2 Low level language3.3 Algorithmic foundations for software and pseudo code3.4 Algorithmic processing3.5 Search techniques3.6 Common pitfalls and mitigations
SD03.L1 Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and hash tables
SD03.L2 Understand language at a level lower than data structures and differences e.g. distinction between Double and BigDecimal
SD03.L3 Use pseudo code or a programming language to implement, test, and debug algorithms for solving problems
SD03.L4 Confidently design and apply algorithms for manipulating data in programming solutions for a variety of computational problems
SD03.L5 Understand search techniques with pros/cons and be able to implement with regard to complexity and memory management
SD03.L6 Understand common pitfalls and mitigations
4 Software Modelling & Analysis
4. Software Modelling & Analysis 4.1 Modelling foundations 4.2 Analysis v, design models4.3 Industry standard modelling4.4 Analysis fundamentals4.5 Common pitfalls and mitigations
SD04.L1 Understand the role and purpose of modelling to visualise and better understand and document the system being developing and the proposed design solutions
SD04.L2 Understand the distinction between analysis and design models e.g. robustness analysis vs. object level interaction diagrams
SD04.L3 Apply a wide variety of industry standard software modelling techniques, including object and state-based approaches to model aspects of the domain and system behaviour and to aid design of software
SD04.L4 Analyse the problem domain to establish a basis for the creation of a software design, to describe what the customer require through solution design modelling
SD04.L5 Understand common pitfalls and mitigations
5 Software Architecture
5. Software Architecture5.1 Multi-tiered architecture5.2 Separating concerns5.3 Architecture and design
© Copyright Tech Partnership Degrees Ltd 2018 Page 12 of 26
CONFIDENTIAL
5.4 Common pitfalls and mitigations
SD05.L1 Understand the differences between multi-tiered (1/2/3) architectures and layers and identify their merits. Be able to formulate a system according to a multi-tier architecture, so that the presentation, the application processing and the data management can be separated into different logical processes
SD05.L2 Understand concepts such as separation of concerns, loose coupling, etc
SD05.L3 Software architecture, as an aid to software design
SD05.L4 Understand common pitfalls and mitigations
6 Software Requirements Management
6. Software Requirements Management6.1 Requirements fundamentals 6.2 Eliciting requirements6.3 Functional & Non-functional requirements6.4 Document requirements6.5 Prioritize Requirements 6.6 Requirements validation6.7 Common pitfalls and mitigations
SD06.L1 Understand the requirements development process: elicitation, specification, analysis, and management and the use of tools for managing requirements, and how requirements, design, implementation and verification are linked together to control development and ensure quality
SD06.L2 Elicit and negotiate requirements using a variety of techniques
SD06.L3 Be competent in writing clear and concise functional and non-functional requirements
SD06.L4 Represent functional and non-functional requirements for different types of systems using industry standard practices for formal and informal techniques (UML, User Requirements notation)
SD06.L5 Organize and prioritize requirements for some innovative client-server application of very small size
SD06.L6 Validate requirements according to criteria such as feasibility, clarity, testable, freedom from ambiguity, etc.
SD06.L7 Understand common pitfalls and mitigations
7 Software Design
7. Software Design7.6 Design concepts 7.7 Design patterns 7.8 Human computer interface design and DDA7.9 Detailed design7.10 Common pitfalls and mitigations
© Copyright Tech Partnership Degrees Ltd 2018 Page 13 of 26
CONFIDENTIAL
SD07.L1 Discuss the properties of good software design including the nature and the role of associated documentation, appreciating that design increasingly covers use of existing code and 3rd party elements that may be an alternative to development of code from scratch through make/buy decisions
SD07.L2 Select and apply appropriate design patterns in the construction of software using industry standard documentation such as GoF (the "Gang of Four")
SD07.L3 Understand the different contexts for HCI (mobile devices, consumer devices, business applications, web, business applications, collaboration systems, games, etc.) and be able to define a user-centred design that explicitly recognises the user and is DDA compliant (Disability Discrimination Act)
SD07.L4 Create and specify a software design for a medium-size software product using a software requirement specification, an accepted program design methodology (e.g., structured or object-oriented), and appropriate design notation
SD07.L5 Understand common pitfalls and mitigations
8 Software Verification and Testing
8. Software Verification and Testing8.1 Verification and testing foundations8.2 Reviewing requirements 8.3 Test planning8.4 Testing practice8.5 Automated testing8.6 Test results analysis and reporting8.7 Common pitfalls and mitigations
SD08.L1 Describe in detail the purpose of, and distinguish between the different types and levels of verification (analysis, demonstration, test, formal proof, inspection etc.) and testing (unit, integration, systems, and acceptance) including the role and value of test driven development techniques
SD08.L2 Analyse requirements to determine appropriate testing strategies understanding the trade-off between the extent and cost of testing vs. Quality requirements
SD08.L3 Create, evaluate, and implement a test plan for a medium-size code segment
SD08.L4 Develop and execute accurate and clear test scripts through UI harnesses against acceptance criteria, requirements and internal and/or external standards using industry standard unit and component testing tools
SD08.L5 Be competent in developing automated tests within the build phase for web applications at a transaction and method level
SD08.L6 Assess test results against expected results and acceptance criteria and through traceability to requirements, presenting and communicating results effectively using appropriate communication styles
SD08.L7 Understand common pitfalls and mitigations
9 Software Development Process
9. Software Development Process9.6 Software development process concepts9.7 Software development methods and deliverables9.8 Software process implementation9.9 Industry standard software development process,
© Copyright Tech Partnership Degrees Ltd 2018 Page 14 of 26
CONFIDENTIAL
9.10 Common pitfalls and mitigations
SD09.L1 Explain the importance of a software process for governing software development both technically, and in terms of cost control, quality, adherence of technical strategy, IPR identification etc
SD09.L2 Understand the software life cycle, its phases and the deliverables that are produced, compare the traditional waterfall model to newer models such as agile, test –led development and other appropriate models
SD09.L3 Select, with justification software development models and process elements most appropriate for the development and maintenance of a diverse range of software products
SD09.L4 Understand the nature of industry standard software development process, including distributed work (e.g. onshore, near shore and offshore), to understand benefits and drawbacks of each and key enablers to make each model successful
SD09.L5 Understand common pitfalls and mitigations
10 Software Development in Context
10. Software Development in Context10.1 Practical software development10.2 Real time and embedded systems10.3 Development tools10.4 GUI development10.5 Develop software solutions using recognised programming languages 10.6 Common pitfalls and mitigations
SD10.L1 Understand the fundamental components of technology solutions in a range of typical modern business environments and explain their interactions for any applicable target system - including games console, smart-phone, embedded system understanding the differences that these environments bring
SD10.L2 Understand the contexts of real time and embedded systems development as well as component software within hardware systems
SD10.L3 Demonstrate the capability to select, with justification, and apply an appropriate set of tools to support the development of a range of software products of medium size
SD10.L4 Create a specification for a user interface based on requirements and implement a range of GUI’s for different contexts at different levels of detail from specifications
SD10.L5 Develop and test a range of small and medium-scale technology solutions (programmes, apps or games), utilising an industry standard method and programming language
SD10.L6 Understand common pitfalls and mitigations
11 Software Configuration and Release Management
11. Software Configuration and Release Management11.1 Software configuration management 11.2 Change control 11.3 Versioning11.4 Industry standard version control11.5 Build and Release software11.6 Industry standard release management
© Copyright Tech Partnership Degrees Ltd 2018 Page 15 of 26
CONFIDENTIAL
11.7 Common pitfalls and mitigations
SD11.L1 Recognise the difference between configuration management at a software component/function level, and configuration of a release
SD11.L2 Define configuration management processes for use throughout the product development life cycle in storing software deliverables and controlling and tracking changes to software both at component and release level, using configuration management tools effectively, and apply change management processes properly
SD11.L3 Modify software designs and deliverables following sound change control approaches and change control tools
SD11.L4 Understand the importance of version control and the difference between software level vs. component level version control
SD11.L5 Be competent in using and applying industry standard version control tools to manage software deliverables
SD11.L6 Select and apply configuration management and change control tools for use within software development projects
SD11.L7 Be able to apply industry standard release management frameworks (e.g. Puppet) to release and manage software artifacts
SD11.L8 Understand common pitfalls and mitigations
12 Software Deployment
12. Software Deployment12.6 Deployment fundamentals12.7 Deployment context12.8 User documentation and training 12.9 User training12.10 Common pitfalls and mitigations
SD12.L1 Understand the organisational context into which software is deployed and the human and business issues associated with deployment
SD12.L2 Recognise the challenges of deploying software releases which form part of a software or hardware system, perhaps with other software elements from a 3rd party, and embedded systems. Being able to interact to agree dependencies on interfaces, processing speed, resource utilisation etc. and staged deployment in to maturing prototypes and systems
SD12.L3 Develop and apply user documentation and training materials as part of software development and deployment activities
SD12.L4 Design and develop training materials and plan end user training following software deployment
SD12.L5 Understand common pitfalls and mitigations
13 Software Maintenance
Human and social issues in software development and deployment, including human resource development and health and safety issues
Select appropriate techniques to solve problems within the domain of software management
o The organisational context within which software is developed and deployed
© Copyright Tech Partnership Degrees Ltd 2018 Page 16 of 26
CONFIDENTIAL
o Human and social issues in software development and deployment, including human resource development and health and safety issues
o Select appropriate techniques to solve problems within the domain of software management
13. Software Maintenance13.2 Software maintenance fundamentals13.3 Analyse Read, review, existing software solutions13.4 Update and maintain existing software solutions13.5 Code improvement through refactoring13.6 Common pitfalls and mitigations
SD13.L1 Understand the impact of developing software for systems which need to be maintained for extended operational periods (e.g. avionics could be ~25 years), and be aware of the importance of documentation rigour in these circumstances, when contrasted against fast changing IT software where changes are likely to occur at a far higher frequency
SD13.L2 Read and Analyse existing software behaviour in order to improve its efficiency, reliability, and maintainability
SD13.L3 Maintain and update software as required to ensure continued effectiveness or in response to external factors
SD13.L4 Understand the role and purpose of refactoring in improving programming solutions efficiency, scalability, maintainability and extensibility and be able to revise the performance of existing code to provide for scalability and extensibility
SD13.L5 Understand common pitfalls and mitigations
14 Legacy Systems
14. Legacy Systems 14.1 Understand legacy architectures and technologies14.2 Identify and review legacy system documentation14.3 Analyse, read, review, existing legacy software source code14.4 Understand the risks associated with replacing or keeping legacy systems14.5 Identify the legacy system data architecture14.6 Common pitfalls and mitigations
SD14.L1 Gain an understanding of legacy architectures and technologies (e.g. mainframe/COBOL etc)
SD14.L2 Identify and review legacy system documentation, whilst appreciating that documentation is often missing, inadequate and out-of-date
SD14.L3 Analyse existing legacy software, and review the source code if available, appreciating that part or all of the system may be implemented using an obsolete programming language
SD14.L4 Identify legacy system data architecture and understand that the data processed by the system may be distributed in different files which have incompatible structures. There may be data duplication and the data itself may be out of date, inaccurate and incomplete
SD14.L5 Understand the risks associated with replacing or keeping and maintaining legacy systems, and that keeping legacy systems in use avoids the risks of replacement but making changes to existing software usually becomes more difficult and expensive as systems get older
SD14.L6 Understand common pitfalls and mitigations
© Copyright Tech Partnership Degrees Ltd 2018 Page 17 of 26
CONFIDENTIAL
© Copyright Tech Partnership Degrees Ltd 2018 Page 18 of 26
CONFIDENTIAL
15 Software Quality
15. Software Quality15.1 Software quality concepts and culture15.2 Software quality standards15.3 Software quality processes15.4 Industry standard frameworks15.5 Common pitfalls and mitigations
SD15.L1 Explain and apply recognized principles to the building of high-quality software components, understanding the difference between safety and quality, and how mechanisms that improve quality may be used to partially underpin a safety argument
SD15.L2 Interpret and apply standards for software quality planning and assurance (e.g. ISO/IEC 9126 - international standard for the evaluation of software quality)
SD15.L3 Compare and contrast the different methods and techniques used to assure the quality of a software development processes and deliverables
SD15.L4 Awareness of industry standard static and dynamic code analysis frameworks (e.g. FindBugs, Checkstyle, etc)
SD15.L5 Understand common pitfalls and mitigations
16 Data Modelling, Database Development and Data Analysis
16. Data Modelling, Database Development and Data Analysis16.9 Data modelling principles16.10 Industry standard modelling16.11 Database design16.12 Database implementation16.13 Data querying16.14 Data mining16.15 Big data analysis16.16 Common pitfalls and mitigations
SD16.L1 Describe the basic principles of the relational data model and the issues of scale and management of large data or big data
SD16.L2 Be competent at developing a range of industry standard database models, including state and process models
SD16.L3 Create a relational database schema that incorporates key, entity integrity, and referential integrity constraints
SD16.L4 Implement a database-driven web site, explaining the relevant technologies involved in each tier of the architecture and the accompanying performance tradeoffs
SD16.L5 Write stored procedure queries that deal with parameters and have some control flow, to provide given functionality
SD16.L6 Understand the role of data mining, the algorithms developed to address different data mining goals and the application of these algorithms to real-world problems including big data
SD16.L7 Design, implement and evaluate big data analysis systems
SD16.L8 Understand common pitfalls and mitigations
© Copyright Tech Partnership Degrees Ltd 2018 Page 19 of 26
CONFIDENTIAL
17 Risk & Information Security
17. Risk & Information Security17.1 Risk17.2 Information Security foundations17.3 Security risks, threats and vulnerabilities17.4 Security testing of software and systems17.5 Secure architecture 17.6 Secure development17.7 Common pitfalls and mitigations
SD17.L1 Understand the nature of risk to information and information systems and define what cyber security is, and explain its importance when developing software solutions and mitigating risk
SD17.L2 The importance of determining and managing risk for threats and vulnerabilities to information systems on an ongoing basis
SD17.L3 Understand human aspects of information security including client data protection and the data protection act
SD17.L4 The types of testing that are commonly applied to identify vulnerabilities in software and how to make software more resilient to threats
SD17.L5 Design in robust, scalable and future-proof software security solutions that meet specific and generic requirements, and internal/external security standards and best practice
SD17.L6 Correctly apply the organisation’s security architecture to any particular systems or solutions development activities. Rewrite a simple program to remove common vulnerabilities, such as buffer overflows, integer overflows, and race conditions
SD17.L7 Understand common pitfalls and mitigations
18 Software Project Management
18. Software Project Management18.1 Project management standards18.2 Project planning and estimating18.3 Project resourcing and organisation 18.4 Project control18.5 Earned value management18.6 Project risk management18.7 Project documentation18.8 Common pitfalls and mitigations
SD18.L1 Interpret and use standards in software project management, including PRINCE2, ISO 10006 (project management quality) and ISO 12207 (software development process) along with the SEI’s CMMI model
SD18.L2 Prepare a project plan for a software project that includes estimates of size and effort, a schedule, resource allocation, configuration control, change management, and project risk identification and management
SD18.L3 Be able to identify the range of software development resources required and allocate them to a project. Demonstrate through involvement in a team project the central elements of team building and team Management during software development
© Copyright Tech Partnership Degrees Ltd 2018 Page 20 of 26
CONFIDENTIAL
SD18.L4 Manage project progress, productivity and other aspects of software development processes, against plan, undertaking quantities progress tracking against tolerance levels, reporting progress and escalating when required
SD18.L5 Be able to apply the concepts of earned value management to IT projects and programs
SD18.L6 Identify risks to a software project and indicate an approach to managing risk that will help to secure the on-time on-budget on-quality delivery of software
SD18.L7 Be able to document project progress using a RAID log to records risks, actions, issues and decisions
SD18.L8 Understand common pitfalls and mitigations
19 Professional Practice
19. Professional Practice19.1 Leadership, team working, team dynamics 19.2 Distributed working19.3 Presentation19.4 Written communications 19.5 Personal preferences19.6 Negotiation 19.7 Professionalism - Careers and CPD19.8 Professional body membership19.9 Keep up to date19.10 Common pitfalls and mitigations
SD19.L1 Understand the principles of leadership and be able to work effectively as a member or lead of a small development team and adopt best practices for developing software in teams recognising challenges and approaches taken to resolve them
SD19.L2 Understand the challenges of working in a geographically (and temporally) distributed team, and mechanisms to address the challenges
SD19.L3 Be able to make concise, engaging and well-structured verbal presentations, arguments and explanations, to a range of audiences about technical problems and their solutions, taking into account the audience viewpoint at all times
SD19.L4 Be fluent and professional in written communications, with the ability to articulate complex issues, taking into account the reader’s viewpoint
SD19.L5 Understand their personal preferences, styles, strengths and areas for development and be able to demonstrate how they could use this knowledge to good effect in a business environment
SD19.L6 Participate in interactions with others and negotiate agreements with peers
SD19.L7 Understand the wide variety of IT professional and managerial roles that exist and how these lead to exciting, successful and rewarding careers
SD19.L8 Understand the role and membership benefits of professional bodies in promoting IT professionalism
SD19.L9 Demonstrate adaptability, and the desire and capability to identify emerging technology, and stay up to date with technologies, processes and practices in a dynamic industry environment
SD19.L10 Understand common pitfalls and mitigations
© Copyright Tech Partnership Degrees Ltd 2018 Page 21 of 26
CONFIDENTIAL
20 Innovation
20. Innovation20.1 Technology innovation and emerging technologies20.2 Technology road mapping20.3 Business innovation20.4 Industry standard tools for innovation20.5 Common pitfalls and mitigations
SD21.L1 Understand technology innovation, including disruptive technologies and be able to describe current and past examples (e.g., cloud, apps, the hard disk drive, text messaging, GPS, the smart phone, Linux, Social networking)
SD21.L2 Produce a simple technology roadmap for a software technology product or service
SD21.L3 Understand that innovation is an important component of sustainable economic growth. Explore and describe how businesses innovate through technology, considering a range of organisations in different sectors
SD21.L4 Use a range of tools for assessing the commercial viability of a new technology based ideas and for transforming research based ideas into feasibility and business plans
SD21.L5 Understand common pitfalls and mitigations
© Copyright Tech Partnership Degrees Ltd 2018 Page 22 of 26
CONFIDENTIAL
Appendix 1 – Summary Mapping Sheet for Learning Outcomes
SD06.L7 Understand common pitfalls and mitigationsSoftware Design
SD07.L1
SD07.L2
SD07.L3
SD07.L4 SD07.L5 Understand common pitfalls and mitigations
Software Verification and Testing
SD08.L1 SD08.L2 Analyse requirements to determine appropriate testing strategiesSD08.L3 Create, evaluate, and implement a test plan for a medium-size code segment
SD08.L4
SD08.L5 Be competent in developing automated tests within the build phase for web applications at a transaction and method level
SD08.L6SD08.L7 Understand common pitfalls and mitigations
Software Development Process
SD09.L1
SD09.L2
SD09.L3
SD09.L4SD09.L5 Understand common pitfalls and mitigations
Software Development in Context
SD10.L1
SD10.L2 Understand the contexts of real time and embedded systems development as well as component software within hardware systems
SD10.L3
SD10.L4
SD10.L5SD10.L6 Understand common pitfalls and mitigations
Software Configuration and Release Management
SD11.L1 SD11.L2 Modify software designs and deliverables following sound change control approaches and change control tools SD11.L3 SD11.L4 Be competent in using and applying industry standard version control tools to manage software deliverablesSD11.L5 Select and apply configuration management and change control tools for use within software development projectsSD11.L6 Be able to apply industry standard release management frameworks (e.g. Puppet) to release and manage software artifactsSD11.L7 Understand common pitfalls and mitigations
Software Deployment
SD12.L1 Understand the organisational context into which software is deployed and the human and business issues associated with deployment
SD12.L2 SD12.L3 Develop and apply user documentation and training materials as part of software development and deployment activitiesSD12.L4 Design and develop training materials and plan end user training following software deployment
7.
Discuss the properties of good software design including the nature and the role of associated documentation, appreciating that design increasingly covers use of existing code and 3rd party elements that may be an alternative to development of code from scratch through make/buy decisions
Select and apply appropriate design patterns in the construction of software using industry standard documentation such as GoF (the "Gang of Four")
Understand the different contexts for HCI (mobile devices, consumer devices, business applications, web, business applications, collaboration systems, games, etc.) and be able to define a user-centred design that explicitly recognises the user and is DDA compliant (Disability Discrimination Act)
Create and specify a software design for a medium-size software product using a software requirement specification, an accepted program design methodology (e.g., structured or object-oriented), and appropriate design notation
8.
Describe in detail the purpose of, and distinguish between the different types and levels of verification (analysis, demonstration, test, formal proof, inspection etc.) and testing (unit, integration, systems, and acceptance) including the role and value of test driven development techniques
Develop and execute accurate and clear test scripts through UI harnesses against acceptance criteria, requirements and internal and/or external standards using industry standard unit and component testing tools
Assess test results against expected results and acceptance criteria and present and communicate results effectively using appropriate communication styles
9.
Explain the importance of a software process for governing software development both technically, and in terms of cost control, quality, adherence of technical strategy, IPR identification etc
Understand the software life cycle, its phases and the deliverables that are produced, compare the traditional waterfall model to newer models such as agile, test –led development and other appropriate models
Select, with justification software development models and process elements most appropriate for the development and maintenance of a diverse range of software products
Understand the nature of industry standard software development process, including distributed work (e.g. onshore, near shore and offshore), to understand benefits and drawbacks of each and key enablers to make each model successful
10.
Understand the fundamental components of technology solutions in a range of typical modern business environments and explain their interactions for any applicable target system - including games console, smart-phone, embedded system understanding the differences that these environments bring
Demonstrate the capability to select, with justification, and apply an appropriate set of tools to support the development of a range of software products of medium size
Create a specification for a user interface based on requirements and implement a range of GUI’s for different contexts at different levels of detail from specifications
Develop and test a range of small and medium-scale technology solutions (programmes, apps or games), utilising an industry standard method and programming language
11.
Define configuration management processes for use throughout the product development life cycle in storing software deliverables and controlling and tracking changes to software. Use configuration management tools effectively, and apply change management processes properly
Understand the importance of version control and the difference between software level vs component level version control
12.
Recognise the challenges of deploying software releases which form part of a software or hardware system, perhaps with other software elements from a 3rd party, and embedded systems. Being able to interact to agree dependencies on interfaces, processing speed, resource utilisation etc. and staged deployment in to maturing prototypes and systems
© Copyright Tech Partnership Degrees Ltd 2018 Page 23 of 26
CONFIDENTIAL
Software Design
SD07.L1
SD07.L2
SD07.L3
SD07.L4 SD07.L5 Understand common pitfalls and mitigations
Software Verification and Testing
SD08.L1 SD08.L2 Analyse requirements to determine appropriate testing strategiesSD08.L3 Create, evaluate, and implement a test plan for a medium-size code segment
SD08.L4
SD08.L5 Be competent in developing automated tests within the build phase for web applications at a transaction and method level
SD08.L6SD08.L7 Understand common pitfalls and mitigations
Software Development Process
SD09.L1
SD09.L2
SD09.L3
SD09.L4SD09.L5 Understand common pitfalls and mitigations
Software Development in Context
SD10.L1
SD10.L2 Understand the contexts of real time and embedded systems development as well as component software within hardware systems
SD10.L3
SD10.L4
SD10.L5SD10.L6 Understand common pitfalls and mitigations
Software Configuration and Release Management
SD11.L1 SD11.L2 Modify software designs and deliverables following sound change control approaches and change control tools SD11.L3 SD11.L4 Be competent in using and applying industry standard version control tools to manage software deliverablesSD11.L5 Select and apply configuration management and change control tools for use within software development projectsSD11.L6 Be able to apply industry standard release management frameworks (e.g. Puppet) to release and manage software artifactsSD11.L7 Understand common pitfalls and mitigations
Software Deployment
SD12.L1 Understand the organisational context into which software is deployed and the human and business issues associated with deployment
SD12.L2 SD12.L3 Develop and apply user documentation and training materials as part of software development and deployment activitiesSD12.L4 Design and develop training materials and plan end user training following software deploymentSD12.L5 Understand common pitfalls and mitigations
Software Maintenance
SD13.L1 SD13.L2 Read and Analyse existing software behaviour in order to improve its efficiency, reliability, and maintainabilitySD13.L3 Maintain and update software as required to ensure continued effectiveness or in response to external factors
SD13.L4
7.
Discuss the properties of good software design including the nature and the role of associated documentation, appreciating that design increasingly covers use of existing code and 3rd party elements that may be an alternative to development of code from scratch through make/buy decisions
Select and apply appropriate design patterns in the construction of software using industry standard documentation such as GoF (the "Gang of Four")
Understand the different contexts for HCI (mobile devices, consumer devices, business applications, web, business applications, collaboration systems, games, etc.) and be able to define a user-centred design that explicitly recognises the user and is DDA compliant (Disability Discrimination Act)
Create and specify a software design for a medium-size software product using a software requirement specification, an accepted program design methodology (e.g., structured or object-oriented), and appropriate design notation
8.
Describe in detail the purpose of, and distinguish between the different types and levels of verification (analysis, demonstration, test, formal proof, inspection etc.) and testing (unit, integration, systems, and acceptance) including the role and value of test driven development techniques
Develop and execute accurate and clear test scripts through UI harnesses against acceptance criteria, requirements and internal and/or external standards using industry standard unit and component testing tools
Assess test results against expected results and acceptance criteria and present and communicate results effectively using appropriate communication styles
9.
Explain the importance of a software process for governing software development both technically, and in terms of cost control, quality, adherence of technical strategy, IPR identification etc
Understand the software life cycle, its phases and the deliverables that are produced, compare the traditional waterfall model to newer models such as agile, test –led development and other appropriate models
Select, with justification software development models and process elements most appropriate for the development and maintenance of a diverse range of software products
Understand the nature of industry standard software development process, including distributed work (e.g. onshore, near shore and offshore), to understand benefits and drawbacks of each and key enablers to make each model successful
10.
Understand the fundamental components of technology solutions in a range of typical modern business environments and explain their interactions for any applicable target system - including games console, smart-phone, embedded system understanding the differences that these environments bring
Demonstrate the capability to select, with justification, and apply an appropriate set of tools to support the development of a range of software products of medium size
Create a specification for a user interface based on requirements and implement a range of GUI’s for different contexts at different levels of detail from specifications
Develop and test a range of small and medium-scale technology solutions (programmes, apps or games), utilising an industry standard method and programming language
11.
Define configuration management processes for use throughout the product development life cycle in storing software deliverables and controlling and tracking changes to software. Use configuration management tools effectively, and apply change management processes properly
Understand the importance of version control and the difference between software level vs component level version control
12.
Recognise the challenges of deploying software releases which form part of a software or hardware system, perhaps with other software elements from a 3rd party, and embedded systems. Being able to interact to agree dependencies on interfaces, processing speed, resource utilisation etc. and staged deployment in to maturing prototypes and systems
13.
Understand the impact of developing software for systems which need to be maintained for extended operational periods (e.g. avionics could be ~25 years), and be aware of the importance of documentation rigour in these circumstances, when contrasted against fast changing IT software where changes are likely to occur at a far higher frequency
Understand the role and purpose of refactoring in improving programming solutions efficiency, scalability, maintainability and extensibility and be able to revise the performance of existing code to provide for scalability and extensibility
© Copyright Tech Partnership Degrees Ltd 2018 Page 24 of 26
CONFIDENTIAL
Tel: 020 7963 8920 / Fax: 020 7592 9138
© Copyright Tech Partnership Degrees Ltd 2018 Page 25 of 26
SD15.L1
SD15.L2
15.
CONFIDENTIAL
Tech Partnership [email protected] / www.tpdegrees.com
Tech Partnership Degrees Ltd - A company limited by guarantee, registered in England and Wales (07223753) - Registered office: Victoria House, 39 Winchester Street, Basingstoke, Hampshire RG21 7EQ - VAT no GB 294295170
© Copyright Tech Partnership Degrees Ltd 2018 Page 26 of 26