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, remember 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

dll Libraries

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.

Issues With Sharing Resources

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 experiences problems when trying to use it. (The analogy here you could think of is careless kids taking books home from the public library and ripping the pages, then returning the books to be checked out by careful kids.)

To avoid this problem Unix and Mac computers tend to have all of the functionality of applications kept within those applications, and so no usage of common shared libraries. They thereby do lose the benefits of sharing, but the advantage of this approach is they don't have to worry at all about side effects caused by other applications.

Furthermore, note that a good OOP (Object Oriented Programming) approach, using encapsulation principles, dictates that key functionality of a particular application should be kept within its own classes.


Overall Advantages of Common Features

Ease of Use and Increased Comfort

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.

Improved Accessibility

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, whether it be because of disability, age, or lack of experience.

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 followed frameworks, or the use of (as in Java and other languages), abstract classes/methods and interfaces which act as guides.