Software Development: BCS Level 4 Certificate in IT study guide
By Tig Williams, Dominic Myers and Dave Hartley
3.5/5
()
Software Development
Quality Assurance
Software Development Life Cycle
Software Testing
User Interface Design
Coming of Age
Chosen One
Secret Heir
School of Magic
Security
Waterfall Methodology
Continuous Development
Big O Notation
Problem Analysis
About this ebook
Related to Software Development
Related ebooks
Information Systems: BCS Level 4 Certificate in IT study guide Rating: 5 out of 5 stars5/5IT for Business (IT4B): From Genesis to Revolution, a business and IT approach to digital transformation Rating: 0 out of 5 stars0 ratingsUnleashing the Power of IT: Bringing People, Business, and Technology Together Rating: 0 out of 5 stars0 ratingsSoftware Developer Rating: 0 out of 5 stars0 ratingsMastering Cloud Development using Microsoft Azure Rating: 0 out of 5 stars0 ratingsBusiness Process Driven SOA using BPMN and BPEL Rating: 4 out of 5 stars4/5IT Project Management: 30 steps to success Rating: 5 out of 5 stars5/5Software Development Fundamentals Rating: 0 out of 5 stars0 ratingsComputer and Network Technology: BCS Level 4 Certificate in IT study guide Rating: 0 out of 5 stars0 ratingsThe IT Manager’s Guide to Continuous Delivery: Delivering Software in Days Rating: 0 out of 5 stars0 ratingsScrum: Novice to Ninja: Methods for Agile, Powerful Development Rating: 4 out of 5 stars4/5DevOps Handbook: What is DevOps, Why You Need it and How to Transform Your Business with DevOps Practices Rating: 4 out of 5 stars4/5The Art of Software Testing Rating: 3 out of 5 stars3/5How To Be An Agile Business Analyst Rating: 0 out of 5 stars0 ratingsFundamentals of Software Engineering: Designed to provide an insight into the software engineering concepts Rating: 0 out of 5 stars0 ratingsDocs Like Code: Collaborate and Automate to Improve Technical Documentation Rating: 5 out of 5 stars5/5BCS Glossary of Computing Rating: 0 out of 5 stars0 ratingsCloud computing: Moving IT out of the office Rating: 0 out of 5 stars0 ratingsLean and the Art of Cloud Computing Management Rating: 0 out of 5 stars0 ratingsJIRA 5.2 Essentials Rating: 0 out of 5 stars0 ratingsIT Management Essentials: Key Fundamentals and Concepts Series, #1 Rating: 4 out of 5 stars4/5Learning Selenium Testing Tools - Third Edition Rating: 0 out of 5 stars0 ratingsAgile Testing: An Overview Rating: 4 out of 5 stars4/5Requirements analysis Complete Self-Assessment Guide Rating: 5 out of 5 stars5/5Software Testing Practice: Test Management: A Study Guide for the Certified Tester Exam ISTQB Advanced Level Rating: 3 out of 5 stars3/5Software Testing Interview Questions You'll Most Likely Be Asked Rating: 0 out of 5 stars0 ratingsImplementing Cloud Design Patterns for AWS Rating: 0 out of 5 stars0 ratingsLearning AngularJS Animations Rating: 4 out of 5 stars4/5JAVA for Beginner's Crash Course: Java for Beginners Guide to Program Java, jQuery, & Java Programming Rating: 4 out of 5 stars4/5
Programming For You
Godot from Zero to Proficiency (Foundations): Godot from Zero to Proficiency, #1 Rating: 5 out of 5 stars5/5Python: Learn Python in 24 Hours Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Beginning Programming with C++ For Dummies Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5PYTHON PROGRAMMING Rating: 4 out of 5 stars4/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Microsoft Azure For Dummies Rating: 0 out of 5 stars0 ratingsLearn SQL in 24 Hours Rating: 5 out of 5 stars5/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Learn NodeJS in 1 Day: Complete Node JS Guide with Examples Rating: 3 out of 5 stars3/5Learn Python in 10 Minutes Rating: 4 out of 5 stars4/5JavaScript All-in-One For Dummies Rating: 5 out of 5 stars5/5Coding All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsExcel 2021 Rating: 4 out of 5 stars4/5
Reviews for Software Development
2 ratings0 reviews
Book preview
Software Development - Tig Williams
Chapter 1 – What is software?
Learning objectives and assessment criteria
The learning objectives covered within this chapter are:
Distinguish between systems software and application software.
The assessment criteria addressed within this chapter are:
1.1 Explain the nature of information.
6.1 Discuss the nature and the utility of system software.
At a basic level, software is a collection of instructions (sometimes with data), which perform tasks on a computer.
From a business point of view, all software should help to improve outcomes. If it does not, there is no motivation to spend money buying or developing software. Often, commercial off-the-shelf (COTS) software can meet common business needs. A good example of COTS software is basic ‘office’ software, such as word processors, spreadsheets, desktop publishing, graphics manipulation and so on.
Buying off the shelf is invariably cheaper and generally meets all the needs of a business. Where a COTS solution does not meet all the needs of a business, we need to consider the cost of developing and maintaining a custom solution versus managing that aspect of business without software.
If a cost–benefit analysis shows that it is worth developing custom software to meet a business need, we need to specify the requirements for anything created (see section 4.1). The end users and customer can be involved in every aspect of development, so any user interface (UI) is likely to be simple to use and any outputs from the system should be customisable to deliver exactly what the business requires. Developing custom software is generally much more expensive for a business, but it will give them software that fits their business needs very well and, if the business does not change significantly, lasts a very long time. Another advantage of developing a custom solution is that it is relatively simple to customise and update, which extends the life of any software significantly.
1.1 Development options
If we want COTS software, we can use a normal business to consumer (B2C) route to procure existing solutions. If we have decided that our business needs a custom software solution, we need to consider how to achieve this. If our business is large enough to have an in-house software development team, developing in-house can be cheaper than hiring an external developer or a development agency. An advantage of using an in-house development team is that we can manage the process and change the outcomes during development, and theoretically get a solution that better meets the business need once complete. It also means that we have all the source code, so, if our needs changes, we can modify the software rather than buying a new solution.
Hiring an external developer or a development agency requires clear communication of the brief to come to a shared understanding of the requirements and ensure that the project delivers its goals within a contract acceptable to both parties (see chapter 4). If we outsource the development even if there are in-house teams, the in-house teams can focus on other priorities and allow us to exploit the nuanced skills of specialists we may not have in-house.
Another consideration when buying in a solution is ongoing support. If we buy in a solution, we either accept that it will become outdated over time, or we need to buy in ongoing support to maintain and/or modify the software over time. It is possible to take over support for a purchased solution in-house, but this may be more difficult in the long term (see chapter 13).
Considering the end user
When developing software, we need to consider the eventual audience before deciding what to develop. This is easier with a custom solution, as the customer (usually a business) specifies a set of requirements to develop to. We may also work with the end users of a system to refine the front end and ensure its usability (see chapters 2 and 10).
Developing a commercial product, such as a new version of office software, may be more difficult, as we need someone to simulate our customer, and this person needs to be someone who is aware of our potential market, and knows and understands its needs. Commercial product development is often handled by a product manager or an existing customer (or group of customers). The key thing to consider is that, unless we are users ourselves, we need a customer to help us identify what is required.
If we are developing a new version of a system that already exists, we need to be confident that what we develop is an improvement or fills a gap in the existing market to ensure the development time is not wasted.
Regular consultation with the customer or customer representative is critical to establish and maintain priorities and develop the best software in the time, and for the budget, available.
Open source versus closed source
Software can be developed with an open- or closed-source approach. Open source means that the source code is available publicly; closed source indicates that it is kept secret and only available within the project. The availability of open-source code can be useful as it allows us and others to take existing work and customise it to suit our purposes. To publish our own projects in an open-source repository (see for example section 10.6 and chapter 13), we need to ensure personal details or sensitive configuration information is abstracted and not included in the files we are sharing publicly. Because open-source code is in the public domain, others can find weaknesses in our product, though this can also lead to a collaborative approach to improve or add to the codebase, eventually leading to cheaper and more widely tested improvements.
While closed source offers more security than open source, its drawback is that the only people scrutinising the code are the development team. In contrast, open source opens the code up to a wider pool of contributors, which can lead to a higher-quality product.
There are also commercial considerations when deciding whether to choose closed or open source. Anything developed within a closed environment is the property of the organisation employing the development team. That means if they wish to create a commercially licensed product, they can do so. Open-source software by definition is freely available, though some vendors sell commercial support and management licences to help organisations use open-source software.
1.2 Buying and selling software
There are a number of factors to consider when buying or selling software. These depend on whether we are selling a commercial package or a custom software development for a specific customer.
If selling commercially, we have to identify a need and establish that the demand is large enough to justify the cost of development and to make a profit. If developing for a customer, we need to ensure that all the requirements are met and also consider longer-term support, for example ongoing maintenance and service contracts.
If buying a COTS solution, we need to look at our requirements and ensure the software meets as many of them as possible. If the solution does not meet our requirements, we need to find out how much it might cost to develop something that will. We then need to compare this cost against the benefit to the business. Whilst a custom solution might meet all our business needs, there is no point in spending the money if it does not also bring a commercial benefit. A good example of this are robots: while the technology exists to create a humanoid robot to perform any number of mundane business tasks, the cost is generally higher than just paying a human to perform the tasks.
1.3 System and application software
We generally categorise software into either system software or application software. System software controls the operation of a computer and often contains tools to manage aspects of the system. In contrast, application software can be anything from a simple calculator to a customer relationship management (CRM) system. Application software performs a task for the user that is not related to making the computer itself work.
Types of system software include:
Operating system: this is the software that makes the computer start up and run. Applications generally need an operating system to run on top of.
Device driver: this is software that tells the computer how to use a particular piece of hardware. Every device connected to the computer has a driver, from the mouse to the screen and graphics card.
Middleware: this is software that connects and allows communication between the operating system and applications. It also allows applications to communicate with one another.
Utility software: while most operating systems contain some utilities to help manage the computer, customer utility software exists to help analyse, configure, optimise or maintain a computer.
Shells and windowing systems: these types of software allow users to interact with the services of the operating system. A shell, sometimes referred to as terminal or command prompt, is a text-based interface. A windowing system provides a simple graphical user interface