Home Topic 2 Last Next


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.

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).

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, though not necessarily so)

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.


Who's 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.

Another very good example of GUI features controlled by/contributed by the OS, and not Java Swing are the three "stop light" red, amber, and green little circles at the top left hand corner of all windows. When you look in the Netbeans GUI Design editor, you don't see them, but when you run the program, you do (see below). So OS or Java? Answer: OS.


Following is another example from class, where we learned how to make it so that the scrollbar of windows always shows. Clearly this is something controlled by the OS, as you can see below by the General System Preferences of the Mac OS, which is responsible for setting this.

Applications Themselves Providing Common Features

Common features do not necessarily have to come from shared resources via the OS.

Helping maintain consistency are the applications themselves, by adhering to programming frameworks, and published style guides, for example. Most programmers of applications do their best to adhere to such conventions, which their users have come to expect.

And in fact, it doesn't matter so much if they come from the OS itself, or from applications adhering to conventions, both the OS and applications themselves help provide consistent, common features.


Advantages of Common Features

Ease of Use and Increased Comfort

Consistent look and feel and operation, which helps people switch between various applications, and yet have a good idea how to use them.

Improved Usability/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.

Easier Implementation by Developers

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.







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.