This interactive study guide will support candidates in developing fundamental knowledge and understanding of the programming life cycle and processes, the various phases of software development, and different types of programming concepts. It explains key concepts within the Software Development module and helps candidates prepare for their exams, including explainer videos, interactive questions and skills challenges aligned to the syllabus and with industry practice.
This book aims to help readers move from novice programmer to software developer. It explores the methods and approaches employed in industry and talks about the difference between writing code and developing safe, efficient software that meets the needs of a customer.
Chapter 1 considers the place of software in the context of a business, looking at off-the-shelf versus bespoke options, as well as at developing in-house versus using external suppliers, and the implications of these decisions on the cost and delivery of a product.
Chapter 2 looks at the high-level components both of front-end and back-end systems. It discusses what these are and how they interact with one another, and looks at why user experience (UX) and user interface (UI) development are important.
Chapter 3 examines the software development life cycle (SDLC) and the secure SDLC (SSDLC). It also looks at different development methodologies, such as Agile and waterfall, and how they impact on the SDLC.
Chapter 4 discusses user requirements, the forms they can take and how to establish them. It covers communication with the customer, how to define a problem to be solved and how to establish this with a customer, whether a business, individual or a group.
Chapter 5 covers software development approaches, looking at a variety of paradigms and their advantages and disadvantages. It discusses in detail procedural, object-oriented and functional programming, and outlines how to develop software using modular programming.
Chapter 6 is all about databases and their use in modern systems. It starts by considering basic database concepts and then looks at the differences between flat-file and relational databases. It explains the process of normalisation and then looks at the basics of structured query language (SQL), which is commonly used to interact with databases.
Chapter 7 discusses how to break down a problem before starting to code by using flowcharts and pseudocode. It outlines how to implement an algorithm as code and the common issues associated with this process.
Chapter 8 is all about the tools we use to create software, starting with the integrated development environment (IDE), its common components, such as syntax highlighters, and tools, such as auto-completors. It then proceeds to look at methods of converting code into something the computer can run, and the advantages and disadvantages of assemblers, compilers and interpreters. The chapter finishes off with discussing version control and some of the methods used to control the versions of our code.
Chapter 9 considers subroutines and outlines the differences between procedures and functions and the use of parameters. It gives an overview of other methods of categorisation, such as brute-force or recursive algorithms, and looks in detail at common search-and-sort algorithms. It then discusses how to compare algorithms and measure efficiency using Big O notation.
Chapter 10 opens by introducing types of UI and the issues involved with designing them. It looks in detail at the design of graphical user interfaces (GUIs) and best practice in their design. It then considers accessibility, both from the point of view of users and for different devices. Lastly it looks at the languages and tools used in GUI design, followed by useful sources of help and an overview of secure coding.
Chapter 11 is all about how we test our product. It looks at why we need to test and considers quality control and the impact of not testing. It then looks at the standards used in industry and relates this to the practical application of testing as part of the SDLC. It addresses the fact that testing needs to be considered at the design phase before we write any code and then looks at what good testing data looks like, followed by types of testing and techniques, and strategies for testing.
Chapter 12 focuses on how we implement and deploy software. It looks in detail at the concept of deployment to operational service and release schedules. It moves on to explain how we deploy into a live environment and the tools available to facilitate this, such as version control. It then considers cloud deployment and the benefits and risks associated with this.
Chapter 13 examines maintenance and ongoing support for software projects. It looks at the different forms these can take, depending on how software is developed and owned. It considers maintenance as part of the normal cycle of continuous improvement and the use of support services. Lastly it looks at documenting code, how to maintain other people’s code and how to support legacy code.
Author(s): Tig Williams, Dominic Myers, Dave Hartley
Publisher: BCS Learning & Development Limited
Year: 2023
Language: English
Pages: 204