OCR H446/01 – 1.2 Software and software development

1.2 Software and software development - Overview / Checklist
1.2.1 Systems Software
(a) The need for, function and purpose of operating systems.
(b) Memory Management (paging, segmentation and virtual memory).
(c) Interrupts, the role of interrupts and Interrupt Service Routines (ISR), role within the Fetch-Decode-Execute Cycle.
(d) Scheduling: round robin, first come first served, multi-level feedback queues, shortest job first and shortest remaining time.
(e) Distributed, embedded, multi-tasking, multi-user and Real Time operating systems.
(f) BIOS.
(g) Device drivers.
(h) Virtual machines, any instance where software is used to take on the function of a machine, including executing intermediate code or running an operating system within another.
1.2.2 Applications Generation
(a) The nature of applications, justifying suitable applications for a specific purpose.
(b) Utilities.
(c) Open source vs closed source.
(d) Translators: Interpreters, compilers and assemblers.
(e) Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation).
(f) Linkers and loaders and use of libraries.
1.2.3 Software Development
(a) Understand the waterfall lifecycle, agile methodologies, extreme programming, the spiral model and rapid application development.
(b) The relative merits and drawbacks of different methodologies and when they might be used.
(c) Writing and following algorithms.
1.2.4 Types of Programming Language
(a) Need for and characteristics of a variety of programming paradigms.
(b) Procedural languages.
(c) Assembly language (including following and writing simple programs with the Little Man Computer instruction set).
(d) Modes of addressing memory (immediate, direct, indirect and indexed).
(e) Object-oriented languages with an understanding of classes, objects, methods, attributes, inheritance, encapsulation and polymorphism.

Recommended Resources

1.2.3 Software Development
1.2.4 Types of Programming Language

Assembly Language

Assembly language is a low-level programming language. Each assembly language is specific to a particular computer architecture. Assembly language uses mnemonics to represent low-level machine instructions or opcodes. Many operations require one or more operands in order to form a … Continue reading


Understanding Memory Address Modes

There are many ways to locate data and instructions in primary memory and these methods are called “memory address modes”. Memory address modes determine the method used within the program to access data either from the Cache or the RAM. … Continue reading


Object-Oriented Programming Concepts

Object-Oriented Programming (OOP) is a programming approach based on objects and classes. The object-oriented paradigm allows us to organise software as a collection of objects that consist of both data/attributes and behaviours. This programming concept appeared in the 1980s and … Continue reading


LMC Challenges
LMC Simulator LMC Mini Challenges LMC Burglar Alarm LMC 5-4-3-2-1 LMC Max Function LMC Countdown Timer LMC Higher or Lower Game LMC Finding the factors of… LMC Step Count Algorithm LMC Fibonacci Sequence LMC Triangular Numbers LMC Trace Table LMC Multiplication LMC Factorial


Procedural Programming
Procedural Programming Drag and Drop Sequencing, Selection and Iteration Quiz Procedural Programming Crossword Procedural Programming – Code Spotlight Procedural Programming Concepts – Q&A Procedural Programming Terminology


Prolog Challenges
Solving a Murder Mystery Using Prolog Sorting Hat Challenge (Prolog) Family Tree Challenge (Prolog) Food Web Challenge (Prolog)


OOP Challenges
OOP Quiz! OOP Terminology OOP Crossword Inheritance Q&A Encapsulation Q&A Classes & Objects Multimedia Library (OOP) My MP3 Playlist (OOP) Shopping Basket Class

Further Reading…

Did you like this challenge?

Click on a star to rate it!

Average rating 4.8 / 5. Vote count: 16

No votes so far! Be the first to rate this post.

As you found this challenge interesting...

Follow us on social media!