• No results found

Agile Development Methods for Online Training Courses Web Application Development

N/A
N/A
Protected

Academic year: 2021

Share "Agile Development Methods for Online Training Courses Web Application Development"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Agile Development Methods for Online Training Courses Web Application

Development

M. Wasim Raja

Research Scholar, Quaid-E-Millath Govt. College for Women, Chennai, Tamil Nadu, India. Dr. K. Nirmala

Research Supervisor, Quaid-E-Millath Govt. College for Women, Chennai, Tamil Nadu, India.

Abstract

The purpose of the research work is to develop the agile project management model for E-Learning using Agile methodologies (ELAM) have proven to be very interesting instructional strategies in Electronics and Engineering education, because they provide practical learning skills that help students understand the basis of electronics. In modern information enabled organization Web Applications development is a most important task. In recent years combination of software architecture and agile development has significant attention. This work we analyzes this combination architecture for online training courses such as C, C++ and JAVA with respect to approaches and agile methods. This work proposed the agile technique development process as an iterative method based on collaboration.

Keywords: E-learning, Software Engineering, Agile Methodology, Testing, Web Application

Introduction

In software engineering circle discussed about the issue of how software development organization is faster in their deliver, better and cheaper solution. Many remedies have been introduced for this suggestion such as several tools, techniques and practices. Recently several suggestions are come through experience and the method labeled as agile software development.

The proposed online course training system is developed using agile methodology. Agile mechanism is a software development methods in which requirements and solutions evolve through collaboration between self-organizing [1] cross-functional teams. Agility, is the core of agile development it identifies or tell how the agile team should communicate and respond to requirement changes. Lee and Xia [18] describes about software development agility “during project life cycle the software team have an efficient capable for incorporate user requirement changes.’ Qumer and Henderson-Sellers [19] describes that agility have a flexible for accommodate expected or unexpected changes. It is clear from these definitions that agile team members communicate efficiently and effectively.

Now days, the world is focusing on computerizing all manual process. In such situation developing an application has become vital. By definition software engineering is the application of a systematic, quantifiable and disciplined

approach to the development, operation, and maintenance of software in which an engineering discipline is concerned with all aspects of software production. So to develop an application with engineering discipline various software development models were identified and developed. All were success in their aspects. Situation has changed today, because the applications are becoming obsolete sooner and user requirement are changing frequently in this electronic world. To meet this drastic situation, agile methodology is developed. Agile are developed to include any of changes in the requirement while application has entered the any of development phases. For developing online course training application, agile methodology is choose. This development phase includes a phases like requirement gathering, design, development and testing. In requirement gathering phase, users have to select the language needed for the development of application. The selection will be among C, C++ and java. Once language is chosen, the requirement form is displayed to collect the user requirements. For each requirement, a set of one or more design elements will be produced. A design element describe the desired system features in detail, and includes functional hierarchy diagrams, screen layout diagrams, tables, process diagrams, pseudo-code, and entity-relationship diagram. These design elements are intended to describe the system sufficiently. Once the flow of application is framed, development phase can be commenced. The development process involves the implementation of design component. Implementation is done on the choice selected by user. After development, testing is done to ensure the requirement is implemented as a system. Since the application is developed using agile methodology, it shows better performance than the previously implemented system. The article is organized as follows: in section 2 describe about the overview of agile development with traditional methods. Section 3 describes the brief explanation about agile methods. Section 4 discusses about the proposed framework and benefits of this research. Section 5 describe Experimental Result Section 6 concludes and provides recommendation.

Related Work

This section presents an overview of previous work on related literature and studies done by the researchers that provide the necessary background for the purpose of this research. The review of literature mainly emphasized on the mobile application development process, Agile software

(2)

development, existing mobile software development models using Agile approaches and other software development products using Agile methods. Soundararajan and Arthur [20] proposed a soft-structured methodology for the developing the larger systems. This framework consists of two parts: (1) the Agile Requirements Generation Model. I.e. a soft structured requirements collection model that reflects the agile philosophy and (2) a tailored development process that applicable for both small and larger scale systems. The objective of this approach is to overcome the changes during the development of large scale systems. Yang-Jae Jeong et al [21] proposed mobile application software namely MASAM (Mobile Application Software Agile Methodology) which allows to develops the application software operated on mobile platform. This approach is based on the existing agile methods such as XP, AUP, and RUP. This approach has four phases such as Preparation Phase, Embodiment Phase, Product Developing Phase and Commercialization Phase. However this model is not clear and does not has any case studies. Pritha Guha et al[22] presented a new approach for developing a online polling system. Initially the author analyzed merits and demerits of Model Driven Architecture (MDA) and Extreme programming and introduced a new method for developing the software in both small and large scale application. In this approach online polling system software is taken as the case study which develops the software in the proposed approach.

