How To Write A Maintenance System For A Collaborative Software Maintenance System



Similar documents
Knowledge Management System Framework and Agent-Based Tool to Support Collaborative Software Maintenance Environment

Using a Multi-Agent Architecture to Manage Knowledge in the Software Maintenance Process

Workflow Management Systems: A Prototype for the University of Coimbra

Knowledge Management System Architecture For Organizational Learning With Collaborative Environment

How To Model Software Development Life Cycle Models

Assuming the Role of Systems Analyst & Analysis Alternatives

Agent-Based Software and Practical Case of Agent-Based Software Development

DOCUMENT MANAGEMENT IN CONTEXT OF COLLABORATIVE SYSTEMS

Imperial College London. Job Description. Information and Communication Technologies Division

Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form

Re Engineering Software Development Process for ebusiness Application Development

An Agent-Based Concept for Problem Management Systems to Enhance Reliability

State of Oregon. State of Oregon 1

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Requirements Volatility in Software Development Process

Application of Open Source Tools and Cloud Computing Technologies in Real-time Data Collection and Analysis

Introduction. Architecture Re-engineering. Systems Consolidation. Data Acquisition. Data Integration. Database Technology

Generating Aspect Code from UML Models

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

Agile Test Automation

IT2404 Systems Analysis and Design (Compulsory)

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended.

Software Configuration Management Plan

A Multi-Agent Approach to a Distributed Schedule Management System

A Framework of Collaborative Knowledge Management System in Open Source Software Development Environment

Software Development Life Cycle (SDLC)

DURING a project s lifecycle many factors can change at

Montana Department of Transportation Information Services Division. System Development Life Cycle (SDLC) Guide

What is a life cycle model?

Priority: Medium Channel to Actor: Graphical User Interface (GUI) Usage Frequency: Weekly Secondary Actors: Database, Brisk Application

Model Based System Engineering (MBSE) For Accelerating Software Development Cycle

Best Practices Report

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

BUSINESS RULES AS PART OF INFORMATION SYSTEMS LIFE CYCLE: POSSIBLE SCENARIOS Kestutis Kapocius 1,2,3, Gintautas Garsva 1,2,4

The most suitable system methodology for the proposed system is drawn out.

Data Management in Technical Institutions in India with Special Reference to Karnataka State, D.K. District

I. TABLE OF CONTENTS...

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

MS 20337A: Enterprise Voice and Online Services with Microsoft Lync 2013

Towards Collaborative Learning via Shared Artefacts over the Grid

Soar Technology Knowledge Management System (KMS)

Department of Finance and Deregulation 2011/004 Portfolio Panels for IT Services ATTACHMENT A

A Service Modeling Approach with Business-Level Reusability and Extensibility

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

Development of a personal agenda and a distributed meeting scheduler based on JADE agents

Increasing business values with efficient Software Configuration Management

zen Platform technical white paper

EFFICIENT KNOWLEDGE BASE MANAGEMENT IN DCSP

An Object-Oriented Analysis Method for Customer Relationship Management Information Systems. Abstract

Quality Assurance - Karthik

Custom Software Development Approach

Development Methodologies Compared

A Framework for Adaptive Process Modeling and Execution (FAME)

A DESIGN SCIENCE APPROACH TO DEVELOP A NEW COMPREHENSIVE SOA GOVERNANCE FRAMEWORK

QMBTIS Case Management System with EDMS

Software Requirement Specification for Web Based Integrated Development Environment. DEVCLOUD Web Based Integrated Development Environment.

Picasso Recommendation

Semantic Analysis of Business Process Executions

10533: Deploying, Configuring, and Administering Microsoft Lync Server 2010 Duration: Five Days

CS 565 Business Process & Workflow Management Systems

LDAP Authentication Configuration Appendix

IT Operations Management: A Service Delivery Primer

A Tool to Support Knowledge Based Software Maintenance: The Software Service Bay

A Framework for Virtual Enterprise Support Services

Successful Projects Begin with Well-Defined Requirements

Change Management Best Practices

