What are the main components of a software system?

Software components

Now let’s discuss the different software components that we need to have a functioning computer. Remember: software comprises the set of programs, procedures, and routines associated needed to operate a computer.


Machine language

A computer can only process binary: a stream of ones and zeros. Binary is the computer’s language. Instructions for the computer are also stored as ones and zeros that the computer must decode and execute.


Assembly language

Assembly language is a human-readable instruction mode that translates binary opcode into assembly instruction. A CPU cannot process or execute assembly instructions, so an encoder is required that can convert assembly language to machine language.


Assembler

An assembler translates an assembly language program into machine language. The code snippet below is an assembly program that prints “Hello, world!” on the screen for the X86 processor.

section .data text db 'Hello, world!' section .text global _start _start: mov rax, 1 mov rdi, 1 mov rsi, text mov rdx, 14 syscall mov rax, 60 mov rdi, 0 syscall

High-level languages

Assembly language is referred to as a low-level language because it’s a lot like machine language. To overcome these shortcomings, high-level languages were created.

These are called programming languages, and they allow us to create powerful, complex, human-readable programs without large numbers of low-level instructions. Some of the most famous high-level languages are:

  • Python
  • C++
  • Java

Software - A set of instructions, stored digitally within the computer's memory, which tells the computer system what to do.

Software components of a computer system have no physical presence, they are stored in digital form within computer memory. There are different categories of software, including system software, utilities and applications software. Software can also be described as being either generic or bespoke.

System software is the software used to manage and control the hardware components and which allow interaction between the hardware and the other types of software. The most obvious type of system software is the computer's operating system but device drivers are also included within this category.

What are the main components of a software system?

Fig 1: a screenshot from a software application

Utility software is software such as anti-virus software, firewalls, disk defragmenters and so on which helps to maintain and protect the computer system but does not directly interface with the hardware.

Applications software (also known as 'apps') are designed to allow the user of the system complete a specific task or set of tasks. They include programs such as web browsers, office software, games and so on. They are usually the reason you bought the computer system in the first place and aren't concerned with the management or maintenance of the system itself.

Any individual software package, whichever of the above types it falls into, can be either generic (or 'off-the-shelf') or it can be bespoke (custom-built). Generic software is mass produced with the intention that it will be used by a wide variety of different users in a range of different situations. Bespoke software is created for a specific purpose which will be used in a known environment.

Often generic software is used when there is a package available that meets the needs of the user. Because it is used by many more people the cost of creating it is spread over a greater number of people or organisations and so the cost to the individual is much lower. It also has the advantage that it is available immediately there's no waiting time involved while the software package is designed, created and tested. Bespoke software has the advantage that it can be tailor made to exact specifications but it significantly more expensive and will take time to create.

Exercise: Types of software

Create a table to show what software packages of each type are installed on your computer.

A software system is a system of intercommunicating components based on software forming part of a computer system (a combination of hardware and software). It "consists of a number of separate programs, configuration files, which are used to set up these programs, system documentation, which describes the structure of the system, and user documentation, which explains how to use the system".[1]

The term "software system" should be distinguished from the terms "computer program" and "software". The term computer program generally refers to a set of instructions (source, or object code) that perform a specific task. However, a software system generally refers to a more encompassing concept with many more components such as specification, test results, end-user documentation, maintenance records, etc.[2]

The use of the term software system is at times related to the application of systems theory approaches in the context of software engineering. A software system consists of several separate computer programs and associated configuration files, documentation, etc., that operate together.[1] The concept is used in the study of large and complex software, because it focuses on the major components of software and their interactions. It is also related to the field of software architecture.

Software systems are an active area of research for groups interested in software engineering in particular and systems engineering in general.[3] Academic journals like the Journal of Systems and Software (published by Elsevier) are dedicated to the subject.[4]

The ACM Software System Award is an annual award that honors people or an organization "for developing a system that has had a lasting influence, reflected in contributions to concepts, in commercial acceptance, or both".[5] It has been awarded by the Association for Computing Machinery (ACM) since 1983, with a cash prize sponsored by IBM. The two types of are system software and application software

Categories[edit]

Major categories of software systems include those based on application software development, programming software, and system software although the distinction can sometimes be difficult. Examples of software systems include operating systems, computer reservations systems, air traffic control systems, military command and control systems, telecommunication networks, content management systems, database management systems, expert systems, embedded systems, etc.

See also[edit]

  • ACM Software System Award
  • Common layers in an information system logical architecture
  • Computer program
  • Computer program installation
  • Experimental software engineering
  • Failure assessment
  • Software bug
  • Software architecture
  • System software
  • Systems theory
  • Systems Science
  • Systems Engineering
  • Software Engineering

References[edit]

  1. ^ a b Sommerville, Ian (2007). "1.1.1; What is software?". Software Engineering (8th ed.). Addison-Wesley. pp. 5–6. ISBN 978-0-321-31379-9. OL 18264252M.
  2. ^ 'Grubb, P.; Takang, A. (2007). Software Maintenance: Concepts and Practice, 2nd Edition. New Jersey: World Scientific. pp. 7–9. doi:10.1142/5318. ISBN 978-981-238-426-3. OCLC 912499935.
  3. ^ "The Max Planck Institute for Software Systems". Retrieved 2020-12-31.
  4. ^ "Journal of Systems and Software (JSS)". DBLP. Germany: LZI. Retrieved 2020-12-31.
  5. ^ "Software System Award". ACM Awards. Association for Computing Machinery. Retrieved 2020-12-31.

What are the main components of software?

There are three components of the software: These are : Program, Documentation, and Operating Procedures.

What is the most important component of system software?

OPERATING SYSTEM: in control the operating system (OS), is the most important system software component, it consists of the master programs, called the supervisor, that manages the basic operations of the computer.

What are the two components of the system software?

System software has two major components: (1) the operating system and (2) system utilities that provide various maintenance functions. Without software—the set of instructions that tells the computer what to do—a computer is just an expensive collection of wires and components.

What are software components explain?

The idea of software components formalizes the definition of these “smaller parts”: A software component is basically a software unit with a well-defined interface and explicitly specified dependencies. A software component can be as small as a block of reusable code, or it can be as big as an entire application.