Scientific Basis of System Programming

Theoretical foundations of programming systems from modules, objects, components, services are given. Identified relevant theory of programming proposed by the author with the participation of students and postgraduates: graph modular programming theory with graph representation as an adjacency matrix for mathematical achievability of graph vertices; theory of generating programming and theory of software factories; theory of graph object and component modeling (OCM) by means of logic and algebra-mathematical theory of determining individual elements of complex systems; theory of system programming based on ontological and service-component models (SOA, SCA) with security and quality systems. The Internet Smart and Nanotechnology are given for perspective transition of computer technology to nanotechnology.


Introduction
The author of the article is a mathematician by education and for more than 50 years has been engaged in the development of the idea of A. P. Ershov (1972) in the future to develop the theory of programming as a mathematical science [1].
Since the advent of different programming languages (LP) to describe different kinds of programs for solving mathematical, biological, economic and other problems with the help of electronic computers, many scientists began to develop separate areas of programming theory.The theory includes formal descriptions of programs, their translation, debugging, testing and quality assessment.
In connection with the application of international LP (Algol, PL/1, Fortran, A module is considered a software element that converts the plurality of source data X in a variety Y of the output method of display system.Modules are a pair S = (T, χ), where T-model of the system; χ is the characteristic function, defined on the set of vertices X of a graph of modules G.
The interface is the handler objects with each other to exchange data between them.
The development method is a method or systematic approach to achieve the goals which are set before creating the object of development.The method of modular programming is the decomposition of the problem into separate functions, each of which is a module and object, component, aspect, service and other methods.
Life cycle model PS-this is cascade, spiral, iterative, etc.On the basis of these models developed the first version of the standard ISO/IEC Life Cycle 1996, and then 2007.This standard give has a set of software development processes.
The technological process is an interrelated sequence of operations performed during the development of the object.The process is designed to transfer object from one state to another until final product [10].
Line technology (LT) and grocery PL specifies a set of development processes of some object, functions that convert to the ready program product (PP).

The Method of Programming Modular
The term module appeared in connection with the transition to the ES (IBM) computer (1976), which were implemented programming systems with languages ALGOL, FORNAN, PL/1, COBOL, and ASSEMBLER.Each language was independent of each other in form and content.Program in any of these languages got the name of the module.For the organization of communication of multilingual modules, an interface was formulated, which described the general data and data transfer operators from one module to another [9].The method of modular programming was developed, which provides the formation of a modular graph structure, by which the Assembly of individual program elements from modules and interfaces was сarrived out.The module is the basic software element with properties [16]: -the logical completeness of function; -the independence of one module from the other; -replacement of individual module without disturbing the structure of the program; -call other modules and return data to the call module.
The module converts the multiple input data X in a variety of output Y and is given as a mapping.
Communication between modules: -relationship management (SR = K 1 + K 2 ); Modular graph structure G = (X, Y), where X is a set of vertices, and G is a finite subset of the direct product X ×X×Z on the set of arcs of the graph.
A modular structure is a pair S = (T, χ), where T-the model of the modular structure; χ-the characteristic function defined on the set of vertices X of a graph of modules graph G.
The value of the function χ is defined as: χ (x) = 1 if the module with vertex x ∈X included in the PS; χ (x) = 0 if module with top x ∈X is not included in the PS and it's not referenced from other modules.
The module is described in PL and has a description section of the passport, which specifies external and internal parameters.To pass parameters to another module, use the Call (...), RMI (…) and another.The parameters may be converted to the form of the calling module and back in case of differences of their types.It was developed the library of primitive functions convert dissimilar data types PL [16].This theory is suitable to the component.
The intermodule interface is the contact modules to transmit and receive data between them.Interlingua interface is a library function interface to transform non-equivalent data types of the PL for IBM OS-360.Developed interface library (64 functions) which converts different data types (TD) in PL (ALGOL, COBOL, FORTRAN, PL/1, etc.).The system was handed over in 52 organizations of the USSR for Assembly of multi language modules to the applications in OS ES, IBM-360 (1982).
The formal conversion of objects TD Assembly is performed using algebraic systems Σ 1 , Σ 2 for each TD PL t T α : where t α Ω -set of operations on the simple t (t = <b-boolean, c-character, i-integer, r-real> and complex t = <a-array, p-pointer, u-union, s-sequence> TD modern PL built classes of algebraic systems: Systems Σ 1 and Σ 2 the transformation TD t→q for the pair of languages L t and L q have the properties: 1) t G α and q G β -isomorphic (to q and t defined on the same set); 3) Between the sets t X α and q X β may not be isomorphic matching, then build such a mapping between t X α and q X β that it is isomorphic.
If data types are different, for example, t-string, and type q is real, then there is no isomorphic correspondence between sets t X α и q X β .The maps preserve the linear order of the elements based on the linear order of the elements of the algebraic systems of these classes.
Theorem 1.Let ϕ-displays the algebraic system c G α to c G β .In order to ϕ be an isomorphism, it is necessary and sufficient to ϕ isomorphic reflected c X α and c X β , preserving linear order.Assembly method and the library interface are also implemented in the complex PROMETEY by V. V. Lipaev and became the basis for the creation of quality software for different computers [11] [16].As results, the Assembly programming was formed, which allows integrating heterogeneous software resources like reuses into complex systems by the method of configuration Assembly.For this method and participation in the creation of various complex programs, the author was awarded the prize of the Soviet of Ministers of the USSR (1985).
The Assembly was based on the theory of conversion of the fundamental TD (FDT) and later the common types of GDT.The FDT theory arose in the 70-ies of the last century in the works of Dijkstra, Hoare, Wirth, Ershov, Agafonov etc. Theory of general TD is defined in ISO/ IEC 11,404-2006 (General Data Types), which allows the generation of the GDT↔FDT [21].
In 1990-1996 appeared languages of the description of interfaces-MIL (Model Interface Language), API (Application Program Interface) and IDL (Interface Definition Language).They are used in the configuration assemblies of dissimilar programs in modern PL (C, C++, Basic, Java, Python, etc.).Эта система была встроена в ОС ЕС (IBM-360).Later, there were development operators: make (BSD, GNU, Microsoft, Intel, UNIX and others), building in Grid technology, integration and so on.Operator make allows to collection executable files from software resources of libraries in the class of operating systems and programming systems.GNU Build System and Build Grid provide the Assembly of any software resources in different PL.The higher level of communication and interaction of program elements is provided by the standards OSI (1992) and WSDL (W3C.org).