AGENT-BASED DOCUMENT MANAGEMENT WITHIN THE WHOLE LIFECYCLE OF INFORMATION SYSTEM Viacheslav Lanin, George Sokolov

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Chapter 5. Choose the answer that mostly suits each of the sentences given:

Multi-Agent-based Approach for Meeting Scheduling System

A Visual Language Based System for the Efficient Management of the Software Development Process.

TIBCO Spotfire and S+ Product Family

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

Table of Contents. Headquarters Cary, NC USA US Fax International

8 Key Requirements of an IT Governance, Risk and Compliance Solution

JOURNAL OF OBJECT TECHNOLOGY

How to Successfully Achieve Application Lifecycle Management

A PROCESS-ORIENTED E-LEARNLING SYSTEM: FROM MASTERY LEARNING PERSPECTIVE

An introduction to the benefits of Application Lifecycle Management

Chapter 1 The Systems Development Environment

Genesis Energy delivers IT projects faster with standardised processes and CA Clarity PPM.

Big Data Integration: A Buyer's Guide

Modernizing enterprise application development with integrated change, build and release management.

Software Test Management Involving Client Relationship and Application Virtualization

Utilizing Defect Management for Process Improvement. Kenneth Brown, CSQA, CSTE

POPIM: Pragmatic online project information management for collaborative product development

Computer Assisted Assessment for Computer Programming Course with Agent Based Architecture

Keywords IS-SDE, software engineering, CALM, ALM, collaborative software development, development tools

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

EU CUSTOMS BUSINESS PROCESS MODELLING POLICY

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

F 1 ALL 0 Just The Facts

A Survey of Software Development Process Models in Software Engineering

Research on Operation Management under the Environment of Cloud Computing Data Center

risks in the software projects [10,52], discussion platform, and COCOMO

On the Requirements for Cooperative Assistance in the Medical Domain

Multifunctional Barcode Inventory System for Retailing. Are You Ready for It?

The New Way of Doing Migration

Apache Web Server Execution Tracing Using Third Eye

Transcription:

Applying Software Agent in Collaborative Software Maintenance Wan Noor Rafida bt. Wan Mayu Othman wan_eda@yahoo.c om Rusli Hj Abdullah rusli@fsktm.upm.e du.my Mohd. Hasan Selamat hasan@fsktm.upm.edu.my Shahnita bt. Shaharin ABSTRACT Software maintenance is the most expensive process and least predictable stage of the software life cycle. Yet these activities are inevitable to produce useful and successful software which will stimulate usergenerated request for change and improvement. This become more complex in term of large scale project that needed collaboration of many software engineers that situates in distributed locations. In a collaborative software maintenance environment, direct communication is difficult and most impossible to occur. To coordinate and manage a large community mechanism is required to help them understand the system development progress. This is solved by developing a system that provides a mechanism of collaboration via application sharing and email sending. This mechanism becomes more effective with the integration of software agent technology that is able to support the software maintenance environment which includes Staff Agent, Request Agent and Client agent. Keywords Software Maintenance, Software Development lifecycle, Software Agent. 1. INTRODUCTION The success of most projects is often dependent on the ability to effectively organize the activities of the specialists involved. As projects grow in size, complexity and life span thus it becomes more and more difficult to accomplish. Complex technical system takes many years to design and once completed, it usually involve many more years of maintenance. Throughout this duration, individual project personnel must have an understanding of the system in order to perform their work. Crucial to this is the collaboration and coordination between previous personnel who made decisions and the present and future team member who will execute maintenance activities (Lougher, 1993). The term software maintenance is normally used to describe all activities performed on a software system once it has been installed and is in operation. In this respect, the word maintenance is a somewhat misleading as it can involve anything from minor corrections to major rewriting. Maintenance is also the longest phase in the life-cycle of a system. During this time, in order to respond to changing needs and requirements, the developed systems normally undergo a continual process of change. Over-all, maintenance activities can be categorized into four classes which are adaptive, perfective, corrective and preventive. A maintainer must have an understanding of the activity being carried out. In many group situations this coordination and collaboration would be accomplished by direct communication between the person responsible for the previous activity and the maintainer performing the current task. This may take the form of face to face meetings or messages through a message system such as email. Both of these forms are difficult to implement in the work situation found 33

