<<

Roles Communication model for RUP Using: Pair Programming Concepts

Abstract engineering process model and was developed by The effectiveness of a process model leads to the Kruchten, Ivon Jacobsen and others at Rational production of quality software in timely and chivalrous Corporation. The RUP is the complement of Unified manner. Currently the professional has a pile of software i.e UML but it is particularly used for process model which has been proved their effectiveness Object Oriented Development. The RUP provide a and importance in the software projects. Rational Unified disciplined approach to assign tasks and responsibilities Process is one amongst them. The RUP process model within development organization. The goal of RUP is to comprise on nine workflows, thirty role/worker, six best produce high quality software that meets the needs of its practices and more than hundred artifacts. Each role can end user within expected schedule and budget. The RUP is work on one or one activity can be done by more an iterative approach for object oriented system. RUP than one roles. Similarly at the end of each phase of RUP squeeze use cases for modeling and build the all artifacts are integrated through collaboration of roles. foundation of system. The RUP is also an open process The asynchronous communication among roles causes framework that allows software organization to adapt the delays in product delivery and inconsistent development process to their specific need. The RUP has four basic environment. To synchronize the different roles with in concepts: Worker, activity, and workflow. A RUP, the authors introduced pair programming as a best worker is known as role which comprise on set of practice, process model such as XP or other agile behaviors and responsibilities that an individual carry out. methods, pair programming is considered as a best A worker can represent more than one individual and one practice to avoid from , to increase team individual can represent more than one worker. E.g. test collaboration, to minimize confidence bias and to increase designer, architect, system analyst. An activity represents productivity. This research is focused on the optimization some thing which is performed by a worker. Each activity of RUP by introducing Roles Communication model for produces a meaningful result e.g. testing a . An RUP Using Pair Programming Concepts. Effectiveness of artifact is the output of an activity e.g. test procedure, the idea is subjected to some university student level design model, component. A workflow is a logical group software projects to ensure that model’s theory and of activities .e.g. testing, implementing. Extreme hypothesis are up to the mark and according to authors’ Programming (XP) is a light-weight methodology for expectation. small-to-medium-sized teams developing software. It is 1. Introduction: called extreme because it makes use of extreme levels of The is always eager to good programming practices. Its focus is on coding, introduce the methods, tools and techniques to facilitate its testing, user knowledge elicitation, and design. XP as new targeted professional and common users as much as methodology for has gained much possible. In the course of its growth the software popularity within the object-oriented programming engineering professional initiated different paradigms for community. [25]. Pair programming is considered as best the software development and process models according to practice of XP or agile methods. In Pair programming their environment and technique complexity. Software “two people working at one machine, with one keyboard process model is an abstract representation of a software and one mouse” . Within the process. The Process model exhibits a particular framework, a pair is not usually fixed, that is, a perspective of the software development process. The programmer does not tend to work with the same partner process model is not the complete outline for exercising all the time. More usually, a pair will work together for the the process of complete activities the software products. duration of a single task that might most often take a day The process model is concerned with visualization of a or two to develop.[19] Due to this Pair programming is software product’s big picture. Rational considered as form of collaborative learning. [15].The (RUP) is among those software engineering professional benefits of pair programming are to increased efforts for fixing the software development activities productivity, improved code quality, enhanced job within a consistent, stabilize repeatable and managed satisfaction and confidence [18]. Pair programming has framework. RUP is an example of modern process model also received criticism over increasing effort expenditure that has been derived from work on UML and associated and overall personnel costs, and bringing out conflicts and Unified software development process. [ 23]. The RUP personality clashes among developers.[12,16]. recognizes the conventional process model present single The authors work evolve around the above describe two view of a process. In contrast the RUP is normally (i.e. RUP and Pair Programming) state of the art software described from three prospective. A Dynamic prospective development process practice. The concept is to improve that shows the phases of the model over time, a static the efficiency of the different Roles with the consideration prospective that shows the process activates that are to identify their possessive activities, task and inactive and a practice prospective that suggest good dependencies with the well identified roles. The authors practices to be used during the process. [24].RUP is a noted a framework which will properly associate these roles by using different communication channel. So the and [23]. The core values role communication model for RUP is base on pair of RUP are to design , Process tailoring and Tool Programming but by the now Pair Programming is not Support.[26] limited to customer and developer communication as it 2.1. Phases was in XP’s best practices. The process of RUP project is divided into four 2. (RUP): phases named Inception, Elaboration, construction and Rational Unified Process (RUP) is a development Transition. Further each phase is divided into iterations. methodology which is develop and marketed by Rational Each iteration is two week to six month long and produces Software but now-a-days owned by IBM. The first release a demonstrable piece of software [22]. of RUP came in 1998 with cooperation of Grady, Booch,

