ICS3U Computer Software

ICS3U Learning Goals

In this ICS3U Grade 11 Computer Science lesson you will be learning how to:

  • Understand different types of computer software that exists on a computer
  • Setup an organization system on your computer to store your files effectively
  • Protect your data from malicious code
  • Identify Software with Good and Bad Interfaces

Types of Software

Software that runs on your computer can be classified as follows: 

Application Software

The apps that you use everyday on a computer to accomplish various tasks. Its designed to let the end user achieve a goal quickly and easily

  • Desktop and Mobile Applications (Microsoft Office, Web browsers (Chrome, Edge, Safari, Firefox), Adobe Creative Suite, iTunes, iWork, etc)
  • Web based applications (Google Suite, Evernote, Netflix, Dropbox, etc)

Operating System Software

The purpose of an operating system is to

  • Manage the hardware in your device such as CPU, RAM, Hard Drives, input/output devices through small software programs called drivers. Most important drivers come prebuilt into the operating system, but others are provided by the manufacture of the device. A lot of times when hardware isn’t working properly it is because the driver software isn’t fully compatible with the operating system.
  • Create a user interface (usually a Graphical User Interface)
  • Control how applications software accesses the computers resources

There are 3 main types of operating systems for desktop machines

  • Windows
  • macOS
  • Linux / Unix

Mobile Devices also have operating systems on them such as:

  • Android OS
  • iOS

Firmware

This is the software that is embedded inside memory chips that tell the chip how to behave when given instructions by an operating system.It was called firmware because the only way to replace it was to replace the chip. In today’s world you can reprogram a chip with a special hardware device. This often called “Flashing” a chip

The most recognizable types of firmware are attached to the motherboard on your PC. This is called the computers BIOS (Basic Input Output System) or sometimes the UEFI (Unified Extended Firmware Interface). This is the software that first loads when your computer turns on. It goes through a POST (Power On Self Test) which wakes up all the hardware and checks to see if it is functioning properly. You will sometimes hear beep codes to indicate the status of that operation. If POST is successful, the bootloader will load the operating system software.

ICS3U Inquiry Activity - Types of Software

Visit the following website and look at the following sections

  • What is a computer?
  • Understanding Operating Systems
  • Understanding Applications
  • Understanding the Cloud

Answer the following questions

  1. What is a computer?
  2. Name and describe the two things all computers have in common
  3. Describe some differences between different types of operating systems
  4. What is a GUI?
  5. What is the difference between open source software and proprietary software?
  6. What type of applications do you use at school vs home?
  7. Describe cloud computing and its advantages?
Submit your answers to the appropriate dropbox

Software Development Life Cycle

Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality softwares. The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.

Stage 1: Planning and Requirement Analysis

Requirement analysis is the most important and fundamental stage in SDLC. It is performed by the senior members of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas. Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage. The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks.

Stage 2: Defining Requirements

Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts. This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle.

Stage 3: Designing the Product Architecture

SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS – Design Document Specification. This DDS is reviewed by all the important stakeholders and based on various parameters as risk assessment, product robustness, design modularity, budget and time constraints, the best design approach is selected for the product. A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any). The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.

Stage 4: Building or Developing the Product

In this stage of SDLC the actual development starts and the product is built. The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle. Developers must follow the coding guidelines defined by their organization and programming tools like compilers, interpreters, debuggers, etc. are used to generate the code. Different high level programming languages such as C, C++, Pascal, Java and PHP are used for coding. The programming language is chosen with respect to the type of software being developed.

 Stage 5: Testing the Product

This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC. However, this stage refers to the testing only stage of the product where product defects are reported, tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.

Stage 6: Deployment in the Market and Maintenance

Once the product is tested and ready to be deployed it is released formally in the appropriate market. Sometimes product deployment happens in stages as per the business strategy of that organization. The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing). Then based on the feedback, the product may be released as it is or with suggested enhancements in the targeting market segment. After the product is released in the market, its maintenance is done for the existing customer base.

Malicious Code

Viruses, Worms, and Trojan Horses are all malware programs that can cause damage to your computer, but there are difference among the three. Knowing these differences can help you to better protect your computer from their often damaging effects.

ICS3U Inquiry Activity - File Management

ICS3U File Management

Keeping organized with your digital files is an extremely important task. You will be much more productive if you can find what you are looking for, even years after you created the document.

Keep the following tips in mind when organizing data on your computer:

  • Install Software in Default Locations
  • Create a “Root” Folder for your Documents
  • Create Folders with logical names
  • Use Subfolders to stay organized
  • Follow good file naming techniques
  • Save the file in the correct location the first time you save it
  • Back Up Files Regularly in multiple locations
  • Create short cuts to help find important data

Check out the following Website for some very comprehensive advice and examples of how to keep your files organized on your computer.

Task: 

  • Prepare a data protection plan / backup plan for your data in this ICS3U course
  • Setup a file organization system on your computer to keep your ICS3U data organized

Submit your plan to your teacher briefly describing the plan you have put in place to ensure your files stay organized and back up.

ICS3U Inquiry Activity - User Interfaces

A user interface refers to keyboard / mouse controls and how data is displayed on the screen. You are going to look at best practices for designing a  user interface that optimizes user experience.

A good user interface gives you the relevant information quickly and easily but doesn’t get in the way. Consider the following points when evaluating the quality of a User Interface:

  • Is the user interface telling you the information you need in the current moment?
  • Can you find the information you are looking for?
  • Is it easy to navigate through the interface without having to read instruction manuals?
  • Is it completely obvious what you are able to do on the interface screen?
  • Do you have to wait to for the interface to load or does it respond quickly?
  • Can any of the tasks in the interface be replaced with shortcut keys or removed because they are irrelevant?
  • If the interface contains drop-down or popup menus are they easy to navigate, and do they disappear quickly when you are done with them?
Task:
  •  Your task is to find one application with a good user interface and one application with a bad user interface.
  • Justify your choices using the questions above.
Submit your answers to the appropriate ICS3U discussion forum and respond to one other students post indicating if you agree or disagree with their choices.
Return to Grade 11 Computer Science Main Page