in maintenance (Lougher, 1993). Support mechanism is therefore needed to enable coordination and collaboration between each maintenance engineer involved in a project. This can be accomplished by applying agent-based system that will simplify the task of maintenance engineers. In software engineering, software maintenance is the process of enhancing and optimizing deployed software (software release), as well as remedying defects. Software maintenance is one of the phases in the software development process and follows deployment of the software into their intended field of application. The software maintenance phase involves changes to the software in order to correct defects and deficiencies found during field usage as well as the addition of new functionality to improve the software's usability and applicability (Jones, 1980). The objective of this research is to demonstrate the application of agent technology in collaborative software maintenance system and develop a proposed agent that can support the software maintenance environment. This system focused on catering modification request made by the users in a collaborative software maintenance system environment. In the system, three category of users have been identified; namely the system analyst, the programmers and the user. 2. COLLABORATION IN SYSTEM MAINTENANCE ENVIRONMENT. Based on Computer Supported Cooperative Work (CSCW), a collaborative software is a computerbased systems that support groups of people engaged in a common task (or goal) and that provide an interface to a shared environment (Ellis, 1991). Collaboration, with respect to technology, seems to have many definitions. Some are defensible but others are so broad that they lose any meaningful application. Understanding the differences in human interactions is necessary to ensure that appropriate technologies are employed to meet interaction needs. There are three primary ways in which humans interact: conversations, transactions, and collaborations (Wikipedia, October 2006). Conversational interaction is an exchange of between two or more participants where the primary purpose of the interaction is discovery or relationship building. There is no central entity around which the interaction revolves but is a free exchange of with no defined constraints. Communication technology such as telephones, instant messaging, and e-mail are generally sufficient for conversational interactions. Transactional interaction involves the exchange of transaction entities where a major function of the transaction entity is to alter the relationship between participants. The transaction entity is in a relatively stable form and constrains or defines the new relationship. Transactional interactions are most effectively handled by transactional systems that manage state and commit records for persistent storage. In collaborative interactions the main function of the participants' relationship is to alter a collaboration entity (i.e., the converse of transactional). The collaboration entity is in a relatively unstable form. Examples of collaborative interaction include the development of an idea, the creation of a design, and the achievement of a shared goal. Therefore, real collaboration technologies deliver the functionality for many participants to augment a common deliverable. 3. APPLICABILITY SOFTWARE S IN SOFTWARE MAINTENANCE Software development organizations are concerned with controlling costs, meeting deadlines or/and improving quality. To achieve this they look for means to facilitate the work of their software engineers (Dingsoyr, 2002). Rodriguez et. al. (2004) has proposed an architecture that is applicable in the environment of software maintenance. From the architecture, Rodriguez et. al. (2004) have identified five main types of agents which includes staff agent, product agent, client agent, project agent and directory agent as shown in figure 1 below. Figure 1: Agent based architecture for a software maintenance [Adapted from Rodriguez et. al. (2004)] Staff Agent will handles related to the activities perform by maintenance engineer (ME) and provide support to the ME in accomplishing his job. The Product Agent will manages related to a product, including its maintenance request, staff members that are assigned to the product, roles they play, the main elements that integrate the product (documentation, source code, databases) and monitor the activities that the staff members perform on each element that integrate the product. The Client Agent 34

