Software And Its Types

A modern computer, whether it’s a portable, desktop, server or mainframe (a supercomputer for organizing centralized data storage of large capacity and performing intensive computational work) consists of two equal components – hardware so-called. Iron ( -hardware ) and software so-called software ( software ). Equipment is just a pile of metal without programs that control it, create a human-computer interface, help solve all tasks on the PC, provide convenience and functionality to the computer, and there are programs through which other applications are created.

Service level (additional system software) – programs within the OS for diagnosing and automating the work of checking, setting up and configuring the computer system.

Software development is a complicated process, the primary purpose of which is to create, maintain code that ensures the required level of reliability and quality.

Software development tools – a set of techniques, methods, techniques, and a set of tool programs (compilers, application/system libraries, etc.)

 Software For The Intended Purpose Is Divided Into:

    1. The basic level (firmware) is those programs that are responsible for interacting with the necessary hardware and stored in individual ROM chips. These programs are also called drivers, and their combination forms a primary input-output system (BIOS). Usually, the BIOS chips in the BIOS in the PC are located on the motherboard.
    2. Operating systems (OS)- a set of programs that provide interaction of other programs with necessary applications, hardware and give a computer management interface to a person. The operating system consists of a) I / O programs b) programs for managing the file system and scheduling the computer task c) a command language processor that accepts, analyzes and executes commands addressed to the operating system. As examples of modern OS, you can bring various Windows (98, 2000, XP, Vista, Seven, Pocket PC, Windows CE), MS-DOS, developed by Microsoft, Unix like OS (Unix Ware, Sun OS, Solaris, BSD, Linux) from various manufacturers and freely distributed, OS / 2 and its modifications from IBM, Mac OS and Apple derivatives, OS for handhelds, mobile devices (Symbian OS for example) and many others.

Software Development Tools

The main stages of software development are singled out and characterized. For each step, the means that can be applied to achieve the objectives of the scene are described and described.


Before you start to consider the development tools that can be used to create programs, you need to determine the basic concepts, terms that will be used in the article. By the subject matter of the report, the necessary condition for us, of course, is “program development tools.” In the field of software development, this definition may read as follows:

Software development tools – a set of techniques, methods, techniques, and a set of tool programs (compilers, application/system libraries, etc.) used by the developer to create program code of the Program that meets the specified requirements.

To achieve the primary goal of software development, software development tools are used.

Essential Means Used At Different Stages Of Program Development

Depending on the subject area and tasks assigned to the developers, the development of programs can be a somewhat complicated, step-by-step process in which a large number of participants and a variety of means are involved. To determine when and in what cases what tools are used, we will outline the main stages of software development. The following steps of progress are of the highest interest for the problems under consideration:

  1. Designing the application.
  2. Implementation of application code.
  3. Testing the application.

Here, deliberately omitted the steps associated with writing a technical assignment, scheduling time, budget, etc. The reason for this is that at these stages, with rare exceptions, there is practically no specific development tools used.

Application Design Tools

At the design stage of the application, depending on the complexity of the software product being developed, which directly depends on the requirements, the following design tasks are performed:

Requirements analysis.

Development of the architecture of the future software.

Development of devices for the main components of software.

Development of layouts of user interfaces.

The result of the design is usually a “Software Design Document” or a “Software Architecture Document.” The task “Analysis of requirements” is generally performed using methods of epistemology (analysis and synthesis), taking into account the expert experience of the designer.

The result of the study is usually a meaningful or formalized model of the program operation process. Depending on the complexity of the process, different methods and tools can be used to construct these models. In general, the following notations are usually used to describe models (in brackets are the software tools that can be used to obtain models):

  • BPMN (Vision 2003 + BPMN, AquaLogic BPMN, Eclipse, Sybase Power Designer).
  • Flowcharts (Vision 2003 and many others).

Models, Mat-Models, Etc.

Sometimes, when the software product being developed is designed to automate any complex activity, the task of the Analysis (Modeling) is performed before the technical specifications for the future product are compiled. The results of the analysis make it possible to formulate reasonable requirements for one or another function of the developed program and to calculate the real benefit from the implementation of the designed product. Moreover, it turns out differently that, based on the results of the analysis, the initial goals and tasks of automation change radically, or, based on the results of the evaluation of the effectiveness of development and implementation, the decision is made not to develop the product.

Object-Oriented Programming (Prototyping, Use Of Classes, Subjective-Oriented Programming)

The choice of it mostly depends on the existing habits, experience, traditions, tools that the development team has. Sometimes the software product being developed is so complicated that different paradigms are used to solve some problems in various components of the system. It should be noted that the choice of this or that approach imposes restrictions on the means that will be applied at the stage of implementing the program code. The result of solving this problem depending on the method can be (in brackets is the software that can be used to obtain them):

Class diagram, etc. (Ration Rose, Sybase, and many others).

A description of the structure modules and their programming interface (for example, Sybase power designer and many others).

Development of user interface layouts involves creating a visual representation of how certain video forms and windows will look in the application being developed. The solution of this task is based on the use of designer tools, which will not be considered in this article.

Tools For Implementing Code

 At the stage of implementing the program code, the individual components of the program are coded by the developed technical design. The means that can be applied depend to a large extent on what approaches were used during the design and, besides, on the degree of thoroughness of the technical plan. Nevertheless, among the tools for the development of the program code, the following main types of means need to be distinguished (in brackets examples of devices are given): • methods and algorithms.

Programming languages (C ++, C, Java, C #, PHP and many others);

Means to create a user interface (MFC, WPF, QT, GTK +, etc.)

Code version control tools (CVS, svn, VSS).

Means of obtaining executable code (MS Visual Studio, GCC, and many others).

Database management tools (Oracle, MS SQL, Firebird, MySQL and many others).

Debuggers (MS Visual Studio, gdb, etc.).

Testing Tools

The main tasks of testing are checking whether the functionality of the developed program meets the initial requirements, as well as identifying errors that manifest themselves explicitly or implicitly during the program. Among the principal works on executing compatibility tests can be defined as follows:

  • Failover and recovery testing.
  • Functional testing.
  • Security testing.
  • Interoperability testing.
  • Test the installation process.
  • Usability testing.
  • Configuration testing.
  • Stress Testing.