Keywords

1 Introduction

Software engineering is defines as the technology discipline, worried about the systematic production and maintenance of software products which are developed and modified on time and within the defined budget. Software engineering: it is a discipline on an area of information technology or a computation science which offers technics and methods to develop and maintain good quality software to resolve any type [22].

Once the engineering universe has been conceived, we can say that software is considered, as a discipline, a technique, a tool or methodology in software development in order to get a model to follow in the development of software that is reliable and easy to modify. Now let’s analyze that “A methodology is a collection of procedures, techniques, tools and auxiliary documents that help software developers in their efforts to implement new information systems. A methodology is formed by phases, each of which can be divided into sub-phases, which will guide system developers to choose the most appropriate techniques at each moment of the project and also to plan, manage, control and evaluate it” [15].

Achieving the construction of an efficient computer system that meets the requirements, is a really intense task and above all difficult to fulfill. Methodologies for software development impose a disciplined process on software development in order to make it more predictable and efficient. A software development methodology has as its main objective to increase the quality of the software that is produced in each and every one of its development phases. There is no universal software methodology, since every methodology must be adapted to the characteristics of each project (development team, resources), thus requiring that the process be configurable. Development methodologies can be divided into two groups according to their characteristics and the objectives they pursue: agile and robust. Then, today mobile technology has spread to the most remote corners of the planet, approximately 7,000 million inhabitants of the earth, almost the same amount today has access to a mobile device. And each user in turn makes use of dozens of applications of the m-learning type [3].

That is why the objective of this research is to propose an efficient Methodological Guide that allows, once it is turned off, the adequate development of efficient and above all quality applications that guarantee that the user fully meets their needs [9].

2 Methodological Foundation

This research is based on the qualitative-quantitative approach, which is directly related to the software development process, oriented to education through mobile devices, in order to verify the hypothesis and have logic in the development of the results to be obtained in said investigation [9].

Taking into account that information has been compiled and processed, allowing applying application performance processes in different environments to obtain results and observe the reality that is directly related to the problem posed. Software engineering is the area on which our research focuses on the methodologies that play a preponderant role in the development, portability, maintainability, functionality, adaptability and productivity of software. It is why we consider methodologies as processes for developing software specifically, assuming that we have them as traditional and agile. Then let’s see that a methodology is a collection of procedures, techniques, tools and supporting documents which support software developers in their efforts to design, build and implement new information systems, oriented at all times to solve efficiently and effectively each of the needs of the users, that for the present investigation treats a universe of people who have access to Internet in search of mobile applications with academic aims that satisfy their needs in the field of the knowledge, At the same time, this is always oriented from the m-learning [13].

A methodology is structured in phases, each of which can be divided into sub-phases, which will guide the system developers to choose the most appropriate techniques in each moment of the project and also to plan, manage, control and evaluate it [8]. In our object of study and research are the agile methodologies. In general, they are classified according to their approach and essential characteristics; the most recent ones that were gestating at the end of the last century and that have begun to manifest since the beginning of the current one. They have been called “agile methodologies” and they emerge as an alternative to the traditional ones, and whose main objective is to reduce time of development, to be the most efficient and effective with the time resource.

Thus, the emergence of agile methodologies cannot be associated to a single cause, but to a whole set of events, although many relate them as a reaction to traditional methodologies and the factors commonly mentioned are heaviness, slowness of reaction and excess of documentation. Consequently, the lack of agility of formal development models. Another important point would be the explosion of the network, web applications and mobile applications, as well as the notorious growth of the open source movement and the vertiginous access to the internet in the world.

We can also add that the agile methodologies arise thanks to an important change, in terms of the demand of the software market, increasingly oriented to the web and mobile devices, with very volatile and constantly changing requirements, which require shorter development times, and, above all, they demand to compete with hundreds of models built under the same objective and they aim to capture the acceptance of millions of customers through electronic stores [13]. The agile methodologies analyzed in this research considered as more efficient in terms of their use and application, are the ones listed below:

2.1 Xtreme Programming XP

The methodology considered as Xtreme programming developed by Kent Beck focuses on the best practices, techniques and tools for software development, and it is comprised of twelve practices: the planning game, small emissions, metaphor, simple design, testing, refactoring, programming in pairs, collective ownership, continuous integration, on-site clients and coding standards. In the same way the XP2 version is composed of the following primary practices: meet as a team, consider an informative work space, energy effort, development of the programming in pairs, the stories, the cycle in weeks, the cycle in quarters, the Workflows, construction of time intervals that are very agile in time, with continuous integration, programming and delivery tests are generated [6].

2.2 Mobile D

