ENACTED SOFTWARE DEVELOPMENT PROCESS BASED ON AGILE AND AGENT METHODOLOGIES

Similar documents
Role of Agile Methodology in Software Development

Agile Projects 7. Agile Project Management 21

Agile Project Management By Mark C. Layton

Agile Software Development

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Agile Processes and Methodologies: A Conceptual Study

How To Understand The Limitations Of An Agile Software Development

Agile Software Development. Mohsen Afsharchi

Introduction to Agile Software Development

Software Development with Agile Methods

Agile Development with C#

Agile Software Development Methodologies and Its Quality Assurance

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Development. Lecture 3

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

CSE 435 Software Engineering. Sept 16, 2015

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

The traditional project management uses conventional methods in software project management process.

Agile Project Management with Scrum

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Agile Project Management

4. Multiagent Sys stems Design. Part 2: The PROMETHEUS methodology.

Governments information technology

COMP 354 Introduction to Software Engineering

COMPARATIVELY ANALYSIS OF AGILE SOFTWARE DEVELOPMENT

Neglecting Agile Principles and Practices: A Case Study

Manifesto for Agile Software Development

Agile Development Overview

The Role of Agile Methodology in Project Management

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

AGILE vs. WATERFALL METHODOLOGIES

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

Introduction to Agile Software Development. EECS 690 Agile Software Development

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Advanced Software Engineering. Software Development Processes

Evaluating the Coverage of Development Lifecycle in Agent Oriented Software Engineering Methodologies

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2

Software Processes. Agile Methods

A Survey of Software Development Process Models in Software Engineering

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Agile Beyond The Team 1

Towards an Agent Oriented approach to Software Engineering

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

Implementing Models and Standards for Software Development Benefits and Risks

Case Study on Critical Success Factors of Running Scrum *

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Agile Framework for Globally Distributed Development Environment (The DAD Model)

Alternative Development Methodologies

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Incorporating Agile Methods in Large-Scale Systems

Umbrella: A New Component-Based Software Development Model

CSSE 372 Software Project Management: Managing Agile Projects

PMBOK? You Can Have Both! June 10, Presented by:

An Investigation of Agent Oriented Software Engineering Methodologies to Provide an Extended Methodology

Software Development Life Cycle (SDLC)

Agile Based Software Development Model : Benefits & Challenges

Applying Lean on Agile Scrum Development Methodology

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

Information Management for National Guard Agribusiness Development Teams: An Agile Development Case Study

USCIS/SPAS: Product Backlog Items and User Stories 4/16/2015. Dr. Patrick McConnell

Agile Methodologies and Its Processes

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

History of Agile Methods

A Review of an MVC Framework based Software Development

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Cloud Computing for Agent-based Traffic Management Systems

Tamanna Assistant Professor Chandigarh University Gharuan, Mohali,India

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

SOFTWARE PROCESS MODELS

Software Development Life Cycle Models- Comparison, Consequences

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Evolving a Ultra-Flow Software Development Life Cycle Model

CS4507 Advanced Software Engineering

Comparative Analysis of Agile Software Development Methodologies-A Review

Comparing Scrum And CMMI

Agent-Oriented Software Engineering PORTO Methodology AIAD 2013/2014. António Castro and Eugénio Oliveira

The Design of an Agent-Based Production Scheduling Software Framework for Improving Planning-Scheduling Collaboration

Waterfall vs. Agile Methodology

Transitioning from Waterfall to Agile Course AG01; 3 Days, Instructor-led

Gothenburg 2015 Jan Marek com CA Technologies Introducing Agile development methodologies to Session S601 mainframe development teams

Extreme Programming, an agile software development process

Agile Scrum Workshop

Adopting Agile Project Management - Corporate Culture Must Match (Apr 15)

Agile Software Development

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

A complete software development process of a general report publication service implemented using Web Services

Software Development Process

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

Managing TM1 Projects

Agile and lean methods for managing application development process

REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT

Agile Software Engineering, a proposed extension for in-house software development

Transcription:

