Contents
BCS Learning and Development Ltd 2023
All rights reserved. Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted by the Copyright Designs and Patents Act 1988, no part of this publication may be reproduced, stored or transmitted in any form or by any means, except with the prior permission in writing of the publisher, or in the case of reprographic reproduction, in accordance with the terms of the licences issued by the Copyright Licensing Agency. Enquiries for permission to reproduce material outside those terms should be directed to the publisher.
All trade marks, registered names etc. acknowledged in this publication are the property of their respective owners. BCS and the BCS logo are the registered trade marks of the British Computer Society charity number 292786 (BCS).
Published by BCS Learning and Development Ltd, a wholly owned subsidiary of BCS, The Chartered Institute for IT, 3 Newbridge Square, Swindon, SN1 1BY, UK.
www.bcs.org
ePUB ISBN: 978-1-78017-603-1
British Cataloguing in Publication Data.
A CIP catalogue record for this book is available at the British Library.
Disclaimer:
Although every care has been taken by the authors and BCS Learning and Development Ltd in the preparation of the publication, no warranty is given by the authors or BCS Learning and Development Ltd as publisher as to the accuracy or completeness of the information contained within it and neither the author nor BCS Learning and Development Ltd shall be responsible or liable for any loss or damage whatsoever arising by virtue of such information or any instructions or advice contained within this publication or by any of the aforementioned.
All URLs were correct at the time of publication.
Publishers acknowledgements:
Authors: Tig Williams, Dominic Myers, Dave Hartley
Reviewers: Ivan Teage, Neil Taylor
Publisher: Ian Borthwick
Production manager: Florence Leroy
Project manager: Jutta Mackwell
Copy-editor: Jutta Mackwell
Proofreader: Barbara Eastman
Video production: John Maskrey, Petra Nolan, Dara Roden
Cover design: Alex Wright
Cover image: iStock/EyeOfPaul
Typesetting/conversion: Lapiz Digital Services
BCS, THE CHARTERED INSTITUTE FOR IT
BCS, The Chartered Institute for IT, is committed to making IT good for society. We use the power of our network to bring about positive, tangible change. We champion the global IT profession and the interests of individuals, engaged in that profession, for the benefit of all.
Exchanging IT expertise and knowledge
The Institute fosters links between experts from industry, academia and business to promote new thinking, education and knowledge sharing.
Supporting practitioners
Through continuing professional development and a series of respected IT qualifications, the Institute seeks to promote professional practice tuned to the demands of business. It provides practical support and information services to its members and volunteer communities around the world.
Setting standards and frameworks
The Institute collaborates with government, industry and relevant bodies to establish good working practices, codes of conduct, skills frameworks and common standards. It also offers a range of consultancy services to employers to help them adopt best practice.
Become a member
Over 60,000 members including students, teachers, professionals and practitioners enjoy the benefits of BCS membership. These include access to an international community, invitations to a roster of local and national events, career development tools and a quarterly thought-leadership magazine. Visit www.bcs.org/membership to find out more.
Further information
BCS, The Chartered Institute for IT,
3 Newbridge Square,
Swindon, SN1 1BY, United Kingdom.
T +44 (0) 1793 417 417
(Monday to Friday, 09:00 to 17:00 UK time)
www.bcs.org/contact
http://shop.bcs.org/
List of figures
Chapter 3
The product development life cycle phases
The waterfall model
The Agile methodology
The Agile Manifesto
Schematic of the Scrum framework process
The sprint process
Example of a Kanban board
Example of a burndown chart
Test-driven development
Chapter 4
How projects really work
Chapter 5
Partial structure chart
UML class diagram
ZooManager class diagram
Example of an error output in Haskell
Chapter 9
Big O elements versus operations
Chapter 10
Balsamiq editor overview
A simple table layout
HTML and CSS for table layout
The StackOverflow keyboard
Chapter 11
The software test life cycle
The V-Model
The testing pyramid
Chapter 12
Continuous development/deployment process
List of tables
Chapter 3
SDLC and SSDLC
Waterfall versus agile
Other agile methodologies and frameworks
Chapter 7
Basic ANSI-defined symbols
ANSI/ISO standard symbols
Chapter 9
Standard relationships used in Big O
Chapter 11
Deliverables during the STLC
List of videos
Chapter 6
Structured and unstructured data
Chapter 7
Resolving coding problems
Chapter 9
Using the Bubble Sort algorithm
Using the Merge Sort algorithm
Using the Quick Sort algorithm
Linear and binary searching
List of knowledge checks
Chapter 1
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
List of skills challenges
Chapter 2
Chapter 5
Chapter 6
Chapter 7
Chapter 9
Chapter 11
Chapter 12
Chapter 13
Introduction
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.
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.
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.
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.
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.
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.