Domain-specific software

This is the most representative class of application software. Inside it is classified according to:

types of subject areas;

information systems;

Functions and complexes of tasks, etc.

For some subject areas, the typification of control functions was carried out, the data structure was determined, and processing algorithms were created. This caused the development of significant software of the same functional purpose and thus created a market for software products:

· automated accounting;

· financial activities;

personnel management (personnel records);

· Inventory management;

· manufacturing control;

· banking information systems, etc.

The main trends in the development of problem-oriented programs:

Creation of automated workstations (AWP) of managerial personnel;

Creation of integrated systems for managing the subject area;

organization of large distributed databases

availability of simple user language tools for database queries;

setting up a software system by users without the participation of programmers;

protection of programs and data from unauthorized access (password protection at the level of functions, modes of operation, data).

The most important thing for this class of software products is the creation of a friendly interface for end users.

This class of software products is very dynamic both in the composition of the implemented functions and in the developer tools used to create them.

Method-oriented software

This class includes software products that provide mathematical, statistical and other methods for solving problems, regardless of the subject area and functions of information systems.

The most common methods are mathematical programming (optimization), solving differential equations, simulation modeling, operations research, methods of statistical processing and data analysis.

On the basis of network planning methods with economic indicators, a direction of software tools was formed – project management . The users of these programs are project managers.

25. Application software: classification, service system software.

Application software

Application software is designed to solve functional problems of a specific subject area.

The content of this software is highly dependent on the subject area: office, graphics, accounting, calculations, etc. It is the most numerous class of software. Without application software, using a computer in most cases is meaningless.

An approximate classification of application software is shown in Figure 12.4.


Figure 12.4. Types of application software

Service system software

An extension of the basic computer software is a set of service, additionally installed programs that can be classified according to their functionality as follows:

· anti-virus programs that provide computer protection, detection and recovery of infected files;

programs for diagnosing the health of a computer;

· data archiving programs that provide the process of compressing information in files in order to reduce the amount of memory for its storage;

· Disk maintenance programs that check the quality of the surface of a magnetic disk, control the safety of the file system at the logical and physical levels, compress disks, create insurance copies of disks, backup data on external media, etc.;

network maintenance programs.

These programs are often referred to as utilities.

A utility is a utility program that provides a user with some kind of service. They enhance the capabilities of the operating system.

Examples of utility kits: Norton Utilities from Symantec, Checkit PRO Deliuxe from Touch Stone, Dr Hardware.

The most famous anti-virus programs are: Kaspersky Lab’s AVP, Doctor Web’s DrWeb, Symantec’s Norton Antivirus, Eset Software’s NOD32, Panda Software’s Panda, McAfee VirusScan, Ad-Aware.

26. Basic system software.

The basic software includes:

· operating system,

Operating shells

network tools.

The operating system is designed to control computer hardware, to create a user’s work environment, to run programs, to organize information storage.

The leading position on the PC is occupied by the Windows operating system of various versions of Microsoft. The Macintosh PC uses macOS. IBM developed OS/2, which is no longer used on PCs. The Unix operating system was developed and maintained by Bell Laboratory. The development of the Linux OS.

All OSes are now:

multi-threaded – able to interleave several chains of commands,

Multitasking – running multiple programs (processes) at the same time

graphic – control each point on the screen,

32-64 bit – use 32-64 binary bits to store the memory address,

There are multiprocessor operating systems that are capable of managing tens and hundreds of processors. There are two types of multiprocessing: asymmetric and symmetric. With asymmetric processing, one or more processors serve only the OS. With symmetric processing, any thread or task can be assigned to any free processor. Cluster computing tools are being developed, in which the execution of one task is performed simultaneously on several computers in the network.

OS comparison is carried out according to the following characteristics of the information processing process:

memory management (maximum addressable space, types of memory, technical indicators of memory usage);

functionality of auxiliary programs as part of the operating system;

Possibility of archiving files;

support for multitasking;

support for network software;

The presence of disk compression;

Availability of high quality documentation

conditions and complexity of the installation process.

