Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Software Development: BCS Level 4 Certificate in IT study guide
Software Development: BCS Level 4 Certificate in IT study guide
Software Development: BCS Level 4 Certificate in IT study guide
Ebook245 pages3 hours

Software Development: BCS Level 4 Certificate in IT study guide

Rating: 3.5 out of 5 stars

3.5/5

()

Read preview

About this ebook

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.
LanguageEnglish
Release dateJan 31, 2023
ISBN9781780176031
Software Development: BCS Level 4 Certificate in IT study guide

Related to Software Development

Related ebooks

Programming For You

View More

Related articles

Reviews for Software Development

Rating: 3.5 out of 5 stars
3.5/5

2 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    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

    Enjoying the preview?
    Page 1 of 1