You need to log-in or subscribe in order to use Student access.

1.1 Planning and system installation

This section covers planning and system installation, emphasising elements like change management, compatibility issues, and system implementation. It highlights the importance of understanding the context for new systems, managing change effectively, dealing with compatibility issues arising from legacy systems or business mergers, and considering the pros and cons of different system implementations. It also covers the significance of thorough testing at all stages and the potential problems during data migration.

Planning and system installation

Key Terms

  • New systems
  • Change management
  • Compatibility
  • Legacy systems
  • Implementation
  • Data migration
  • Testing

1.1.1 Identify the context in which a new system is planned

Data gathering

In the initial planning stages there will be a process of investigation into the current system, this will involve the collection of data in a variety of ways (observation, interview, questionnaire, document collection)

Each of these has its advantages and disadvantages:

InvestigationAdvantagesDisadvantages
InterviewDetailed information with key people. Two-way and face-to-face.It is very time-consuming.
QuestionnaireThe data can reach large audiences quickly and can be used to create extensive analysis. It is quick.The questionnaire may not be well designed and people may not answer it or may answer it incompletely or incorrectly.
Document CollectionGood quality objective data about the inputs, outputs, and processing taking place within the system.Documentation may be limited or inaccurate
ObservationCan gain first-hand unbiased information.Things and people change when they are being observed

Requirements specification

Following that, there will be an analysis of the system in terms of how it works. The input process and outputs of the system will be identified and any problems associated with the current system

This allows the analyst to produce the requirements for the new system. It is leading the creation of the requirements specification. This is a tightly controlled process and is set out in the IEEE standard [1].

The requirements specification is a key document in a traditional life cycle as it drives all subsequent work. It is also the basis for project success and is often known as the success criteria.

This stage of the project identifies the context in which the new system is planned and will take into account considerations and justifications of the technologies for the new system and any other requirements in terms of success criteria.

Issues

There may be several issues relating to people using new systems. Clients and managers of the new system may need retraining and there will be a period of readjustment to a new system In its more extreme case this could lead to unemployment.

The context of the system in terms of existing technologies needs consideration. Will the current hardware and software infrastructure be able to deal with the new system in terms of network bandwidth, storage processing power or operating systems?

1.1.2 Describe the need for change management.

Change management is the planned movement towards a future desired state.

This may affect a variety of people or organisations depending on the change required.

This needs to be managed with a structured approach.

Change management may occur on an organisational level or may be related to individual systems. Change management may occur in many places such as:

  • Hardware
  • Communications equipment and software
  • System software
  • All documentation and procedures associated with the running, support and maintenance of live systems

Why Change Management is Important:

Imagine your school decided to upgrade the computer science department's software for running programs. This is a change that can impact everyone's workflow. Change management helps ensure a smooth transition to the new system with minimal disruption.

Here's a real-world example:

  • Change: Upgrading from Python 2 to Python 3
  • Potential Challenges:
    • Existing code might not work with Python 3.
    • Students and teachers may need to learn new syntax or libraries.
  • Benefits of Change Management:
    • A planned migration process can identify and fix compatibility issues before the upgrade.
    • Training sessions can help students and teachers adjust to the new version.

Change management helps address these challenges by:

  • Planning and Communication: Clearly outlining the reasons for the change, what's involved, and a timeline for implementation. This keeps everyone informed and reduces uncertainty.
  • Training and Support: Providing resources like tutorials or workshops to help users adapt to the new system. This minimizes frustration and ensures users can leverage the new features effectively.
  • Risk Management: Identifying potential problems that might arise during the change and developing plans to mitigate them. This proactive approach helps avoid roadblocks and delays.

Factors to Consider for Successful Change Management:

  • People: Consider how the change will affect different user groups (teachers, students, technicians). Address their concerns and provide appropriate support.
  • Technology: Ensure the new system is compatible with existing infrastructure and data. Thorough testing is crucial before deployment.
  • Processes: How will workflows adapt to the new system? Update documentation and procedures to reflect the changes.

By following these principles, the transition to a new software or system can be smoother and less disruptive for everyone involved.

1.1.3 Outline compatibility issues resulting from situations including legacy systems or business mergers.