ENACTED SOFTWARE DEVELOPMENT PROCESS BASED ON AGILE AND AGENT METHODOLOGIES 1.DR. NACHAMAI. M * Department of Computer Science, Christ University, Bangalore, India nachamai.m@chirstuniversity.in 2. M. SENTHIL VADIVU Department of Computer Science, The Oxford College of Science, Bangalore 560 102, India ms_vadivu@yahoo.com 3. VINITA TAPASKAR Department of Computer Science, The Oxford College of Science, Bangalore 560 102, India vinita.tapaskar@gmail.com Abstract: Software Engineering gives the procedures and practices to be followed in the software development and acts as a backbone for computer science engineering techniques. This paper deals with current trends in software engineering methodologies, Agile and Agent Oriented software development process. Agile Methodology is to meet the needs of dynamic changing requirements of the customers. This model is iterative and incremental and accepts the changes in requirements at any stage of development. Agent oriented software s is a rapidly developing area of research, Software agents are an innovative technology designed to support the development of complex, distributed, and heterogeneous information systems. The work of paper weight against factors of agile and agent oriented software development process on the basis of Architectural Design, Applicability, Project Duration, Customer Interaction Level, Team collaboration, Documentation, Software Models. Keywords: Software Development Process; Software Agent; Iterative Development Models; Prototyping Development Model; Distributed System; Objects; Artificial Intelligence. I. Introduction A software development process is a structure imposed on the development of a software product. During last few decades various software development methodologies have been into market to meet the needs of new demands of software development. Several models exist to streamline the development process. Each one has its pros and cons, and it's up to the development team to adopt the most appropriate one for the project. Sometimes a combination of these models may be more suitable. The most popular models used in software development process are Water Fall, Spiral, and Prototyping model which fall under traditional approaches. Object Oriented Analysis Design Approach based on UML is used for object oriented software development [Munassari and Govardhan, (2010)] [Chidamber and Kemerer, (1994)]. The software s which are developed now are distributed, web based, require intelligent built into component, and necessitate dynamic changes in requirement specification by customer, customer involvement in ISSN : 0975-5462 Vol. 3 No.11 November 2011 8019

development phases is needed. Since each traditional methodology has its own inconveniences to meet these needs industries started moving towards the flexible mode of development. In past few years there has been new style of software methodology used in the IT industry. One of such popular methodology is Agile Methodology. Agile oriented software development is used for faster development of the software. It breaks the project into multiple smaller modules with each incremental release, whereby the customer can give the feedback on each release and suggest the new requirement. The time and cost required for development is reduced and customer is satisfied which is the main aim of this model [Agile Alliance] [Erickson and Lyytinen et al. (2005)]. The prototyping model has customer acceptance taken in each iteration of incremented model, but do not provide the customer involvement in development phases and flexibility in changing the requirement. AOSE is rapidly developing area of research. Software Agents are an innovative technology designed to support the development of complex, distributed, heterogeneous information system. Agent oriented software engineering methodology is used to incorporate software agents into systems. This field is motivated by two research fields software engineering and Artificial Intelligence. Agent-oriented software s are being largely accepted into the various software design areas in the IT industry. Most application developed now are distributed and web based incorporating intelligence through agent will ease the development process [Shoham, (1993)]. In this paper we give an overview of various software development methods in section II, Section III compares agent and agile methods of software development; while section IV describes implementation and section V concludes the paper with summary and future work. II. Methods and Material Before the Agile and Agent Oriented Methods of software development hit the IT industry, there was existence of many other methodologies which are listed below in the Table 2.1. The software development approaches used starts with Waterfall Model and travels till Agent oriented approach [Munassari and Govardhan, (2010)]. ISSN : 0975-5462 Vol. 3 No.11 November 2011 8020

Table 2.1: List of Software Development Methods Model Name Description Waterfall Model Spiral Model A traditional well accepted software development approach, where all the conventional steps of software development are sequentially followed for quality product. In this model with each phase product is evolving. Customer feedback at each phase acts as input to next iteration. Table 2.1 (Continued) Prototype Model Iterative Model Agile The Prototyping Model is approximation of a final system or product built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete product can be developed. Project divided into smaller parts, with phased release of product. This Methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. Agent Oriented Methodology used in developing distributed and complex system in open and dynamic environment with a use of intelligent component called agent. The prototype model used before was having partial level of interaction of the customer at the end of each cycle of the project development. This software development approach was used in the area where customer is not clear about the requirement. But this approach did not provide the flexibility to customer to provide changing requirement satisfaction. And customer involvement is not present in each and every phase of software development. The agile method brings in the features which overcome above mentioned drawbacks. ISSN : 0975-5462 Vol. 3 No.11 November 2011 8021

