Modern software technologies

Software Technology – an ordered set of interconnected technological processes within the software lifecycle.

Technological process – a set of interconnected technological operations.

A technological operation is a basic unit of work performed by a certain role, which:

Implies clearly defined responsibilities of a role;
yields a well-defined result (a set of work products) based on certain input data (another set of work products);
represents a unit of work with rigidly defined boundaries, which are established in project planning.

A work product is an informational or tangible entity that is created, modified, or used in some technological operation (model, document, code, test, etc.). The work product defines the area of responsibility of the role and is the object of configuration management.

Role – definition of behavior and responsibilities of an individual or a group of individuals in the environment of a software development organization who perform activities within some technological process and are responsible for certain work products.

Guidelines – a practical guide to performing one or a set of technological operations. Guidelines include methodical materials, instructions, regulations, standards and criteria for evaluating the quality of work products.

Toolkit (CASE tool) – a software tool that provides automated support for the activities performed within the technological operations.

The main requirement to modern software tools is their compliance with standards and regulatory documents related to software lifecycle processes and assessment of technological maturity of organizations-developers (ISO 12207, ISO 9000, CMM, etc.). According to these standards, software TC must support the following processes:

  • requirements management;
  • Software analysis and design;
  • software development
  • operation;
  • maintenance;
  • documentation;
  • configuration and change management;
  • testing;
  • project management.

The completeness of software lifecycle processes support should be supported by a set of tools (CASE-tools).

Standards compliance also means, in particular, the use of common, standard notations and conventions. For a project to be able to be implemented by different development teams, it is necessary to use standard modeling methods and standard notations, which should be formalized as standards before the start of the design process. Non-observance of design standards puts the developers in dependence on the firm-manufacturer of this tool, makes it difficult to formally control the correctness of design decisions and reduces the possibility of attracting additional teams of developers, change of performers and alienation of the project, since the number of specialists familiar with this method (notation) may be limited.

Another important requirement is adaptability to the conditions of application, which is achieved through the delivery of technology in electronic form, together with CASE tools and libraries of processes, templates, methods, models and other components designed to build software of the class of systems, which is focused on technology. Electronic technologies should include tools to ensure their adaptation and development based on the results of specific projects. The process of adaptation consists in removing unnecessary processes and actions of the software lifecycle, in changing unsuitable or adding their own processes and actions, as well as methods, standards and guidelines.