responsibilities are to manage related to the maintenance request or error report performed by one client, help the client when he sends error report or maintenance request, directing it to the corresponding product agent and to inform to the client of the state of the maintenance request or error report sent previously by him. The Project Agent has regarding the tasks that must be performed to attend a maintenance request or error report, the time that this task could consume, staff members assigned to them, state of each task, monitor the progress of the project and informing to each staff members the tasks that they must perform. And finally, the Directory Agent manages required by agents to know how to communicate with other agents that are active in the system, knows the type, name, and direction of all active agents and control the different agents that are active in the system at each moments. 4. METHODOLOGY The research methodology that is applied in developing the system is described. It consists of six phases which is illustrated in Figure 2 below. The methodology begins with the Literature Review and Analysis where the findings from the analysis will be used in the Software Development Life Cycle (SDLC). It will then consecutively followed by System Planning, System Analysis, System Design, System Implementation and finally System Testing, Maintenance and Documentation. Error! Bookmark not defined. Literature Review and Analysis System Planning System Analysis System Design System Implementation System Testing, Maintenance and Documentation Figure 2: Research Workflow In system implementation, prototype system is developed. The system developed is based on a client server architecture where the system will be located in the server side. The clients and server are then connected via the internet connection and each one user group is able to access the system simultaneously from their respective computers. All will be stored in the database which is connected to the server. The relation between the software agents and the database are implemented via the user interface module. The illustration of the system architecture is depicted in the Figure 3 below. CLIENT 1 (USER) STAFF CLIENT 2 (SYSTEM ANALYST) NETWORK SERVER USER INTERFACE CLIENT SOFTWARE S CONTAINER REPOSITORY REQUEST CLIENT 3 (PROGRAMMER) Figure 3: Architecture of the developed system 5. RESULTS AND DISCUSSIONS The result of the application of the system that has been developed in the present work will be presented and its significance will be discussed in the following subheadings. 5.1 Level of collaboration utilized. There are three levels of collaboration which include electronic communication tools, electronic conferencing tools and collaborative management tools. In the present system that has been developed, the collaboration element is demonstrated through the utilization of only two types of collaboration tools which are as listed below. 5.1.1 Electronic communication tools In developing this system, the author has integrated only one of the tools; namely the Email. This function can be utilized in two ways, either from the maintenance engineer to the user or from the user to the maintenance engineer. For the communication from the maintenance engineers to the user (which is the requester), it is automated by the Client Agent where an email notifying the user regarding the modification made by the maintenance engineer will be sent. Therefore, there is no user interface in catering this function. It is triggered as the maintenance engineer submits the job report for the completed request. As for the communication from the user to the maintenance 35

engineer, it is manually triggered by the user through Email menu. The to be conveyed from the user to the maintenance engineer is specified by filling out the new email form. 5.1.2 Electronic conferencing tools. Numerous tools are categorized under this type whereby this tool helps facilitate in sharing. This criterion is also implemented in the system presently developed; which is through application sharing. The users of the system can access the system from their respective computers simultaneously in real time. 5.2 Types of agent implemented in the system. There are three out of five agents proposed by Rodriguez et. al. (2004) is implemented in the developed system. These software agents are implemented in the user interface modules which are connected with the database which contains all the regarding the maintenance request. The software agent includes: b) Programmer (Staff) There are five functions that can be executed by the programmer which is as follows: View the list of assigned request View list of task (job) assigned Report task completed c) User There are five functions that can be executed by the system analyst which is as follows: Make new request View status of own request Send email 5.4 Workflow of the system 1. Staff Agent which will handle related to the activities performs by each group. This aspect of the system concerns only the maintenance engineer which are either system analysts or programmers. The differs for each type of staff. For system analysts, the agent will manage regarding request that is unassigned; where as for the programmer the agent will manage related to all the task that are assigned to him/her. 2. Request Agent manages related with a request, including regarding the maintenance request, the staff members that are assigned to the request, the status of each request, monitor the progress of the request and informs each staff members of the tasks that they are duly to perform. 3. Client Agent manages related to the maintenance request that were submitted by the user; and then notify the user the status of the maintenance request or error report sent previously by him/her. 5.3 Functionality of the system. The functionalities of the system are based on the task executed by each type of users as specified below: a) System Analyst (Administrator) There are three functions that can be executed by the system analyst which is as follows: View list of new request Assign request to programmer View the list of assigned request Figure 4: Workflow of the system The workflow of the system presently developed is illustrated in Figure 4 above. The workflow can be best described through 3 types of scenarios as follows: 5.4.1 New request from the user. After the user has login into the system, the user is able to submit new request to the system. The new request can either be a problem caused by the system or improvement suggestion that needs to be done to the system. As the user is granted access to the system, a window triggered by the Client Agent that list the entire request made by the user will pop-up to notify the user of all the request made and status of each request. If the user wants to submit a new request, he/she can do so by filling out the Request Form in the system. The request will then be stored as a New Request request in the database. 36