Processing Data Types of PL
The data type TD is used in the description of PL programs (Algal, Prolog, PL/1, Fortran, Ada, Pascal, etc.).Axiomatic TD destroy developed by E. Dijkstra, N.
FDT and GDT DT-simple and complex.Simple TD-integer (i), valid-real (r), boolean (b) and characterr (c) have a common form: type ( ) where T-the type name, , , , n X х х х  names of values from the set of values of type T of X.
Operations (<, ≤, >, ≥, =, ≠) or (≤) determine the linear order of the elements of the set X. Operations on binary types include (true, false) and unary operations pred and succ, which define the previous and subsequent elements of the set X.
Complex TD-arrays, records, sets, union, etc.The array M shows the set of indices in the set of values.
M: I→Y and has the form of type Т а = аrrаy Т(I) of ( ) In GDT TD uses simple and complex TD, based on the concept of cardinality and can be finite, accurate, infinite and approximate.A Datatype generator is an operation on one or more TD to create a new TD as a set of criteria for the characteristics of the TD using; procedures and a set of operations in the final value space to define a new TD.Aggregate datatype is a generated TD, each value of which includes the names of the TD elements from the aggregate TD value space.
Operations of TD generation are carried out by means of operations with: 1) Zero arity to generate the values of this TD; 2) Unary operation (arity 1), which turns the TD value into a new value of the same TD or boolean value; 3) Arity 2 that transform the pair of values of the TD in TD of the same value or a boolean. 4)N-Arity, which converts an ordered n-group and TD values to a parametric type, or aggregate.
In the value space there is an order relation (order), which is given by the sign (≤) and satisfies the rules: The GDT <-> FDT conversion system are based on these operations, implemented in [20]

Disciplines of SE
In Economic discipline SE.This discipline provides for the calculation of the different parties activities of developers in the implementation of the project and identify the costs, time and economic indicators according to the requirements of PP.Used methods: predicting the size of PP (FPA-Function Points Analyses, Feature Points, Mark II Function Points, 3D Function Points, etc.); the evaluation effort for the development of PP by using models COCOMO and systems (Angel, Slim, Seer-SEM, etc.), as well as the quality of PP.Production discipline SE determines the production of PP and makes a profit.
In the area of SE mass produced products created by the famous firms Microsoft, IBM, Intel, and the factory programs, as well as the results of outsourcing (upgrading a legacy inherited) bring on large profits.The production of PP is based on the technological processes of manufacture of certain product types using the theory of the design and usage of tool environments [16].

Programming Paradigm
Paradigm (from Greek παράδειγμα, "example, model, pattern")-a set of fundamental scientific attitudes, the concepts and terms adopted and shared by the