Fig-1. Overview of RUP adopted-[3] workflow is used for ensuring the customer’s business Inception Phase, in this phase the objectives of the project needs. This workflow is often done during inception and are stated according to need of stakeholders such as End elaboration phase. Environment workflow comprise on User, Purchase and Contractor. This phase define the activities which are used to support development work.. scope, boundary condition and acceptance criteria of This environment workflow done practically during project. In this candidate architecture are works out, cost inception phase. Management workflow and schedule of project are estimated. The use cases which comprise on activities which helps in eliciting, organizing derive the functionality of system are identified. and documenting requirements. Analysis and Design Elaboration Phase, in this phase problem domain is workflow comprise on activities which are used to create analyzed and plan of project is define. This phase yield a the architecture and design of the software system. sufficiently solid architecture along with sufficiently stable Implementation workflow comprises on activities which requirements and plans. Executable prototype of help in writing and source code, architecture is created in this phase after the elaboration and build management. Deployment workflow comprise phase most use cases and actors have been identified and on activities which help in packaging the software, described. Similarly realization of risks, the stability of creating in installation script, writing end user vision of product and stability of architecture is analyzed. documentation and other task needed to make the Phase, In this phase is also known as available to its end user. Project Planning workflow manufacturing process because all remaining component comprise on activities, which help in project planning and and applications are developed and integrated into product monitoring. Configuration and change management and tested. The main emphases of this phase is on workflow comprise on activities, which help to cover all managing resources, controlling cost, schedule, quality tasks concerned with version and release management and improvement, alpha and beta test releases Transition with change request management. Test workflow comprise Phase, in this phase software product become mature for on activities, which help in system, acceptance and the release to user community. Based on the user response . subsequent releases are made to correct any outstanding 2.3. Roles problem. The transition phase consists of beta testing, In RUP roles are assigned according to activity piloting, training the user and maintainer of the system. type. RUP define thirty roles or worker. The main Several iteration is often made in this phase. activities which are performed by roles are developing and 2.2. Workflows maintaining information architect, maintain the Throughout the phases of RUP, nine workflows documentation project plans, to consist the document, to [26] are taken place parallel. Each iteration more or less read, write and review document, to allocate addresses all the nine workflows. Business Model documentation resources, to elaborate business use case, to detect defects and control changes to documents. The main and communicate only with constitutor role, the roles of RUP are Information Architect, Technical Writer, constitutor role perform synchronize communication with Technical Editor, Document Reviewer/Tester ,Document driver and operator role and driver role always make Manager , Tool Supporter , Production Specialist, Page communication channel with constitutor role to perform Designer , Technical Illustrator , Business process workflow activity, integration activity and process Analyst, Business Designer , Business Model Reviewer, management activity. Course Developer , Tool smith , Documentation Project The work has been done on identifying the who, what and Manager , Software Architect , Tool Specialist , when of the workflow and phases roles. Each who, what Information Designer , Usability Engineer , QA Engineer and when has its own unique identification. and Book Designer. [6]. In each phase of RUP number of roles are define to perform activities. Each role know about his/her activity and perform asynchronies communication with other roles but he/she not known about concerned role for communication especially at the end of phase and similarly each role needs to communicate with number of roles. Due to such asynchronies communication each role waist his/her time. 3. Pair Programming: Pair programming is the key practice of XP and it was incorporated to increase the productivity and satisfaction of project members [4]. Pair Programming is the technique in which two-programmer work together at one computer on the same task [27].The person which typing is called a driver and the other partner is called Fig-2. Phases WWW Matrix for workflow navigator. Pair programming is an area that evokes Workflows:- WF1, WF2, ……, WF-N O:- Operator Role D:- Driver Role personal discomfort and breed conflicts [14]. Pair C :- Constituter Role programming encourage the exchange of talent and Different matrices have been suggested for phases resources by creating an atmosphere of unity and team regarding the workflows and roles and their impact building [20]. Pair programming is a form of collaborative weights. The impact weight is based on influence, learning that is pair works together to achieve a common involvement and importance (III) of a particular role goal. The five critical attributes common to successful regarding specific workflow in a phase. This III will be collaborative learning are Common task or learning suggested by major stakeholders of the project. activity suitable for group work, Small group learning, Cooperative behavior, Interdependence (referred to as positive interdependence) and Individual accountability and responsibility [1]. Pair programming does not happen in a vacuum. In fact, pair programming has been shown to “take place in the context of a rich environment of artifacts and talk” where tools created for individual use are often re-appropriated by programming pairs, for example the mouse and keyboard are subtly used to help smooth driver-navigator role exchange[19]. The main benefits of Pair Programming are higher quality programs, Decreased time to complete programs, improved understanding of the programming process, increased enjoyment of programming, Increase in Productivity and Exchange of Knowledge.

