ArticlePDF Available

Research Process on Software Development Model

Authors:

Abstract and Figures

Software development model is the form of the organization and management of software development which affects the quality of software development directly, and it is one of the most important research contents of software engineering too. Firstly, we analyze and summarize a series of software development models for total thirteen types which are applied in software development generally, and survey the characteristics of each model. Secondly, some of the improved software development models and their applications according to certain application fields are introduced briefly. Finally, as the future research work, both software development based on 4GT (The Fourth Generation Technology) and software intelligent development based on data-driven in big data era are prospected in this paper.
Content may be subject to copyright.
IOP Conference Series: Materials Science and Engineering
PAPER • OPEN ACCESS
Research Process on Software Development Model
To cite this article: Jiujiu Yu 2018 IOP Conf. Ser.: Mater. Sci. Eng. 394 032045
View the article online for updates and enhancements.
This content was downloaded from IP address 139.81.118.35 on 07/08/2018 at 18:19
1
Content from this work may be used under the terms of the Creative Commons Attribution 3.0 licence. Any further distribution
of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI.
Published under licence by IOP Publishing Ltd
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
Research Process on Software Development Model
Jiujiu Yu
College of Computer Engineering, Anhui SanLian University, Hefei 230601, China
yjjyjL@163.com
Abstract. Software development model is the form of the organization and
management of software development which affects the quality of software
development directly, and it is one of the most important research contents of software
engineering too. Firstly, we analyze and summarize a series of software development
models for total thirteen types which are applied in software development generally,
and survey the characteristics of each model. Secondly, some of the improved
software development models and their applications according to certain application
fields are introduced briefly. Finally, as the future research work, both software
development based on 4GT (The Fourth Generation Technology) and software
intelligent development based on data-driven in big data era are prospected in this
paper.
1. Introduction
Software development model is an expression of the whole process of software development, which
defines the main activities clearly to instruct the working tasks on software development that to be
completed. It is the structural framework of all the work and tasks which are implemented by system
development, running and maintenance to across the entire software life cycle, and the relationship
between the various phases of software development activities are also given [1]. As we all know,
there are various software development approaches that defined and designed which are used or
employed during development process of software [2]. These approaches are also referred to software
development models. However, each model follows a particular life cycle to ensure success in process
of development, and its advantage and disadvantage are all existed indeed. Software development
cycle and software quality will be affected by software development model directly, and it is the
important form of the organization and management for software projects in modern IT enterprise.
2. Software Development Model
2.1. Waterfall Model
Waterfall model is a traditional software development model, but the framework of the model is much
simple. The model consists of development phases of requirements analysis, designing, coding, testing,
and maintenance, but each phase must be executed in queue, and requirements must be known up front.
But, it's difficult to imagine every detail in advance in reality. Most projects start out with some
uncertainty, and more details are learned as the project progresses. The major disadvantage of model is
that problems in system aren't be discovered until late in process(testing phase), but it leaves little
2
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
time for correction, resulting in potentially disastrous which effects on project schedule and cost [3].
The application of this model in modern IT enterprise is little now.
2.2. Prototype Model
Prototype model is another simple software development model, but is widely used now. The core
idea of prototype model is that the developers and users quickly determine the most important
requirements for users at first, and a prototype of a software product can be achieved rapidly.
According to the evaluation and feedback by users, the prototype is modified constantly by developers
until users’ satisfaction. Prototype model is suitable for environment which the requirements for users
are uncertainty at the beginning of development. Developers should have good experience on
development, so the most important requirements could be achieved by establishing prototype of
software product [4]. However, applications on this model may cause the development process
immobilized, the innovative ideas for developers will be limited, and it is difficult to update and
manage the documents.
2.3. Incremental Model
Incremental model (shown as Figure 1) is a non-monolithic model. The model combines the sequential
features on waterfall model with the rapid iterative features on prototype model [5]. Based on the
previous increment, the latter increment is developed, and each increment can be developed by using a
waterfall or a rapid prototype model.
A software product can be delivered which are divided into several periods, it allows users to use
some of the basic functions, and other functions of the product will be continued to be developed by
developers at the same time. The model is also suitable for software projects with design risks and the
uncertain requirements in early time.
2.4. Spiral Model
Spiral model (shown as Figure 2) uses a periodic method to develop the system. Each cycle includes
four phases: requirements definition, risk analysis, project implementation and evaluation. The four
phases are iterated. Software development is promoted to a level when an iteration process is finished
in the model. The advantage of the model is that risk analysis is emphasized for developers and users
in each round of iteration, so the model is suitable for the development of lager system. But, the
disadvantage of the model is that the application of spiral model requires an amount of experts with
experience on risk assessment to participate, and excessive iterations will increase the costs on
development and cause submission delaying.
2.5. Fountain Model
Fountain model (shown as Figure 3) is based on user driven and object driven, and it is suitable for
object-oriented software development process.
There are no specific orders and clear boundaries for each phase of development in the model, and
all phases of development can be taken place international. The fountain model has the advantage that
a progressive piece of software is allowed to be added on each iterative development, and easier to
supple the missing in other phases of development at any time during one development phase. The
disadvantage of the application of fountain model is that in the iterative development may face the
possibility of adding a variety of information, requirements and information at the time, it requires a
large number of developers, and is not convenient to project management.
3
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
Figure 1. Incremental model. Figure 2. Spiral model.
2.6. XP Model
XP (Extreme Programming) model (shown as Figure 4) is a lightweight and progressive model which
based on software agile development method.
In XP model, the whole development process is divided into six phases and is shown as figure 6.
The core ideas of the model are a set of values, principles and practices for rapidly developing high-
quality software that provides the highest value for the customer in the fastest way possible [6]. XP
model is widely used on development of small software projects with high risk and has the advantage
of adapting to rapid changes in user requirements in modern IT enterprise. Applications on XP model
enables developers to focus on coding and avoiding unnecessary to work of documents management.
Figure 3. Fountain model. Figure 4. XP model.
2.7. RUP Model
RUP (Rational Unified Process) model (shown as Figure 5) describes the life cycle of an entire
software development over time by the development of managing the project cycle [7]. RUP model
has nine core workflows which are used in turn, and they are emphasized repeatedly on each iteration.
Architecture based on centered, use cases driven, iterative and incremental are the main features on
RUP. However, due to the complexity of the development process in the RUP model and its close
links, it is not suitable for small software development projects. At present, many software developers
try to cut or simplify some workflows of RUP model appropriately and combine them with the X
model to apply on development of small software projects successfully.
2.8. RAD Model
RAD (Rapid Application Development) model (shown as Figure 6) is a variation of waterfall model
that completes the rapid development of software by using of reusable components [8].
(*Note: BM-Business Modeling, DM-Data Modeling, PM-Process Modeling, AG-Application
Generation, TR-Test and Repetition)
RAD model is actually an incremental development model with process of business modeling, data
modeling, process modeling, application generation, test and repetition which emphasizes extremely
4
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
short development cycles that allow a development team to create a fully functional system in a short
of the time, such as 60 to 90 days. By the way, Development processes in RAD model are not to use
the traditional third-generation programming language to create software, that is to say, RAD model is
not suitable for development which the system is not reasonably modularized, and is not suitable for
the system with higher risk on requirements, or the interfaces on components are need to be changed
frequently either.
Figure 5. RUP model. Figure 6. RAD model*.
2.9. WINWIN Model
WINWIN model (shown as Figure 7) combines characteristics on spiral model with prototype model,
emphasizing risk analysis and identification, and through earlier negotiations to achieve a double
winning result for users and developers on software development activities [1]. Three milestones of
goal on life cycle (Defines a set of goals for each major software engineering activity.), architecture on
life cycle (Establishes the goals that must be met when system and software architectures are defined.)
and Initial operation ability (Represents a set of goals, as well as the preparation for these goals and
pre-installation sites for the software to be installed or sold which is associated with the helps for
software.) are in WINWIN model, to represents the three different views on progress of the project
development for spiral.
The advantage of WINWIN model is both users and developers are all understand the risk which is
emerged at each level of evolution and are responded accordingly [9]. They will get a balance on
developing resources. On one hand, most of the functions of system can be achieved for users. On the
other hand, developers could also gain the achievable budgets and frames of time in reality.
2.10. Intelligent Model
Intelligent model (shown as Figure 8) is also known as a "knowledge-based software development
model", which combines a waterfall model with an expert system to integrate knowledge system
(based on software engineering knowledge) and expert system (including knowledge rules in the
application area ), using expert system to help software developers to work. The intelligent model has
a set of tools (such as data query, report generation, data processing, screen definition, code generation,
high-level graphics functions and spreadsheets, etc.), each tool allows developers to define certain
characteristics of the software at a high level and automatically generate the developer-defined
software as source code [10].
But, it requires the fourth generations of language (4GL) to support. At present, intelligent model is
still based on framework of waterfall model, but prototype method and object-oriented development
technology are applied in different phases of intelligent model [1]. However, intelligent model is
entirely depended on theoretical knowledge. It needs to establish a knowledge base through
knowledge acquisition and knowledge representation. It also needs cooperation from experts in
specific fields and is generally applied to the development of complex expert decision systems.
5
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
Figure 7. WINWIN model. Figure 8. Intelligent model.
2.11. Parallel Model
Parallel model focusing on the state of a series of technical tasks and activities in software engineering,
and these activities are defined as an activity network.
Each activity on the web can be occurred on parallel with other activities, and this model provides
an accurate view of the current state of the project. For example, an activity diagram on software
process of parallel development model is shown as Figure 9. Parallel model is not driven by time, but
by requirements for users, management decisions, and result reviews, enabling parallelization of the
entire process of software development [1]. The application of the model is more suitable for system
development with C/S (Client/Server) structure, because the C/S application is implemented by
multiple components, and each component can be designed and implemented in Parallel.
2.12. Component-based Model
The development processes in component-based model are iterative, and usually five phases are
consisted in the model as it is shown in Figure 10. Components have been rapidly developed as
important software technologies and tools, such as EJB (SUN), DCOM (Microsoft), CORBA (OMG),
etc. These are some typical new technologies and tools which are widely used in component-based
development. The core of the application of the model is to start with the development activity from
identifying the candidate component by searching the existing component base in order to confirm
whether the required component is already existed or not [1] [11]. If the component is already existed,
it is reused that from the component base. If it does not exist, the component is needed to be developed
by using an object-oriented method.
The application of the model needs to modularize the system which is to be developed, and reuse
one or more software components in component base by the supporting of a certain component model
[11]. An application on software system is constructed by developers through a corresponding
combination method. Now, many software companies start to design and use component assembly and
interface specification standards customized to carry out software development activities, but the
component interface standards need to be further generalized. Besides, there are many software
experts who have proposed many efficient new component assembly algorithms to complete large-
scale software system development activities. The author for the paper suggests the readers who are
interested in this could read those references from website.
2.13. Architecture-based Model
Software architecture is the core of this model, which based on the component-based development
method. The process of analysis and design are based on iterative incremental approach, mapping the
functional design space to the structural design space and then maps the structural design space to the
system design space again[1, 2] [12]. The architecture-based model is shown in Figure 11.
Acquisition and analysis of requirements which based on architecture first, to provide better
support for the transition from the analysis phase to the design phase. And then based on the results of
the requirements analysis, the design of the architecture is performed. When designing of the
6
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
architecture, it is the same as the component-based development model to search matching
components according to the syntax and semantics of the constituent elements. Software component
reuse has been promoted from code-level reuse to architecture-level reuse. Of course, the entire
development process presents iterations. The advantages of this model make the framework of the
software system more clear and conducive for designing, development and maintenance of the system
[1].
2.14. Software Development Models in Certain Application Fields
Recently, many software developers and researchers are devoted to making appropriate improvements
on existing development models according to the characteristics of actual software projects for certain
application fields, redesigning the processes or activities for new development models, and get good
results. For example, improved development model of RUP for instructional software [13],
development model of multi-media instructional software based on CSCW(Computer Support
Cooperative Work) [14], inverted A-model for stable software development [15], Three Triple
iterative model based on agile [16], interlayer model for software development based on collective
intelligence [17], software development cooperative model for large scale project [18], double
iteration model of agile software development [19], component and aspect-based MDA(Model Driven
Architecture) software development model [20], etc. But, some in-depth researches such as the
constituent elements, characteristics of applications, application environment, and the analysis on
advantages or disadvantages of these models which are listed above, readers who are interested in
those can search for the references from the website for better learning.
Figure 9. Parallel model. Figure 10. Component-based model. Figure 11. Architecture-based model.
3. Summary on Software Development Model
Software development model has been evolved along with the changes by development ideas on
software and undergone the mainly following stages.
Firstly, the idea of structured programming is used as guidance to software development model,
such as waterfall model. In the model, various development activities are carried out must be one by
one, emphasizing the sequence in stages of development. If there are obstructions in the development
process, the development efficiency will be affected seriously. Secondly, progressive development
models such as prototype models, spiral models, incremental models, fountain models, RUP models,
XP models, etc. Models of this type are designed driven by object-oriented thinking and they are
applicable to development scenarios where the requirements for users are not clear at the beginning of
the development, or the user can only provide fewer requirements at the initial phase. The various
activities of the software development process are iterative, through the iterative process to achieve the
gradual evolution of software functions, and eventually satisfied with software products by users [1].
Due to incomplete requirements, adopting this type of models will bring difficulties to the overall
design of the software, weaken the integrity of the software design, and require the developers to have
more experience on software development capabilities and risk management. Thirdly, development
models which the design ideas on component development, such as component-based development
7
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
model, architecture-based model, and other improved development models for certain application
fields which are mentioned above. The overall structure of the software is designed by using the
results on requirements analysis, and the software system is constructed by the component-based
assembly method. It is conducive to the design, development and maintenance on software structures.
Of course, when the new idea on software design is put forward by software experts, it will emerge the
new models for software development to improve the quality of software development soon.
4. Future Research
4.1. Software Development Based on 4GT
Software development based on 4GT (The Fourth Generation Technology) is to be an important
development method of software engineering in the future. Certain features of the software are needed
to be regulated at a higher level by developers. Using software tools, a program is constructed
according to the developer's specifications, and the source code is automatically generated too [1]. The
method on software development based on 4GT requires the ability of software specifications to use a
special language form or some graphical symbols that describes the problem to be solved by using
terms that the users can be understood.
In fact, software development based on 4GT is also started from the collection of requirements, but
it is unrealistic for users to specify the software requirements fully and convert it into an operable
software product prototype directly. Many experts still believe that software development based on
4GT will be appeared with ambiguous for specifying in the known situation. Prof. Y.S. Zhang (Hunan
Normal University) believes that if 4GT is applied in reality, it needs to be thoroughly tested first and
all integration activities that are also required in other software development models must be
completed. Finally, using the software product which is developed by 4GT, in the process of its
construction, the effectiveness of the source code generated by software tool, as well as the
maintainability of the software, etc., should be further studied.
4.2. Software intelligent development based on data-driven
Software intelligent development has become one of the most important research trends in software
engineering in big data era. Intelligent Development Environment (IntelliDE) and Software
Knowledge Graph (SKG) are put forward in [21] to provide intelligent assistance in the life cycle of
software development and get some progress. However, modern software development activities have
been formed a resource of big data. Intelligent software tools can be provided to developers with
recommendation and intelligent searching services which are based on data knowledge, thereby
forming a software-intelligence integration of “Person-Tool-Data” for development method, technical
system, environment, and etc.
Therefore, in the process of intelligent software development based on data-driven, research fields
including the collection and aggregation of software engineering data, the extraction of knowledge for
big data of software engineering, the innovation exploration of new methods, technologies, and tools
for intelligent release in different stages of software testing, software verification, and software
maintenance will be the challenging research in the future.
Acknowledgments
Corresponding author (Jiujiu Yu) of this paper acknowledges financial support from the projects of
"Software Engineering-Excellent Resource Sharing Course of Anhui Province" (No.2016gxk048),
"Research on Software Exploratory Testing and Its Key Technology" from Anhui SanLian University
(No.KJZD2017008), and "Teaching Team on Curriculum of Software Engineering" from Anhui
SanLian University (No.15zlgc029). Finally, I would like to express my heartfelt gratitude to all
authors of the references which are listed at the end of this paper.
8
1234567890‘’“”
ACMME 2018 IOP Publishing
IOP Conf. Series: Materials Science and Engineering 394 (2018) 032045 doi:10.1088/1757-899X/394/3/032045
References
[1] Y.S.Zhang, X. Li, Software Development Models: a Survey, Journal of Computer Engineering
and Applications, issue 3, pp.109-110, 2006.
[2] J.J.Yu, A Short Course in Software Engineering, Tsinghua University Press, 2015.
[3] Information on https: //www. cnblogs. com/wintersun/p/6828400. html, 2017.
[4] S.M. Zhu, Software Testing (Second Version). Posts &Telecom Press, 2016.
[5] X.H. Liu, Software Engineering and Project Management, Peking University Press, 2009.
[6] S.J. Wu, Improvement on Quality Testing Project of SI Software Based on Agile Scrum Mode,
MASTER'S THESIS of Southwest Petroleum University, 2015.
[7] Y.M. Du, S.X. Li, Estimation Process Model for RUP Project, Journal of Computer Science, vol.
40, issue 6, pp.21-26, 2013.
[8] J.X. Xia, Z. Liu, X.B. Liu, Y.Song and J.J.Yuan, Incremental Story Iteration Model Based on
Rapid Application Development, Journal of University of Shanghai For Science and
Technology, issue 6, pp.578-583, 2014.
[9] R.M. Zhang, D. Yang and J. Li, Design of requirements negotiation tool based on WinWin
theory, Journal of Computer Engineering and Applications, issue 1, pp.100-104, 2009.
[10] Michael Negnevitsky, Artificial Intelligence: A Guide to Intelligent Systems (Third Version),
China Machine Press, 2012.
[11] X.Zou, Method of Construction: Modern Software Engineering, Posts & Telecom Press, 2018.
[12] Z. Luo, S. Q.Yuan, J. L.Yuan and L. Li, Software Engineering. Posts &Telecom Press, 2017.
[13] J.J. Yu, Research on designing and achievement on RUP improvement model of instructional
software, Journal of E-education Research, issue 4, pp.76-81, 2012.
[14] Z.L. Gu, Research on development model of multi-media teaching software base on CSCW,
Journal of Computer Engineering and Applications, issue 9, pp.1628-1630, 2006.
[15] S.J. Chen, Inverted A-Model for Stable Software Development, Journal of Software, vol. 37,
issue 12, pp.07-11, 2016.
[16] J.J. Ma, Three Triple Iterative Model Based on Agile, Journal of Electronic Technology &
Software Engineering, issue 6, pp.52-54, 2017.
[17] B.Lu, L.Liu, J.R. Li and L.M.Jiang, Artificial Intelligence and Its Application, Tsinghua
University Press, 2017.
[18] Y.L. Si and W.H. Liu, Research of a New Software Development Cooperative Model, Journal
of Microelectronics Computer, issue 5, pp.73-76, 2012.
[19] D.Q. Xie, Double Iteration Model of Agile Software Development, Journal of Computer
Applications and Software, vol. 29, issue 6, pp.176-178, 2012.
[20] Y. Wu, J.Y. Qian and Y. Liu, MDA-Based Component Employer Method Research and
Implementation, Journal of Control Automation, issue 27, pp.198-200, 2010.
[21] Z.Q. Lin, B. Xie and Y.Z. Zou, Intelligent Development Environment and Software Knowledge
Graph, Journal of Computer Science and Technology, vol. 32, issue 2, pp.242-249, 2017.
... To properly analyze a problem, it is necessary to utilize three primary data sources: operational parameters, maintenance history and the technical condition of components, to allow for the estimation of future values based on trends, seasonal variations and cyclical phenomena, in accordance with the theoretical principles of machine learning in the product-program lifecycle [45,46]. ...
... Multiple techniques are simultaneously employed to build various predictive models, each offering various solutions to the problem at hand, the notable results will be considered in defining the optimal method. [45,46]). ...
Preprint
Full-text available
Maritime transport has adapted to recent political and economic shifts by addressing stringent pollution reduction requirements, redrawing transport routes for safety, reducing onboard technical incidents, managing data security risks and transitioning to autonomous vessels. The integration of AI-based technologies for fault diagnosis and decision-making, coupled with proper personnel training, has become essential for optimal ship operation, with AI-assisted predictive maintenance emerging as the key strategy to ensure onboard systems function within desired parameters and enhance equipment availability. This study proposes a machine-learning algorithm for evaluating onboard systems performance by analyzing sensor data and mapping it to fault patterns to estimate functional states, validated through tests on a seawater cooling system from an oil tanker, demonstrating operational efficiency and reliability. The immediate advantage is reduced time for fault diagnosis by rapidly assessing the system using operational data, the algorithm enabling real-time monitoring and fault data management to minimize efforts as part of predictive maintenance assisted by machine learning tools.
... To properly analyze a problem, it is necessary to utilize three primary data sources: operational parameters, maintenance history and the technical condition of components, to allow for the estimation of future values based on trends, seasonal variations and cyclical phenomena, in accordance with the theoretical principles of ML in the product-program lifecycle [45,46]. ...
... The life cycle of a program (adapted from[45,46]). ...
Article
Full-text available
Maritime transport has adapted to recent political and economic shifts by addressing stringent pollution reduction requirements, redrawing transport routes for safety, reducing onboard technical incidents, managing data security risks and transitioning to autonomous vessels. This paper presents a novel approach to predictive maintenance in the maritime industry, leveraging Artificial Intelligence (AI) and Machine Learning (ML) techniques to enhance fault detection and maintenance planning for naval systems. Traditional maintenance strategies, such as corrective and preventive maintenance, are increasingly ineffective in meeting the high safety and efficiency standards required by maritime operations. The proposed model integrates AI-driven methods to process operational data from shipboard systems, enabling more accurate fault diagnosis and early identification of system failures. By analyzing historical operational data, ML algorithms identify patterns and estimate the functional states, helping prevent unplanned failures and costly downtime. This approach is critical in environments where technical failures are a leading cause of incidents, as demonstrated by the high rate of machinery-related accidents in maritime operations. Our study highlights the growing importance of AI and ML in predictive maintenance and offers a practical tool for improving operational safety and efficiency in the naval industry. The paper discusses the development of a fault detection approach, evaluates its performance on real shipboard data-through tests on a seawater cooling system from an oil tanker and concludes with insights into the broader implications of AI-driven maintenance in the maritime sector.
... Furthermore, software can improve work efficiency by replacing human labor in tasks that are difficult or impossible for humans to accomplish. Driven by recent progress in the industrial market and technology, new devices, platforms, and user requirements continue to emerge [1], which are accompanied by related technologies such as new programming languages, frameworks, development tools, and development methodologies, thereby increasing the diversification of software-development methods [2,3]. ...
... However, as accuracy is an unreliable indicator when the dataset is skewed, the precision, recall, and F1-score were also used to evaluate the performance. Precision refers to the ratio of data that are classified as true by the model to the data that are labeled as true, as expressed by Equation (2). Recall refers to the ratio of data that are labeled as true to the data that are classified as true by the model, as expressed by Equation (3). ...
Article
Full-text available
This study presents an automated software crash-diagnosis technique using a state transition graph (STG) based on GUI-component detection. An STG is a graph representation of the state changes in an application that are caused by actions that are executed in the GUI, which avoids redundant test cases and generates bug-reproduction scenarios. The proposed technique configures the software application STG using computer vision and artificial intelligence technologies and performs automated GUI testing without human intervention. Four experiments were conducted to evaluate the performance of the proposed technique: a detection-performance analysis of the GUI-component detection model, code-coverage measurement, crash-detection-performance analysis, and crash-detection-performance analysis in a self-configured multi-crash environment. The GUI-component detection model obtained a macro F1-score of 0.843, even with a small training dataset for the deep-learning model in the detection-performance analysis. Furthermore, the proposed technique achieved better performance results than the baseline Monkey in terms of code coverage, crash detection, and multi-crash detection.
... Scrum was conceived by Jeff Sutherland and Ken Schwaber in 1993 with the intention of being a faster, more effective, and more reliable way to develop software for the technology industry [11]. This method emerged motivated by the traditional method, called waterfall, being too slow and often resulting in a product not desired by the customer and more expensive [12,13]. Alternatively, agile methodologies present an incremental and iterative process whose objective is to identify the priority tasks in each phase and effectively manage time with efficient teams [14][15][16][17][18]. Therefore, agile methodologies came to face the difficulties that occurred during project management. ...
Article
Full-text available
Metrics are key elements that can give us valuable information about the effectiveness of agile software development processes, particularly considering the Scrum environment. This study aims to learn about the metrics adopted to assess agile development processes and explore the impact of how the role performed by each member in Scrum contributed to increasing/reducing the perception of the importance of these metrics. The impact of years of experience in Scrum on this perception was also explored. To this end, a quantitative study was conducted with 191 Scrum professionals in companies based in Portugal. The results show that the Scrum role is not a determining factor, while individuals with more years of experience have a higher perception of the importance of metrics related to team performance. The same conclusion is observed for the business value metric of the product backlog and the percentage of test automation in the testing phase. The findings allow for extending the knowledge about Scrum project management processes and their teams, in addition to offering important insights into the implementation of metrics for software engineering companies that adopt Scrum.
... The classic Software Development Life Cycle (SDLC) is composed of four stages (i) planning; (ii) analysis; (iii) design, and (iv) implementation [14]. From this, we can note that several different Software Development Models exist, such as Waterfall, V-Model, RAD model Iterative model, Agile, Spiral, and Prototyping models, among others [15,16]. ...
Article
Full-text available
A simulation model, and more generically, a model, is founded on its assumptions. Assurance of the model’s correctness and correct use is needed to achieve accreditation. Often the exercise of working with a specific code misunderstands the overall process, focusing the resources on the model coding and forgetting the needed resources to ensure the validation of every step of the model definition and coding. The goal of this work is to present a methodology to help in the definition and use of the assumptions in the modeling process. To do so, we present a process to conduct a simulation project, an assumptions taxonomy, and a method that simplifies working with those assumptions. We propose to extend the traditional Validation, Verification, and Accreditation processes to a process composed of eight Validation, Verification, and Accreditation phases that cover the overall life cycle of a model. Although this paper is focused on a simulation model, we can extend the proposed method to a more general modeling approach.
... It is a systematic and sequential software development model that starts at the system level and progresses to analysis, design, test code, and maintenance. [20]. The Collaborative Cloud ClassRoom system design is carried out in several stages which refers to the Waterfall model and is presented in Figure 1. ...
Article
This research investigates various aspects of software enhancement and development, emphasizing the technological and social factors that influence consumer engagement throughout the Software Development Life Cycle (SDLC). As software transitions from a professional tool to a daily-life necessity, comprehending the interrelationship between organizational, social, and individual factors in software planning becomes increasingly crucial. Previous studies have demonstrated that non-technological variables play a significant role in project failure. The methodology employed in this research utilizes a survey instrument to collect data and information on the factors influencing user engagement throughout the six stages of the software enhancement lifecycle. The study categorizes these factors into individual and organizational dimensions and examines their impact on consumer engagement and software quality. The findings indicate that active consumer engagement enhances software effectiveness and reduces the likelihood of project failure. Through data analysis, the results demonstrate that ensuring user engagement is a sequential process throughout the SDLC, with each stage serving as an entry point for subsequent stages. The study elucidates the importance of stakeholder collaboration and engagement and the necessity to adopt adaptive approaches that consider consumers' diverse perspectives and opinions. By incorporating consumer feedback and insights into the early stages of improvement, organizations can enhance software outcomes and ensure alignment with consumer requirements. This research is novel in its introduction of a new dimension, demonstrating that user involvement in the technical stages of software development, whether as a product or service, can have a lasting impact after project delivery and throughout its lifespan, ensuring software continuity of use. This study contributes to a deeper understanding of the social and technological dynamics in software development and advocates a holistic approach that places significant emphasis on consumer participation.
Article
Full-text available
Software development is a systematic engineering process that requires the selection and application of appropriate software development methodologies to ensure project success. Software Engineering (SE) necessitates a set of principles and tools to facilitate the production of high-quality software products. With the continuous evolution of information technologies and software engineering, the development and application methodologies for the Albanian market have also advanced. Our company places significant emphasis on investing in people, infrastructure, methodologies, and modern tools. In recent years, there has been a notable trend toward the adoption of agile methodologies, resulting in a surge in its utilization compared to traditional approaches. This study aims to examine the existing methodologies employed by software companies in Albania and assess their readiness for transitioning to agile methodologies.
Chapter
Software engineering is the extensive study of how to build a software product using software development life cycle stages, beginning with requirement analysis phase to the last phase of testing and maintenance. This approach in the development of software application ensures completion of the project within the stipulated period without compromising quality of the software with effective utilization of resources. The most important is to develop a quality product. Case studies make readers understand the concept in a more impartial and tactile manner; one can make use of this experience in real-life circumstances for providing solutions to the complex problems. The significance of this case study is to represent the authors' experience of developing software by using method of software engineering, understanding how to apply them to build an application. This chapter gives a holistic review of the development of an Android application titled Vaccination Management System (VMS) “Vacc-IT” as a comprehensive case study.
Article
Software intelligent development has become one of the most important research trends in software engineering. In this paper, we put forward two key concepts — intelligent development environment (IntelliDE) and software knowledge graph — for the first time. IntelliDE is an ecosystem in which software big data are aggregated, mined and analyzed to provide intelligent assistance in the life cycle of software development. We present its architecture and discuss its key research issues and challenges. Software knowledge graph is a software knowledge representation and management framework, which plays an important role in IntelliDE. We study its concept and introduce some concrete details and examples to show how it could be constructed and leveraged.
Article
In view of the characteristic of changing qualitatively into build-and-fix model by the bad control, which is a universally existing problem about these software development models, such as rapid application development (RAD) model, incremental model, and agile software development, a new kind of model by the name of incremental story iteration model on rapid application development (ISI-RAD) was presented based on agile software development. With the process segmentation and the incremental sequence generation, the project schedule pool and the bug state pool were used to construct the story iteration. The project schedule pool can be responsible for tracking the software system development schedule, and the bug state pool can be responsible for loading the code bug feedback to evaluate the later quality, and then the efficiency of software development can be improved. Good results were achieved in practical application of ISI-RAD to an example. ©, 2014, Shanghai Institute of Mechanical Engineering. All right reserved.
Research on development model of multi-media teaching software base on CSCW
  • Z L Gu