Agile Software Development

Agile methods are implemented along with software process improvement [3, 4, 5 and 6]. Agile software development Methods constitute a set of practices for software development that have been created by experienced practitioners [2]. There are five aspects are available, why agile development methods are criticized by some practitioners and academics fig 1 shows the basic structure of agile project management.

Figure 1: Basic structure of agile project management

This is new and it is introduced in software development since 1960s [8].

The lack of focus on architecture is to generate suboptimal design-decisions [7].

Agile community provided some scientific support [7]. This method is applicable for small team as well as large teams [9].

The practices in XP are rarely applicable, and are rarely applied by the book [10].

Table 1: Description of main agile development methods, with key references

Agile method Description Crystal

methodologies [11]

This method consist of different color such as Clear, Yellow, Orange, Red, Blue. This method is focused on small team. It is very easy to access

Dynamic software development method (DSDM) [12]

This method consists of three phases such as pre-project, project life-cycle, and post project and it consists of nine principles such as user involvement, empowering the project team, frequent delivery, addressing current business needs, iterative and incremental development, allow for reversing changes, high-level scope being fixed before project starts, testing throughout the lifecycle, and efficient and effective communication Feature-driven

development [13]

This method consists of two phases such as design and development.

Lean software development [14]

This method consists of seven principles such as eliminate waste, amplify learning, decide as late as possible, deliver as fast as possible, empower the team, build integrity.

Extreme programming (XP; XP2) [15, 16]

This method consists of twelve practices such as the planning game, small releases, metaphor, simple design, testing, refactoring, pair programming, collective ownership, continuous integration, 40-h week, on-site customers, and coding standard

Table 2: Main differences between traditional development and agile development [17]

Comments Traditional development Agile development Fundamental assumption specifiable, predictable High-quality adaptive software is developed by small teams using the principles of continuous design improvement and

(3)

testing based on rapid feedback and change Management style Command and control Leadership and collaboration Knowledge management Explicit Tacit Communication Formal Informal Development model Life-cycle model The evolutionary-delivery model Desired organizational form/structure Mechanistic Flexible

Quality control Heavy

planning and strict control. Late, heavy testing Continuous control of requirements, design and solutions. Continuous testing

Proposed Framework Using Agile Software Development The proposed framework is implemented for online training course for C, C++ and JAVA using agile software. Agile development has attracted huge interest from the software industry. The objective of agile methodology is simple which delivers higher quality products and promotes collaboration through an incremental process, Agile is intended to promote transparency within the development process, respond quickly to inevitable modification in business requirements. The development team is prepared for iterative modification and the requirement collection process must reflect this reality. The main goal of this work.

To identify various knowledge management practices specific to agile software development

To identify knowledge sharing strategies in distributed agile teams in Indian software development organization To identify the parameters for the applicability of agile software development in distributed environments in Indian software development organization.

To propose guidelines for knowledge sharing in distributed agile software development.

To design an web application for providing online course training for information flow among team members

The proposed model contains the following phases. Requirement Gathering

Design Developing Testing

Figure 2: Proposed framework of agile approach in Web Application Development

Requirement Gathering:

The initial stage of the proposed work is Requirement gathering, where the requirement is collected from the client and the planning procedure of application development is performed. The proposed work is to develop web application for providing the online training for technical languages such as C, C++, and Java. To do so the basic requirement has to collected, such as

What does the client company doing? Description about the course detail

What are the technical languages can be trained? How big the client website will be?

How do the clients plan to keep their website updated? The above questions are some example requirements for this proposed approach. Based on the requirements the initial planning procedure is designed to proceed the further development process. The upcoming level describes the detail about the design of the web application.

Design

The initial design procedure is made based on the collected requirement in first stage. The further design will be done by the design patterns which provide the best practices for the object-oriented software developers. The problem faced by the software developers during the software development can

No

(4)

be solved by Design patterns. In this approach two design patterns is taken for designing such as factory pattern and singleton pattern. These pattern are discussed in detail in the following section

Singleton pattern:

It is the simple design patter that comes under creational pattern. This module gives the best way for object creation and access. This allows accessing the object directly without the need to instantiate it. This pattern includes a single class responsible for creating an object while making sure that only single object gets created.

Factory pattern:

Factory pattern is one of most important design pattern used in Java which provides a way to create an object and comes under creational pattern as this pattern provides one of the best ways to create an object. In this module an object can be created without exposing the creation logic to client that refers to newly created object using a common interface.

Development

The proposed web application is developed using the Netbeans IDE with J2EE enterprise. The web pages such as register, login, course trading portal, student detail pages can be designed using the JSP pages. The database maintenance is handled by MYSQL 5.1. The connection between the web pages and the database can be established using the servlet controller.

Java Server Page (JSP):

