Interestingly (strangely?) the IB Computer Science subject guide doesn't make any mention of System Development Life Cycle (SDLC), but it does include components of each major step. These are spread between this section (1.1 Systems in Organisations) and 1.2 (System Design Basics). This section covers issues which are more user-oriented and related to the actual implementation of IT systems.Click here for recommended IB Computer Science textbooks.
This is quite an entertaining overview of the SDLC, with clear examples of what happens at each stage. Note that the stages in the SDLC are broken down in different ways by different people (for example, here they count planning and analysis as two separate stages - often they are incorporated into one). However, the content is sound and highlights the need for clear boundaries between the tasks in each stage.
When implementing new systems there may be (in)compatibility issues with existing hardware or software. You need to be aware of the issues that can arise - especially in the international context, where language and number systems can be significantly different.
This topic involves comparing systems hosted locally on a client computer with those hosted on a remote computer. This remote hosting could refer to Software as a Service (Saas) or Infrastructure as a Service (Iaas).
For this topic you need to know the difference between the main ways of performing a changeover to a new system. The IB refers to these as "installation" processes and you might also hear them called "implementation" processes. The main ways are:
- Direct changeover
- Pilot changeover
- Phased changeover
- Parallel changeover
You should be aware of the advantages and disadvantages of each method.
Data migration is the process of moving data from one (old) system to another (new) system. Various issues can occur depending on the file format, data structure, and other issues. Data migration is closely linked to 1.1.3 Compatibility issues, as the data may also be stored on old media (e.g. floppy disks, tapes, ZIP drives, etc).
This pair of videos from Computerphile explain some of the issues that arise when trying to create software for international audiences. The first, The Problem with Time & Timezones covers issues with global time calculations and some of the special cases which exist.
The second, Internationalis(z)ing Code, covers many issues relating to language - which go far, far beyond simple ASCII and Unicode character set issues.
The videos use multiple real life examples to highlight social and cultural differences across the globe, and how they affect programmers. They are implicitly address quite a few issues related to the IB TOK course.
You should understand the different types of testing (alpha testing, beta testing, user acceptance testing), and the debugging process. You should also be aware of the critical importance of testing and the consequences of insufficient testing. Finally, you should be aware that there are tools to automate parts of the testing process.
The news articles below cover some of the major risks of malicious actions such as hacking or malware. Myriad examples of these problems exist (and new ones seem to appear every few weeks), but the examples below highlight some of the more famous cases (and the greatest losses).
- Target Expects $148 Million Loss from Data Breach
- Security lapses at Apple and Amazon lead to an epic hack
- McDonald’s customers’ data exposed in a Big Mac hack attack
- Sony fined over 'preventable' PlayStation data hack
- Lost in the post - 25 million at risk after data discs go missing
- Zurich Insurance fined £2.3m over customers' data loss
- Doorstep lender Shopacheck fined £150,000 for data loss
- Home Depot: Card breach put 56M cards at risk
You should know about a variety of systems for preventing data loss. In addition to regular backup systems, these also include systems to prevent downtime, such as failover systems and redundant systems.