knowt logo

System Fundamentals

System Fundamentals

  • System Fundamentals are essential when learning the basics of computer science. 

  • Learning system fundamentals teach you how software and hardware interact within a computer system, how the systems are created, and how computer systems are planned within an organization. 

  • This knowledge is fundamental to understanding how computers work and essential for understanding broader concepts in computer science.

Planning and system installation

  • Before designing a system, you must understand the purpose and the needs of the system and check for various factors. 

  • Just like how you would check out the room before buying furniture, but here you need to check the computer’s needs and not the room’s needs. 

  • Always try asking these questions if you are stuck:

    • Where

    • When

    • How

    • What

    • Who

    • Why

  • Implementing a new system requires a lot of analysis and managing that system requires adaption. Here are a few changes you need to keep in mind while managing a system:

    • Communicating the reasons for the change.

    • Addressing user concerns and providing support.

    • Training users on the new system.

    • Evaluating the success of the implementation.

Implementation Comparison

  • There are two types of software: Local and Remote

    • Local is when it's on a particular set of computers or a single computer that u can access physically. 

    • Remote is when it's somewhere on the internet, and you can use it via a browser or local application.

  • SaaS is a software distribution model that makes the software easy to access for customers over the Internet. 

    • Examples include:

      • Office 385

      • Google Apps

      • AWS

      • Dropbox

Compatibility Issues

  • When integrating new systems with existing systems, you can encounter multiple problems such as:

    • Software Differences: 

      • Imagine trying to fit a puzzle piece from a different set – it simply won't work. Similarly, software from different companies or versions may not work together seamlessly.

    • Data Format Issues: 

      • Think of translating languages: Data stored in one format might not be understandable to a system using a different format.

    • Varied Standards: 

      • Different regions may have different conventions for dates, currencies, or character sets, potentially leading to confusion.

Installation Processes

  • There are many ways to install a system, here are the 4 main ones:

    • Direct Changeover - The old system is stopped and a new system is created

      • Pros: Less time and effort

      • Cons: In case of a failure, there is no fallback

    • Parallel Running - Both old and new systems are kept running

      • Pros: the old system acts as a backup

      • Cons: Costly

    • Pilot Running - the new system is created and tested with a small subset before transferring the rest of the data

      • Pros: all features are fully tested

      • cons: no backup

    • Phased Conversion - the new system is gradually introduced as parts of the old system are replaced

      • Pros: allows people to get used to the new features

      • Cons: no fallback

Data Migration Problems

  • Data migration is when a file or files are transferred from one computing environment to another.

    • Examples include:

      • putting a file on a USB and opening it on another computer

      • using databases to transfer information globally

  • While transferring data, many problems can arise such as:

    • Incompatible file formats - A piece of software can be outdated and won’t be compatible with a new version of software.

    • International conventions on dates, currency, and characters - Different countries use different languages, date formats, and currency so the data may be irrelevant based on the location

    • Incomplete transfers - due to connection issues or external interruptions data can sometimes stop transfer mid-way

Types of Testing

  • Testing is very important in developing a computer system because it makes sure that the computer works without issues. 

  • A system that has bugs can be problematic for the user. 

  • The main things that need to be tested when making a computer system are:

    • Test Management: Planning, tracking, control.

    • Functionality Testing: Requirement verification.

    • Security Testing: Vulnerability identification.

    • User Experience Testing: Usability assessment.

    • Compatibility Testing: Cross-environment validation.

    • Performance and Load testing: speed, stability, and traffic handling capacity.

  • There are also many different types of testing:

    • Static Testing: testing without running any code

    • Dynamic Testing: testing with running code

    • Alpha Testing: internal testing by employees of a company

    • Beta Testing: external testing by users that are not working for the company

    • Automated Testing: use of special tools to automatically test the software while comparing it to other test results.

User Focus

User Documentation

  • User documentation is any document or text that explains to the users how to use the specific functions of the problem or system. 

    • User documentation is important because it gives you simple and clear instructions to use all the features that people may not be aware of. 

    • There are many different types of user documentation:

      • Help files - files located on the system that give the user information about the system. Usually accessed by a button in the system

        • pros: accessible at any time with the click of a button

        • can only be used after the system has been installed, otherwise not useful

      • Online Support - Online web services by the system developer that assist users

        • pros: more extensive than help files

        • cons: useless if no internet

      • Printed manuals - printed manuals that provide the user with system

        • pros: can be read through by users before starting to work on creating a system or using software.

        • cons: can be easily lost and the info can be limited in info

User Training

  • User training is important to users because it helps the user familiarize themselves with the system or software. 

    • There are three different methods of delivering user training:

      • Self Instruction - 

        • users will learn how to use a system on their own using the materials they can find or already have accessible.

      • User training is important to users because it helps the user familiarize themselves with the system or software. 

      • There are three different methods of delivering user training:

        • Self Instruction - 

          • users will learn how to use a system on their own using the materials they can find or already have accessible.

        • Formal classes -

          • users are taught by a teacher/instructor who shows and explains to the students how to use the system

        • Remote training - 

          • users connect with an instructor over a video call and learn how to use the system

System Backup