OOAD approach is built with classes and objects, which brings in modular structure of software development. The approach uses Unified Modeling Language to perform analysis and design [Chidamber and Kemerer, (1994)]. The Software engineering approach that models a system as a collection of interacting objects. Each object represents unit related to method which is being developed. These objects works in collaboration with each other to give requisite result. Objects are passive as their methods are invoked only when the external entities sends a message to act and perform a specified task. In OOP, objects include public and private members, the object do not have control of accessibility of its public members, in this sense the called object do not have any power over methods invocation rather decision lies with the caller. Objects do not have flexibility and intelligence incorporated in them. Because of the above limitations in objects, agent is one among the proposed solution to develop flexible, large, distributed applications. Agent is active entity, it can handle task autonomously with its own intelligence under some prescribed conditions. As compare to object, agent is self initiative and have their own thread of control. Agent executes itself and has a power of decision making based on the user request [Iglesias and Garijo et al. (1999)]. Various approaches for software development co-exist in the IT industry [Munassari and Govardhan, (2010)] [Chidamber and Kemerer, (1994)] [Agile Alliance]. The customer needs from the project are changing because of this there is a need to adopt the approach which brings flexibility and satisfies the customer to the maximum extent. Agile method has bought solution to satisfy this need [Gonzalez and Pilar et al. (2009)] [Hock,(2009)] [Bonner and Nancy et al.(2010)] [Kenneth and Kendall et al.(2010)] [Chan and Thong, (2010)] [Esther and Nageswara,(2011 )] [Taromirad and Ramsin, (2008)] [Lu and DeClue, (2011)] [Likoebe and Maruping, (2009)]. One of the popular example in Agile based software development is Extreme Programming [Extreme Programming (2011)] [Erickson and Lyytinen et al. (2005)]. Due to growth of web technology the projects which are web based needs to be distributed on the global network. This brings in complexity in project development there is a need to fetch in intelligent and self organized component, so that reusability can be increased and complexity can be reduced. Agent Oriented Software Engineering Approach is research area [Wooldridge (1997)] [Molesini1 and Andrea et al. (2009)] [Dzitac and Boldur et al. (2009)] [Scott and DeLoach, (2009)] [Sterling and Taverter, (2009)] [Abdelaziz and Elammari et al. (2008)] [Akbari and Faraahi, (2009)] An example of well known agent oriented software engineering approach is Tropos [Mouratidis and Haralambos, (2009)] [Ali and Dalpiaz, (2008)]. III. System Description 3.1 Architectural description Agile development methodology attempts to provide many opportunities to access the direction of a project throughout the development lifecycle. Agile methods achieve the quality and productivity through regular iterations and interactions. Each iteration includes a software development team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing as shown in Figure. 3.1. Start Define Requiremen Figure 3.1: Stages of Software Development in Agile Method ISSN : 0975-5462 Vol. 3 No.11 November 2011 8022

Agile method adapt to changes, at the end of each stage lanunchable product is tested and released. In agile the changes are made without getting the entire programme rewritten this reduces overhead and upgrades the functionality of the programme. This agile methodology overcomes the problems which exist in traditional software developments like, dynamic changes in requirement specification by the customer, customer involvement in the development phases, miscommunication in the requirement specification between customer and developers[agile Alliance][ Gonzalez and Pilar (2009)]. Following are the important features of Agile Methodology. Highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development stages. Deliver working software frequently, like couple of weeks to a couple of months, with a preference to the shorter timescale. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation Business people and developers must interact frequently throughout development life cycle of the project. Build projects around motivated individuals. Give them the environment and support they need, to get the job done. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances quality of project. Simplicity- The approaches used for development may not be complex The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. AOSE provides the developer the path to structure their applications using autonomous, communicative elements which are nothing but software agents. AOSE methodology can be defined as economical process of development software where agent is used as key element. Developing software involves the phases from understanding the problem, requirements analysis, architecture design and implementation. In traditional development of projects the components or objects provide the business functionality. But this approach of Software Development faces the challenges with distributed, complex and open systems. In distributed systems it is difficult to trace the single point of control because the objects are distributed. To overcome this difficulty the components must be capable of automatically interacting with each other and performing the required functionality as user needs it. Some Artificial Intelligence must be brought into the components of software. AOSE provides such intelligence through agents. Agent may perform the tasks individually. In Complex and distributed system, Agents can be used to monitor the interaction among components particularly when human interaction is unavailable [Wooldridge, (1997)] [ Molesini1 and Mirko,(2009)]. ISSN : 0975-5462 Vol. 3 No.11 November 2011 8023