JSP technology controls the content (appearance) of Web pages through servlet controller. Jsp has several features in developing the web pages. Sun Microsystems refers the JSP technology, as the Servlet API. JSP calls a Java program executed by the Web server such as glass fish, tomcat, is an Active Server Page contains a script that is interpreted by a script interpreter before the page is sent to the user.

Servlet:

A servlet program is the controller in the MVC framework that runs on a server. It is used to extend the server capabilities which host applications. Servlet can respond to any type of request, for some applications, Servlet defines the HTTP-specific servlet classes. In order to write the servlet program javax.servlet and javax.servlet.http packages can be used that provide interfaces and classes of servlets.

MYSQL:

MySQL is an open source RDBMS used in this proposed approach to maintain the background process. MySQL 5.1 is utilized here to store the student detail and the course details etc. MySQL is a popular database for use in web applications, With the above mentioned component the proposed web application is developed and the following section describes the testing phase.

Testing

This phase performs the testing on the developed application whether the developed projects meets the customer requirements or not. A manual testing is performed in this approach for software testing. Our approach is a web based application therefore written test case should be relevant to this application.

The testing procedure in this approach is described in figure 2. Each phase in agile technology and the corresponding actions are also be described in above diagram. This section discussed the proposed methodology and the working procedure of web application is explained in detail. The following section gives the detail about the agile using web development of this research work

Figure 3: Testing in agile methodology

Using agile approach in Web Application Development For web development teams looking to introduce a lightweight development process or scale back more bureaucratic processes, Agile software development offers tremendous opportunities and value.. The distinctive requirements and constraints associated with web application have brought new challenges to software development for such environments, as it requires extensive improvements to conventional systems development techniques in order to fulfill the special needs of this field. The Agile approach is seen as a natural fit for web application development and studies carried out for the application of the Agile development approach to web application development indicates the need for software development processes tailored to suite the web application requirements. There are many reasons why Agile Software Development suites web Application Development these include small teams, short deadlines, importance of usability, fast delivery and less complexity

Conventional software development methods have gradually been replaced by lightweight Agile software development methods since the mid-1990s. This phenomenon is mainly due to the shortcomings of the conventional method including a slow adaptation to rapidly changing business requirements, and a tendency to be over budget and behind schedule. The web application development is comprised of a highly competitive, uncertain and dynamic environment.

The potential number of different web applications is virtually unlimited. With the increasing popularity and demand for web

(5)

applications, there has been significant increase in number of projects for web application development services. Agile innovations offer a solution for web application and service developers who are in need of high quality development processes. There is a great necessity to explore various Agile methodologies for the development of web applications because Agile approach is a natural fit for the development of web applications as traits observed in web software development maps perfectly to Agile themes.

Experimental Result

This section describes the performance evaluation of the proposed research work. Netbeans IDE is utilized to develop the proposed approach. It is powerful model and simulation tool for developing the web and desktop application. The web pages are designed using the JSP in J2EE. This work is compared to the existing methodology (without SDLC life cycle).

Table 3: Performance Report of Existing work Web Application Development without SDLC

Time Memory

1200s 1024Mb

The above table describes the evaluation report of previous web application development mechanism. The execution time and memory consumption is high. The execution time and memory is 1200s and 1024 Mb respectively. The graphical representation of this work is shown in figure 4.

Figure 4: Web Development without SDLC

The table 4 describes the evaluation report of proposed web application development mechanism. The execution time and memory consumption of this work is very low compared to the previous work. The execution time and memory is 720s and 600 Mb respectively. The graphical representation of this work is shown in figure 5 for easy understanding.

Table 4: Performance Report of proposed work web application with SDLC life cycle

Time Memory

720s 600mb

Figure 5: Web Development with SDLC (Agile technology)

The above graphs and table shows the performance of proposed work

Conclusion

The online training course framework for C, C++ and JAVA is implemented in this paper. Online training course is developed using agile software development and compared to prior software development process, and it has lot of advantages. Our approach is purposefully designed for the practitioners to obtain the benefit from our analysis to better understand the current trends in the web application development More specifically, this work plan to incorporate our process in an organization.

References

[1] Dingsøyr, T., Nerur, S., Balijepally, V., Moe, N.B., 2012. “A decade of agile methodologies: towards explaining agile software development.” J. Syst. Softw. 85 (6), 1213–1221;

[2] P. A˚ gerfalk, B. Fitzgerald, Flexible and distributed software processes: old petunias in new bowls? Communications of the ACM 49 (10) (2006) 27–34.

(6)

[3] Lukasiewicz, K., Miler, J., 2012. “Improving agility and discipline of software development with the Scrum and CMMI”. IET Softw. 6 (5), 416–422, [4] Baker, S.W., 2006. Formalizing agility. Part 2: “How