Operating shells are special programs designed to facilitate the user’s communication with the commands of the operating system. Operating shells have textual and graphical user interface options.

These programs greatly simplify the setting of control information for the execution of operating system commands, reduce the tension and complexity of the end user.

The following types of text shells of the operating system are most popular: Explorer, Total Commander.

Network tools – a set of programs that provides processing, transmission and storage of data on the network. Network OS provides users with network services: password protection, file management, e-mail, network management processes, etc., supports work in subscriber systems. Network operating systems use a dedicated server or peer-to-peer architecture. Initially, network operating systems supported only local area networks, now they are extended to local area network associations. The most widespread are LAN Server, Novell NetWare, Windows Server, Unix.

27. General purpose, office.

Office software

This class of software products provides office activities:

1. Organizers (planners)

Planning of working time, drawing up minutes of meetings, schedules, maintaining a notebook and telephone book.

2. Programs – translators, spell checkers, visual and audio text recognition programs.

These include: CuneiForm, Lingvo, Magic Goody, Promt, FineReader.

3. Communication programs.

Are intended for the organization of interaction of the user with remote subscribers or information resources of a network – the organization of videoconferences, service of a fax and phone, browsers, e-mail.

28. System software: classification, service system software.

System software is a set of programs for ensuring the operation of a computer and a computer network and for creating an environment for performing functional tasks.

Without system software, the equipment of a computer and a computer network will not be able to work.

System software consists of basic and service system software (Figure 12.5). The basic software is supplied with the computer. Service software sold separately.

Figure 12.5. Types of system software

A platform is a combination of computer hardware and an operating system.

Service system software

An extension of the basic computer software is a set of service, additionally installed programs that can be classified according to their functionality as follows:

· anti-virus programs that provide computer protection, detection and recovery of infected files;

programs for diagnosing the health of a computer;

· data archiving programs that provide the process of compressing information in files in order to reduce the amount of memory for its storage;

· Disk maintenance programs that check the quality of the surface of a magnetic disk, control the safety of the file system at the logical and physical levels, compress disks, create insurance copies of disks, backup data on external media, etc.;

network maintenance programs.

These programs are often referred to as utilities.

A utility is a utility program that provides a user with some kind of service. They enhance the capabilities of the operating system.

Examples of utility kits: Norton Utilities from Symantec, Checkit PRO Deliuxe from Touch Stone, Dr Hardware.

The most famous anti-virus programs are: Kaspersky Lab’s AVP, Doctor Web’s DrWeb, Symantec’s Norton Antivirus, Eset Software’s NOD32, Panda Software’s Panda, McAfee VirusScan, Ad-Aware.

29. Basic system software.

The basic software includes:

· operating system,

Operating shells

network tools.

The operating system is designed to control computer hardware, to create a user’s work environment, to run programs, to organize information storage.

The leading position on the PC is occupied by the Windows operating system of various versions of Microsoft. The Macintosh PC uses macOS. IBM developed OS/2, which is no longer used on PCs. The Unix operating system was developed and maintained by Bell Laboratory. The development of the Linux OS.

All OSes are now:

multi-threaded – able to interleave several chains of commands,

Multitasking – running multiple programs (processes) at the same time

graphic – control each point on the screen,

32-64 bit – use 32-64 binary bits to store the memory address,

There are multiprocessor operating systems that are capable of managing tens and hundreds of processors. There are two types of multiprocessing: asymmetric and symmetric. With asymmetric processing, one or more processors serve only the OS. With symmetric processing, any thread or task can be assigned to any free processor. Cluster computing tools are being developed, in which the execution of one task is performed simultaneously on several computers in the network.

OS comparison is carried out according to the following characteristics of the information processing process:

memory management (maximum addressable space, types of memory, technical indicators of memory usage);

functionality of auxiliary programs as part of the operating system;

Possibility of archiving files;

support for multitasking;

support for network software;

The presence of disk compression;

Availability of high quality documentation

conditions and complexity of the installation process.

Operating shells are special programs designed to facilitate the user’s communication with the commands of the operating system. Operating shells have textual and graphical user interface options.