4. Roles Communication model for RUP: The authors considering the pair programming as concept Fig-3. Phases Roles III Matrix by modifying it for RUP as four fold phenomenon. The Roll Operators:- RO1, RO2 , …… , RO-N static aspects of pairing the roles as workflow and Roll Drivers: - RD1, RD2, …… , RD-N developer pairs, customer and developer pairs , developer Roll Constituter: - RC1, RC2, ….. , RC-N and developer pair and management and developer pairs. In III the term influence represent that what is the caliber On the other hand workflow communication pair , phase of role in phase, the term involvement represent the degree integration pairing and process monitoring and control of work of a role and the term importance represent the pairing represents the dynamic aspects on the bases of priority of role in a phase. In different phases the impact phase to phase influence, involvement and importance of value III of a particular role is vary due to its assigned the define roles for the process. The roles are classified in activity and the scope. three major categories i.e. Operator, Driver and For the model three type of pairing has been suggested i.e. constitutor. The operator role perform its assign activity Workflow communication pairing-Fig4, Integration pairing-Fig-5 and Process monitoring and control pairing- the roles involve within the artifact integration either it is Fig6. The above pairing concepts in the model cover three phase or process end and the third type of pairing covers aspects of development environment. The first one deals the monitoring and control roles which helps in managing with RUP workflows communication with development the overall project activities. personals or drivers, the second type of pairing facilitate

Role as Driver

Role as Constituter

Role 1 WF Operator Workflow Activity Artifact Role 2 WF Operator

Role N WF Operator

Fig-4. Workflow communication pairing for Role-Communication model

In workflow communication pairing all roles works on a The communication between workflow activities to workflow activity in different way. The Fig-4 represents operator role is one way, workflow activity to driver role two way communications between operator role and is two way but no direct communication between constitutor role, and constitutor role and driver role. workflow and constitutor role

Role 1 Operator’s Artifact Role as Constituter

Role 2 Operator’s Artifact

Role 2 Operator’s Artifact Role as Integration Integrated Driver Activity Artifacts

Role 3 Operator’s Artifact

Fig-5. Phase Integration pairing for Role-Communication model

In integration activity pairing the work of constitutor role is to communication in to way with operator role for receiving artifacts. The work of driver is to communicate with constitutor role in two ways for integration of artifacts.

Role 1 Process M & C Role as Constituter

Role 2 Process M & C

Role 3 Process M & C Process Role as Mgt Management Driver Activity Artifacts

Role N Process M & C

Fig-6. Process Monitoring and Control pairing for Role-Communication model