an agile organization embraced the CMMI. In: Proceedings of the AGILE 2006 Conference”, 23–28 July, pp.146–154

[5] Jakobsen, C.R., Johnson, K.A., 2008. “Mature agile with a twist of CMMI”. In: Agile Conference 2008, 4–8 August, pp. 212–217.

[6] Cohan, S., Glazer, H., 2009. “An agile development team’s quest for CMMI maturity level 5”. In: Agile Conference 2009, 24–29 August, pp. 201–206. [7] P. Mcbreen, “Questioning Extreme Programming,

Pearson Education”, Boston, MA, USA, 2003, ISBN 0-201-84457-5.

[8] H. Merisalo-Rantanen, T. Tuure, R. Matti, “Is extreme programming just old wine in new bottles”: a comparison of two cases, Journal of Database Management 16 (4) (2005) 41–61.

[9] D. Cohen, M. Lindvall, P. Costa, “An introduction to agile methods”, in: M.V. Zelkowitz (Ed.), Advances in Computers, Advances in Software Engineering, vol. 62, Elsevier, Amsterdam, 2004.

[10] G. Keefer, “Extreme Programming Considered Harmful for Reliable Software Development” 2.0, AVOCA GmbH, Online Report, 2003.

[11] A. Cockburn, Crystal Clear: “A Human-Powered Methodology for Small Teams”, Addison-Wesley, 2004, ISBN 0-201-69947-8.

[12] J. Stapleton, DSDM: “Business Focused Development, second ed., Pearson Education”, 2003, ISBN 978-0321112248.

[13] S.R. Palmer, J.M. Felsing, “A Practical Guide to Feature-driven Development”, Prentice Hall, Upper Saddle River, NJ, 2002, ISBN 0-13-067615-2. [14] M. Poppendieck, T. Poppendieck, “Lean Software

Development – An Agile Toolkit for Software Development Managers”, Addison-Wesley, Boston, 2003, ISBN 0-321-15078-3.

[15] K. Beck, “Extreme Programming Explained: Embrace Change”, Addison-Wesley, 2000, ISBN 0-201-61641-6.

[16] K. Beck, “Extreme Programming Explained: Embrace Chage”, second ed., Addison-Wesley, 2004, ISBN 978-0321278654.

[17] S. Nerur, R. Mahapatra, G. Mangalaraj, “Challenges of migrating to agile methodologies, Communications of the ACM” (May) (2005) 72–78. [18] G. Lee, W. Xia, Toward agile: “an integrated

analysis of quantitative and qualitative field data”, MIS Quart. 34, 2010, pp. 87–114.

[19] A. Qumer, B. Henderson-Sellers, “An evaluation of the degree of agility in six agile methods and its applicability for method engineering”, Inf. Softw. Technol. 50, 2008, pp. 280–295

[20] Soundararajan S, Arthur JD, “A soft-structured agile framework for larger scale systems development”, Proceedings of 16th Annual IEEE international Conference and Workshop on the Engineering of

Computer Based Systems (14–16 April 2009). ECBS. IEEE Computer Society: Washington DC, 2009; 187–195.

[21] Yang-Jae Jeong, Ji-Hyeon Lee, and Gyu-Sang Shin, "Development Process of Mobile Application SW Based on Agile Methodology", 10th International Conference on Advanced Communication Technology, ICACT. pp. 362-366. 2008

[22] Pritha Guha, Kinjal Shah, Shiv Shankar Prasad Shukla and Shweta Singh, “incorporating agile with MDA case study: online polling system”, International Journal of Software Engineering & Applications (IJSEA), Vol.2, No.4, October 2011.

References

Related documents

sustainability: analyses of pharmacy costs, revenues and profit shed light on retail medicine mark-ups in rural Kyrgyzstan BMC Health Services Research

This real-time performance management platform will allow your energy management specialists to look across your entire enterprise to identify energy waste and opportunities

Clock Generator PLL OSCIN Interface TX_CLK TXD[3:0] MDC MDIO Serial Controller TX_EN TX_ER RX_CLK RXD[3:0] CRS RX_DV RX_ER Collision 4B5B Encoder Scrambler MLT3 Encoder Switched

Some of the people that should consider using Cued Speech are teachers and families of students who are deaf or hearing impaired, families and teachers of students with

A continuación se recogen los resultados obtenidos en cada una de las variables mediante la presentación de las escalas utilizadas y una tabla que

The custom, policy, and practice of Defendants Colorado Springs and Teller County of encouraging, condoning, tolerating, and ratifying the retaliation, detention, use of

Thus, the reader generates a fresh random number as a secret session key between the reader and the phone, denoted as (K MP ). This key is used for subsequent encryption between

Results for Individual Work Areas Fraud Control Attribute Overall Results for. Individual Fraud