Identify common features of applications.


Teaching Note:

Including toolbars, menus, dialogue boxes, graphical user interface (GUI) components.

Students should understand that some features are provided by the application software and some by the operating system.

S/E This improves usability for a wide range of users.

AIM 9 An appreciation of the improvements associated with developments in application software.


Sample Question:


From Sample Paper 1 - 2014:

Continued from the first part of question # 13.

(The sample paper, so the marking scheme can be shown.)


JSR Notes:

Probably the most important part of this, beyond realizing that applications of a certain operating system do look and feel and operate the same way is the teaching notes point:

Students should understand that some features are provided by the application software and some by the operating system.

If something looks similar between various applications, such as the shape of a window and its red, yellow and green buttons in the corner, or the way menus work, it's probably coming from the OS. But not necessarily.


Reasons for Common Features

There are two main reasons for having common features (many of them provided consistently from the OS):

1. consistent look and feel and operation

2. it would be too much work, and in fact a waste, to "re-invent the wheel", and for every new application have to code how to do drop down menus and so on, for example.

GUI as the Most Obvious Common Feature

- GUI components are the most obvious features common to applications; they include: OK buttons, drop-down menus, radio buttons, sliders, etc. The GUI components that Java uses are called Swing components (they include things like like JTextFields and JButtons).

"Who" is in Control? (The application or the OS?)

But from looking at the second Teaching Note we have to ask ourselves if we think features such as the Java Swing GUI features above come solely from the application using them, or from both the operating system and the application. In the case of Swing GUI components, some of the key features, such as the rounded corners of Mac OS buttons and windows, or indeed their particular shade of grey, would for sure come from the operating system, but the specific functionality of them would probably come from the Java application.

Non-GUI Common Features

There are many other features common to most applications (see the list below). Most of these can be fully or partially provided via the OS, but some of the below list could be customized or modified by a certain application, or indeed be controlled entirely by the application itself. Modification of some will not be allowed by the operating system, for one reason or another, including the desire that all applications using that particular feature have it work in an exactly consistent way. And example of that might be the red, amber, and green buttons of all Mac application windows.

List of Common Features of Applications

So here is a list of things which often work the same way between various applications (and so likely are indeed coming primarily from the OS)

So again, remeber that all these features may be fully or partially provided by the operating system, or entirely controlled by the application itself. Ask yourself which of list above are most like entirely controlled and provided by the OS, and which are one less likely to be.

Shared Libraries and Potential Pitfalls

Particularly on Windows machines, there are lots of features that can be used from the OS classes. These are typically stored in and accessible from "dll" libraries, which are as their name suggests: dynamically linked libraries; i.e. libraries available from the OS that are available to other applications, dynamically, as they are needed.

But there is one major drawback to the use of dll libraries: corruption of dynamically linked libraries by poorly programmed applications, in which case an application that had no part in the corruption of the dll library tries to use it and there are problems. Unix and Mac tend to have all of the functionality of applications kept within those applications - though the benefits of sharing are lost, so are the issues. Furthermore, note that a good OOP (Object Oriented Programming) approach, using encapsulation principles should be keeping all key functionality of a particular application within its own classes.

Never-the-less, it is good that there are common features of applications (whether shared or individually contained), as it helps people switch between various applications, and yet have a good idea how to use them. And as noted in the S/E Teaching Note above, this is particularly beneficial for persons that have difficulty using computers in the first place.

Do also note though, that common features do not necessarily have to come from shared resources. Rather, standards can be otherwise enforced/encouraged, as in generally follwed frameworks, or the use of (as in Java and other languages), abstract classes/methods and interfaces which act as guides.