Introduction
The use of mobile devices has had a significant growth in recent years, its high performance makes it a resource that allows the development of many activities of daily life. The constant evolution of these devices has led to an exponential growth in the demand for applications for this environment.
According to (Ditrendia, 2020), there are approximately 4.32 billion users who access the Internet from mobile devices, representing 92.6% of all global Internet users, spending an average of 3 hours and 39 minutes a day on them. It should also be noted that 91.5% of Internet users access the Internet from a smartphone. Within this time spent using mobile devices, mobile applications stand out, accounting for 92.5% of the total time that users spend using their cell phones (App Annie - State of Mobile, 2022). In this regard, young people spend the most time per month using mobile applications, and by category this time is spent mainly on messaging and entertainment applications (Ditrendia, 2020).
Mobile application development is similar to traditional application development. However, there are several special characteristics that differentiate it. According to Thomas et al. (2022), mobile application development has its own requirements that differ from traditional application development, these are: potential interaction with other applications, sensor management, native and hybrid applications, security management, user interface for small screens and power consumption.
Mobile application development poses new challenges for developers, such as how to successfully create applications that operate in a heterogeneous environment with limited resources while requiring availability, performance, fast responsiveness and efficiency (Maia et al., 2019)(Thomas et al., 2020). In addition, application development must be fast and low-cost to succeed in such a competitive market (Corral et al., 2015)(Martinez et al., 2020). Another challenge for developers is the fragmentation of existing platforms, originated by the high number of different devices, with their own operating systems and development platforms. Faced with these challenges, the use of a methodology for the development of mobile applications will allow obtaining a quality software product. Faced with these challenges, for the development of mobile applications, it is decided to choose agile methodologies by virtue of the characteristics they offer to adapt to new contexts that emerge throughout the project. Those methodologies focused on the development of mobile applications, start from the orientation of agile development, which, unlike the traditional one, presents greater flexibility to change and the delivery or production time is shorter (Molina Ríos et al., 2021a)(Molina Ríos et al., 2021b).
The use of mobile services and applications in Cuba has shown a marked boom as a result of the digital transformation process that is taking place in society, process in which software development organizations play a key role, being responsible for the design, development and market positioning of mobile applications needed to access services.
Among the software development institutions, the University of Informatics Sciences (UCI) stands out, whose mission is to contribute to the digital transformation of Cuban society, through the comprehensive and continuous training of professionals in computer sciences, as well as the production and marketing of computer products and services (UCI, 2022), for which it offers a commercial catalog of products and services oriented to five high-impact lines. For this purpose, the institution has several mobile application development projects. Software development at UIS is defined based on the use of its own methodology, resulting from the adoption of international and national best practices. It is based on a variation of the "Agile Unified Process" (AUP) methodology in conjunction with the CMMI-DEV v 1.3 model. However, the mobile application development process is often based on the preference and knowledge that the team of developers have with a certain methodology rather than a technical analysis that determines the most appropriate option for this type of development (Martínez Espinoza, 2020).
A documentary study was carried out on the files of the technical reviews developed in five development projects of three productive centers of the university, carried out in the period between the years 2019-2022 with the fundamental objective of identifying the insufficiencies that exist in the process. development of mobile applications in university projects. As a result it was found that:
In three of the five projects analyzed, Non-Conformities (NC) have been identifiedi associated with the adaptation of the processes that are developed to those that are institutionalized.
In none of the reviewed project files are all the work products generated.
The requirements engineering processes in each of the audited projects are partially carried out. Only the requirements for mobile applications are identified and specified. Important processes are ignored, such as the control of changes that they may undergo, their verification and validation.
In the files of audited projects, a total of 20 Non-Conformities were detected, all of them critical, since it was evidenced that there is no culture of documenting at the same time that it is developing.
Considering the previous shortcomings and with the purpose of identifying the causes that originated them, a survey was carried out with 10 lead reviewers who have also worked in roles of project manager, deputy director and/or director of development centers. It could be verified that:
90% of those surveyed point out that the existing documentation on the development of mobile applications is insufficient because the project file approved at the university is not used properly.
In 100% of the projects analyzed, not all quality activities are carried out, in accordance with the procedures established in the institution's Quality Management System.
All the reviewers state that the project members do not identify a guide for the development of mobile applications in the institutionalized development methodology, alleging that it does not take into account specific elements of this type of application.
To solve the problem, the general objective was defined: Develop a methodology that integrates the characteristics of the mobile environment, to contribute to the standardization in the development of mobile applications at the University of Informatics Sciences.
This paper describes the proposal of a methodology for the development of mobile applications in the UIS. In addition, it describes the specific elements of mobile application development, analyzes the development of this type of applications in the institution's projects, defines the components of the proposed methodology and finally shows the results of the methodology's assessment.
Methods
A study was conducted on the current state of mobile application development, the most used methodologies and their fundamental characteristics. In addition, surveys and interviews were conducted to determine the current status of the organization in the development of mobile applications.
Based on the results of this study, a methodology for the development of mobile applications that takes into account the characteristics of the mobile environment is proposed. The proposed methodology is also described and the results of the evaluation of the methodology are presented.
General elements of mobile application development
All applications run within an ecosystem that indicates that the developer must take into account many factors for the application to work as desired. Mobile applications have a more heterogeneous ecosystem with respect to the rest of the developments (Vique Ramirez, 2019). There are three main types of mobile applications: native, browser-based and hybrid (ISTQB, 2019)(Velásquez et al., 2019).
Native applications are developed using platform-specific software development packages, development tools and platform-specific sensors and features. They are downloaded, installed and updated from vendor stores. These applications may need to be tested on all supported devices.
Mobile web applications are built using common web technologies, which generally makes them easier to develop and manage compared to native and hybrid applications. However, they may not be as feature-rich as native or hybrid apps and may have limited access to the platform's native application programming interfaces (APIs).
Hybrid applications are a combination of native and web applications. They use a native application wrapper containing a web view to run a web application within a native application. These apps are downloaded from vendor stores and can access all device functions.
The development of mobile applications must satisfy a series of special requirements and conditions, which makes it a more complex process (Amaya Balaguera, 2013). The most relevant characteristics are described below.
Channel: Availability, signal drop, bandwidth, the difference of connectivity networks (WI-FI, BLUETOOTH, HSPA, EDGE, GSM, UMTS, 3G and 4G).
Mobility: Address migration, change of base station, location information management (GPS).
Portability: Screen size (resistive, capacitive and multi-touch), QWERTY or on-screen keyboard, device diversity, different and incompatible operating systems.
Terminal capacities: Processor power, graphical interfaces, storage capacity, battery life.
Time: Constantly changing industry, high level of competitiveness, short delivery time.
Usability: Variety of users (cognitive characteristics, age, maturity level and intellectual capacity, etc.), contexts in which the mobile application will be used, ease of learning, efficiency, satisfaction and speed of use.
Mobile software development is, on average, more complex than the traditional one, which requires developers to consider the characteristics of the mobile environment during the application development process. Mobile application development projects are generally executed by small work teams and must obtain the product in the shortest possible time; therefore, methodologies are required to organize their tasks and help improve the quality of the developed products.
Table 1 shows the main advantages and disadvantages of the methodologies that have been most commonly applied to mobile application development projects.
|
- Low application costs. - Guarantees the production of the product in the established time. - Production of deliverables or demos. |
- Does not have a solid communication framework. - Not applicable to large or fragmented projects. - Lacks processes to ensure quality results. |
|
- Test-driven development. - Continuous customer involvement. - Prioritization of requirements. - Review of the whole process and learning sessions. - Adaptation process. - Effective communication. - Quality assurance. - Expert developers. - Fast delivery of a working prototype application. |
- Tendency to increase development time and costs |
|
- User involvement in all design life cycle processes. - Ensures user-centered design. - Rapid delivery of a working prototype application. |
- Process model oriented to large and costly projects |
Delfdroid |
- Rapid delivery of a working prototype application. |
- The documentation it generates may require more time than the mobile application development, and some may even be unnecessary. - Inconsistency in the execution of actions to check quality. - Limits the team to the use of technology. |
AUP-UCI |
- Simplicity: known notes - Agility: simplified RUP processes - Staff know what they are doing: does not force you to know details. - Independent tools: at the user's convenience. - Easy product customization. |
- It is a very heavy product compared to RUP. - As it is a simplified process, many workers choose to work with RUP, as more details are available in the process. |
Source. Own elaboration.
As can be seen in Table 1, mobile application development methodologies lean towards those frameworks with an agile approach, since this type of development has the greatest advantages considering that mobile application requirements are highly variable, development time is short and product delivery is constant, a very common practice in the mobile world, where applications are constantly being updated.
Mobile application development in the UIS
UIS is an educational-production center that develops IT solutions oriented to various sectors of society. For this purpose, the institution has several projects for the development of mobile applications with the requirements of the client with Android operating system. In this sense, the LexCuba project belonging to the Electronic Government Center (CEGEL) stands out. This project, registered by the Ministry of Science, Technology and Environment (CITMA), makes available to Cuban citizens a set of mobile applications with Android operating system with the aim of facilitating the interaction of citizens with government entities (Antonio et al., 2020). Another project specialized in the development of mobile applications is Z-17, a product of the strategic alliance between the Cuban Telecommunications Company (ETECSA), the Havana Scientific and Technological Park (PCT) and the UIS, where mobile applications such as the instant messaging platform (toDus), the Android Application Center (Apklis) and the Cuban platform for audiovisual content (Picta) are being developed. In addition, at the Free Software Center (CESOL), mobile application development projects such as BioMer, CubaAnuario, Referendo Constitucional, Patrimonio UCI, BanMet, among others, stand out.
A diagnosis was made with the objective of characterizing the current state of the mobile application development process in the development projects of the university. As part of the diagnosis, a survey was carried out on 20 specialists involved in the development process. 9 analysts, 4 developers, 2 quality managers, 2 architects and 3 project managers with more than 4 years of experience in mobile application development were selected. The survey prepared Its main purpose was to know the characteristics of the activities focused on the development of mobile applications.
The fundamental elements identified after the analysis of the results are listed below:
57% of those surveyed used some known development methodology and 43% stated that they had not used any.
90% of those surveyed consider that there is no homogeneity in the execution of the process, therefore the success of development activities depends on the preference and knowledge of the development team.
75% of those surveyed consider that there are deficiencies in the development of activities: schedule management, management of those involved and quality management.
93% of those surveyed state that there are deficiencies in the planning of phases, activities and work products.
85% of those surveyed state that the institutional methodology does not consider the characteristics of the mobile environment throughout the application development cycle.
All those surveyed consider useful the use of guides that support mobile application development activities in university development projects and integrate the specific characteristics of the mobile environment.
Description of the Mobile Application Development Methodology MDAppsMóviles
The methodology for the development of mobile applications MDAppsMóviles integrates the characteristics of mobile applications through the activities and work products used in each of its development phases. In addition, it is mainly characterized by an agile approach within each of its stages and considers the characteristics of the SCRUM methodology in its phases, since it uses the idea of Sprints and scheduled reviews.
The methodology defines five phases which are Planning, Design, Development, Testing and Release. This methodology is based on the implementation of Sprints or short cycles, which can last from 2 to 4 weeks. Within this period of time, it is essential to maintain continuous communication to know the progress that is being made, therefore the Daily Sprint Meeting (DSM) is incorporated where any difficulties or suggestions are presented. Figure 1 shows the life cycle of the proposed methodology.
Phases of the MDAppsMobiles methodology
Planning: This phase aims to identify the processes and activities of the organization for which the mobile application will be developed. Stakeholders are established and how they are linked during the development of the project. In addition, the activities to be carried out for the development of the project are defined, taking into account the time and resources existing in the organization. The activities developed in this phase are: know the environment of the company, know the business model, perform feasibility analysis, manage stakeholders, manage project scope, manage costs, manage changes and manage quality. The work products defined in this phase are constitutional act, responsibilities matrix, timeline, cost plan, change tracking matrix and quality management plan.
Design: This phase is defined according to the essence of agile development and its focus on the use of sprint to achieve a better adaptation to change in software development projects. Its objective is to implement all the client's requirements and the analysis performed for the construction of the software by applying techniques, tools and good practices focused on maintaining the quality level of the final product. In addition, the prototypes developed on the basis of the considerations that were raised after the analysis of the requirements are established. The activities defined in this phase are requirements analysis, prototype design and agile solution approach. The work product defined in this phase are requirements description.
Development: In the development phase, all the planning and construction of the analysis of the requirements to be satisfied is carried out. The main objective of this stage is to implement good practices aimed at simplifying the work and maximizing production, in addition to integrating tools that allow obtaining a satisfactory result. This phase is composed of the coding and refactoring process where each one exemplifies the best practices recommended in this methodology. The work products defined in this phase are functional prototype and application sheet.
Testing: The testing phase corresponds to the analysis of objectives met and error detection during the development of a mobile application. Tests are performed after the fulfillment of each module and are iterated based on errors and failure to meet the objective of each module. The objectives of this phase are to detect bugs and errors, identify malfunctions, correct identified errors and identify possible improvements on functional modules. The activities of this phase are based on the testing of the mobile application modules and the execution of the change control according to the evidence obtained from the tests; both to correct detected errors or to modify elements that optimize the application's operation. The work products defined in this phase are test log and change record.
Publication: The release phase is intended for the fulfillment of activities that allow the preparation of the mobile application for its deployment on a platform. The objective of this phase is to release the application in the different existing platforms, and to deliver manuals and corresponding documentation. The activities and work products defined in this phase are shown below. Among the activities to be carried out are the preparation of the host, identification of the application name and analysis of compliance with requirements; requirements documentation and the respective application manuals, both for the user and at the programming level. The work products defined in this phase are app installer and instructive.
Client: Responsible for initiating the project, defining application functionalities and validating compliance. Signs legal documentation and reviews project status.
Project Manager: Represents and leads the team in front of the client. Identifies the vision, mission and objectives of the project. Manages the tasks of the team members in correspondence with the objectives set. Performs a follow-up and periodic review of the project status.
Analyst: The analyst is in charge of performing the analysis and design corresponding to the project being developed. Captures, specifies and defines the priorities of the requirements. Defines the guidelines for the design of the interface with the client.
Developer: They are in charge of developing the product, self-organizing and self-managing to deliver a product increment at the end of each Sprint.
Results and discussion
Assessment of the MDAppsMobiles methodology
To assess the methodology, the expert judgment method was used, and through the use of the evaluation model for software development methodologies proposed in (Méndez Nava, 2006).
To perform the evaluation and comparison of the proposed methodology, a survey was made to the specialists selected as experts, considering the main characteristics of the proposed methodology, as well as the methodologies oriented to the mobile application development which were analyzed in the research, based on the variables (V) defined in the model. Figure 5 shows the variables for the evaluation of the methodology
The results of the evaluation survey of the proposed methodology are shown in Fig. 3.
Fig. 4 shows the competitive profile matrix for the evaluation of software development methodologies proposed in (Méndez Nava, 2006). It can be observed that the methodology proposed in the research obtained the highest weighting with a value of 3.481 on a scale of 1 to 4, which classifies it as adequate. This result is associated with the high values assigned to variables such as: the adjustment to the objectives, covering the entire software development cycle and integrating the different phases of the cycle, that it should be the basis for effective communication and that it should be teachable, among others.
Specialists gave a score from 1 to 4 to the methodology according to the correct presence of each variable, where 1 is the low presence of the variable in the methodology and 4 is the maximum value that a variable can have if it exists correctly.
The result of the assessment of the specialists showed that 90% of the specialists affirm that the methodology is adequate because it is based on the key success factors that must be present in a development methodology; 10% express that in order to show whether it is adequate or not, it needs to be applied in several real mobile application development scenarios. Fig. 5 shows the adequacy of the proposed methodology.
100% of the specialists believe that the proposed methodology is sufficient to carry out the mobile application development process because it considers the key aspects of the mobile environment. Fig. 6 shows the sufficiency of the proposed methodology.
The methodology was applied in a real mobile application development scenario and the situation before and after the application of the methodology was evaluated. Fig.7 represents a summary of the situation before and after applying the proposed methodology. The notes above each column represent the values taken by the evaluated indicators. The methodology has been positively accepted by the developers. In addition, there is an improvement in the results of the mobile application development process, which is interpreted as a decrease in the difficulties detected.
Conclusions
Mobile software development and traditional software development are performed in environments under different conditions, hence each of them needs different methodologies, which allow projects of this type to develop successfully and obtain products with the expected quality.
The analysis of the methodologies oriented to the development of mobile applications, made possible the identification and characterization of the fundamental components of the methodology for the development of applications at the University of Informatics Sciences.
A methodology for the development of mobile applications was defined in which the specific characteristics of mobile applications are integrated together with the good practices of agile methodologies to provide a guide to the development of mobile applications.
Using the evaluation model for software development methodologies proposed in (Méndez Nava, 2006), it was determined that the MDAppsMóviles methodology proposed in this research is adequate and sufficient to carry out the mobile application development process.
The application of the development methodology contributes to the standardization in the development of mobile applications at the University of Informatics Sciences.