Scientific Foundations of Programming Paradigms
To introduce several programming paradigms developed formal apparatus in theoretical and applied design of individual software resources for building (configuration) in the software system.In [16] [25] describes the theoretical foundations of the paradigm of object, component, service, aspect and generating programming.
Object design theory is built with the use of base notions of formal specification, set theory and class theory of G. Booch, G. Frege triangle and the object model (OM) CORBA, utilizing the following principles: -all essences of the domain are objects; -each object is a unique element; -all objects are determined at a certain abstraction level and are ordered according to their relations; -object interoperability with the interfaces.
An object is singled out using object analysis with mathematical terms for de- According to G. Booch, "object-oriented approach = objects + inheritance, polymorphism, encapsulation"; OM also encompasses object classes and their relations (aggregation, associations, specializations, instantiation so on), as well as their behavior.
Object is a named part of actual reality with a certain abstraction level; a notion structure according to Frege triangle (denotation, sign, and concept).
Each object О i belongs to the set of objects ( ) where O i = O i (Name i , Den i , Con i ), Name i is a sign, Den i is a denotation, Con i is an object concept, , , ,  is determined upon a set of predicates P il [25].Axiom 1.The subject domain designed with objects is an object itself.Axiom 2. The subject domain being designed may be an object within another domain.
When designing the domain, each object gets at least one property or description, semantics allowing its unique authentication among the set of all objects and to the set of predicates of properties and relations between objects.
Object property is defined on the set of objects belonging to the domain with the unary predicate with return value depending on its external and internal properties.Description is an aggregate of properties (in form of predicates) subjected to the condition of acceptance of truth value by no more than one predicate from these descriptions.Relation is a binary predicate that returns truth on each pair of objects in the set.The basic types of mutual relations are as follows: 1) set-set; 2) element of a set-element of a set; 3) element of a set-set; 4) set-element of a set.
The implementation of the object paradigm is described below.Other paradigms are discussed in [11] [12].In this paradigm elements of software resources are described in PL, and their interfaces in standard WSDL.The proposed formal apparatus of the object-component method (COM) are programming paradigm.It formalizes the resource Assembly into complex programs and systems using the method of Assembly programming.The OCM provides a mechanism logic-mathematic modeling of graph model object (OM) and FM (Model Feature).On these models made configuration resources into system or family systems.

The Paradigm of Object Programming
Object Model (OM) of the subject area (SD) is modeling on four levels [16]  -Behavioral level for descriptions of conduct depending on events (such as time).
In accordance with the generalizing level an object is considered a mathematical notion, as a class from the point of view of von Neumann-Betrays-Gödel set theory: , with О 0 being an object in the subject domain.A set of base functions is formed at this level, related to decomposition or composition changes to object denotations and concepts, performed by increasing or decreasing object quantity, as well as expansion or narrowing object concepts.These changes are subjected to the set rules and terms that ensure correctness of function implementation.
For the set O the object relations hold: ( ) ( ) The structural level defines such notions as class, class instance, abstract class, etc.The set of objects is ordered and each of objects can be presented as a set or an element of a certain set.
That is, expression ( 1) is transformed into ( ) ( ) The objects are located at the vertices of the graph.The main vertex corresponds to the name of the set O. Аt the next level there are members of this set.
In accordance with the characteristic level, for each of objects a corresponding concept is formed.If ( ) , , , r P P P P ′ =  is a set of unary predicates related to properties of SD objects.Concept of the object О і is a set of assertions, built on the basis of predicates from P' that are true for the object.That is, the concept Con i = {P ik }, if a condition P k (О і ) = true, where P ik is the assertion for the object О і according to the predicate P k .Following these rules, the properties of objects are determined with the subsumption relation.Expression A = (O', P') determines the algebra system of object concepts O' and predicates P' with operations: -0-ary operations that correspond to constants; -Unary operations that correspond to the properties of objects; -Binary operations that correspond to intercommunications between pairs of objects.
Predicates must meet specific conditions: -Number of predicates suffices the conceptual design of the subject domain using its objects; -Each predicate, its type and signature meets the essence of the corresponding Journal of Software Engineering and Applications object.
Axiom 1.Every object of the SD process has at least one feature or property, which equates to the set of objects.
In obedience to the behavioral level, a sequence of object states and processes is determined in order to reflect transitions between states.Intercommunications between objects are formed on the basis of binary predicates, which are related to the properties of SD objects, and are detailed to implement interoperability between states of objects.
According to the concept described above, class is an object that reflects a certain set; instance of the class is an object belonging to a certain set, which is a class; joint class is a set equal to the direct sum of several other sets; crossbred class is a common part of several other sets; aggregated class is a subset of the cross product of several other sets.If an object is an element of another object, it is determined by the set.However, not every object is necessarily an element of another class.For example, an object corresponding to the entire SD in the OM is not an element of any other object in the model.Definition of objects is formulated under the condition: each object is a set or an element of a certain set.Object ordering is performed taking into account affiliation by using sets of natural numbers.
Algebra for object-oriented analysis of the SD is ( ) , , , ( ) ( )  is a set of operations on elements of a set O; ( ) , , , r P P P P =  is a set of predicates that determine properties of object concepts.Each of operations in A' possesses certain priority and arity, and also related to the corresponding acceptable descriptions of object concepts and operations from the set A' = {decds, decdn, comds, comdn, conexp, connar}.That is, decds, decdn are decomposition operations, comds, comdn are compositions, conexp, and conner is narrowing [20] [25].
Theorem 1. Set of operations A' for the algebra on the objects О' is a system of actions in relation to the functions of four-level object presentation of the OM.
Operations of object analysis are: -Specification of object, as a class, class instance, etc.; -Operations above essences: 0-unary, unary, binary; -Interrelation of generalization, specialization, aggregation, classification, instantiation; -Operations of object behavior together with communications between descriptions and the time of their existence in the OM.
The SD model may be represented by an object graph G = {О, I, R}, defined on the set of objects O, interfaces I and relations between objects R: -Set of vertices O replicates one-to-one relationships between objects in the Journal of Software Engineering and Applications -Each vertex corresponds to at least one interface I k ∈ I and relationships from the set R according to certain rules.
-There exists at least one vertex with dual set-object status that reflects the entire domain.
The set of objects-functions O is related to implementation methods for objects in the SD, which communicate between themselves via interface objects from the set I. That is, vertices from G are objects of two types-functional objects O, and interface objects I (Figure 1).
Given algebras of operations on different elements of external, internal and evolutionary type provide transformation and Assembly and replacement of old with new ones.