Z.L. Gu, Research on development model of multi-media teaching software base on CSCW, Journal of Computer Engineering and Applications, issue 9, pp.1628-1630, 2006.
Software Development Models: a Survey
  • Y S Zhang
  • X Li
Y.S.Zhang, X. Li, Software Development Models: a Survey, Journal of Computer Engineering and Applications, issue 3, pp.109-110, 2006.
Estimation Process Model for RUP Project
  • Y M Du
  • S X Li
Y.M. Du, S.X. Li, Estimation Process Model for RUP Project, Journal of Computer Science, vol. 40, issue 6, pp.21-26, 2013.
Method of Construction: Modern Software Engineering
  • X Zou
X.Zou, Method of Construction: Modern Software Engineering, Posts & Telecom Press, 2018.
Research on designing and achievement on RUP improvement model of instructional software
  • J J Yu
J.J. Yu, Research on designing and achievement on RUP improvement model of instructional software, Journal of E-education Research, issue 4, pp.76-81, 2012.
Double Iteration Model of Agile Software Development
  • D Q Xie
D.Q. Xie, Double Iteration Model of Agile Software Development, Journal of Computer Applications and Software, vol. 29, issue 6, pp.176-178, 2012.
MDA-Based Component Employer Method Research and Implementation
  • Y Wu
  • J Y Qian
  • Y Liu
Y. Wu, J.Y. Qian and Y. Liu, MDA-Based Component Employer Method Research and Implementation, Journal of Control & Automation, issue 27, pp.198-200, 2010.