Software Development: BCS Level 4 Certificate in IT study guide
By Tig Williams, Dominic Myers and Dave Hartley
3.5/5
()
About this ebook
Related to Software Development
Related ebooks
Information Systems: BCS Level 4 Certificate in IT study guide Rating: 0 out of 5 stars0 ratingsComputer and Network Technology: BCS Level 4 Certificate in IT study guide Rating: 0 out of 5 stars0 ratingsBCS Glossary of Computing Rating: 0 out of 5 stars0 ratingsDeveloping Information Systems: Practical guidance for IT professionals Rating: 0 out of 5 stars0 ratingsSoftware Development in Practice Rating: 0 out of 5 stars0 ratingsSoftware Developer Rating: 0 out of 5 stars0 ratingsProfessional Issues in IT Rating: 5 out of 5 stars5/5Information Security Management Principles Rating: 3 out of 5 stars3/5CompTIA Project+ Practice Tests: Exam PK0-005 Rating: 0 out of 5 stars0 ratingsFunctional Requirement A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsCompTIA Cloud+ Study Guide: Exam CV0-003 Rating: 0 out of 5 stars0 ratingsUML A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratingsBeginning Azure DevOps: Planning, Building, Testing, and Releasing Software Applications on Azure Rating: 0 out of 5 stars0 ratingsIT Technical best practices: How to Reduce Agile cycle time with reusable code? Rating: 0 out of 5 stars0 ratingsIdentity Access Management A Complete Guide - 2021 Edition Rating: 0 out of 5 stars0 ratingsGDPR Compliance A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsA Simplified Approach to It Architecture with Bpmn: A Coherent Methodology for Modeling Every Level of the Enterprise Rating: 0 out of 5 stars0 ratingsUML: A Beginner's Guide Rating: 3 out of 5 stars3/5IT Management A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsMastering Non-Functional Requirements Rating: 5 out of 5 stars5/5IT Architecture For Dummies Rating: 5 out of 5 stars5/5Software Quality Assurance Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsC# Interview Questions You'll Most Likely Be Asked Rating: 0 out of 5 stars0 ratingsJira Project Management A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsAgile DevOps A Complete Guide - 2021 Edition Rating: 0 out of 5 stars0 ratingsIT Manager A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsAWS Certified SysOps Administrator Practice Tests: Associate SOA-C01 Exam Rating: 0 out of 5 stars0 ratingsASP.NET 3.5 CMS Development Rating: 0 out of 5 stars0 ratingsRequirements Gathering A Complete Guide - 2021 Edition Rating: 0 out of 5 stars0 ratingsLearning Dynamics NAV Patterns Rating: 0 out of 5 stars0 ratings
Programming For You
HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps 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/5Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 0 out of 5 stars0 ratingsLearn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5The Unofficial Guide to Open Broadcaster Software: OBS: The World's Most Popular Free Live-Streaming Application Rating: 0 out of 5 stars0 ratingsCoding All-in-One For Dummies Rating: 4 out of 5 stars4/5Java for Beginners: A Crash Course to Learn Java Programming in 1 Week Rating: 5 out of 5 stars5/5Hacking: Ultimate Beginner's Guide for Computer Hacking in 2018 and Beyond: Hacking in 2018, #1 Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Python Projects for Beginners: A Ten-Week Bootcamp Approach to Python Programming Rating: 0 out of 5 stars0 ratingsSQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5The Little SAS Book: A Primer, Sixth Edition Rating: 5 out of 5 stars5/5Teach Yourself C++ Rating: 4 out of 5 stars4/5Pokemon Go: Guide + 20 Tips and Tricks You Must Read Hints, Tricks, Tips, Secrets, Android, iOS Rating: 5 out of 5 stars5/5Web Designer's Idea Book, Volume 4: Inspiration from the Best Web Design Trends, Themes and Styles 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