Data Loss and Prevention

  • Data loss is when the user loses the data and cannot retrieve it. There are many causes of data loss, but the most popular ones are:

    • Hardware/System malfunctions: 

      • this happens when the system malfunctions and deletes the data. You can avoid this by always having backups

    • Human error: 

      • this is a simple human mistake that causes users to lose data. You can avoid this by enabling autosave on software.

    • Software corruption: 

      • this is when the software while performing a task, messes up and loses the data it was working with. Make sure to always have a backup

    • Malicious software (Viruses): 

      • Viruses can hack into your devices and steal your data. Make sure to have strong passwords and always have backups and antiviruses.

    • Natural disasters: 

      • Natural disasters can destroy data on local storage. Save it on the cloud so you can access it from anywhere.

Software Development

  • There are many processes involved when releasing a new product. 

    • In software development, a product release is done with extensive testing and then released in beta testing so that the developers can assist users with debugging and find other issues that need to be fixed.

  • An update is a file that contains fixes for problems that users are having. 

    • You can get updates manually(download and install them yourself) or automatically (the company/developer auto downloads it onto your PC if you allow them to). 

    • Patches are software update code that is directly inserted into the code by running a program. 

      • A patch is typically a temporary fix, and they can fix a bug, install drivers, address security and stability issues, and upgrade software.

Release Management

  • Release management 

    • It is the process of planning, scheduling, and controlling the movement of releases to test and live environments, ensuring smooth deployment of software updates. 

    • There are three types of release management:

      • Continuous delivery

        • A software engineering approach where teams produce software in short cycles so that the user can reliably receive the software without bugs.

      • Agile Software development

        • A software engineering approach that involves multiple engineers to develop solutions to problems.

      • DevOps

        • A software engineering culture that unifies software development and software operation. DevOps aims at shorter dev cycles by using automation at all stages of the software construction. 

Steps of DevOps:

  • Plan

    • This initial stage involves gathering requirements, creating a timeline, and defining the scope of the project. I

  • Code

    • Once the planning is complete, developers start writing code based on the requirements outlined.

  • Build

    • In the build phase, the code is compiled and integrated to create the software application.

  • Test

    • Testing is a critical phase where the software is evaluated for bugs, errors, and functionality issues.

  • Release

    • After successful testing, the software is ready to be released to the users.

  • Deploy

    • Deployment involves installing the software on the production servers or making it available for users to access.

  • Operate

    • Once the software is deployed, it enters the operation phase where it is actively used by the end-users.

  • Monitor

    • Monitoring is an ongoing process that involves tracking the performance of the software in real-time.

A

System Fundamentals

System Fundamentals

  • System Fundamentals are essential when learning the basics of computer science. 

  • Learning system fundamentals teach you how software and hardware interact within a computer system, how the systems are created, and how computer systems are planned within an organization. 

  • This knowledge is fundamental to understanding how computers work and essential for understanding broader concepts in computer science.

Planning and system installation

  • Before designing a system, you must understand the purpose and the needs of the system and check for various factors. 

  • Just like how you would check out the room before buying furniture, but here you need to check the computer’s needs and not the room’s needs. 

  • Always try asking these questions if you are stuck:

    • Where

    • When

    • How

    • What

    • Who

    • Why

  • Implementing a new system requires a lot of analysis and managing that system requires adaption. Here are a few changes you need to keep in mind while managing a system:

    • Communicating the reasons for the change.

    • Addressing user concerns and providing support.

    • Training users on the new system.

    • Evaluating the success of the implementation.

Implementation Comparison

  • There are two types of software: Local and Remote

    • Local is when it's on a particular set of computers or a single computer that u can access physically. 

    • Remote is when it's somewhere on the internet, and you can use it via a browser or local application.

  • SaaS is a software distribution model that makes the software easy to access for customers over the Internet. 

    • Examples include:

      • Office 385

      • Google Apps

      • AWS

      • Dropbox

Compatibility Issues

  • When integrating new systems with existing systems, you can encounter multiple problems such as:

    • Software Differences: 

      • Imagine trying to fit a puzzle piece from a different set – it simply won't work. Similarly, software from different companies or versions may not work together seamlessly.

    • Data Format Issues: 

      • Think of translating languages: Data stored in one format might not be understandable to a system using a different format.

    • Varied Standards: 

      • Different regions may have different conventions for dates, currencies, or character sets, potentially leading to confusion.

Installation Processes

  • There are many ways to install a system, here are the 4 main ones:

    • Direct Changeover - The old system is stopped and a new system is created

      • Pros: Less time and effort

      • Cons: In case of a failure, there is no fallback

    • Parallel Running - Both old and new systems are kept running

      • Pros: the old system acts as a backup

      • Cons: Costly

    • Pilot Running - the new system is created and tested with a small subset before transferring the rest of the data

      • Pros: all features are fully tested

      • cons: no backup

    • Phased Conversion - the new system is gradually introduced as parts of the old system are replaced

      • Pros: allows people to get used to the new features

      • Cons: no fallback