Persistence Autonomy Reactivity Social Ability Figure 3.2 Agent Features Agents have following properties broadly shown in Figure 3.2 to work on distributed or complex system intelligently: Persistence: The component code will be active and will decide on its own when to execute the code based on the demand. Autonomy: Agents have decision making capability. They can do selection, prioritization on behalf of user. Social ability: Multiple agents may work in collaboration with each other. They can communicate with each other to perform the given task. Reactivity: Agents can respond and react to the external environmental changes 3.2 Deployment scenario Customer requirement keep changing due to evolving business needs. Most customers do not have clear vision about the specification of their requirements at the early stage. In such changing environment agile development methodology is suited. Agile development is a development strategy where the most importance is given to software solution that fits exactly what the client needs with minimum resources utilized [Hock, (2009)] [Bonner and Nancy et al. (2010)]. During past few years there is gradual increase in the complexity of projects; agent concept bought out of Artificial Intelligence provides solution to handle such complex systems. For many software systems single point of control cannot be identified [Dzitac and Boldur et al. (2009)]. The entire implementation of the project is distributed across various nodes which are located remotely. Popular trend in distributed environment is Cloud computing which delivers IT as a service. It is an Internet-based computing solution where shared resources are provided. Computers in the cloud are configured to work together and the various applications use the collective computing power as if they are running on a single system. In such situations to develop complex, distributed based projects effectively, agent is introduced which in turn brings in AOSE. ISSN : 0975-5462 Vol. 3 No.11 November 2011 8024

3.3 Project duration Agile methods focus on delivering features, they typically do not encompass the entire endeavor lifecycle omitting important pre-project work and beyond delivery activities due to this, project duration get reduced tremendously[kenneth and Kendall et al. (2010)]. As Agile is iterative model the phases which are included is shown in Figure 3.3. 1. Initial Story Writing Write Feature C Discuss, Estimate, Return Card back D 2. Planning Choose Card C Discussion on Feature D 3. Development New Card C Develop and Collect Feedback D Figure 3.3: Development Phases in Agile ISSN : 0975-5462 Vol. 3 No.11 November 2011 8025

Planning and development activity will be repeated with each iteration. Based on the scope of project the duration may differ from six weeks to 6 months. The aim is to deliver many working versions of the software in short timed iterations. For Agent oriented software development effort entire phases of software development are followed rigidly [Scott and DeLoach, (2009)]. The project which are developed using AOSE approaches are complex, distributed and long term project so project duration will be run into years. The phases and time requirement are explored in the following Figure 3.4. 3.4 Customer interaction level Figure 3.4: Duration for AOSE Lack of customer involvement leads to higher chances of project failure. First objective of the agile methodology is to develop software that satisfy customer, through continuous delivering of working software and receiving periodic feedback from customer [Chan and Thong, (2010)]. This involvement brings in more satisfaction and understanding of development process for the customer dynamic changes can be incorporated. There is communication between the developer and customer on daily basis. Agent methodology uses software agents as building blocks, functional requirement for agents are defined initially by the customer in requirement gathering stage. Frequent changes to the functionalities of agents are not entertained [Scott and DeLoach, (2009)] [Sterling and Taverter, (2009)]. 3.5 Team collaboration In Agile Methodology the development team is small, strongly interactive, self organized and with deeper technical, communicational skill [Esther and Nageswara, (2011)]. Developers are recognized for the critical role in building the system and are given more responsibility and trust. The entire software development process is based on face-to-face communication the team should be small and cannot be distributed in different location. In AOSE approach, each agent represents a role or functionality in the software. Teams needs to be large as complex systems require huge effort. Development teams can even be distributed as each team members may be working with different agent role [Sterling and Taverter, (2009)] and each team member may have been working from remote locations. 3.6 Documentation In agile approach the duration of software development is reduced by eliminating certain steps in the standard software development approach. Agile methodology prefers software development over documentation [Taromirad and Ramsin,(2008)]. With each iteration working model is delivered, not much concentration is given for documentation as there is close communication between the customer and developer in a small team[lu and DeClue, (2011)]. ISSN : 0975-5462 Vol. 3 No.11 November 2011 8026