Compatibility issues arise when different computer systems and software are unable to work together seamlessly.

This can lead to problems like data loss, errors, and wasted time and resources. Here's a breakdown for IB students with examples:

Legacy Systems and Compatibility:

  • Legacy systems are older computer systems or software still in use. They may not be compatible with newer technologies, causing issues:
    • Example: A school uses an outdated library management system that doesn't integrate with the new online registration system. Students might face difficulties enrolling in courses that require specific library materials.

Business Mergers and Compatibility:

  • When businesses merge, their computer systems need to be compatible to share data and operate efficiently. This can be challenging:
    • Example: Company A uses a customer database with "CustomerID" as the ID field, while Company B uses "customer_id". Merging this data requires reformatting to ensure both systems recognize the same customer information.

International Interactions and Compatibility:

  • When organizations collaborate internationally, differences in:
    • Software: One company might use software incompatible with the other's systems.
    • Data Formats: Dates, currencies, and measurements may be formatted differently, causing errors during data exchange.
    • Languages: Software interfaces and data might be in different languages, hindering communication and collaboration.

Social and Ethical Considerations:

  • Compatibility issues can have social and ethical implications:
    • Accessibility: If a new system isn't compatible with assistive technologies, it can exclude users with disabilities.
    • Data Privacy: Merging data from different systems raises concerns about user privacy and data protection regulations.

Examples:

  • A healthcare provider might develop a new mobile app to access medical records. If the app isn't compatible with older phone models used by some patients, it could limit access to healthcare information.
  • An international e-commerce company might face challenges integrating its online store with local payment gateways in different countries due to compatibility issues.