These programs greatly simplify the setting of control information for the execution of operating system commands, reduce the tension and complexity of the end user.

The following types of text shells of the operating system are most popular: Explorer, Total Commander.

Network tools – a set of programs that provides processing, transmission and storage of data on the network. Network OS provides users with network services: password protection, file management, e-mail, network management processes, etc., supports work in subscriber systems. Network operating systems use a dedicated server or peer-to-peer architecture. Initially, network operating systems supported only local area networks, now they are extended to local area network associations. The most widespread are LAN Server, Novell NetWare, Windows Server, Unix.

30. Local software development tools.

A programming language is a formalized language for describing an algorithm for solving a problem on a computer.

Programming languages can be historically divided into classes:

  • machine languages – programming languages perceived by the hardware of a computer (machine codes);
  • machine-oriented languages – programming languages that contain mnemonic notation and the structure of computer machine codes (assemblers, autocode);
  • algorithmic languages – programming languages that do not depend on the architecture of the computer to reflect the structure of the algorithm.

The latter, in turn, are divided into generations:

1. structure-oriented – programming languages in which the algorithm is implemented by sequence, choice and loop structures,

2. procedurally oriented – programming languages, where it is possible to describe a program as a set of subroutines,

3. problem-oriented – programming languages designed to solve problems of a certain class,

4. object-oriented – programming languages, where it is possible to represent the program as a collection of objects whose behavior is controlled by external events.


A program prepared in an algorithmic language goes through several stages implemented by several local tools (Figure 12.6).

Figure 12.6. Program conversion steps

Source code is the text of a separate program in an algorithmic language.

Object code – the text of a separate program in machine language or assembly language.

A load module is a collection of machine language programs suitable for execution on a computer.

At the stage of translation , the source code of the program is converted into object code. Translation is performed by a special program called a translator or compiler.

At the assembly stage, the object codes of several programs, including standard ones, are combined into one load module. The assembly is carried out by a special program called the link editor.

Some programming languages allow program interpretation mode – a mode in which the program is translated into language statements and immediately executed. The necessary programs are connected dynamically at run time. The boot module is not assembled.

Debuggers are special programs designed to monitor the progress of other programs. They are able to conduct tracing – follow source code statements, stop and resume program execution at breakpoints, observe changes in the values of variables and expressions, identify the location and type of errors.

Project Support Tools are designed to:

  • track changes made by program developers;
  • support for program versions with automatic posting of changes;
  • obtaining statistics on the progress of the project.

31. CASE-technology: general provisions.

CASE – technology was formed in the 80s of the twentieth century. CASE stands for Computer-Aided System Engineering – designing systems using a computer.

CASE – technology is a set of methods for analyzing, designing, developing and maintaining complex software systems (SW), supported by a set of automation tools. CASE is a toolkit for system analysts, developers and programmers that replaces paper and pencil with a computer to automate the process of designing and developing software.

Most CASE tools are based on a set of concepts (paradigm) methodology/method/notation/tool. The methodology defines guidelines for evaluating and selecting a software project under development, work steps and their sequence, as well as rules for the distribution and assignment of methods. A method is a systematic procedure or technique for generating descriptions of software components (for example, designing flows and data structures). Notations are intended to describe the structure of the system, data elements, processing steps and include graphs, diagrams, tables, flowcharts, formal and natural languages. Tools – tools to support and enhance methods. These tools support the work of users when creating and editing a graphic project in an interactive mode, they contribute to the organization of the project in the form of a hierarchy of levels of abstraction, perform checks on the conformity of components.

The main buyers of CASE packages abroad are military organizations, data centers and commercial software development firms. Almost no serious foreign software project is carried out without the use of CASE-tools.

The main advantage of CASE-technology is the support of collective work on the project due to the possibility of working in the local network of developers, export – import of any fragments of the project, organizational management of the project. The main purpose of CASE is to separate software design from its coding and subsequent development stages, as well as to hide from developers all the details of the software development environment and operation. The more activity that is taken out of coding into design, the better. the biggest changes concern the stages of analysis and design.

They occupy a stable position in the following areas:

business analysis (in fact, business models “as is” and “as should be” are built using methods of structural system analysis and CASE-tools that support them);

System analysis design (practically any large software system is developed using CASE technologies, at least at the stages of analysis and design, due to the great complexity of this issue and the desire to increase work efficiency).

Some CASE tools are aimed only at system designers and provide special graphical tools for displaying various types of models:

Diagram / data flows (DFD – data flow diagrams) together with data dictionaries and process specifications;

Entity-relationship diagram (ERD – entity relationship diagrams), which is an infological model of the subject area;

state transition diagram (STD) that takes into account events and the response of the data processing system to them.

The DFD diagram establishes a connection between information sources and consumers, highlights the logical functions (processes) of information transformation, defines groups of data elements and their storage (databases).

The description of the structure of data flows, the definition of their components are kept up to date in the data dictionary, which acts as a project database. Each logical function can be detailed with a low level DFD according to top-down design methods.

Computer-aided design of program specifications (setting the main characteristics for developing programs) and maintaining a data dictionary are carried out.

Another class of CASE technologies supports software development only, including:

automatic generation of program codes based on their specifications;

Checking the correctness of the description of data models and data flow schemes;

Documentation of programs in accordance with accepted standards and the current state of the project;

Program testing and debugging.

In the framework of CASE-technologies, the project is supported in its entirety, and not only its program codes. Project materials serve as a task for programmers, and programming itself is rather reduced to translating data structures and methods for their processing into a certain language, if automatic code generation is not provided.

Most CASE technologies also use the “prototype” method to quickly create programs in the early stages of development. Code generation of programs is carried out automatically – up to 85 – 90% of texts in high-level languages.

CASE tools include, for example, BPWin, ERWin, Rational Rose, Embarcadero, xCase.

32. CASE-technology: classification by types.

Classification by type reflects the functional orientation of CASE-tools in the technological process of creating an information system.

1) ANALYSIS AND DESIGN. The tools of this group are used to create system specifications and for its design. Their purpose is to determine the system requirements and properties that the system should have, as well as to create a system design that meets these requirements and has the appropriate properties. At the output, specifications of the system components and interfaces connecting these components are produced, as well as a “tracing paper” of the system architecture and a detailed “tracing paper” of the project, including algorithms and data structure definitions. These tools include: CASE.Analyst (Aytex), The Developer (ASYST Technologies), POSE (Computer Systems Advisers), ProKit*Workbench (McDonnell Douglas), Excelerator (Index Technology), Design-Aid (Nastec), Design Machine ( Optima), MicroStep (Meta Systems), vsDesigner (Visual Software), Analist/Designer (Yourdon), Design/IDEF (Meta Software), BPWin (Logic Works), SELECT (Select Software Tools), System Architect (Popkin Software & Systems ), Westmount I-CASE Yourdon (Westmount Technology BV & CADRE Technologies), CASE/4/0 (microTOOL GmbH).

2) DESIGN DATABASES AND FILES. The tools of this group provide logical data modeling, automatic conversion of data models to the Third Normal Form, automatic generation of database schemas and file format descriptions at the program code level: ERWin (Logic Works), Chen Toolkit (Chen & Asssociates), S-Designor (SDP) , Designer2000 (Oracle), Silverrun (Computer Systems Advisers).

3) PROGRAMMING. The tools of this group support the stages of programming and testing, as well as automatic code generation from specifications, obtaining a fully documented executable program: COBOL 2 / Workbench (Mikro Focus), DECASE (DEC), NETRON / CAP (Netron), APS (Sage Software). In addition to diagrammers for various purposes and support tools for working with the repository, this group of tools also includes traditional code generators, code analyzers, test set generators, test coverage analyzers, and debuggers.

4) SUPPORT AND REENGINEERING. These tools include documenters, program analyzers, restructuring and reengineering tools: Adpac CASE Tools (Adpac), Scan/COBOL u Superstructure (Computer Data Systems), Jnspector/Recoder (Language Technology). Their goal is to correct, change, analyze, transform and reengineer the existing system. The tools allow you to support all system documentation, including codes, specifications, test suites; control test coverage to assess the completeness of testability; manage the functioning of the system, etc. Of particular interest are the means of ensuring mobility and reengineering. Migration tools include translators, converters, macrogenerators, etc., which make it possible to ensure the transfer of an existing system to a new operating or hardware environment. Reengineering tools include:

o static analyzers for producing schemes of a software system from its codes, assessing the impact of modifications (for example, the “ripple effect” – making changes to correct errors generates new errors);

o dynamic analyzers (usually compilers and interpreters with built-in debugging capabilities);

o documenters that allow you to automatically receive updated documentation when the code changes;

o code editors that automatically change during editing all the structures preceding the code (for example, specifications);

o means of access to specifications, their modification and generation of new (modified) code;

o reverse engineering tools that translate codes into specifications.

5) ENVIRONMENT. Platform support tools for integrating, creating and remarketing CASE tools: Multi/Cam (AGS Management Systems), Design/OA (Meta Software).

6) PROJECT MANAGEMENT. Means that support planning, control, leadership, interaction, i.e. functions required in the process of developing and maintaining projects: Project Workbench (Applied Business Technology).

33. Programming: stages, problem statement.

Programming is a theoretical and practical activity related to the creation of programs for computers.

Programming includes the following steps:

1. problem statement,

2. structuring the system,

3. data organization,

4. algorithmization,

5. coding,

6. debugging,

7. implementation.

Formulation of the problem

The zero stage of setting the task should be the setting of the program environment. The program environment consists of:

o User environments,

o Customer environments.

o Computing environment,

The users of the software system can be employees of administrative institutions, engineers performing scientific and technical calculations on machines, economists keeping records of economic and financial activities.

Involve users in the system design process

If users are involved in a project at the design stage, they are more aware of the characteristics of the system and can contribute to the final look. If users are involved at the testing stage, they get the opportunity to assess the quality of the system even before the start of operation.

The program is inseparable from the computing environment with which it interacts. It uses system software, and those in turn can use its information. The program either creates files itself or processes files generated by other programs. It should be built in such a way that it can be used in various applications and be managed only by the available hardware resources and programming tools.

MAKE THE MOST OF YOUR DESIGN AUTOMATION TOOLS

Typically, programming work begins because some organization (customer) offers to create a software application system for it. The official conclusion of the contract is usually preceded by a clarification of the real need for such a system, an assessment of the possibility of its development and the approximate amount of costs, as well as the expected effect of its implementation.

A computer is better than a person in coping with labor-intensive tasks that require multiple repetitions of the same type of operations. A computer more efficiently searches and processes large amounts of information consisting of homogeneous elements. Any use of computers involves the standardization of data and processing methods. Effective implementation of the advantages of computers is possible only in cases where it is necessary to perform either laborious calculations or the processing of large amounts of information. At the same time, a person is better than a machine in understanding what should be done and how, and is able to work with heterogeneous information.

The first step in designing an application software system is to clearly define the objectives of the implementation. The system requirements do not yet paint the full picture. Of course, both representatives of the customer organization and those who will be involved in the design of the system should take part in the formulation of the problem. It is necessary that this process be flexibly organized and continue for a sufficiently long time, since at any stage of development or implementation, previously unforeseen difficulties may be revealed. At the same time, a clause should be included in the contract that would prohibit a radical revision of the requirements at the stage of system implementation. In the same paragraph, the conditions for making minor changes can be stipulated.

ALL AGREEMENTS MUST BE FORMAL

The contracting authority and the development team jointly draw up an official list of specifications, as well as an agreement on the order of design work and system acceptance. The functional requirements for the system contain a clear description of everything that it should do. Restrictions in the design process are the deadlines for completing individual stages, available resources, organizational procedures and activities that ensure the safety of information.

A COMPREHENSIVE ANALYSIS OF THE EFFECTS ASSOCIATED WITH THE IMPLEMENTATION OF THE SYSTEM IS NECESSARY

