The article provides information on the methods of organizing the technological process of software development. The key point is that if information is processed, it must be used for these three elements It explores the interaction of people, technology and process. Types of technological processes and software development models are analyzed. Technological process is the adjusted sequence of interconnected actions, starting from the moment of initial data generation to the preferred result. Technological processes consist of "technological operations", which, in turn, are shaped by "technological transitions." “Technological transitions” are called a finished part of technological operation implemented with the same tools of technological supply. In other words, technological process is a part of production process, which includes purposeful actions for the determination of the state of subject of labor. The subject of labor includes software development. Software development process in its production is a process of grouping the implementations into separate stages to prepare and design software, and to improve product and project management. It is also known as a life cycle of software. The methodology may include predefined certain results and artifacts generating and finishing the project for software development together with team. The implementations during the phases of technological and innovation process are explained. The methods for effective organization of technological process of software development are shown. Disadvantages of technological process are examined. Possible risks for software projects and their solution ways are revealed.
Keywords:Software, Technology,, Process, Technological, process , Risks, Technological, and, innovation, Process.
Received: 29 June 2018/ Revised: 6 August 2018 / Accepted: 13 September 2018/ Published:10 October 2018
This study contributes in the existing literature of methods of organizing the technological process of software development. Technological process is the adjusted sequence of inter connected actions, starting from the moment of initial data generation to the preferred result. These study users business areas a variety of software.
Many areas of professional human activity, such as machine engineering, aerospace industry, automotive industry, space exploration, climate control, environmental protection, national security, finance and economy, healthcare and so forth, use from software. Such important software requires high reliability and is of great significance for people's lives. Software improves and develops. A number of new terms related to software development are generated. One of these terms is the term "evolutionary computation", which is of technical importance for computer science: for example, criteria for search in the environment of possible solution used to find the best solution for problem solving in the study of algorithms. Many conferences are dedicated to evolutionary computation in the information society, and many scientific articles are related to the application of evolutionary methods [1].
Evolutionary computation is used to optimize the development of artifacts and processes in the most various engineering fields. Until the end of last century, few studies on software engineering have been devoted to the application of evolutionary computation. This has led to the development of a new field of research called search-based software engineering (SBSE). This research included the application of search optimization methods to solve software engineering problems.
Over the past few decades, researchers have used SBSE for a range of software engineering tasks. Many methods were developed for search optimization, including analysis of requirements, forecasting, projection, testing, and so forth. SBSE is used not only for the evolutionary computation, but also for other optimization algorithms. Various models and methods are also used in the technological process for software development and optimization.
Various reliable models are available in software engineering. Business areas use a variety of software. In this case, it can be viewed as a model of Process, Technology and People. The key point is that if information is processed, it must be used for these three elements [2] (Figure 1).
Figure-1. Data processing procedure [2]
This is a quite good model, and obviously, these three elements need to be taken into consideration for IT-projects not to fail. As a rule:
The process is a gradual change of state of an object within a time from quantitative and qualitative point of view [3].
Three groups of standard processes are distinguished;
Technological process (TP) is the adjusted sequence of interconnected actions, starting from the moment of initial data generation to the preferred result.
In other words, technological process is a part of production process, which includes purposeful actions for the determination of the state of subject of labor. The subject of labor includes software development.
Practically, any technological process can be reviewed as an integral part of complex process and as a less complex set of technological processes (Figure 2).
Figure-2. Components of technological process [4]
Technological processes consist of "technological operations", which, in turn, are shaped by "technological transitions."
“Technological transitions” are called a finished part of technological operation implemented with the same tools of technological supply.
Different types of technological processes are distinguished depending their application [4]:
Here, it is important to explore the features and models of software development process.
As noted, software development process can be viewed as a regular structure arranged for it Ian [6].
Software development process in its production is a process of grouping the implementations into separate stages to prepare and design software, and to improve product and project management. It is also known as a life cycle of software. The methodology may include predefined certain results and artifacts generating and finishing the project for software development together with team [7].
Many models of software development process are available, each of which describes its approach to tasks or activities, and each process has its own position and function.
Software development process consists of many sub-processes shown in Figure 3:
Figure-3. Sub-processes of software development process [1]
A brief description of each of them is given below.
Requirements analysis – includes a set of requirements and is an integral part software development process, providing their systemization, and disclosure of their interactions, and documentation. Here, the concept of "requirements engineering" emerges, which is a part of the general engineering.
Software projection – a process of developing software project and studies and implements projection methods.
Programming - a process of developing computer programs.
Software testing - an application process, i.e., a trial for a proper software product testing to obtain expected results in the final version of selected tests [1].
Software application - a process of software application under certain usage conditions.
Accompaniment software - a process of software enhancement, optimization and troubleshooting after its utilization.
Technological and innovation process consists of a series of phases needed for software enhancement or development of new production process, product, etc.
Eight phases of technological and innovation process are listed below [8]:
Basic research – a phase of technological and innovation process, which is often implemented in large companies, for example in, pharmaceutical, energy and information sectors.
Applied Research. Once some specific market needs are revealed, solution to the problem is found among the dominant technologies of the company. Hence these needs generate a strong competitive advantage for business [9]. Currently, Scrum is one of the most popular software development technologies in this area. Scrum is a kernel software development, thus people can solve problems arisen from the workflow and obtain high-quality products [9]. In other words, Scrum is a set of principles, based on which software development process is built. Accordingly, iteration time called sprint and the greatest priorities are defined, and a user is enabled to work with new features.
Development. After a successful market solution, it is time to develop product, service or process. It is required to develop and test their prototype.
The main stages of technological process of software development are shown in Figure 4.
Figure-4. Stages of technological process of software development [12]
One of the topical issues is the effective organization of software development process. There are various approaches to organization of this process in various articles [12] distinguishes several stages of technological process of software development:
If software code errors occur in the testing stage, it may be repeatedly returned to the programmer for re-development. This process continues until the software fully meets requirements and is tested successfully. The software can then be commissioned.
Technological process of software development has some disadvantages:
The following issues need to be solved to address these shortcomings:
Offers several ways to increase the effectiveness of software development process:
Recently Enterprise 2.0 model has been developed in both large companies and small and medium enterprises; Companies share information with interested partners, as well as customers. Considering the customer responses and tips is useful for improving product quality. A good plan for managing the transition from traditional model to open and developed model is very significant. In this case, there is no need to use outdated software [13].
Currently, markets are globalizing. Involvement of various skilled people in global software development and the use of different commonly adopted management and technology resources are of utmost importance. They are used to develop high quality and high level software and to minimize costs [14].
Authors of electronic industry in Scotland [15] showed that although many companies have focused their attention on product improvements and innovation procedures, and as such, they do not formulate technology management at this or that level. In order to meet this need, the authors offer a completely new approach to the acquisition of new technologies, as some aspects of technology management are combined. The new approach leads to the acquisition of a common model of technology, as it can be used at both strategic and operational levels. For this purpose, the software package has been developed, as it carries out the model to give decision-makers to implement the technology acquisition process.
How people work, how are their sequences, what are the norms, behaviors and rules in the conduct of the work, how is the relationship between the members of the team, how the project works with the outside world and so on? All of these can be called a process. Its understanding, sequencing and improvement are the basis of the effective functioning of any group. Therefore, the process is one of the basic concepts of software engineering [16].
The central object of software engineering is the process of establishing a software - a large number of different types of activities, methods, methods and steps, products used and related to software development and related products (project plans, documentation, software code, tests, user documentation etc.) different type.
However, today there is no universal process for the operation of the software: any set of methodologies, guidelines and guides is different for any company, any national team. Every current business process carried out by a team within a particular project has great personal characteristics. However, it is desirable to plan the process before starting the project, determine the roles and responsibilities of team members, determine the team members' participation in product development and so on.
Software upgrades (Software process improvement) is an existing process change process to improve the quality of the products being created. The reasons for the relevance of this activity for the company-producers result in:
The process can be improved by taking into account the following:
The classic models of the process.
Determination of the process model. The whole process of creating software is not the same type. This or other method determines the development of the software as a rule, the dynamics of the expansion of one or another of the activity, i.e., the process model. The model is a good abstract of the software is use of different methods, allowing it to be laconic, compressed and informative.
Phases and activities. When designing the process model, you need to distinguish between phases and types of activities.
Phase is a certain stage of this process, with the beginning and the end results. For example, the stage of project feasibility, the stage of submission of the project and so on. Phases follow each other linearly.
The type of activity is a particular type of work performed in the software process. Different types of activities require professional skills and are implemented by different professionals. For example, project management - project manager, coding - programmer, test - testers. There are some types of activities that can be implemented by the same professionals - for example, coding and design (especially small projects) are carried out by the same people.
The difference between the process of the software development and the technical project implementation process is as follows Ian [17]:
Management Process:
Project Plan:
Risk Management:
Risk can be understood as the possibility of manifesting any adverse effects that may adversely affect the project implementation schedule.
Possible risks for software projects:
Risk Management:
Risk Assessment:
The list of possible categories of risks is shown below.
Risk Monitoring:
Risk monitoring results in recurring occurrences of risks and losses, as they can be damaged.
Risk analysis:
In modern times, every producer on the software fights not only for the quality of the product, but also for the effectiveness of the production. The first step in this direction is to switch from supervision to monitoring of the technological process on-line.
Despite the constant and significant progress made in the software industry over the past decades, software is quality and budget has remained challenging for this area. The complex nature of this problem, as a comprehensive approach to its solution is required.
One of the most important concepts in software engineering is the process of developing the software. At present, various processing, processes of the software are known, each of which continues its development [18].
The process of processing the software is generally a non-determinate process, which is an undefined process, as it is accompanied by a large amount of uncertainties (human factor, unstable requirements, etc.).
Such uncertainties, in turn, are a risk factor for the project, so it is necessary to minimize them.
Disclosure of risks - this is the main type of activity in any software process, all of which endangers the outcome of the software project. Improving technological processes for software projects and identifying ways to eliminate possible risks in this area will create quality software.
Funding: This study received no specific financial support. |
Competing Interests: The author declares that there are no conflicts of interests regarding the publication of this paper. |
[1] S. Kuznetsov, "Programmnaya inzheneriya i smezhnyye distsipliny," Otkrytyye Sistemy SUBD. Moskva: Sistemáticamente Otkrytyye, vol. 10, pp. 56-62, 2011.
[2] T. Leon, "The interplay of people, process and technology. Retrieved from https://community.dynamics.com/crm/b/leontribe/archive/2011/12/02/the-interplay-of-people-process-and-technology," 2011.
[3] Y. A. Zhogolev, Technology of programming. Moskva: Nauchnyy Mir, 2004.
[4] E. L. Zhukov, I. I. Kozar, S. L. Murashkin, B. Y. Rozovskiy, V. V. Degtyarev, and A. M. Soloveychik, Engineering technology. Moskva: Vyssh. shk, 2003.
[5] Y. A. Titov, System of automated design of technological processes: UlSTU, 2010.
[6] S. Ian, Software engineering. London: Pearson, 2002.
[7] G. Suryanarayana, T. Sharma, and G. Samarthyam, "Software process versus design quality: Tug of war?," IEEE Software, vol. 32, pp. 7–11, 2015.Available at: https://doi.org/10.1109/ms.2015.87.
[8] V. Pierre, "The technological innovation process and its 8 steps. Retrieved from https:// href="http://www.heflo.com/blog/technology/technological-innovation-process/,">www.heflo.com/blog/technology/technological-innovation-process/, " 2018.
[9] S. Ken and S. Jeff, The scrum guide: Scrum.Org and ScrumInc, 2013.
[10] E. Pestereva, Kanban and just in time for Toyota: Management begins in the workplace. Moscow: Alpina Business Books, 2008.
[11] G. Von Krogh, "Winning with open process innovation," MIT Sloan Management Review, vol. 59, pp. 53-56, 2018.
[12] R. V. Tretyakov, E. M. Dimov, O. N. I. Maslov, and R. R. Khalimov, "Improving the management of the software development process based on mathematical models and simulation technology," Information Technology, vol. 23, pp. 782-790, 2017.
[13] D. Consoli, "The integrated software platform in the implementation of an enterprise 2.0 model," in Proceedings of International Scientific Conference ICT for competitiveness, Karvina, Czech Republic, February 2-3, 2012, pp. 59-66.
[14] I. Caballero, A. Vizcaino, and M. Piattini, "Optimal data quality in project management for global software developments," presented at the Fourth International Conference on Cooperation and Promotion of Information Resources in Science and Technology, 2009.
[15] T. S. Durrani, S. M. Forbes, and C. Broadfoot, "An integrated approach to technology acquisition management," International Journal of Technology Management, vol. 17, pp. 597-617, 1990.Available at: https://doi.org/10.1504/ijtm.1999.002738.
[16] D. Koznov, Introduction to software engineering. University: St. Petersburg State University, 2009.
[17] S. Ian, Software engineering. London: Pearson, 2011.
[18] R. Ramsin and R. F. Paige, "Process-centered review of object-oriented software development methodologies," ACM Computer Surveys, vol. 40, pp. 1-89, 2008.Available at: https://doi.org/10.1145/1322432.1322435.
Sh. Mahmudova defended the thesis on the "Development of methods and algorithms for human face recognition on the basis of photo-portraits" in the specialty 3338.01 - "System analysis, control and information processing" and gained PhD degree in Technical sciences. She is associate professor. She is the author of 47 articles and 43 theses. 51 of them were published in the international journals. Sh.J.Mahmudova was elected deputy editor-in-chief of International Journal of Intelligent Information Processing (IJIIP), and a member of editorship of Gconference.NET portal. Sh.
Mahmudova was elected deputy editor-in-chief of International Journal of Intelligent Information Processing (IJIIP), and a member of editorship of Gconference.NET portal. Sh. Mahmudova was elected a reviewer of International Journal of Automation and Power Engineering. The journal is published by the Science and Engineering Publishing Company (Riley, Indiana, USA). Sh. Mahmudova was elected a reviewer of "Pattern Recognition", Journal of Control Engineering and Technology (JCET) and "British Journal of Applied Science & Technology". She teaches at the “Training Innovation Center” of ANAS Institute of Information Technologies. Currently works as a chief engineer of the Institute.