The Fig-6 represent the two way process monitoring and Empowering Students and Teachers, Baltimore, MD: control pairing communication among roles. Each role is Paul H. Brookes Publishing Co., 1994, 13-30. assign by work to monitor and control activity and [2] Michael Hirsch at al. “Making RUP Agile”. 1998 produce management artifacts. [3] Karl A. Hakkarainen. “Unifying Documentation Even though the idea is passing through its infant stages, Teams”. Rational Software Corporation, 1999. yield some positive indicators towards its success. This [4] K Beck, “Extreme Programming Explained: reshaping maturity is subject to the completion of Embrace Change”. Addison-Wesley, 1999. student level projects, then may be deployed in [5] Kruchten, philippe. “The Rational Unified Process: commercial software projects to be practices for process an Introduction. 2nd edition.” Addison-Wesley, 2000. optimization. [6] Michael Priestly and Mary Hunter. “A Unified 5. Conclusion and Future Work: Process for Software and Documentation Development.” RUP is the most widely used development IBM Toronto Lab, 2000 process model in the modern era. RUP deals with the [7] David H. Withers. “Software Engineering Best real world concepts i.e. objects and classes and with Practices applied to the Modeling Process”. Dell natural human behavior i.e. iteratively the Computer Corporation, 2000 reconsideration. Mechanism of RUP provides the [8] Gary Pollice.”RUP and XP, Part 1: Finding Common opportunity for more fine tuning both the process and Ground”. Evangelist, The rational Unified Process product. The introduction of Role Communication model Rational Software, 2001 will facilitate the targeted stakeholders i.e. the [9] Per Kroll. “The Spirit of the RUP”. Rational developing organization, managers and customers etc to Software 2001. communicate their concerns regarding process and [10] Chris Phillips and Elizabeth Kemp.”In Support of product for achieving the optimum solution of their type user interface design in Taional Unified Process”. in convenient and timely manner. The roles Australian Computer Society, 2002 communication model is the first effort of its type which [11] Phillipe Kruchten, “Introduction to the Rational considers the development process with respect to Unified Process”. Rational Software, May 2002 human factor. The stakeholder’s interaction optimization [12] Madeline Ann Domino at al, “Conflict in may lead to a greater degree of improvement for the Collaborative Software Development”. SIGMIS process and product quality, but due to roles conference, 2003. communication model’s infancy stage still candidate for [13] P. Abrahamasson at al. “New Direction on Agile improvement in its effectiveness and efficiency in future. Methods: A Comparitive Analysis”. International 6. References: Conference on Software Engineering,2003 [1] Davidson, N., Cooperative and collaborative [14] Jason Aiken. “Technical and Human Perspectives learning: an integrative perspective, in Thousand, J., on Pair Programming”. ACM SIGSOFT Software Villa, R., and Nevin, A., Eds. Creativity and Engineering, Sep 2004. Collaborative Learning: A Practical Guide to [15] David Preston.”Pair Programming as a model of collaborative Learning”, A Review of the Research, 2005 [16] Corrado Aaron Visaggio.”Empirical Validation of Pair Programming”. RCOST- University of Sannio, 2005. [17] Wolfgang Zuser at al.” Development and Assurance in RUP, MSF and XP- A Comparative Study”. 2005. [18] Hanna Hulkko and Pekka Abrahamsson.”A Multiple Case study on the impact of pair programming on Product quality”. 2005. [19] Sallyann Bryant, Benedict du Boulay and Pablo Romero. “XP and Pair Programming Practices”. PPIG Newsletter, Sep 2006. [20]http://www.daleasberry.comm/newsletters /200301/20030101.shtml [21] Per Runeson and Peter Greberg. Extreme Programming and Rational Unified Process – Contrasts or Synonyms. [22] Pekka Abrahamsson, Outi salo and Jussi Ronkainen. “Agile Software development Methods Review and Analysis”. 2002 [23] Rumbaugh, J., Jacobson. I., et al. “The Unified Software Development Process”,Addison-Wesley”, 1999 [24] Sommerville, “Software Engineering”, 7th Edition, Pearson Education, 2005 [25] Suzanne Smith and Sara Stoecklin,” What We Can Learn From Extreme Programming”, CCSC, 2001. [26] Kruchten, P , “The Rational Unified Process – An Introduction “, Addison-Wesley 2nd edition 2000. [27] L. Williams snd R Kessler. “Pair Programming Illuminated”, Addison-Wesley, 2003