Generating Programming (GP)
GP is a style of generating programs of different applications and their Assembly in the target system or family in two areas: applied engineering and engineering of the subject area [12].The K. Chernetski model GDM (Generative Domain Model) is based on problem space, solution space and configuration base.The GDM model and the model of the characteristics of the MF indicate General concepts and characteristics of the elements of the domain, their interrelationships, as well as knowledge about the configuration of the system of reuse.For their implementation in multiparadigms of GP can use different programming styles: OOP, component, service, aspect, etc.In the production-based systems from ready made components in GP was taken the concept of product lines of the Institute SE USA (www.sei.com).For GP proposed the model transformation and configurations of system from ready-made components.A transformation model is described in the DSL and contributes to the transformation of the space problems in the solution space by the method of transformation DSL-BOM component to their description in PL.The configuration model is based on design rules and domain abstractions included in GDM.Configuration model data is converted to concepts and their characteristics.The transformation of MF descriptions is performed in ADL language and then to the description of components in PL.The result is a configuration of system members as a configuration file.

Paradigms of Service Programming
The following types of services are different [11] [27]: -General services of system environments (e.g.naming, cataloging, etc.); -object services that manage objects, classes, and services (for example, request dispatching, interface management, etc.); -network services of standard OSI model, SOA models (Service-oriented Architecture), SCA (Service-Component Architecture); -ready resources (services, artifacts, reuses, assets, etc.); -web-services Semantic-Web Internet.
These types of services are used in the modeling of information and software systems from ready services resources of the Internet.To use them, it is neces-Journal of Software Engineering and Applications sary to search for a suitable Internet service resource, test it and embed it in the program for solving the problem in dynamic mode ( [30] [32]).In the CORBA system (1996) developed-object request broker (Object Request Broker-ORB) for communication between objects in different PL; -general object services (Common Object Services-COS-facilities (Common Facilities-CF) providing (e.g., print, database, e-mail, etc.); -the object of the application (Application Objects AO); -client and server interface (stub, skeleton) via IDL.

Description of data transfer operations includes:
1) the name of the interface operation; 2) the list of parameters with arguments and parameters.SOA (service-oriented architecture)-development of a component approach based on the use of services with standardized interfaces.They can be distributed across different network nodes.Their interface provides encapsulation of the implementation details of each component.SOA provides a flexible way to combine and reuse components to build complex distributed software systems and enterprise software applications [28].The systems are implemented as a set of web-services integrated with standard Internet SOAP languages, WSDL W3C (www.с3.org).
Web-services are a new promising architecture that provides distribution at the Internet level [30].Thanks to web-services, functions of any program in the network can be accessed via the Internet, and the results of accessing them-using PHP, ASP, JSP-scripts, JavaBeans, etc.An example of a web-service is the Passport system on Hotmail, which allows implementing user authentication.Web services are based on standards, open exchange protocols, data transfer in this order of action: -definition of the format of requests to the web service and its responses; -any computer on the network makes a request to the web-service; -the web service processes the request, performs the action, and then sends the response.
The difference between web services and other technologies (e.g.named pipes, RMI) is that they are based on open standards and are supported on all UNIX and Windows platforms, etc.
A SOAP envelope contains a request to perform an action or a response.The envelope and its contents are encoded in XML and sent via HTPP to the web service.The problem with using web services is to find them.IBM, Microsoft have come up with an initiative project for Universal Description, Discovery and Integration (UDDI) to provide a common catalog of web services to enable all companies to "publish" their web service.The SOA (Service-oriented Architecture) model defines the system architecture from services, and the SCA (Service-Component Architecture) model specifies the architecture from service components.
These architectures are implemented by IBM Web Sphere Integration Devel-oper.This system enables integration of SCA services through the JAVA interface model defined in the WSDL and JAVA interface class.J2EE sub modules and artifacts are packaged with an SCA module, whose function is to start the service and transfer data for integration [29].
Web services in the supports: -SOAP Protocol to define the formats of the queries to network services (http://www.w3.org/TR/soap12-part1/wsdl20/RDF/wsci); -WSDL-language service for.NET environment data exchange and Net Remoting network services development; -UDDI (Universal Description, Discovery and Integration) to register, describe, store and search the registry; -BPMN is a graphical notation language for application and business processes and BPEL-a language for describing business processes (http://www.omg.org/spec/BPMN).
The ready-to-use services in the application are configured in the output file for execution.

Aspect-Oriented Programming (AOP)
AOP is proposed in 1970.In the former USSR by A. L. Fuksman (Rostov University), as a technology of dispersed action or vertical lamination technology.
Accordingly, this technology vertical layer (slice) contains a set of dispersed actions, code fragments that implement a certain extensible function, and the program development process is a set of operations to add and change these functions.Any program consists of modules designed for several horizontal layers.
Any" extension "of the program results in a series of horizontal layer extensions [20].
G. Kishales and C.H. Simon companies Intentional Software continue to develop AOP.Each structural unit (component) of the system defines a procedure, function, or object, forming a functional element in the system.This element is localized and can be mapped to others.However, non-functional properties of the system, such as response to errors, providing access to memory (dynamic order-release), synchronization of parallel objects, etc., are usually "scattered" across all elements of the system, "was crossing" the structure of the system.Implementation of the properties of the aspect is carried out using: -aspect language and linker (weaver) aspects in the application; -connection points, determining the place in the program; -slice-set of connection points according to the specified rule; -fragment insertion-a set of instructions in the PL to integrate all points of the cut.
The aspect, by setting some slice or fragment, is to be inserted into the points of this slice.
Thus, the AOP offers different methods and techniques of splitting tasks (concern crosscutting) into a number of functional components, as well as aspects that "cross" functional components and provides for their composition in E. M. Lavrischeva Journal of Software Engineering and Applications order to obtain systems.
There are several implementations of AOP, for example, Xerox PARC AspectJ (www.aspectj.org) in the Java language.The release of Aspect J. 1.1 is built into the system, Eclipse, Sun ONE Studio and Borland J. Builder.IBM Research released a version of Hyper J. (www.alphaworks.ibm.com/tech/hyperj) and Cosmos (www.research.ibm.com/AEM/mdsoc.html)with hypertext support for building requirements and diagrams.Java AOP paradigm is the basis of C++, Squeak/ Smalltalk, Perl, Python, Ruby languages.

Processing Paradigm of Life Cycle Standard ISO/IEC 12207
The approach to automation ISO/IEC Life Cycle (LC) 12207-2007 is the ultimate tool serial process of manufacturing of PS using three categories of processes (Figure 2) [18] [19]: 1) The basic processes; 2) The support processes; 3) The organizational processes.
Development program starts with requirements, design elements of PS (modules, objects, components, etc.), integration (Assembly) of individual elements, testing of individual elements and overall system; operation ready PP.The supporting processes and organizational processes are used for quality management PS and software process improvement LC.ISO/IEC LC 2007 (Table 1) includes 17 processes, subprocesses 74 and 232 tasks (actions).
These processes are necessary and sufficient for the design and manufacture  of any system.Some system companies sold individual pieces, i.e. individual variations of this standard or life cycle models (spiral, waterfall, iterative, etc.).
The concept of automation of the Life Cycle of the ISO/IEC method of ontology is new and original.The basis of its implementation is the structure of processes of LC (Figure 2) and their interaction (Table 1), as well as the Ontology language for the conceptualization of individual variants of the process LC [18] [19].
The concept of automation of LC of the ISO/IEC 12207 by ontology is new and original.Formally, the LC model includes the processes P (process), actions (Action) and tasks T (Task): ( ) where P k = (P 1k , P 2k1 , P 3k2 ), P 1k = 1 -5 (the main processes of the LC), P 2k1 , k 1 = 1 -8 are additional processes LC, P 3k2 , k 2 = 4-organizational processes; A m = (A kr , A k1l , A k2j )-actions or tasks of the process.In them the tasks mean: A kr , r = 1 -35-actions on the main processes of the LC; A kl , l = 1 -25-actions on the processes of support of the LC; A k2j , j = 1 -14-actions in the organizational processes of the LC; Т n = (Т nк , Т nl , Т nj ) -Т nк , к = 1 -135-the tasks of the main processes LC; Т nl , l = 1 -70-the tasks of the support processes of the LC; T pj , j = 1 -27-the tasks of the organizational processes of the LC.
An example of a description of the main processes of the LC (Figure 3) in XML language is given below.2) AppFab IBM to create business systems; 3) AppFab in the CORBA system for the Assembly of heterogeneous software resources; 4) Product Line SEI USA; 5) Factory streaming building software John.Grinfeld, G. Lenz, I. Bay etc.; 6) Factory continuous integration by M. Fowler; etc.Some factories are represented on the website http://www.7dragons.ru/.

