Content uploaded by Shafagat Mahmudova
Author content
All content in this area was uploaded by Shafagat Mahmudova on Oct 17, 2018
Content may be subject to copyright.
1
© 2018 Conscientia Beam. All Rights Reserved.
METHODS OF ORGANIZING THE TECHNOLOGICAL PROCESS OF SOFTWARE
DEVELOPMENT
Shafagat Mahmudova1
1SE Department, Institute of Information Technology of ANAS, Baku,
Azerbaijan
ABSTRACT
Article History
Received: 29 June 2018
Revised: 6 August 2018
Accepted: 13 September 2018
Published: 10 October 2018
Keywords
Software
Technology
Process
Technological process
Risks
Technological and innovation
Process.
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.
Contribution/Originality: 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.
1. INTRODUCTION
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
Review of Information Engineering and Applications
2018 Vol. 5, No. 1, pp. 1-11
ISSN(e): 2409-6539
ISSN(p): 2412-3676
DOI: 10.18488/journal.79.2018.51.1.11
© 2018 Conscientia Beam. All Rights Reserved.
Review of Information Engineering and Applications, 2018, 5(1): 1-11
2
© 2018 Conscientia Beam. All Rights Reserved.
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.
2. INTERACTION OF PEOPLE, TECHNOLOGY AND PROCESS
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:
• People deal with data processing;
• Various technologies are used for data processing;
• Data is transferred through processes.
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;
• basic;
• subsidiary;
• organizational.
Review of Information Engineering and Applications, 2018, 5(1): 1-11
3
© 2018 Conscientia Beam. All Rights Reserved.
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]:
Single technological process (STP) is a technological process of manufacturing or modifying the products
with the same name irrespective of production type;
Typical technological process (TTP) is a technological process of producing a product group with common
and identical constructive and technological features;
Group technological process (GTP) is a technological process of producing a product group with different
designs, but with common technological features [5].
Here, it is important to explore the features and models of software development process.
3. SUB-PROCESSES OF SOFTWARE DEVELOPMENT
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:
Review of Information Engineering and Applications, 2018, 5(1): 1-11
4
© 2018 Conscientia Beam. All Rights Reserved.
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.
4. TECHNOLOGICAL AND INNOVATION PROCESS FOR SOFTWARE
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]:
1. Basic research – a phase of technological and innovation process, which is often implemented in large
companies, for example in, pharmaceutical, energy and information sectors.
2. 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.
3. Development. After a successful market solution, it is time to develop product, service or process. It is
required to develop and test their prototype.
4. Engineering. It should be turned into a product, the volume of which is enlarged with the support of
prototypes. Thus, they can be processed in sequence or meet specific needs of the field.
Review of Information Engineering and Applications, 2018, 5(1): 1-11
5
© 2018 Conscientia Beam. All Rights Reserved.
5. Manufacture. This is one of the important aspects of technological and innovation process. The ultimate
goal is to define the best way to deliver quality products to customer.
6. Marketing. Once the product is ready for service, it is time to implement conceptual testing, marketing
exploration and inspection in the market, and make associated adjustments.
7. Promotion. After the market testing, the products are presented at the national or global levels,
depending on the markets the company serves. At this phase of technological and innovation process
elastic marketing can be used. Thus, Scrum and Kanban methodologies are used for successful results and
fast product launch. Kanban - a method of software development management is based on principle of
"timely and accurate" and provides equal distribution of workload among employees. When this approach
used, entire workflow becomes transparent to all team members [10].
8. Continuous improvement. Once the product is utilized, the processes used for production and delivery
are always controlled and analyzed to find ways to improve them. Most studies on open innovation in
software development focus on idea and knowledge. However, openness can be useful for innovation
process [11].
5. THE MAIN STAGES OF TECHNOLOGICAL PROCESS OF SOFTWARE DEVELOPMENT
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:
1. Writing a technical task by analyst;
2. Agreeing with customer;
3. Informing analysts about programmers;
Review of Information Engineering and Applications, 2018, 5(1): 1-11
6
© 2018 Conscientia Beam. All Rights Reserved.
4. Identifying programmers;
5. Providing the technical tasks to a programmer;
6. Studying the technical task by a programmer;
7. Writing program code based on software by a programmer;
8. Providing a distributive based on the written software code (initial set of codes of software components);
9. Providing a distributive to other programmers for verification;
10. If the verification is successful, then software code is tested and confirmed whether it is appropriate to the
requirements, and so on.
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.
6. DISADVANTAGES OF SOFTWARE DEVELOPMENT PROCESS
Technological process of software development has some disadvantages:
1. Actual complexity of the distribution of sub-tasks is not taken into account;
2. Lack of approach to evaluating the effectiveness of software development in technological process;
3. Lack of quality assessment;
4. Process is based solely on human factor, and so forth.
The following issues need to be solved to address these shortcomings:
• Ensure "transparency" of working process;
• Optimal distribution of tasks by the participants (analysts, programmers, etc.) should be ensured;
• Implementation time should be minimized;
• Execution time of unnecessary resources should be minimized for effectiveness of the implementation time of
the process;
• Probability of errors should be minimized;
• New tools should be developed to predict the time required for problem solving, and so forth.
Offers several ways to increase the effectiveness of software development process:
A metric is developed to estimate resources;
A metric is developed to assess complexity of issues;
An imitation model is designed.
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.
Review of Information Engineering and Applications, 2018, 5(1): 1-11
7
© 2018 Conscientia Beam. All Rights Reserved.
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.
7. IMPROVEMENT OF THE PROCESS
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:
1. It is required to rapidly change the software technology, study and apply new tools;
2. There is a rapid growth of companies and access to new markets, which requires re-organization of the
business;
3. There is a high competition, as it requires the search of more efficient, economical, more cost-effective ways
of developing software.
The process can be improved by taking into account the following:
• Transition to new development tools, new programming languages, etc.;
• Improvement of management and engineering practices - inspection, management of requirements and so
on;
• Complete, comprehensive redesign of all processes in the project;
• Company certification (CMM / CMMI, ISO 9000, etc.).
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 expan sion 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]:
Software product is non-material;
Review of Information Engineering and Applications, 2018, 5(1): 1-11
8
© 2018 Conscientia Beam. All Rights Reserved.
There is no standard processing of software;
Large software projects are "one-off" projects.
Management Process:
Writing suggestions for creating software. Suggestions should include the objectives of the project and
ways to reach them. They also include financial and temporary expenditure assessments for the project
implementation. Where necessary, the transmission of the project to an external organization is also
envisaged;
Preparing the graph for scheduling and processing of software. During the project planning phase,
processes, stages and outputs are determined based on the implementation of each of them, which should
lead to project implementation. Implementation of this plan will lead to the fulfillment of the project goals.
The design value of the project is directly related to its planning, where resources are required for the
implementation of the plan;
Project Cost Evaluation;
Monitoring the progress of the work. The manager should always monitor the progress of the project and
compare the actual and plan performance values of the work;
The selection of staff. Guides - project managers usually choose staff for their projects. But in many cases,
managers rely on the team of manufacturers, because they are far from perfection;
Writing reports. The project manager usually sends the software implementation reports to both the
customer and the organization. This should be a short document based on project reports. These
documents allow for a clear assessment of the degree of readiness of the software product being developed;
Set project limitations;
Preliminary evaluation of project parameters;
Identify project implementation stages and control records;
Scheduling charts;
The beginning of the work execution;
Waiting for the end of the next phase of the work;
Follow-up of work progress;
Review of project parameters;
Business graphics change;
Review of project constraints;
Review of the technical or organizational parameters of the project.
Project Plan:
Introduction. A brief description of the purpose of the project and its limitati ons (budget, etc.), which is
important for project management.
Project implementation. Describe the division of responsibilities between the team of producers and its
members.
Risk analysis. Describe the possible risks of the project; identify the probabilities and strategies to reduce
them.
Apparatus and software resources necessary for project implementation. A list of hardware and software
required for software product development. Adding value to purchasing and delivery schedules, if required to
purchase hardware.
Stages of work divided into stages. The implementation of the project is based on separate processes, the
implementation phase of the project, the outcome of each stage and the control records.
Review of Information Engineering and Applications, 2018, 5(1): 1-11
9
© 2018 Conscientia Beam. All Rights Reserved.
Schedule of works. This graph depicts dependencies between the software individual processing procedures,
their performance and the evaluation of the time division of the members of the team of manufacturers on
separate stages.
Monitoring and control mechanisms for project implementation. Reports on the progress of the tasks
provided by the Manager, the timing of their submission, as well as the entire project monitoring
mechanisms.
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:
Project risks, which affect the schedule or resources required for project implementation;
Risks for software products being processed;
Bismuth risks belong to the organizational-producer.
Risk Management:
• Determination of risks. Identify possible risks for the project, prepared product and business;
• Risk analysis. Estimates of the risks of probability of occurrence of hazardous situations are assessed;
• Risk planning. Measures are to be taken to minimize risk or reduce risks to the project;
• Risk monitoring. Implementing measures to continually assess risk probabilities and reduce the
consequences of hazardous situations.
Risk Assessment:
The list of possible categories of risks is shown below.
• Technology Risks. Looking for software and hardware technologies that the system is working on;
• Personnel risks. Connected with members of the Producer team;
• Organizational risks. It occurs in the environment of the organization where the project is b eing
implemented;
• Instrumental risks. The use of CASE tools and support for the software organization process;
• Risks associated with system requirements. There may be risks associated with the requirements put to the
system being processed;
• Risks of Assessment. Related to the evaluation of the software system and resources required for the project
implementation.
Risk Monitoring:
Risk monitoring results in recurring occurrences of risks and losses, as they can be damaged.
Risk analysis:
• Risk prevention strategies. Based on these strategies, it is necessary to take measures that minimize the
likelihood of the risk manifestation. As an example, it is possible to show the strategy of removing potential
defective components;
• Strategy minimization. It is aimed at reducing possible risks associated with risk. For example, it is possible
to show the strategy of harm reduction of the members of the team's producers;
• Planning for "accidental" situations. These strategies need to have an action plan that must be implemented
in the event of a hazardous situation.
8. CONCLUSION
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.
Review of Information Engineering and Applications, 2018, 5(1): 1-11
10
© 2018 Conscientia Beam. All Rights Reserved.
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.
REFERENCES
[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://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.
Review of Information Engineering and Applications, 2018, 5(1): 1-11
11
© 2018 Conscientia Beam. All Rights Reserved.
[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.
BIOGRAPHICAL NOTES
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.
Views and opinions expressed in this article are the views and opinions of the author(s), Review of Information Engineering and Applications shall not be
responsible or answerable for any loss, damage or liability etc. caused in relation to/arising out of the use of the content.