Agent oriented methods include documentation at each phase of development, which describes the role of agent and its communication. For complex and distributed project, documentation is needed as it helps to communicate requirement clearly from customer to developer, and further eases the maintenance of project[abdelaziz and Elammari et al. (2008)] [Akbari and Faraahi,(2009)]. 3.7 Software models Agile base software developments models are being widely used in Industry. These models are used in the IT market to develop customer centric projects and projects which have small road map. This methodology is not suited for complex and large projects. For e.g. SCRUM For AOSE many models were developed during past few years, but they lack industry acceptance due to lack of Agent Oriented Programming Languages, difficulty in learning those methods, relatively immature models, and lack of single methodology which fits all size and type of projects. IV. Experimental Results XP (Extreme Programming) is one of the well-liked Agile Methodology [Erickson and Lyytinen et al. (2005)]. This methodology provides simple and specific principles and values throughout all the stages of software development. The salient feature of this method is as follows [Extreme Programming (2011)]: Incremental development with minimal design Concentrates on delivering the function module XP tends to use small size teams, thus reducing communication costs. XP development approach has large Customer and developers interaction XP works with index cards to expensive round-trip UML diagramming environments XP's makes small size teams to work together to provide product as quickly as possible and how customer wants it. XP uses template for coding which increases the quality of the product. Figure 4.1: Project flow with XP The Figure 4.1 shows the various steps followed in the development process using XP Methodology. This methodology used in developing small project with small teams for quick releases, as well accepting dynamic requirement at each stage. Tropos is one of the well received software development methodologies used in case of AOSE. This methodology is a requirement driven methodology. Tropos is based on two key ideas. First, the notion of agent ISSN : 0975-5462 Vol. 3 No.11 November 2011 8027

such as goals and plans of agent, used in all phases of software development, (from early analysis down to the actual implementation). Second, Tropos covers the very early phases of requirements analysis, thus allowing for a deeper understanding of the environment where the software will eventually operate. [Mouratidis and Haralambos,(2009)] Following are the concepts which are used in case Tropos methodology shown in Figure 4.2: Figure 4.2: Concepts of Tropos Mythology Actor: Intentional entity, role, position, agent (human or software) Goal : Strategic interest of an actor Task: Particular course of action that can be executed in order to satisfy a goal Resource: Physical or informational entity (without intentionality) Social dependency (between two actors) One actor depends on another to accomplish a goal, execute a task or deliver a resource [Ali and Dalpiaz et al. (2008)]. Tropos support four phases of software development: Early requirements analysis concerned with the understanding of a problem by studying its organizational setting Late requirements analysis where the system-to-be is described within its operational environment, along with relevant functions and qualities Architectural design where the system's global architecture is decided in terms of subsystems, interconnected through data, control, and other dependencies Detailed design, where the behavior of each component is explained in further detail. V. Conclusion This paper extensively compares two methodology of software development one which concentrates on changing client requirement during steps of software development and another which talks of intelligent incorporation in building software component. Agile is used for developing applications where users at initial stage is not clear about all the requirements and this method can be used for short term applications. Whereas agent methodology is used for complex and distributed project and requires component to do decision making on behalf of user. Agile and Agent based software development approaches are the latest trends in software engineering. Customer satisfaction and involvement is to the max in agile methodology for developing more ISSN : 0975-5462 Vol. 3 No.11 November 2011 8028