It is appropriate for the development of mobile applications and its purpose is to achieve very fast development cycles in very small devices. The project cycle consists of five phases: exploration, initiation, production, stabilization and system testing. Each stage has a number of phases, tasks and associated practices. Full descriptions of the method are available in the first Stage, Explore, the development team must generate a plan and establish the characteristics of the project. This is done in three stages: establishment of actors, definition of the scope and establishment of functionalities of the product. The tasks in this phase enclose the entity of the client since they take an active part in the development process, the initial projection of the plan, the collection requirements, and the establishment of processes [10].

In the stabilization phase, the latest integration actions are carried out to ensure that the entire system works together. This will be the most important phase in multi-team projects with different subsystems developed by different teams. In this phase, the developers will perform tasks similar to those that had to be deployed in the “production” phase, although in this case all the effort is directed to the integration of the system. Additionally, documentation production can be considered in this phase. Finally, the last phase of testing and repair of the system has as its goal the availability of a stable and fully functional version of the system. The finished and integrated product is tested with the customer’s requirements and all the defects found are eliminated, but new last-minute developments must never be carried out since the entire cycle would be broken [6].

2.3 Kanban

Kanban is an instrument supported by assessments of action and efforts, which expresses that the actors decide when and how much work they commit to do, within time. The actors take the job when they are ready. Just like a proofreader pulls on the next page only when it’s ready to correct about it. Kanban deals with the optimization of continuous and empirical processes. It emphasizes the response to immediate change, by following a plan, Kanban is observed and exalted because it allows a faster response unlike other agile methodologies such as Scrum [10].

Kanban also participates in other methodologies such as FDD or Scrum the fact of creating a product Backlog, which has a series of items, user, stories, features, etc., as a priority. But the transcendentally is differentiated with other agile methodologies, since Kanban does not have iterations of the type timebox (time box), Kanban focuses on controlling the work in progress.

It is an excellent tool for visualizing the process, and the “Kanban Board” is one of the representative tools known as “information radiator in the jargon of agilism.

The proposed methodological guide for the development of mobile applications focused on m-learning is mainly based on the experience of previous research in mobile applications, the evaluation of the potential of success for third and fourth generation services, the engineering of educational software with oriented modeling by objects (ISE-OO), and especially in the values of progressive agile methodologies that are also considered as hybrid [9].

3 Presentation of the Proposal

In the research carried out regarding the Proposal of the Methodological Guide for the development of mobile applications focused on M-learning, it is considered the existence of three classes of applications that adapt to the nature of the requirements of the final user, and these are: native applications, mobile web applications and hybrid applications. In this methodology the hybrid application is considered since it combines the functionalities and advantages of the native ones and the webs. Therefore, the kindnesses and potentialities of each one in pleasure of those who use them in order to cover their needs. This methodological guide proposal integrates, therefore, the information sent and received through a web system that has as an essential requirement access to the Internet. The proposal seeks to facilitate the development of mobile applications focused on m-learning and provides functionality in an educational mobile learning environment through the proposed methodology in any educational context. This contribution is presented in two ways: first, a methodological guide for the development of mobile applications focused on learning. Secondly, it is proposed an application that can be implemented in education [10].

In the present methodology, it is recommended that, for each level or stage of the methodology, these correspond with well-structured design decisions, trying not to propose too many levels, since it would bring many concepts and would be very sensitive to the individual interpretation of each designer.

It is convenient to keep in mind the following considerations:

  • Clearly explain the purpose of the proposed project or activity. The method derives directly from this purpose.

  • Ask yourself, “what is trying to achieve participation in this particular project?”. The answer to this question will make suggestions as to the methodology and the “most appropriate” techniques.

  • Consider who will make up the team of multidisciplinary developers as well as which stakeholders will be considered in the project.

Other necessary aspects to consider, in the design process of the intermediate proposal of the methodology (see Fig. 1).

Fig. 1.
figure 1

Proposal of the methodology

4 Generation of the Proposal of the Methodology –ADPE –

For the development of this Methodological Proposal some aspects have been considered described in what we call ADPE Methodology.

ADPE, whose name is the acronym of the 4 phases that allow an integral development of virtual education as support for the other modalities of education, and correspond to the following phases: D = Design, A = Scope, P = Tests, E = Delivery, likewise, characteristics of the proposed methodology for the achievement of success in the design and development of mobile applications oriented to m-learning have been added.

5 Phases of the ADPE Methodology

5.1 Reach

This phase includes the activity that the user for the case the teacher will plan with respect to the academic scope of their mobile site, which covers in its entirety what the mobile application should and should not carry. This must be in accordance with the standards established for the assignment in relation to all educational activities within m-learning, ensuring that there is a close interrelation between the content of the virtual classroom and that of the mobile platform. It should be, at all times, and contemplated an emulation to the real physical activity that takes place in class.

It should analyze what activities can be created in the mobile environment to develop the skills and the abilities students should acquire. In general, the best resources of this platform are: documents, questionnaires, surveys, workshops that allow them to study for a qualified evaluation in the virtual classroom; study through flash animations and videos and audio files such as audio books or digital resources to support the learning process (see Fig. 2).

