Harnessing Social Networks Resources to Bring Social Interactions into Web-based IDEs
Автор: Zakaria Itahriouan, Noura Aknin, Anouar Abtoy, Kamal Eddine El Kadiri
Журнал: International Journal of Information Engineering and Electronic Business(IJIEEB) @ijieeb
Статья в выпуске: 4 vol.7, 2015 года.
Бесплатный доступ
In modern Web, where users log to social networks has become a daily activity, the success of these applications to attract more users is often justified by offering social presence to the user on these virtual spaces. Developing applications in software engineering domain is a collaborative task that requires implementing more sophisticated tools to support all suitable collaboration aspects. Web-based IDEs have experienced a series of changes compared to their desktop versions, tending therefore to become more able to implement new collaboration approaches and mechanisms. Within the lack of social aspect in web-based IDEs, collaboration between developers does not seem to be optimal. This article presents a study of social networks resources that can be operated through the use of Application Programming Interfaces (APIs) thus providing a social aspect to web-based IDEs. It points how we can use these resources to create new collaborative experience in software engineering field.
Web-based IDE, Social aspect, Social Network resources, social IDE
Короткий адрес: https://sciup.org/15013353
IDR: 15013353
Текст научной статьи Harnessing Social Networks Resources to Bring Social Interactions into Web-based IDEs
Published Online July 2015 in MECS
Integrated Development Environment (IDE) is a tool used in software engineering to build and develop applications [1]. Along with the advent of web 2.0, software engineering has emerged as a new stage in which collaboration has taken many directions [2]. Therefore, the lack in terms of collaboration in a webbased IDEs requires developing more effective mechanisms.
Social networks are places where users are linked together forming multiple relationships [3]. Developers often use social networks to supplement the lack of collaboration on these IDEs. Online software engineering platforms offer to developers a range of features, but the lack of social aspect in these tools is very remarkable.
Social presence of software developers in Web-based IDEs will make software engineering closer to the experience of using social networks as benefiting from the advantages offered by social networks that led to the success of the latter. To realize this, reconciliation between social networks and web-based IDEs seems to be very necessary.
A work conducted by our laboratory has resulted developing collaborative IDE in which we have used Facebook APIs to achieve certain concepts [4].
This paper presents technical approaches to achieve reconciliation between Web-based IDEs and social networks. It also presents a study of all properties offered by social networks susceptible to be harnessed in a Webbased IDE thus providing new social features to IDEs. First, we present the IDE developed by our laboratory as a related work. In the second part we exhibit the success of social networks as popular web 2.0 application. In the third part we explain the importance of social presence in an environment of software engineering. Finally, we report how we use our approach in the IDE developed by our laboratory and we present a general model for building an IDE as mashup application with social networks.
-
II. Related Work
In researches conducted by our laboratory we are interested in web 2.0 issues. We have published some works in the field of Web 2.0 content quality [5] [6].
Web 2.0 does not present a unique or specific concept.
It is often characterized by its basic principles that have been identified by Tim O'Reilly in his famous article [7]. The seven identified concepts are:
-
• Web as a Platform.
-
• Harnessing Collective Intelligence.
-
• Data as the next Intel Inside.
-
• End of software release cycle.
-
• Lightweight Programming Models.
-
• Software above the Level of a Single Device.
-
• Rich user experience.
Rich User Experience principle is concretized by so-called Rich Internet Applications (RIA). Traditional mode of web applications has a less sensitive and less effective user interface by reloading the entire web page after any click. Current applications have to be more interactive with a rich user interface. To serve the requirement of this kind of applications named “Rich Internet Applications”, many different approaches have been created [8].
A clear trend in collaboration tools is the general tendency of many existing applications to the Web taking advantage of the interactivity of AJAX and greater consistency in the JavaScript capabilities in browsers by creating increased processing power.
Web applications have the advantage of centralized administration and simplicity of deployment. They also help to collect very detailed observations, enabling rapid identification and repair of problems observed. Versions of Web applications can be evaluated quickly. These advantages of web-based applications are compelling to create a strong motivation to move from desktops to the web.
According to this background, many IDEs have been developed [9] [10] enabling various features and promoting collaborative work. As part of the research conducted in our laboratory we have developed a Webbased IDE named IDE 2.0 [4]. This last is a code editor impresses by a simple interface for building software projects collaboratively in real time. IDE 2.0 provides a rich and interactive Web interface characterized by the ease of use combining the features referred in an IDE for software development and features that enable collaboration and give social aspect to the application. The following figure shows IDE 2.0 interactive interface.