The Essence of Modeling of Systems and Families
The concept of variability of the original represented in the model FM (Model Feature) to Product Line based on the set of components reuse (CRR, Reuses), which in PS may include the variant points [11] [20].
Variability is a property of the system to the extension, modification, adaptation, or configuration for use in a particular context and to ensure its subsequent evolution (ISO/IEC FDIS 24745-2009 E).
Model FM is formed in the process of development of the PP and includes general functional and non-functional characteristics of items that can be used by family (FPS) members of PS when you create different variants of PS or PP on the points of variance.
The point of variance is a place in the system, which is used for the selection of the PS option.This point is a collection of options attached to the kernel made the system.In the production of the PS from CRU is created and the family PS.
The FM model is used in engineering subject field and engineering applications for Assembly made resources.
Domain engineering provides the definition and implementation of common artifacts-variable functions for the production of a new product variant.
Artifacts-the architecture, requirements, components, tests, etc. Application engineering includes the definition of artifacts needed by the user, and makes changes to the collection at the application level.
Theorem: The functional interaction between the two objects is correct, if the first object completely provides the functions and data transfer that is required by another object: In (fo k ) ⊆ Out (fo l ).The objects of the graph G (Figure 2) form a model of the system under system configuration.Elemental which can be changed in the graph are labeled by points of the variance (variability) [10] [11] [22].
The point of variance is in one place in the model system PS, which selects the variant of the system.A point of variance is handled by the configurator and allows transforming the prepared system by replacing some of the components used reuse, CRR by other more functional or correct.
Variability-a property of a product (system) to expand, change, adaptation, or configuration for use in a particular context and ensure its subsequent evolution ISO/IEC FDIS 24765-2009 (E).