Fig. 2.
figure 2

Phases of the ADPE methodology

Likewise, in this phase, all the activities included in the educational activities must be contemplated in terms of evaluation and monitoring of units and content, which is why the scope phase covers the entire real environment and transfers it to the digital virtual environment of the application.

5.2 Development

The objective of this stage in the ADPE methodology is to capture the thinking of the solution through diagrams or schemes, considering the best alternative when integrating technical, functional, social and economic aspects. This phase is returned if you do not get what you want. In this stage, it is intended objectively to define the scenario, mobile applications can be designed to run in different scenarios, depending on the connection system and synchronization with the server or central application. The synchronization process is done to insert, modify or delete information [15].

We proceed to define times where the deadlines for each of the remaining activities are established, in order to finish the application in time for its release to the market. The computational design of the software performed in the previous task and the volatile and dynamic characteristics of the mobile services must be taken into account.

Allocation of resources. Resources are assigned here to carry out each activity and achieve the proposed objectives. Human, financial and technological resources must be considered. In addition, you must select the tools for the development of the mobile application. This phase is considered the most important within this methodology ADPE. It refers to the aspects and all the activities that have to do with the graphic design of the mobile learning environment, including the corporate image and visual impact that guarantees the comfort of the user and that should provide a welcoming environment that invites permanent customers to enter the application again. The corporate image should be similar in colors, graphics, modeling etc. to the one used in the virtual classroom, so that the user, whether is a teacher or a student, does not feel that they are different or strange environments from each other. The typography must be oriented to facilitate reading and navigation. For this, the typefaces must be simple and without overload of colors that facilitate their readability in any environment. Above all, they must present digital environments as exactly identical as possible [23].

5.3 Tests

The Mobile Learning allows to generate a great interaction between the users, for the case of the m-learning that we treat in our serious work it would be among the users of the academic environment. First, observing the distribution and the elements which arrange each section of the website so that the interaction is established from the content of the site itself. Secondly, the site can be designed complementing, not duplicating the virtual classroom. For example, the block or the communication section can be carried only on the mobile platform, since this allows the student to immediately know the innovations, the interactivity section can be potentiated with the use of chat. With Mobile Learning, students go from being simple passive receivers of content to being creative participants in permanent learning. It can be said that mobile learning is a new online and face-to-face trend that begins to take its first steps and opens a huge field of opportunities for teaching. For this phase, an adequate planning of the virtual resources available in Mobile Learning must be done to generate real learning opportunities for the students, programming collaborative activities such as chat and contributions in blogs so that knowledge is built. Here, mobile technology enhances learning as it allows you to experience it online, at the time and in the place the student requires. That is, it is the best time to learn.

5.4 Delivery

In this phase, the process demands the definitive delivery of the mobile applications attached to the proposed methodology where the parameters of development have been fully met in each of the previous phases, always with the consensus of criteria and especially compliance of the user’s requirements.

6 Analysis of Results, Performance and Cadences

Once the prototype has been developed, it is necessary to analyze the performance of the modules built with the proposed ADPE methodology. Thereby, it is demonstrated that time resource efficiency is evident in the delivery of the different tasks of the prototype. In this way, the application of the ADPE methodology demonstrates that the sprints fully comply with the established times, even saving 10% less time compared to the methodology applied as an RUP adaptation (Figs. 3 and 4).

Fig. 3.
figure 3

Analysis of performance of the methodology

Fig. 4.
figure 4

ADPE methodology yields and cadence

7 Discussion

During the time of application of this methodological guide the effort has focused on demonstrating that its procedures, techniques and steps to follow achieved the optimization of the time of construction and development of a mobile application. Therefore, the prototype developer team, began these works with an alternation of methodologies. Finally, they opted for the ADPE methodological guide, based on time saving which was evident in the saving of resources, and therefore, in the effectiveness of the process. All this is demonstrated in the present research work. Through the metrics shown in the proposal where the time saving was 10% less.

8 Conclusions

The Methodological Guide proposed in this document groups and incorporates innovations to the best practices and artifacts of the most evaluated methodologies of the market, generating a considerably high level of productivity in conjunction with high levels of development and construction.

A significant improvement has been achieved regarding the occupation of time in the development of prototypes, since the Methodological Guide organizes the activities, artifacts and roles in such a way that the Scope, Development, Testing and Delivery are given in a prudent time, always maintaining control over the evolution of the product and the transparency of development towards the end user. Likewise, agile software development methodologies and this particular proposal guide allows small development groups to concentrate on the task of building software by fostering easy-to-adopt practices and an orderly environment that helps people to work better in what m-learning refers to and allows projects to be completed successfully in the shortest time possible without sacrificing the quality of the final product at any time.