This approach to design can be illustrated by the example of the development of the Ada language. In the early 1970s, the US Department of Defense announced the creation of a new language that was supposed to replace other programming languages in all applications related to solving military problems. Even before the final list of functional requirements and specifications was compiled, several versions of the language were developed, which were analyzed and evaluated by a group of external experts. A competition was announced to create the language. Its winner was the French company Honeywell-Bull. After the work on the language was completed, third-party experts were again invited to evaluate it. Many different groups have taken part in experiments to put into practice some of the most unconventional features of the language. Finally, when it became clear that Ada generally met the requirements, various military departments began to enter into contracts for the acquisition of language compilers.

34. Structuring the system in programming.

Structural analysis is a research method that begins with a general overview of the system and continues with detail, in which the system acquires a hierarchical structure with a large number of levels. The requirements for the system and its expected characteristics cannot serve as a starting point, since, in addition to a general description, they contain many unnecessary details. They can be viewed rather as goals and standards to be striven for at all stages of design. The top level of structural analysis is the functional description of the system. • Drawing up a functional description of the system is a summary of all information related to the goals of the project.

YOU SHOULD STRIVE FOR THE COMPLETE PICTURE

The division of the system into functional elements is subject to well-defined rules. The most general rule is to separate what needs to be done from how it can be done.

THE DESIGN PROCESS MUST BE STRUCTURED.

The graphic scheme of the project is built on a hierarchical basis and covers all issues related to the development of the project. It should fit on one page. Figure 13.1 shows a well-established version of the scheme. This is the process of designing an automated system from the outside. From system to system, the graphic scheme of the task varies slightly.

Figure 13.1. System Design Diagram

1. Introduction . A general characteristic of the system is given so that the future user can decide whether the system meets his requirements.

1.1. System functions . The purpose of the system is explained, a list of the main procedures and processed data is given,

1.2. Scope of application . The circle of users on whom the system is oriented is characterized.

1.3. Collection and correction of data. The sources of initial data entering the system, as well as the sources of data used for adjustment, are described. Plans and schedules for data correction should be included in this paragraph.

1.4. Reports. The forms are described, the frequency and general content of the reports issued by the system are determined.

2. Computing environment . The minimum composition of the equipment necessary for the normal functioning of the system is determined.

2.1. Technical means . The configuration of technical means is described, the required amount of RAM, requirements for external devices, etc. are indicated.

2.2. Software tools . Specifies the types of operating systems, standard program libraries used, database management systems, etc.

2.3. Operating modes. The possibility of the system functioning in the conditions of batch mode, interactive mode, real-time mode or their combinations is determined.

3. Communication with the external environment . Describes how users interact with the system.

3.1. System input. The data formats of all types entered by users are defined, as well as the internal structure of the data. This information serves as a guide for designing entry forms and data preparation.

3.2. System exit. Describes the formats of reports, messages and other output forms. This information is used in drawing up plans and preparing results.

3.3. control parameters . Lists the parameters that are set when setting up the system for a specific configuration of hardware and software.

3.4. Working Instructions . Provides a general overview of the contents of the instructions for handling tapes, storing paper, etc. This information is used in the preparation of instructions for service personnel.

4. System quality .

4.1. Compliance with standards and generally accepted designations . It is indicated to what extent the system corresponds to the standard variant of the programming language. In addition, the degree of use of commonly used abbreviations and mathematical notation is determined. This allows us to estimate the complexity of maintaining the system.

4.2. System versatility . The level of independence of the system from specific external conditions, taking into account which it is developed, is discussed. This characterizes the complexity of transferring the system to other computing installations.

4.3. Reliability of functioning . Issues such as the expected time between failures, error correction methods, information validation, accuracy of results, statistical characteristics of all modules that perform probabilistic calculations, such as pseudo-random number generators, are considered.

4.4. Information protection . Describes the means that ensure the safety of data and authorization of access, the methods of coding used.

5. Documentation on the system.

5.1. Benefits and guides. A list of documentation attached to the system, manuals, reporting forms, working descriptions, system and program documentation is given.

5.2. Program Specifications . A general functional description of individual programs is given, including

Be First to Comment

Leave a Reply

Your email address will not be published.