compact and business oriented applications. Agent methodology is growing technique for development complex, distributed and component oriented applications. Future Work This paper compares Agile and Agent Oriented software Development approaches on various factors, in future hands on can be done on other comparison factors like Cost and Budget, Testing Techniques, Quality of Software and Ease in Maintenance etc. References [1] Abdelaziz T; Elammari M; Branki C.(2008):Towards a comprehensive multiagent system development methodology, Meersman R, Tari Z., and Herrero P (Eds, OTM 2008 Workshops, LNCS 5333,pp. 108-117 [2] Agile Alliance. Manifesto for Agile Software Development Available at http://www/agilemanifesto.org [3] Akbari Z; Faraahi A.(2009): A feature based framework for agent-oriented methodologies evaluation, in Proceedings of CCSR, Tehran, pp. 125-133 [4] Ali R; Dalpiaz F; Giorgini P.(2008): Location-Based Software Modeling and Analysis: Tropos-Based Approach, Lecture Notes in Computer Science, Volume 5231/2008, 169-182, [5] Bonner; Nancy A; Teng; et al. (2010): The Perceived Advantage of Agile Development Methodologies By Software Professionals: Testing an Innovation-Theoretic Model, AMCIS 2010 Proceeding". Paper 93 [6] Chan F; Thong J. (2010): The Effects of Agile Methodology Use on Knowledge Management Outcomes, Proceedings > Proceedings of IFIP 8.2/Organizations and Society in Information Systems (OASIS). Sprouts: Working Papers on Information Systems, 10(110). [7] Chidamber S ; Kemerer C. (1994) : A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493. [8] Dzitac I; Boldur E; Barbat. (2009): Artificial Intelligence + Distributed Systems = Agents, Int. J. of Computers, Communications & Control, ISSN 1841-9836, E-ISSN 1841-9844, Vol. IV, No. 1, pp. 17-26 [9] Erickson J; Lyytinen K; Siau K. (2005): Agile Modeling, Agile software Development and Extreme Programming : The state of Research: In Journal of Database Management 16(4),88-100 [10] Extreme Programming.What is Extreme Programming?[Online]Retrieved 14th March 18, 2011, Available at www.extremeprogramming.org [11] Gonzalez R; Pilar; Panadero Y; et al. (2009): Some Findings Concerning Requirements in Agile Methodologies. Product-Focused Software Process Improvement, 32 (4). 171 184pp. [12] Hock M. (2009): Review Of Agile Methodologies in software development. International Journal of Research and Reviews in Applied Sciences, Volume 1,Issue 1. [13] Iglesias C; Garijo M; Gonzalez J.(1999): A survey of Agent oriented Methodologies, Intelligent Agents IV: Agent Tehories Architevtures, and Languages, LNAI 1555, Spriner-Verlag, pp.317-330 [14] Kenneth E; Kendall; Kong S; et al. (2010): The Impact of Agile Methodologies on the Quality of Information Systems: Factors Shaping Strategic Adoption of Agile Practices, International Journal of Strategic Decision Sciences (IJSDS)(1)(1), 41-56 pp. [15] Likoebe M; Maruping; Venkatesh V; ea tl.(2009): A Control Theory Perspective on Agile Methodology Use and Changing User Requirements, Journal: Information Systems Research,, Volume 20 Issue 3. [16] Lu B; DeClue T.(2011): Teaching agile methodology in a software engineering capstone course, Journal of Computing Sciences in Colleges, Volume 26 Issue 5. [17] Molesini1 A; Andrea O; Mirko V.(2009): Environment in agent-oriented software engineering methodologies, Multiagent and Grid Systems, Volume 5, Number 1, 37-57pp. [18] Mouratidis; Haralambos.(2009): Secure Tropos: An Agent Oriented Software Engineering Methodology for the Development of Health and Social Care Information Systems, International Journal of Computer Science and Security, 3 (3) 241-271. [19] Munassari A; Govardhan A. (2010): A Comparison Between Five Models Of Software Engineering IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5. [20] Scott A; DeLoach.(2009): Moving multi-agent systems from research to practice, International Journal of Agent-Oriented Software Engineering, Volume 3, 378 382. [21] Shoham Y. (1993): Agent-oriented programming Artificial Intelligence, 60 (1) 51-92pp. [22] Sterling L; Taverter K. (2009): The art of agent oriented modeling Cambridge, MA London, England, The MIT Press. [23] Taromirad M; Ramsin R. (2008): An Appraisal of Existing Evaluation Frameworks for Agile Methodologies, : Engineering of Computer Based Systems, ECBS. 15th Annual IEEE International Conference and Workshop, 418 427pp. [24] Esther Jyothi V; Nageswara R.(2011): Effective Implementation of Agile Practices, (IJACSA) International Journal of Advanced Computer Science and Applications,Vol. 2, No.3. [25] Wooldridge M. (1997): Agent-based software engineering IEEE Proc. on Software Engineering, 144(1) 26-37pp. ISSN : 0975-5462 Vol. 3 No.11 November 2011 8029