Abtoy Anouar
Zakaria Itahriouan
1 function tous_commentaires()
2 { ~
3 var ID = J(".view_comments").attr("id");
5 $.ajax({
6 type: "POST",
8 data: "msg_id="+ ID,
9 cache: false,
10 success: function(html){
11 }("#view_cofflnents”+ID).prepend(html);
12 $("#view"+ID).remove();
13 $("#two_comment5"+ID).remove();
14 }
15 });
is }
18 $(function()
20 £("#notification").click(function()
22 var ID = $(".view_conwnents").attr("id");
24 $.ajax({
25 type: "POST",
27 data: "msg_id="+ ID,
28 cache: false,
29 success: function(html){
30 $(".sub-menu"),html("");
31 $("#mes").html("");
32 $(".sub-menu") .prepend(htnil);
33 }
34 });
11 -enr-eqistrer charger versionenreqistre | theme
Projets des partenaires:
Partagen
О@Ф®
I <> ' IDE г.о
D^connexion | *
Fig.1. Editing interface of IDE 2.0
-
III. Social Networks In Web 2.0 World
-
A. Web 2.0
Web 2.0 is a social transformation that has more interactivity and makes content control in the hands of regular users, not only major site owners. It's faster and more interactive than Web 1.0. Increased bandwidth, permanent connections and higher speeds mean that the rich multimedia content such as flash, audio and video streaming, podcasts, and multi-player games have become an integral part of the online experience, allowing web to take its place on the table beside the traditional entertainment media [11].
It is difficult to define or delimit Web 2.0 concept precisely because, as stated by O'Reilly, it hasn’t a hard limit, but rather a gravitational core. Therefore, it can generally be described using a set of characteristics, rather than been strictly defined [12].
Web 2.0 applications and tools have a major role in its success because they are focused on the user. Intel shows the popularity increasing of Web 2.0 applications and that therefore its use makes connected machines equal to the population of the Globe [13]. Intel expects the number of connected machinery will be doubled in 2015. Generally web 2.0 applications are:
-
• Blogs.
-
• Wikis.
-
• Social Networks.
-
• Social Bookmarking.
-
• Podcasting applications.
Techniques related to Web 2.0 are:
-
• Tag.
-
• Content syndication.
-
• Podcast.
-
• Mashups.
-
B. Social networks
Social networks provide links of relationships between people, where links can be practically any type of relationship [3]. Social networks have become a part of everyday life. Online communities help millions of people to instantly connect with past classmates, communicate, find friends or people with similar interests, exchange information, build business networks, and even share opinions. Social networks have become a daily activity, to the point that today we live in a global virtual society in real time [14].
SixDegrees.com was the first online social network. It was established in 1997 [14]. Facebook was founded in February 2004 by Mark Zuckerberg, an old student in Harvard University who used it as a tool to reconnect with past classmates [15]. LinkedIn is a social networking site professionally oriented. It was founded in 2003 by Reid Hoffman and Konstantin Guericke. LinkedIn tries to help people connect with others who may contribute to their career [16].
Facebook continues to be the most dominant social network (Fig. 2). Other most popular sites of social networking are twitter and google+. The following graph illustrates the increasing number of social networks users:

Fig. 2 shows how the number of social networks continues increasing. This means the availability of more information resources about users and relations between them. In next parts of this article we show how we use this important fact to bring some new features to Webbased IDEs.
-
IV. Towards Social IDE
-
A. Integrated Development Environment
Integrated development environment (IDE) is a program used by software engineers that combines the functions of a text editor with an interpreter or compiler or run-time execution to simplify coding and debugging [1]. It has some important features such as syntax highlighting, automatic editing, automatic code completion, compilation, execution, debugging, access to the database, the constructor of graphical user interfaces (GUI builder) and other features that vary from one IDE to another and according to used development technologies. Eclipse and NetBeans are examples of most used Installable IDEs.
A clear trend in collaboration is the existence of webbased tools in all stages of software development. This reflects the general tendency of many applications to the web provided by the AJAX interactivity and consistency in the ability of JavaScript in browsers by increasing the processing power in the browser.
-
B. Lack of social aspect in collaborative software engineering
Social presence is an important factor for a dynamic unified community where high levels of interaction reflect the cohesion of the group. Social presence has been defined as the degree to which a person experiences the feeling of being present, the feeling of being with each other, and participates in the interaction in any community or the extent to which a person is perceived as real in online interaction [20]. Annetta and Holmes [21] argue that social presence is strongly attached to individuality: If people in an online community feel that they are perceived as an individual, so they feel a sense of presence in this community.
Social networking sites have emerged as major centers of social interactions. These sites act as a sort of social fabric knitting together communities. Currently the approach to integrate social networks in software development teams is very basic. It consists of having all team members using a unique social networking site and uses it for meetings as non-oriented project approach.
-
V. Mashup Ide And Social Network
We have already presented significance of adding social interactions between developers in collaborative software engineering. To realize this, we present three approaches that can serve to complete the lack of social aspect in a Web-based IDE:
-
• Harnessing interactions of social networks independently to complete the lack of internal interactions. This approach is the most currently adopted in the absence of alternative solutions.
-
• Implement these interactions internally (applicationspecific). This solution requires an excessive software engineering work to develop a social network with all its interactions in an IDE, which does not seem to be an exigency especially in presence of the next proposed solution.
-
• Perform a mashup application that exploits the interaction of social networks and use them to add social aspect to our IDE. This approach is considered as an intermediate solution between the two previous solutions which allows providing a social aspect to Web-based IDEs.
The last approach seems to be more practicable viewing that it can benefit from the following advantages:
-
• Avoid re-inserting data already entered in social networks. Data can easily be extracted from these lasts to be harnessed in the developed IDE.
-
• Avoid re-establishing relations between users that have been already established on social networks. We can benefit from these existing relations and transform them according to relation between developers.
-
• Benefit from social networks development and updates.
-
• Ability to harness the multiple social networks resources.
-
• Reduced workload of software engineering for the construction of an IDE.
-
A. Mashup
Mashup technique is essentially a content aggregation technology that combines and builds on the functionality of different applications in one integrated tool that is compatible with browsers. Typically, mashups applications are based on information from public Web sites and private applications [22].
Currently, mashups have entered a new era of use for non-programmers with the advent of technologies such as iGoogle and Yahoo! Pipes, which allow non- programmers to create mashups [23]. Before that, mashups have been largely the domain of programmers who knew enough about the application code to be able to write transition codes to create mashups.
In presence of different mashup tools and applications, what is meant by the term "mashup" becomes blurred. Mashups are generally reported to websites combining the characteristics of several Web sites. Some mashup tools allow users to build entire Web sites. In addition, adapting existing sites to other environments such as mobile phones is the goal of a number of mashups in the mashups directory on "Programmable Web" site [24].
In this work we privilege the use of mashup Technics. Thereafter we explain how we could exploit Facebook APIs for creating a mashup application to achieve objectives of this research.
-
B. Social Aspect in IDE 2.0
IDE 2.0 uses Facebook APIs to access personal profiles of users residing in their profiles on this social network. This operation aims to provide social presence for users when collaborating on software engineering projects.
Fig. 3 presents the example of using user’s name and profile picture extracted from Facebook to illustrate in real-time the online users who are collaborating on the same project.

Fig.3. Example of online Users collaborating on the same project
IDE 2.0 uses other Facebook resources to perform certain concepts. The following table shows how this IDE uses these resources to achieve a set of concepts:
Table 1. Social aspect in IDE 2.0
Concept |
Achievement |
User Authentication |
Redirection to Facebook to validate authentication. |
Users identity |
Extracting user’s personal data on Facebook to illustrate the presence of the user. |
Sharing projects |
Exploitation of friendship on Facebook for helping Users to share its projects easily. |
Messages exchange |
Exploitation Facebook notifications and messages to inform users of any information. |
Commenting code |
Integration of a Facebook comment box for each project allowing collaborators of the same project to add comments below. |
In IDE 2.0 we use Facebook APIs, but there are other social networks such as twitter and google+ offering possibility to use their resources to build 3rd party applications. In addition, we can use other resources to provide more options that can serve for developing applications collaboratively. In the next section, we present a global study of social resources that can be operated through the use of social networking APIs to provide social aspect to web-based IDEs.
-
C. Harnessing social networks resources in Web-based IDEs
Social networks offer APIs that allow harnessing their resources for the achievement of 3rd-party applications, which offers the opportunity to bring these interactions to applications of software engineering. In this section we analyze different resources Available in social networks that can be exploited in web-based IDEs and we also present the advantages offered by implementing this technique. We classify these resources as four different types. We describe for each type how to use its resources to provide social aspect in an IDE.
-
1) Data
An important concept of web 2.0 is that the power is in the data [7]. Social networks are a very rich source of personal data that can be used in other applications. In a Web-based IDE we can use user’s data in order to achieve the following objectives:
-
• Authentication: this property consists in using the user authentication data to authenticate him when accessing all resources of a Web-based IDE. For example, to accept or prevent a user to view or modify a software project. Most social networks use open authentication protocols such as OAuth and OAuth 2.0, this mechanism is provided by a programmable API for 3rd party control to secure application resources.
-
• User identity: the identity of the developers in our web-based IDE is an important factor that marks their presence in the application according to different forms (a project owner, collaborator ...). Users, have this identity in social networks as data (name, profile picture ...) that can be extracted to our application to present the identity of the developer.
Other data can be used as email, address ... to contact or inform the developer information about our application.
-
2) Connections
Social networks offer to users the advantage of making relationships between them. These last reflect multiple real relations between people (friends, family, work ...). In software engineering environment a set of relationships are established between users for purposes of collaboration, assistance, monitoring and education. Using the APIs of these social networks may inherit some of the existing relationships in the latter and turn them to our Web-based IDE according to the required relations, for example, user requesting one of his friends on a social network to collaborate with him on one of his software projects.
Social networks provide opportunities for members to get into special interest groups where users can exchange information and ideas in the context of a common interest between these members. A group in a social network can be a group of developers in which they discuss and exchange information and news about development work carried out in a collaborative manner.
APIs offered by social networks allow performing actions on user groups such as adding events or post information and also actions on group members. These APIs can be used to automate or trigger actions within the group. For example post an event on the group to inform members get together for collaborating on a collaborative project.
-
3) Communication
Social networks offer different manners for users to discuss privately or publicly. Communication between users can be messaging service in a form similar to an email. It can be also in form of discussion as comments on the data posted in social network space. Even more, some social networks offer possibility to make audio and video conversations.
APIs of these applications offer possibility to control all these kinds of communication as an outsourcing service for 3rd party applications. This property can be exploited to bring communication between users in multiple forms to Web-based IDEs from external resources, for example, a discussion proceeding between project collaborators.
Well as social networks provide APIs that allows adding comments frames on Web applications interfaces. This property can be exploited, for example in a Webbased IDE to give project editors the ability to comment and discuss about a source code file.
-
4) Dissemination of information
Social networks allow users to share multiple content types in different manners, thus creating a very fast way for dissemination of information [25]. Furthermore, time that users spend on social networks continues to increase [26] which consequently increase the ability of users to be informed about the information provided. The need of software engineering in terms of timeliness of information is always necessary. Therefore, APIs provided by social networks can be exploited to disseminate information between developers. For example, launch an announcement to developers groups on social networks to inform them about time to start collaboration on a project.
VI. Conclusion
In this article we have presented a reference document that can serve developers of Web-based IDEs to bring a social aspect to software developers inside developing environments.
We have started by identifying the lack of social aspect in existing Web-based IDEs and then we have proposed tree manners for implementing this property into these environments. In this work, we have introduced details of optimal solution among the tree proposed manners to achieve this objective.
Solutions introduced in this work have yielded remarkable results by applying some social aspect concepts to web-based IDE developed in our laboratory. Therefore, the results achieved by this study provide an introduction to new generation of Web-based IDEs thereby bringing necessary digital social interactions to developers from their accounts on social networks.
Web-based IDEs that implement the results of this work will give solution to all requirements in the field of software engineering in terms of collaboration, more precisely in communication, maintaining relationships, data exchange and dissemination of information. Therefore, these Web-based IDEs will be more adopted by software engineering teams over traditional IDEs.
Список литературы Harnessing Social Networks Resources to Bring Social Interactions into Web-based IDEs
- J. Parab, V. Shelake, R. Kamat et G. Naik, "Integrated Development Environment" Exploring C for Microcontrollers, Springer Netherlands, 2007, pp. 19-28.
- J. Whitehead, "Collaboration in software engineering: A roadmap. In Future of Software Engineering" FOSE'07, pp. 214-225, may 2007.
- J. Postka, Encyclopedia of the Sciences of Learning, N. M. Seel, Éd., Springer, 2012.
- Z. Itahriouan, N. Aknin, A. Abtoy et K. E. El Kadiri, "Building a Web-based IDE from Web 2. 0 perspective" International Journal of Computer Applications, vol. 96, n° %122, pp. 46-50, 2014.
- A. Abtoy, N. Aknin, B. Sbihi, A. El Moussaoui et K. E. El Kadiri, "Towards a Framework for a validated content management on the collaborative Web: Blogs case" International Journal of Computer Science Issues, vol. 8, n° %13, pp. 96-104, 2011.
- Z. Itahriouan, A. Abtoy, K. E. El Kadiri et N. Aknin, "Validated CMS: Towards New Generation of Web Content Management Systems on Web 2.0" International Journal of Information Technology and Computer Science, vol. 4, n° %112, p. 40, 2012.
- T. O'Reilly, "What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software" 2005. [En ligne]. Available: http://oreilly.com/web2/archive/what-is-web-20.html. [Accès le 12 03 2014].
- M. Linnenfelser, S. Weber et J. Rech, "An Overview of and Criteria for the Differentiation and Evaluation of RIA Architectures" Handbook of Research on Web 2.0, 3.0, and X.0: Technologies, Business, and Social Applications, S. Murugesan, Éd., igi-global Inc, 2010, pp. 135-155.
- J. LAUTAMÄKI, A. NIEMINEN et J. KOSKINEN, "CoRED: browser-based Collaborative Real-time Editor for Java web applications" Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work, pp. 1307-1316, 2012.
- M. Goldman, L. Greg et R. C. Miller, "Collabode: collaborative coding in the browse" Proceedings of the 4th international workshop on Cooperative and human aspects of software engineering, pp. 65-68, 05 2011.
- T. Funk, Web 2.0 and beyond: Understanding the new online business models, trends, and technologies, Praeger Publishers, 2008.
- T. O'Reilly, What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software, Social Science Research Network, 2007.
- "What Happens In An Internet Minute" intel, 2012. [En ligne]. Available: http://www.intel.com/content/www/us/en/communications/internet-minute-infographic.html [Accès le 12 04 2014].
- D. M. Boyd et N. B. Ellison, "Social Network Sites: Definition, History, and Scholarship" Journal of Computer-Mediated Communication, vol. 13, n° %11, p. 210–230, 2007.
- S. Yadav, "Facebook - The Complete Biography" 2006. [En ligne]. Available: http://mashable.com/2006/08/25/facebook-profile/. [Accès le 24 05 2014].
- S. Rosenbush, "How LinkedIn Broke Through" 09 04 2006. [En ligne]. Available: http://www.businessweek.com/stories/2006-04-09/how-linkedin-broke-through. [Accès le 25 12 2013].
- S. White, "Social Media Growth 2006 to 2012" 2013. [En ligne]. Available: http://dstevenwhite.com/2013/02/09/social-media-growth-2006-to-2012/. [Accès le 27 12 2013].
- S. Favaro, "What Linkedin is still missing" 06 01 2014. [En ligne]. Available: http://www.simonefavaro.it/2014/01/06/what-linkedin-is-still-missing/. [Accès le 28 04 2014].
- D. W. Stout, "Social Media User Stats 2013" 25 11 2013. [En ligne]. Available: http://dustn.tv/user-stats-2013/. [Accès le 28 04 2014].
- C. N. Gunawardena et F. J. Zittle, "Social presence as a predictor of satisfaction within a computer‐mediated conferencing environment" American Journal of Distance Education, vol. 11, n° %13, pp. 8-26, 2009.
- L. A. Annetta et H. Shawn, "Creating presence and community in a synchronous virtual learning" International journal of instructional technology and distance learning, vol. 3, pp. 27-43, 2006.
- J. Yu, B. Benatallah, F. Casati et F. Daniel, "Understanding Mashup Development" IEEE Internet Computing, vol. 12, n° %15, pp. 44-52, 2008.
- J. C. Fagan, "Mashing up Multiple Web Feeds Using Yahoo! Pipes" Computers in Libraries, vol. 27, n° %110, pp. 10-17, 2007.
- J. Wong et J. Hong, "What do we "mashup when we make mashups?" Proceedings of the 4th international workshop on End-user software engineering, p. 35–39, 2008.
- Bakshy, R. E., M. C. I. et L. Adamic, "The role of social networks in information diffusion" Proceedings of the 21st international conference on World Wide Web, pp. 519-528, 2012.
- J. Delaney, N. Salminen et E. Lee, "Infographic: The Growing Impact of Social Media" 2012. [En ligne]. Available: http://www.sociallyawareblog.com/2012/11/21/time-americans-spend-per-month-on-social-media-sites/. [Accès le 17 04 2014].