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:
Investigation | Advantages | Disadvantages |
Interview | Detailed information with key people. Two-way and face-to-face. | It is very time-consuming. |
Questionnaire | The 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 Collection | Good quality objective data about the inputs, outputs, and processing taking place within the system. | Documentation may be limited or inaccurate |
Observation | Can 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
Advantages | Disadvantages |
Convenience Security Backups Collaboration Environmentally Friendly | Security Service outage Storage limits Slow speeds Limited features |
Local computing
Advantages | Disadvantages |
Security Backups can be controlled Legacy software Software control Feature control | Cost of hardware |
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.
Advantages | Disadvantages |
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.
Advantages | Disadvantages |
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.
Advantages | Disadvantages |
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.
Advantages | Disadvantages |
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:
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:
- Calculates letter grades correctly for valid percentages.
- Handles extreme values within the data range (0-100%).
- 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?
Links
[1] https://standards.ieee.org/findstds/standard/29148-2011.html