Managing Variability of Systems
Model of variability PS − MF var = (SV, AV), where SV-submodel of variability of the artifacts in the structure of PS; AV-submodel variability of the finished product PS.
The MF var model ensures that the artifacts of the PS, lower costs and decrease the cost of developing the system.Model of variability of PS-a set of FM models of the PS, set on the many artifacts, some points of variance for subsequent changes individual elements [20] [25].
Managing variability PS is performed on the points of variance, variant artifacts of the PS, limitations and dependencies by using the predicates P defined on the set of options of PS.
To control the variability method is used E. Deming, based on the functions F 1 -F 4 : F 1 -operation, action to ensure that the artefacts of the PS (Act); F 2 -the planning system FPS of the artifacts (Plan) for engineering subject area and engineering applications; F 3 -system monitoring and verification of state changes of the PS (Check); F 4 -actualization (fulfillment) systems PS (Do).
Managing variability the PS with the requirements-R is: 1) the rationale for the function F 1 (R 1 ); 2) coordination of the implementation of artifacts in the processes of PS (R 2 ); 3) implementation of the validation of the creation of PS (R 3 ); 4) tracking relationships between the characteristics of the PS (R 4 ).
Compliance requirements R 1 -R 4 functions F 1 -F 4 model of environment process model process variability of the SPS is the basis for the formation and implementation of various systems [21].
The configuration model PS [21]: -management options for PS with the replacement of individual functions in the PS; -manage the interaction of artifacts in a heterogeneous environment.m(T) is a function of reliability growth, as the average number of defects PP identified during its operation for time t.
The reliability of the software largely depends on the number remaining and corrected errors in the development process.During operation, errors are also detected and eliminated.If the bug fixes are not made new, or at least new bugs introduced is less than clear, in the course of operation reliability increases.
The function of reliability growth m(t) is defined by the formula ( ) , where N 0 -the number of latent defects in PP at the beginning of system testing on form: λ 0 -the failure rate of PP at the beginning of system testing, as defined by a given formula; ρ-intensity code execution (speed of processor); K = 10 −7 -the ratio of defects (permanent) for model J. Musa; I-number of source code instructions; ϕ-code expansion ratio (the number of code instructions executed per original instructions).
To assess the quality systems used the standard ISO/IEC 9000 (1-4) quality model is form: , , , , 1, ,6 i Q q q q i = =   ,-various quality characteristics (Quality-Q); A a a a j J = =   ,-the set of attributes (Attributes-A), each of which captures a separate property of the qi quality characteristics;  ,-the set of metrics (Metrics-M) each ele- ment of the attribute a j for the measurement of this attribute.The quality standard identifies six basic quality characteristics: q 1 : functionality; q 2 : reliability; q 3 : use, q 4 : efficiency; q 5 : maintainable; q 6 : portability.The quality q 1 -q 6 are assessed by the formula:  OCM realized on the website http://7dragons.ru/ru.Site database forms a repository of ready resources, models PS, variability and interaction of system-wide tools-Visual Studio, Eclipse, CORBA, WSphere [20] [33]:

CASE-Instrumental Tools
1) Visual Studio.Net↔Eclipse defines the environment of the interaction of individual elements in the C# language and interface.The model establishes the relationship of the elements with a given environment via the config file.
2) CORBA↔JAVA↔MS.Net provides communication between these environments with specified in these languages, the elements to access them from other developers.
3) IBM Sphere↔Eclipse provides communication between programs in PL these environments.
With the participation of the students was developed a program of processing FDT and GDT, a variant of the ontology LC using the tools, DSL Tools vs. Net and Protégé [16] etc.They are available on the website.
It is a link to a website of programs of KNU http://programsfactory.univ.kiev.uaIt accumulates the scientific artifacts of the students of KNU.The website also includes courses in Java, C # vs. Net and "Software engineering" for students of KNU and MIPT.

Concept of Nanotechnologies
The idea of an Assembly of atoms in macro atoms special programs assemblies proposed by R. Feynman (1959) in the form of a manipulator of an atom, which are gravity, and the action of intermolecular Vander-Valesov force [24].Can be an arbitrary number of such mechanisms (machines) submitted by the manipulator of the elements, reduced to four and more times the copies of the "hands" of the operator, which can tighten small bolts and nuts, drill a very small hole, to perform the work in scale 1:4, 1:8, 1:16.
Nanotechnology is the technology of production of new materials and devices with predetermined atomic architecture (E.Dressler).
An atom is 10 −10 = 1 nanometer (nm), and the bacteria is 10 −9 nm.Particles from 1 to 100 nanometers are called nanoparticles.Some nanoparticles have the property of sticking together with each other, which leads to the formation of new agglomerates (in medicine, ceramics, metallurgy, etc.).
One of the greatest challenges facing nanotechnology is how to make the molecules group in a certain way and to organize themselves so to finally get a new material, substance or device.For example, proteins can synthesize from few proteins of DNK in complex structures with specific new properties.

Computer Nanotechnology
Today computer nanotechnology is actually already working with the smallest elements, "atoms" similar to the thickness of the thread (transistors, chips, crystals, etc.).For example, a video card from 3.5 million particles on single crystal, multi-touch maps for retinal embedded in the eyeglasses, etc.
Computational geometry is a part of computer graphics and algebra.Used in the practice of computing and control machines, numerical control etc. is also used in robotics (motion planning and pattern recognition tasks), geographic IS (geometric search, route planning), design chips, etc.
In the future, ready-made software elements will be developed in the direction of nanotechnology by "reducing" to look even smaller particles with predetermined functionality.Automation of communication, synthesis of such particles will give a new small element, which will be used like a chip in a small device for use in medicine, genetics, physics, etc.

Conclusion
The scientific, theoretical bases of the systems programming from modules, ob- with the help of logic and algebra-mathematical theory of formation of separate variants of complex systems and ensuring the variability of such systems on the