Remember:

  • Compatibility issues are a common challenge in computer science.
  • Careful planning and considering international and social factors are crucial for successful system integration.

    1.1.4 Compare the implementation of systems using a client’s hardware with hosting systems remotely.

    When deciding whether to use local hardware or utilise the cloud several considerations must be made. Four main models of computing can be offered in the cloud.

    • Infrastructure as a Service (IaaS)
    • Platform as a Service (PaaS)
    • Software as a Service (SaaS)
    • Network as a Service (Naas)

    Each of these will have its pros and cons in terms of hosting locally or in the cloud. Below are some general evaluations of these.

    Cloud computing

    AdvantagesDisadvantages
    Convenience
    Security
    Backups
    Collaboration
    Environmentally Friendly
    Security
    Service outage
    Storage limits
    Slow speeds
    Limited features

    Local computing

    AdvantagesDisadvantages
    Security
    Backups can be controlled
    Legacy software
    Software control
    Feature control

    Cost of hardware
    Technical support
    Lack of collaboration

    1.1.5 Evaluate alternative installation processes.

    The installation process is when the old system is replaced by the new one. It can be done in several ways detailed below.

    Direct

    The old system is stopped and the new system is started.

    AdvantagesDisadvantages

    Minimal time and effort.

    The new system is available immediately.

    If the new system fails there is no backup.

    Parallel

    The new system is started, but the old system is kept running alongside it. Data is input into both systems.

    AdvantagesDisadvantages
    If the new system fails the old system runs as a backup.
    The outputs from the two systems can be compared to see if the new one is running correctly.

    Running two systems is costly in terms of time and money.

    Pilot

    The new system is piloted (trialled) in a small part of the business. Once it is running correctly the new system is implemented across the organisation.

    AdvantagesDisadvantages
    All features can be fully trialled.
    If the new system fails only a small part of the organisation suffers.
    Staff who were part of the pilot study can train other staff.

    For the section that is piloting if the system fails, there is no backup.

    Phased

    The new system is introduced in phases as parts of the old system are gradually replaced with the new system.

    AdvantagesDisadvantages
    Allows people to get used to the new system.
    Training can be done in stages.
    If the new part of the system fails there is no backup for that area.

    1.1.6 Discuss problems that may arise as a part of data migration.

    Data migration is the process of moving data from one system to another.  For IB students, it's important to understand the potential problems that can arise during this process, especially when dealing with international data.

    Common Data Migration Problems:

    Incompatible File Formats: Different systems may use different file formats (e.g., .csv, .xlsx) that need conversion during migration. This conversion can lead to data loss or corruption if not done carefully.

    • Example: Migrating customer data from a legacy system that stores data in a proprietary format to a new system that uses a standard database format might require special tools or programming to ensure all data is transferred correctly.

    Data Structure Differences:  Data structures define how data is organized within a system. Incompatible structures can make it difficult to import data into the new system. 

    • Example: A company in the US might store dates in "MM/DD/YYYY" format, while a company in Europe uses "DD/MM/YYYY." Migrating data without considering these differences can lead to inaccurate date representations in the new system.

    Validation Rule Issues:  Validation rules ensure data accuracy and consistency.  Incompatible rules during migration can lead to invalid data in the new system.

    • Example: A system might have a validation rule that customer names cannot contain special characters. Migrating data from a system without such a rule might lead to errors when the new system tries to validate the data. 

    Incomplete Data Transfer: Not all data might be transferred successfully during migration, leading to missing information in the new system.

    • Example: A network outage during data migration could cause some customer records to be incomplete in the new system. 

    Internationalization Issues:

    Data Formats: Data formats for dates, currencies, and measurements can vary internationally.  Migration needs to account for these differences to avoid confusion and errors.

    • Example: Migrating financial data from a US system to a European system might require converting dollar amounts to euros and adjusting decimal point placement.

    Character Sets: Different countries use different character sets (e.g., ASCII, Unicode) to represent text.  Incompatible character sets can lead to garbled text during migration.

    •  Example:  Migrating customer names from a system using a Western European character set to a system using a Cyrillic character set might result in the names appearing incorrectly.

    Tips for Successful Data Migration:

    • Planning: Thoroughly analyze data formats, structures, and validation rules in both systems.
    • Data Cleaning: Ensure data is clean and complete before migration to minimise errors.
    • Testing:  Test the migration process thoroughly to identify and fix compatibility issues before full migration.
    • Internationalization Standards:  Use international standards for data formats (e.g., ISO 8601 for dates) to minimize compatibility problems.

    By understanding these challenges and implementing good practices, you can ensure smoother data migration, especially when dealing with international systems. 

    1.1.7 Suggest various types of testing.

    Testing is conducted at several stages of the software development. The testing at each stage is dependent on the stage and may be simply debugging code, user acceptance testing or even beta testing when the initial design has been completed but is not yet on general release.

    Two common types of testing in this phase are alpha testing and beta testing, but there are others. Here's an outline of these types, along with some additional testing stages that may be involved in releasing software:

    Alpha Testing

    Definition: Alpha testing is an internal testing process performed by developers and testers who are employees of the organization developing the software. It is typically performed in a lab environment and not in a real-world setting.
    Purpose: The main aim is to catch bugs that were not discovered during earlier testing phases. It focuses on functional correctness, security aspects, and software bugs.
    Process: It often involves both white box and black box testing techniques, and may also include simulated or actual operational testing environments.

    Beta Testing

    Definition: Beta testing follows alpha testing and involves releasing the software to a limited, external group of people outside the organization. These testers use the software in real-world conditions.
    Purpose: The primary goal is to obtain feedback from users to identify any potential issues that weren't caught during internal testing, including usability and compatibility issues, and to validate the user experience.
    Process: Beta testing is less controlled and relies on the diversity of the user base and their environments to uncover unexpected errors.

    Gamma Testing

    Definition: Gamma testing is less common and typically refers to testing of software that is ready for release or very close to the final version; it might still undergo this testing if there were significant changes after beta testing.
    Purpose: Ensures the product readiness for release, particularly after significant late-stage fixes that necessitated further validation.
    Process: Like beta testing but usually without the broad user base, often conducted internally or with a very select group of external users.

    Additional Testing Types Associated with Software Releases

    Closed Beta
    Definition: A version of beta testing where the software is released to a restricted group of individuals for testing. This group could be selected based on specific criteria or demographics.
    Purpose: To keep testing controlled and focused, gaining detailed feedback on specific features or performance.
    Open Beta
    Definition: In contrast to closed beta, open beta testing opens the software up to the general public or a larger audience.
    Purpose: This is useful for applications that require more extensive testing environments, or when user feedback from a wide audience is desired.
    Release Candidate (RC)
    Definition: A release candidate is a version of software that potentially could be the final product unless significant bugs emerge.
    Purpose: This stage aims to detect any last-minute issues that need to be addressed before the final release, ensuring stability and compatibility.

    Considerations Across Testing Types

    Feedback Collection:

    Across all stages, collecting feedback and systematically addressing issues is crucial. Tools and methods for gathering feedback can vary, including direct user reports, automated crash logs, and usability surveys.


    Iterative Improvement:

    Each stage of testing provides insights that should lead to improvements in the software. Multiple rounds of testing might be necessary, especially as issues are identified and fixed.


    Environment and Tools:

    The testing environment and tools can significantly impact the efficacy of testing. Realistic environments for beta and gamma testing can help identify issues that lab settings might not reveal.
    By conducting these different types of testing throughout the software development process, organizations aim to release higher-quality, more reliable products that meet the needs and expectations of their end users.

    Test Plans

    Detailed test plans will be created and a typical test will contain:

    • Details of what is being tested
    • The test data to use
    • What is expected to happen when the test is performed

    When choosing the data we need to consider why we are testing: to see if the system works well and that the system does not break. To do this we can discern three types of test data

    Normal

    This is data that would be expected to be entered in the system. The system should accept it and process it.

    Extreme

    Extreme values are still normal but are at the edges of acceptable and are used to see that the system responds correctly to all normal data.

    Abnormal

    This is data that should not be accepted. The system should be able to handle this data without crashing or breaking. Validation checks and the handling of exceptions are often used to ensure this data is handled well

    Example

    Here is a program that calculates the grade based on a number input. 

    //This psuedocode takes a grade percentage and returns the corresponding letter grade.
    output "Enter your grade percentage: "
    input gradePercentage
    if gradePercentage >= 90 then
        letterGrade = 'A'
    else if gradePercentage >= 80 then
        letterGrade = 'B'
    else if gradePercentage >= 70 then
        letterGrade = 'C'
    else if gradePercentage >= 60 then
        letterGrade = 'D'
    else if gradePercentage >= 0 then
        letterGrade = 'F'
    else
        letterGrade = 'Invalid grade entered. Please enter a percentage between 0 and 100.'
    end if
    
    //Return the letter grade
    output "Your letter grade is " , letterGrade

    This program defines a function calculate_grade that takes a grade percentage as input and returns the corresponding letter grade. We can use this function to test different types of data:

    Normal Data:

    • Grade entered: 85

    This is a valid percentage within the expected range (0-100). The program will return "B" as the letter grade.

    Extreme Data:

    • Grade entered: 99

    This is a valid but extreme value. The program will still function correctly and return "A" as the letter grade.

    Invalid Data:

    • Grade entered: -10

    This is an invalid percentage outside the expected range. The program should handle this by returning an error message indicating the invalid input.

    By testing the program with normal, extreme, and invalid data, we can ensure it:

    1. Calculates letter grades correctly for valid percentages.
    2. Handles extreme values within the data range (0-100%).
    3. Identifies and reports errors for invalid input (negative percentages).

    Now test yourself 

    In which stage of the system development lifecycle is the context of the new system identified?

     

     Why is change management important when implementing a new system?

     

     

     A school's outdated library system doesn't integrate with the new online registration system. This is an example of a compatibility issue arising from:

     

     Which of the following is an advantage of cloud computing over local hardware hosting?

     

     

     A pilot implementation approach involves testing the new system in a small part of the organization before full deployment. What is an advantage of this approach?

     

     

     During data migration, incompatible data structures between the old and new systems can lead to:

     

     When creating a test plan, what type of test data would be used to ensure the system can handle unexpected user input?

     

     

    Total Score:

    Links

    [1] https://standards.ieee.org/findstds/standard/29148-2011.html

    All materials on this website are for the exclusive use of teachers and students at subscribing schools for the period of their subscription. Any unauthorised copying or posting of materials on other websites is an infringement of our copyright and could result in your account being blocked and legal action being taken against you.