Data Migration Problems

  • Data migration is when a file or files are transferred from one computing environment to another.

    • Examples include:

      • putting a file on a USB and opening it on another computer

      • using databases to transfer information globally

  • While transferring data, many problems can arise such as:

    • Incompatible file formats - A piece of software can be outdated and won’t be compatible with a new version of software.

    • International conventions on dates, currency, and characters - Different countries use different languages, date formats, and currency so the data may be irrelevant based on the location

    • Incomplete transfers - due to connection issues or external interruptions data can sometimes stop transfer mid-way

Types of Testing

  • Testing is very important in developing a computer system because it makes sure that the computer works without issues. 

  • A system that has bugs can be problematic for the user. 

  • The main things that need to be tested when making a computer system are:

    • Test Management: Planning, tracking, control.

    • Functionality Testing: Requirement verification.

    • Security Testing: Vulnerability identification.

    • User Experience Testing: Usability assessment.

    • Compatibility Testing: Cross-environment validation.

    • Performance and Load testing: speed, stability, and traffic handling capacity.

  • There are also many different types of testing:

    • Static Testing: testing without running any code

    • Dynamic Testing: testing with running code

    • Alpha Testing: internal testing by employees of a company

    • Beta Testing: external testing by users that are not working for the company

    • Automated Testing: use of special tools to automatically test the software while comparing it to other test results.

User Focus

User Documentation

  • User documentation is any document or text that explains to the users how to use the specific functions of the problem or system. 

    • User documentation is important because it gives you simple and clear instructions to use all the features that people may not be aware of. 

    • There are many different types of user documentation:

      • Help files - files located on the system that give the user information about the system. Usually accessed by a button in the system

        • pros: accessible at any time with the click of a button

        • can only be used after the system has been installed, otherwise not useful

      • Online Support - Online web services by the system developer that assist users

        • pros: more extensive than help files

        • cons: useless if no internet

      • Printed manuals - printed manuals that provide the user with system

        • pros: can be read through by users before starting to work on creating a system or using software.

        • cons: can be easily lost and the info can be limited in info

User Training

  • User training is important to users because it helps the user familiarize themselves with the system or software. 

    • There are three different methods of delivering user training:

      • Self Instruction - 

        • users will learn how to use a system on their own using the materials they can find or already have accessible.

      • User training is important to users because it helps the user familiarize themselves with the system or software. 

      • There are three different methods of delivering user training:

        • Self Instruction - 

          • users will learn how to use a system on their own using the materials they can find or already have accessible.

        • Formal classes -

          • users are taught by a teacher/instructor who shows and explains to the students how to use the system

        • Remote training - 

          • users connect with an instructor over a video call and learn how to use the system

System Backup

Data Loss and Prevention

  • Data loss is when the user loses the data and cannot retrieve it. There are many causes of data loss, but the most popular ones are:

    • Hardware/System malfunctions: 

      • this happens when the system malfunctions and deletes the data. You can avoid this by always having backups

    • Human error: 

      • this is a simple human mistake that causes users to lose data. You can avoid this by enabling autosave on software.

    • Software corruption: 

      • this is when the software while performing a task, messes up and loses the data it was working with. Make sure to always have a backup

    • Malicious software (Viruses): 

      • Viruses can hack into your devices and steal your data. Make sure to have strong passwords and always have backups and antiviruses.

    • Natural disasters: 

      • Natural disasters can destroy data on local storage. Save it on the cloud so you can access it from anywhere.

Software Development

  • There are many processes involved when releasing a new product. 

    • In software development, a product release is done with extensive testing and then released in beta testing so that the developers can assist users with debugging and find other issues that need to be fixed.

  • An update is a file that contains fixes for problems that users are having. 

    • You can get updates manually(download and install them yourself) or automatically (the company/developer auto downloads it onto your PC if you allow them to). 

    • Patches are software update code that is directly inserted into the code by running a program. 

      • A patch is typically a temporary fix, and they can fix a bug, install drivers, address security and stability issues, and upgrade software.

Release Management

  • Release management 

    • It is the process of planning, scheduling, and controlling the movement of releases to test and live environments, ensuring smooth deployment of software updates. 

    • There are three types of release management:

      • Continuous delivery

        • A software engineering approach where teams produce software in short cycles so that the user can reliably receive the software without bugs.

      • Agile Software development

        • A software engineering approach that involves multiple engineers to develop solutions to problems.

      • DevOps

        • A software engineering culture that unifies software development and software operation. DevOps aims at shorter dev cycles by using automation at all stages of the software construction. 

Steps of DevOps:

  • Plan

    • This initial stage involves gathering requirements, creating a timeline, and defining the scope of the project. I

  • Code

    • Once the planning is complete, developers start writing code based on the requirements outlined.

  • Build

    • In the build phase, the code is compiled and integrated to create the software application.

  • Test

    • Testing is a critical phase where the software is evaluated for bugs, errors, and functionality issues.

  • Release

    • After successful testing, the software is ready to be released to the users.

  • Deploy

    • Deployment involves installing the software on the production servers or making it available for users to access.

  • Operate

    • Once the software is deployed, it enters the operation phase where it is actively used by the end-users.

  • Monitor

    • Monitoring is an ongoing process that involves tracking the performance of the software in real-time.