5.4.2 Task assigned to programmer by system analyst. As the system analyst login and has been granted access to the system, a window triggered by the Staff Agent will pop-up to notify the system analyst the entire list of request made by the user that has the status of new request. This is the list of request that have not yet been assigned to any programmer. It is then the duty of the system analyst to assign each one of the request to the suitable programmer via the Job Assignment form. The is then stored in the database including the name of each programmer assigned to each task. The status of the request is now changed to In Progress. 5.4.3 Completing the task assigned by each programmer. As the programmer logged-in and has been granted access to the system, a window triggered by the Staff Agent will pop-up to notify the programmer the entire list of task that is assigned to him/her. This is the list of all tasks that has not yet been completed by the programmer. After the programmer has made the modification required to the intended system, he or she will then change the status of the request in the Job Order Detail form to Done. He or she will then submit a modification report by filling out the Job Report form by specifying the type of change made and description of the modification done to the system. As the programmer submit the modification report, the will then be stored in the database and an email will automatically be send to the user that has made the request notifying him/her of the modification that has been made. This function is executed by the Client Request. 6. CONCLUSION Software maintenance is an important phase in a system lifecycle. This is because it is the most costly and the longest phase in the lifecycle of a system. With the evolving of internet technology, the maintenance task has become more complex where a new paradigm has emerged. The task on maintaining a system is no longer executed at one place but it can be accomplished in a distributed environment. This means that, there may be situation where the maintenance engineers are dispersed among various physical locations. Therefore, there is a need for a mechanism that enables communication between the team members of the maintenance engineers and also with other personnel involved in the project. This new ways of doing things can be achieved successfully with the element of collaboration and cooperation between the members of the maintenance group. The collaboration between members can be implemented with the utilization of three categories of collaboration tools which includes electronic communication tools, electronic conferencing tools and collaborative management tools. In simplifying the task of the maintenance engineer, the usage of the tools can be automated by using the software agent technology. 7. REFERENCES Boldyreff, C., Smith, M., and Weiss, D. (2003). Environments to Support Collaborative Software Engineering. 2nd Workshop on Cooperative Supports for Distributed Software Engineering Processes (CSSE), Benevento, Italy, 25 March 2003. Ellis C. A., Gibbs S.J. and G.L. Rein (January 1991). Groupware: Some Issues and Experiences. Communications of ACM. Vol 34, No 1, 39-58 Dignum, V., 2004. An Overview of Agents in Knowledge Management. Technical Report, Institute of Information and Computing Sciences, Utrecht University. Hyacinth S. Nwana, Divine T. Ndumu: An Introduction to Agent Technology. Software Agents and Soft Computing 1997, 3-26. Jennings, N. & Wooldridge, M., 1998. Agent Technology: Foundation, Applications and Markets. Springer-Verlag, 3 28. Kendall, K.E., Kendall, J.E. (1998). System Analysis and Design (5 th Edition). USA: Prentice Hall. Lougher, R. and Rodden, T. (1993). Supporting Longerm Collaboration in Software Maintenance. ACM, 228 238. McClure, C. (1992). The Three R s of Software Automation: Reengineering, Repository, Reusability. USA: Prentice Hall. Rodriguez, O.M., Vizcaino, A., Martinez, A.I., Piattini, M. and Favela, J. (2004). How to Manage Knowledge in the Software Maintenance Process. Springer-Verlag, 78-87. Singer, J. (1998). Practices of Software Maintenance. ACM, 139-146. Vienneau R. L. (1995). The Present Value of Software Maintenance. Journal of Parametrics. Vol XV, No 1, 18-36. Wooldridge, M. (2002). Introduction to Multi-Agent Systems. John Wiley & Sons. Wikipedia (2006). Collaborative Software. http://en.wikipedia.org/wiki /Collaborative_software. Accessed on 28 November 2006. Wikipedia (2006). Computer Software. http://en.wikipedia.org/wiki /Software. Accessed on 28 November 2006 37