1 )
For each pair of values (a, b) from the value space the following condition is met a ≤ b or b ≤ a or both; 2) For any two values (a, b), if a ≤ b and b ≤ a, then a = b; 3) For any three values (a, b, c), if a ≤ b and b ≤ c, then a ≤ c.
connection with the 40-year anniversary SE (2008) the author proposed a classification of scientific disciplines in SE[16] [22].Proposed discipline used in the program Сuricula-13.Let us consider briefly their scientific basic.Scientific discipline SE includes classic Sciences (theory of algorithms, set theory, proof theory, mathematical logic, discrete mathematics); theory of programming of the theory of abstract data, management science, etc.This discipline defines the basic concepts the objects and the formalism of the description of the system components and data description[23] etc. Engineering discipline SE includes methods of using technology rules and procedures, processes, life cycle, methods of measuring and assessing the quality of development PP.This discipline defines the set of engineering methods, techniques, tools and standards focused on the production of the target PP.Basic concepts of engineering SE include: core knowledge SWEBOK; the basic process SE; infrastructure environment.Discipline management SE is based on the theory of management of projects and the IEEE Std.1490 PMBOK (Project Management Body of Knowledge); method CRM (Critical Path Method) for the graphic representation of works, operations and their execution time; method of network planning PERT (Program Evaluation and Review Technique), etc.In the PMBOK defined processes lifecycle of the project and the main areas of knowledge and processes of planning, monitoring, management and completion.
scientific community.Provider continuity of development of science and scientific creativity Thomas Kuhn called paradigms established systems of scientific views, in which research and development [25] [26].In SE emerged programming paradigm.It is a set of ideas, concepts, theories and methods that determine the style of formal presentation of computer programs.This term R. M. Floyd defined in his work "The Paradigms of Programming" (Communications of the ACM.1969.Vol.22 (8) pp.455-460), E. Dijkstra in the book "Discipline of programming" (M.: MIR, 1976) and D. Gris in thebook "Science of programming", K. Holsted "Science programs", 1984.They defined it as a method of conceptualization and formal definition of programs and systems.Some parts of the theory are implemented in the framework of applied (functional, logical, automatic, etc.), theoretical (VDM, OOP, Z, B, OCM, FODA, etc.), system (parallel, distributed, etc.) and commercial (Agile, SCRUM, EX, etc.) programming[9] [16].
Engineering and Applicationsscription and clarification of object methods in the OOP being created.
[25]: Journal of Software Engineering and Applications -Generalizing for determining ОМ SD base notions without considering of their essence and properties;-Structuring for ordering objects in the OM taking into account relationships between them; -Characterization for forming concepts of objects on the base of them properties and descriptions; Interface objects contain data description that is passed by RPC, RMI, ORB requests with optional operations of data transformation to the proper format of the environment containing the object implementation.The result of communication of a pair of objects in the graph (e.g., O' 5 and O' 7 ) is a new interface object with the description of input (in) and output (out) parameters of a request or a communication protocol.Axiom 2. Graph G, complemented with interface objects, is well-organized structurally (bottom-up) with regard to the control of fullness, surplus and removal of duplicate elements.Objects may have several interfaces that can inherit interfaces of other objects, providing they provide services for the entire set of output interfaces.The set of objects and interfaces of the graph is reflected by general or individual properties and descriptions of the OM.Verification of properties of objects are provided by the specific operations (classification, specialization, aggregation, etc.).Each operation is a pair wise comparison of the underlying object properties with their external characteristics.They are reliable in case the following condition holds: each underlying property is equivalent to the external property of object.If this condition does not hold, an element is removed from the set O and the graph.Worked out formal mechanism of transition is from objects ОМ to components and interfaces of CM (component model).Component programming was defined by formal models (component, interface, component environment) and the operations of external and internal component algebra with facilities of transformation of unrelevantical TD.

Figure 1 .
Figure 1.A graph G on the set of objects and interfaces.

Figure 2 .
Figure 2. The basic, support and organizational processes LC.

Figure 3 .
Figure 3.The description the main processes LC in the XML language.
a model of interaction of individual elements of the created system.Based on the model М konf are: -slection of artifacts and resources of the PS in the base configuration of a given system; -allocation of common and variant characteristics of the PS in the model FM and model of the PS; -planning for multiple resource use for PS in the points of variability and their fixation for their removal replacement; -build resources in the PS and their adaptation to new conditions of environment; coefficients (Weights-W) for metrics of the set M.
On the basis of obtained quantitative characteristics of the final grade is calculated by summing the values of individual indicators and their comparison with the benchmark systems.
As a means of realization of life cycle processes ISO/IEC 2007 elected the lan-E.M. Lavrischeva DOI: 10.4236/jsea.2018.118025431 Journal of Software Engineering and Applications guage Device and the DSL Tool VS.Net etc.In them ontological description transformer to the XML language, it is the implementation language of the marked features of the LC domains, which define the communication and data exchange between them.

6. 1 . 1 ) 3 )
The Future Internet Technologies[24] The information objects (IO) that specifies the digital projection of real or abstract objects that use Semantic Web Ontology interoperability interfaces.IO through Web services began more than 10 years ago.Interaction semantics IO is based on RDF and OWL language of ISO 15926 Internet 3.0.The next step of the development of the Internet is Web 4.0, which allows network participants to communicate, using intelligent agents.2) A new stage in the development of enterprise solutions-cloud (PaaS, SaaS) who spliced with Internet space and used to create Adaptive applications.Cloud services interact through the Web page by using agents.Internet stuff (Internet of Things, Smart IoT) indicates the Smart support competing APPS using distributed micro services such as Hyper cat (mobile communications); industrial Internet (Industrial), covering the new automation concepts-smart energy, transportation, appliances, industry, and another.
jects, components, services were presented.Defined by the theory of programming different periods of building systems, developed by the author with the participation of her students and postgraduates: theory of graph modular programming with graph representation in the form of adjacency matrix for mathematical relation of graph vertex attainability; implementation of complex complexes and systems based on graph, in the vertices of which there are different language modules (1970-1991); theory of program factories (2009) of modules and reuses, which has a great demand in different countries (Europe, India, China, Taiwan, etc.); theory of graph object and component modeling (OCM) and displayed in Net.It presents value type and reference type.

Table 1 .
Process, subprocess and task of standard ISO/IEE 12207.