Question

I'm reading Code Complete (2nd Edition) and in Chapter 21 the author mentions the terms system code and application code in the context of formal inspections, saying that system code has to be handled at a slower pace than application code in order to be productive.

I've tried searching the web for a distinction between the two types of code. Are these terms standard throughout the industry? Could someone point me to a resource where the terms are described in a bit more detail?

Was it helpful?

Solution

It's been a few years since I've read the book, but if I recall correctly, what he's referring to as system code would be operating system code. System code would be the low level code that your application calls to allocate and free system resources like memory, UI windows, etc. or that sends a packet over the network. There's also the code that communicates with various pieces of hardware, such as graphics cards, hard drives, network cards, USB devices, etc. These are called drivers and are often considered system software as well.

Application software is generally the software that makes the applications you use on a computer or other device. This could be things like Microsoft Word or a game like Call of Duty or a tool like Photoshop. It could also be command-line tools like grep, awk, and find on Unix, or cd and dir on DOS. When you click an icon on the home screen of your phone or tablet, you're launching application code. Unless you work for an operating system vendor like Apple or Microsoft, or are working on the Linux OS, or writing the drivers for a hardware company, you are probably writing application code.

OTHER TIPS

The author defines neither of those terms in the book. However, "system code" can be taken to mean software that performs necessary functions to maintain the system (e.g. graphics drivers, etc) and possibly the run-time environment (e.g. Java Virtual Machine, etc) that the "application code" is executing in.

For example, an application for a mobile device (e.g. Android app) would typically be written in a high-level language (i.e. "application code"). However, the mobile device (e.g. Android phone) would host the necessary operating system and run-time environment that the application needs in order to execute (i.e. "system code").

These terms are easily mistaken for each other. Application code is a set of programs or functions designed to carry out a specific function( s) and runs on top of 'System code'. 'Application code' cannot run itself, this is where system code kicks in.

Note 'Application code' can access/leverage 'System' code/resources.

For more info see source link here

Licensed under: CC-BY-SA with attribution
scroll top