 Journal of Software Engineering and Applications, 2013, 6, 34-40 http://dx.doi.org/10.4236/jsea.2013.69A004 Published Online September 2013 (http://www.scirp.org/journal/jsea) New Theoretical Aspects of Software Engineering for Development Applications and E-Learning Ekaterina Lavrischeva1*, Alexei Ostrovski2 1Department of Software Engineering, Institute of Software Systems, Kiev, Ukraine; 2Institute of Cybernetics, Kiev, Ukraine. Email: *lavryscheva@gmail.com, ostrovski.alex@gmail.com Received July 29th, 2013; revised August 28th, 2013; accepted September 4th, 2013 Copyright © 2013 Ekaterina Lavrischeva, Alexei Ostrovski. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. ABSTRACT This paper presents new theoretical aspects of software engineering which oriented on product lines for building applied systems and software product families from readymade reusable components in conditions of program factories. These aspects are the new disciplines such as the theory of component programming; models variability and interoperability of system; theory for building systems and product families from components. Principles and methods of implementing these theories were realized in the instrumental and technological complex by lines of component development: assem- bling program factories using lines, e-learning to new theories and technologies in textbook of “Software Engineering” by the universities students. Keywords: Software Engineering; Theory; Disciplines; Technologies; Interoperability; Applied Systems; Software Industry; Fabrics; E-Learning 1. Introduction The “Software Engineering” learning course is ratified by the cabinet council of Ukraine in December 2006. The program of the course was created on the basis of Cur- ricula-2001 and 2004, SWEBOK-2001 and develop- ments at the Software Engineering Department, Institute of Software Systems of Ukraine. On subject of SE there were executed more than ten NAN fundamental projects and several applied projects. The author, Prof. E. Lavri- scheva, gives lectures on subject of programming tech- nology (programming languages, compilers, program- ming automation systems, applied systems, OOP, UML, reusability, component programming, etc.) at Taras She- vchenko Kiev National University. The main direction of researches in SE department currently is the industry of applied systems and SPFs from reusable components. The training course on SE for students of KNU and Kiev Branch of Moscow Institute of Physics and Technology (MIPT) contains new sub- jects which are connected with system software in opera- tional environments (IBM, Apple, CORBA, Java) and methods of industrial manufacturing of software products (technological and product lines, methods of conveyor assembly on these lines, interaction, quality, etc.). As a result, a new theoretical foundation of SE disciplines for producing applied systems from readymade components was developed [1-5]. In this article, a new point of view on separate theore- tical and technological aspects of disciplines of software product industry is elaborated, as well as approaches to teach these aspects within the training course on SE us- ing program factories and web sites. 2. New Disciplines in Product Industry The main principles of SE are productivity, industry and quality, according to the corresponding body of knowl- edge-SWEBOK, which was developed in 1999-2004 by the international committee, formed by ACM and IEEE. SE is connected with the following disciplines: Com- puter Science, electronic engineering, mathematics, tele- communication and nets, cognitive sciences and so on. SE establishes relations with these sciences and inte- grated the principles and ground of fundamental sciences such as [1,4,6]: The theory of algorithms, which encompasses normal algorithms, computing function, Turing machines, algo- rithmic algebras, model of algorithms and programs, *Corresponding author. Copyright © 2013 SciRes. JSEA
 New Theoretical Aspects of Software Engineering for Development Applications and E-Learning 35 etc.; The mathematical logic—rules of logical calculi and propositions promoting formal definitions of theory correct conclusion and logical-algebraic specification of programs; A set theory—quantifiers of general existence and op- erations over sets that are used for formal representa- tion of axioms and theorems for various collection of software objects; The management theory—principles, methods and ge- neral laws of planning and control to obtaining and process information in cybernetic, organization and administrative systems; A Proof theory—mathematical inferences of theorems about programs with the help of axioms and state- ments, consistency theory, the theories of algorithmi- cally problems and verification by Dijkstra, Hoare, and Wirth and so on; The theory of classification mathematical and infor- mational object and programs, etc. Ten areas of SWEBOK knowledge have the two direc- tions: Development: requirement engineering, designing ar- chitecture, developing programs, testing and maintaining software. Management: managing project, configuration, quality, methods and means of SE. These areas knowledge correspond to the lifecycle processes of ISO/IEC 12207-1996, 2007 standard. Definition 1. Software engineering is a system of me- thods, techniques and disciplines of planning, develop- ment, maintenance and exploitation of software that can be mass-produced. This definition covers all the aspects of the creation of software beginning with the formulation of requirements, development of a product and its main- tenance and ending with its removal from exploitation. Body of SWEBOK is oriented towards software objects and provides means for software development of multi- purpose applied systems and informational systems. It does not, however, introduce target objects (AS, SPF, domains, etc.) and technologies for their development. According to the approach towards teaching computer sciences in the United States, software engineering plays a prominent role in the informational disciplines (Figure 1). The area of software engineering comprises the entire hardware level, as well as technological and organiza- tional levels of informational sciences. As a discipline, software engineering covers systematic software devel- opment of software system families, domains, and other scalable software projects. The main goal of software en- gineering is developing systematic models, reusable ready- made components, and reliable methods for producing high-quality software products. This goal encompasses theories, concepts, and paradigms, including both develop- ment structures for reliable software systems and man- agement aspects of the designing process to meet cus- tomers’ needs. We proposed a new classification of SE disciplines (Figure 1), which is necessary in industrial production of applied systems and SPFs [1,2,6]: Home Publications Learning Repository Contacts Link Searching for RC Select Platform All Platforms Select OS All Platforms Searching for manuals Searching for publications Select Manual (if necessary) All Books Select category (if necessary) All category Input text for Searching Search Home Literature “Software Engineering” Manual Author: Lavryscheva Katerina Myhailovna Generic Line f or p ar ticular programs production in MS.NET An Example of student’s program with the Line Software Products sertifying for storing them in Repository Assembling wit h Conveyor Line for Software Products Assembling from RCs and Processes Software Product Line You may ask questions Recent Reusable Components (RC) Repository Shingles algorithm Dzubenko Artem Aronov Andriy Moxiecode System Dzubenko Artem Recent Books Learning APPLICATION2 . The List of Standards. “Software Engineering” Manual APPLICATION1 . The Glossary of Terms. “Software Engineering” Manual Abbreviations& Denotations. “Software Engineering” Manual Visitors:5242 Learning Figure 1. Classification of SE disciplines. Copyright © 2013 SciRes. JSEA
 Current Distortion Evaluation in Traction 4Q Constant Switching Frequency Converters 36 Scientific discipline consists of the classic sciences (theory of algorithms, set theory, logic theory, proofs, and so on), lifecycle models, fundamentals data types, theory of integration and interface, theory of program- ming and the corresponding language tools for creat- ing abstract models and architectures of the specified objects, etc. Engineering discipline is a set of technical means and methods for software development by using standard lifecycle models; software analysis methods; require- ment, application and domain engineering with the help of product lines; software support, modification and adaptation to other platforms and environments. Management discipline contains the generic manage- ment theory, adapted to team-based software devel- opment, including job schedules and their supervis- ing, risk management, software versioning and sup- port. Economy discipline is a collection of the expert, quail- tative and quantitative evaluation techniques of the interim artifacts and the final result of product lines, and the economic methods of calculating duration, size, efforts, and cost of software development. Product discipline consists of product lines, utilizing software resources (reusable components, services, aspects, agents, and so on), taken from libraries and software repositories; it also contains assembling, con- figuring and assessing quality of software. The disciplines of scientifically and engineering rec- ommended for students training from the second courses, and disciplines management, economies and production will be learning from magister and aspirant courses. These specialists knowledge will be used in developing product lines for building AS and SPF from RC and estimating quality of software products [1,2,5-7]. 2.1. Scientific Discipline Theory of programming is a set of methods, languages, means of description (specification) and design of target objects and methods of their proof, verification, and resting. Methods of programming in SE include [8]: Theoretical (algebraic, algorithmic, logical etc.) and applied (object, component, agents aspects, etc.) tools intended for designing different types of target objects; Methods of program verification with the help of for- mal (assertion, inherence, and proof) procedures of OOP, UML, VDM and so on; Methods of estimation of the results design from analysis environment to programming and estimation characteristic quality (reliability, accuracy, function- ality, etc.) of finished products. Besides these theories, we proposed the new scientific results of the long-term research and development: Concept of formal definition for reusable components, applied systems and software product families as tar- get objects for production methodology; Component-based methods for the formal design of applied systems, and adapting this theory as evolu- tionary generative programming [6,7]; A new model of variability and methods for manage- ment process for applied systems within SPFs [8]; Interoperability between programs, systems, and en- vironments [9-11]. It is necessary not only to improve theoretical level of students’ qualification on software engineering, but also to teach them the new concepts, ideas and facilities, which had substantial influence on development of industrial production of applied systems. Scientific discipline is a basic course of teaching in Universities, related to informatics and computer science. This course, per se, is theoretical, and must be supported by some courses on systematic programming (object- oriented, component-based, service-based, etc.) and ad- ditional courses from the Curricula-2004 program. 2.2. Engineering Discipline Engineering discipline is defined as a set of engineering tools and standards oriented towards making target AS objects using the scientific discipline [2,6]. The basic means of this discipline are as the follows: Standards for software lifecycle (ISO/IEC 12207,) assessment (ISO/IEC 15504), etc.; Engineering reusable components, applications and domains; Generic system tools and instrumental environments for software product development. Engineering discipline contains the following basic tasks: Developing product lines from repository components and services; Developing AS from multi-language components using application and domain engineering [5]; Methods and means for supplying correctness (V&V); assessing system parameters (quality, cost, capacity) and configuring AS from reusable components [2]. The core notion for engineering discipline is that of product lines. Product line and product family are de- fined in the ISO/IEC FDIS 24765:2009(E)—Systems and SE Vocabulary as “a group of products or services hav- ing the common manageable set of properties which meets the requirements of a certain market segment” [12]. Models for representing processes of software devel- opment, according to Software Engineering Institute (SEI), are the engineering and the process model. The engineering model is created at SEI and corre- sponds to the three-step production: developing reusable components; merging them into software systems; man- Copyright © 2013 SciRes. JSEA
 New Theoretical Aspects of Software Engineering for Development Applications and E-Learning 37 aging components. The development process encompasses defining SPF domain, designing the manufacturing process for a set of components, allowing for its context of use, restrictions and production strategy. The merge process includes designing implementations of each software system on the base of the manufactured resources and components. The management process is oriented towards processes’ coordination. The process model sorts out a set of processes that run on the two levels: domain engineering level, which is also referred to as the development “for reuse”, and soft- ware systems’ engineering level, referred to as the de- velopment “with reuse”. Assembly lines use ready-made components, which improve the time of development and are able to support the whole manufacturing cycle ac- cording to the specific requirements and needs. Product lines for manufacturing experimental target object elements are developed using the instrumental and technological complex (ITC) [11] developed by authors. The ITC is represented with a web site (http://sestudy. edu-ua.net), oriented on developing reliable and inter- operable components, systems, and SPFs for modern en- vironments. 2.3. Engineering Discipline The site in question was developed as a collection of tools for SE and at the same time was displayed during lectures on SE at Kiev National University [13]. This drove authors to orient the complex towards teaching stu- dents and graduate students the basics of SE, includ ing various tools and means of its support, along the follow- ing aspects: Developing programs, reusable components, and ser- vices in the repository; Generating components and domains with subject- oriented languages like DSL; Assembling software products and their families from software resources and components. Taking the above into account, we have chosen a stra- tegy of teaching various aspects of industry-compliant SE. In order to gradually and consistently implement this strategy within the ITC, we utilized the Internet-based methods and modern programming systems that support different aspects of software development, namely: Protégé system to model object domains; Eclipse as a tool to embed different programming and system components into the ITC by using its plug-ins; Microsoft Visual Studio as a multifunctional tool to organize team development of the new systems, in- cluding developing software via Internet using PL, OOP, UML, and cloud computing frameworks (Azure, Amazon, etc.). CORBA system that has a universal broker providing interoperability between programs, written in different PL by using stub/skeleton mechanism. New subject-oriented DSL tools for designing do- mains, systems, SPFs and for implementing DSL- based descriptions (Eclipse-DSL, Microsoft DSL Tools, and others). The start page of the web site features a list of imple- mented sections and subsections concerning SE. The sec- tions in question are: Main Page, Technologies, Interop- erability, Tools, Presentations, and Learning. Each section contains subsections with keywords that specify the names of product lines (10 altogether). All sections and subsections include standardized pages, such as an overall theoretical description, an example that illustrates the concerned topic (developed with one of the workbench programming environments, in most cases), a thorough description of the example, and so on. Employees of the SE department and students of KNU and MIPT in course of writing their thematic and gradu- ate papers implemented the web site and several product lines of software development on the basic of RC and components. Particularly, they have developed an experi- mental program factory [13], software means of variabil- ity and interoperability support between programs and systems, a domain description in DSL, Protégé, and so on. 2.4. Economic Discipline The economy of software engineering is an independent SE discipline, connected with economic aspects of AS industry. It is based on economic calculations of different aspects of activity within a project, with allowance made for knowledge of all economic factors and current ex- penditures in the project [1,2]. The discipline contains theory and practice of solving problems on the examination of a project, cost estimation, assessment quality specified in the requirements on the system. Economic discipline provides estimation of re- quirements, design solutions, architectures, and devel- opment risks connected with available material and hu- man resources, quality indices of the AS, and also finan- cial calculations with each executor at all stages of con- tracts. The discipline in question is mostly developed from the viewpoint of methods of economic calculations in SE. It includes size prediction methodologies for AS (func- tion points analysis, feature points, mark-II function points, 3D function points, etc.), estimation of labor expendi- tures for system development with the help of the family of COCOMO models, and several other mathematical models for estimation of labor expenditures (Angel, Slim, Seer-SEM, etc.), as well as models connecting economic indices of AS with quality characteristics [5,9,14,15]. In forming this discipline, fundamental economic me- Copyright © 2013 SciRes. JSEA
 New Theoretical Aspects of Software Engineering for Development Applications and E-Learning 38 thods should be used that are related to the principles of distribution and examination of jobs in complex systems, methods of cost estimation for separate parts of a system depending on the size of its component parts and the cost of the system as a whole, existing standards providing the estimation and certification of finished products, etc. A systematized and scientifically grounded course of the economic discipline of SE will eliminate the gap that exists in SE and is caused by the absence of the corre- sponding manuals and textbooks for teaching specialists who will be engaged in solving economic problems in the industrial cycle of AS production. 2.5. Management Discipline The basis of this discipline consists of the classical man- agement theory, production management and the stan- dard PMBOK (Project Management Body of Knowledge) (IEEE Std.1490-2003) [1,2]. In this standard, control pro- cesses of a project and fundamental knowledge do- mains grouped around problems such as initiation, plan- ning, monitoring, management, and completion are speci- fied. The main domain of PMBOK is integration that includes the conception of management of organizational activity of the team of executors of a project. It is based on methods of making decision on resources, general design problems, correctness check services of a project, and provision of the project cost specified by the cus- tomer. These developed basic management and planning theo- ries, standard principles of PMBOK, the series of ISO 9001 standards regulating quality management, and the corresponding methodical project support must become the basis of the management discipline in SE. In higher schools, a curriculum on this discipline with the use of management theory will provide the preparation of highly skilled project managers and other specialists in the field of organizational management for software development. 2.6. Product Discipline There are multiple approaches to SPF industry: Assembly conveyor by academician V. M. Glushkov from readymade modules (1975); Conveyor by K. Czarnecki and U. Eisenecker [1]; Software factories of assembling applications by J. Greenfild, K. Short et al.; Continuous integration by Martin Fowler [3]; EPAM assembly line (Belarus) for building various types of software, improving software quality and re- ducing risk; Compositional programming by E. Lavrischeva for developing software products from reusable compo- nents, services, artifacts, and so on [5,9,13-18]. The notion of assembly conveyor by Glushkov has been developed for many years; nowadays the experi- mental program factory based on product lines for reus- able components has been created at Kiev National Uni- versity [14-18]. Interfaces of these components contain the standardized description in certain programming lan- guages (PL), as well as the communication interface to enable interoperability with other objects. 3. Textbook of Software Engineering Teaching students the aspects of software industry at Ukrainian universities is currently at its initial stage. To solve some education problems, a new approach to e- learning students some aspects of SE, oriented on assem- bling heterogeneous components using product lines and e-learning SE disciplines, has been introduced [2,3,14- 18]. The textbook is meant for teaching high school stu- dent’s development and management disciplines of SE. The main idea of the textbook is development of domains, applied systems and software families with reusable components and product lines [2]. The textbook is available in three languages (Russian version is hosted on http://www.intuit.ru, Ukrainian and English versions are available on http://sestudy.edu-ua. net). The book is meant for students, magistrates and aspirants, which are specialized on department of com- puter science and informatics. Each area of knowledge covered by the textbook contains an overall description, questions and literature for further study. During study- ing these areas, students may access examples on the ITC web site—www.programsfactory.univ.kiev.ua (Figure 2) and other tools [13-18]. Besides that they may elaborate new concepts and ar- tifacts and present them in a work or put on the afore- mentioned web site. 4. Conclusions Software engineering disciplines regarding theoretical and industrial aspects of AS development are elaborated: Essentials of SE disciplines and concepts for assem- bling software product families from reusable com- ponents; Concepts of product lines for producing AS using con- veyor principles; New models of interoperability and assembling com- ponents in systems; Configuring components within systems for work in ITC environment; Ontology representation of knowledge on new SE dis- ciplines on the web site; Lines (1-4) for the components development and as- sembling them into complex programs systems; Ontologies of Life Cycle standard ISO/IEC 12207- 2007 and General Data Types of standard ISO/IEC Copyright © 2013 SciRes. JSEA
 New Theoretical Aspects of Software Engineering for Development Applications and E-Learning Copyright © 2013 SciRes. JSEA 39 Figure 2. Classification of SE disciplines. 11404-2007 for generation the new special processes and data types of PL; The e-learning textbook on software engineering (Figure 2—ПРОГРАМНА ІНЖЕНЕРІЯ). REFERENCES [1] E. Lavrischeva, “Classification of Software Engineering Disciplines,” Cybernetics and Systems Analysis, Vol. 44, No. 6, 2008, pp. 791-796. doi:10.1007/s10559-008-9053-5 [2] E. Lavrischeva, “Software Engineering (in Ukrainian),” Akademperiodika, Kiev, 2008, 319 p. [3] Е. Lavrischeva and V. Petruchin, “Methods and Means of Software Engineering,” 2007. http://www.twirpx.com/ and http://www.intuit.ru/ [4] E. Lavrischeva, “Concept of Scientific Software Industry and Approach to Calculation of Scientific Problems (in Ukrainian),” Problems in Programming, Vol. 1, 2011, pp. 3-17. [5] E. Lavrischeva, G. Koval, L. Babenko, O. Slabospitska and P. Ignatenko, “New Theoretical Foundations of Pro- duction Methods of Software Systems in Generative Pro- gramming Context,” UK-2011, Іsoftware Institute NANY, 2011. 277 p. http://www.nbuv.gov.ua/ [6] E. Lavrischeva, V. Grischenko, “Assembly Programming. Basics of Software Industry (in Russian),” 2nd Edition, Naukova Dumka, Kiev, 2009, 371 p. http://www.twirpx.com/ [7] E. Lavrischeva, “Formation and Development of the Modular-Component Software Engineering in Ukraine (in Russian),” Akademperiodika, Kiev, 2008. [8] E. Lavrischeva, “Problem of Interoperability between Heterogeneous Objects, Components, and Systems. Ap- proach to Solve It,” Proceedings of 7th International Programming Conference on “UkrProg ‘2010”, 2010, pp. 28-41. http://www.isofts.kiev.ua/ [9] E. Lavrischeva, “Instrumental and Technological Complex for Developing and Learning Aspects of Software System Development (in Ukrainian),” Bulletin of NAS of Ukraine, Vol. 3, 2012, pp. 17-27. [10] A. Ostrovski, “Approach to Interconnection Support be- tween Java and MS.NET Programming Environments (in Russian),” Problems in Programming, Vol. 2, 2011, pp. 37-44. [11] I. Radetskyi, “One of Approaches to Maintenance inter- connection Environments Visual Studio and Eclipse (in Ukrainian),” Problems in Programming, Vol. 2, 2011, pp. 45-52. [12] K. Pohl, G. Böckle and F. J. Linden, “Software Product Line Engineering: Foundations, Principles and Techni- ques,” Springer-Verlag, New York, 2005. [13] K. M.Lavrischeva, “Theory and Practice of Software Factories,” Springer, New York, 2011, pp. 961-972 [14] A. Aronov and A. Dzubenko, “Approach to Development of the Students’ Program Factory (in Ukrainian),” Prob- lems in Programming, Vol. 3, 2011, pp. 42-49. http://www.isofts.kiev.ua/ [15] P. Andon, G. Koval, T. Korotun, E. Lavrischeva and V. Suslov, “Foundation of Software Systems Quality Engi- neering (in Ukrainian),” 2nd Edition, Akademperiodika, Kiev, 2007. http://www.nbuv.gov.ua [16] E. Lavrischeva, A. Ostrovski and I. Radetskyi, “Approach to E-Learning Fundamental Aspects of Software Engi- neering,” Proceedings of ICTERI-2012: ICT in Education, Research and Industrial Applications, 2012, pp. 176-187. http://senldogo0039.springer–sbm.com/ocs/home/ICTERI 2012.-CEUR-WS-paper-17-p-176-187.pdf/ [17] A. Kolesnyk and O. Clabospitskaya, “Tested Approach for
 New Theoretical Aspects of Software Engineering for Development Applications and E-Learning 40 Variability Management Enhancing in Software Product Line,” Conference ICTERI-12. http://ceur-ws.org/Vol-848/ICTERI-2012-CEUR-WS-pap er-31-p-155-162.pdf [18] E. Lavrischeva, A. Dzubenko and A. Aronov, “Conception of Programs Factory for Representation and E-Learning Disciplines of Software Engineering,” 9th International Conference ICTERI, ICT in Education, Research and Industrial Applications, Integration, Harmonization and Knowledge Transfer, Ukraine, June 17-21, 2013. http://ceur-ws.org/Vol-1000/ Appendix About Authors Katerina Lavrischeva, (E.М.) Dr. Sci. (Phys.-Math.), prof. (1989), first in USSR led the “Software Engineer- ing” department (1980). Her scientific works in SE are known in Ukraine, CIS and journals of foreign countries. She elaborates the new concepts and methods technolo- gies development of systems and programs from ready components by compositions. She has 8 monografies and 3 textbooks on tecnologies of programming and SE for software industry. She studies students of Kiev National University to this task from 1976 and to day of e-text-book. Alexei Ostrovski, Graduate Student of Institute of Cy- bernetics National Academia Sciences Ukraine from 2012. Copyright © 2013 SciRes. JSEA
|