<<

A Survey of Engineering

Navid Ahmadi, Mehdi Jazayeri, Francesco Lelli, Sasa Nesic Faculty of Informatics, University of Lugano {firstname.lastname}@lu.unisi.ch

Abstract • Most of the time is spent in the division of the work among the members and in Software engineering is a complex socio- understanding the requirements that a technical activity, due to the need for particular component should meet. discussing and sharing knowledge among team members. This has raised the need for All these activities involve a strong effective ways of sharing ideas, knowledge, interaction between a set of people that and artifacts among groups and their collaborate in order to achieve a common members. The social aspect of software goal: produce an effective, efficient software engineering process also demands computer following the mantra “Maximum Results with support to facilitate the development by Minimum Effort”. means of collaborative tools, applications This raises on the one hand the need for an and environments. effective way of sharing ideas and In this paper, we present a survey of relevant requirements among the group members and works from psychology, mathematics and on the other hand the need to create tools that computer science studies. The combination of can support such . these fields provides the required Sawyer in [55] mentions that the social infrastructure for engineering social and perspective is more than just aggregation of collaborative applications as well as the individual software developer’s attributes and software engineering process. We also actions, i.e., the team has to be seen as a discuss possible solutions for the single unit of analysis. Studies by DeMarco encountered shortcomings, and how they can and Lister suggest that on large projects improve software development. typical systems developers spend about 70% of their time working with others [41]. Jones reports that team activities account for about 1. Introduction 85% of the costs of large software systems [47]. Therefore, it is clear that the social It is now commonly accepted that software activity represents a substantial part of the programming is a social activity. Today everyday work of programmers. This raises software development is: the question of whether a systematic adoption of methodologies studied in social and • Carried out in teams. psychological disciplines could improve the productivity of a team. • These teams may include domain On the other hand many web based social specific expert. tools have been developed in order to manage, maintain and improve the social

978-1-4244-2776-5 © 2008 IEEE 1

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. activities of people. These applications have communication plays a key role in software grown in an independent way but they often development [21], [22]. Lui and Chan also share part of their use cases. Therefore there have a human centric approach to software is the need to define techniques and engineering: in [27] they present different guidelines for building such applications. ways to approach collaborative programming Considering this as a relatively new area, and they show how to combine and we have tried to collect the most interesting harmonize these practices. Therefore, they related work that have been done in different can be applied to common software disciplines that could be used as basic problems such as motivating building blocks for achieving the foreseen programmers, discovering solution patterns, improvements. managing software teams, and rescuing IT The rest of the paper is organized as projects in trouble. Finally, Yourdon in [28] follows: Section 2 presents a set of relevant identifies with the words “death march” a set works from psychological and social areas of software projects that will have almost no that could be integrated in modern software possibility to succeed due to the way they are development. Section 3 presents relevant organized, managed or carried out by works in building collaborative and social programmers. He also proposes a set of tools while Section 4 gives a set of references techniques for a rapid identification of these on mathematical techniques that have been or projects and a few ways to survive inside could be used in order to validate ideas them. around social software engineering. Other useful results coming from the psychology communities [33] can explain: (i) Why in a certain kind of group we have a 2. Software Engineering as Social Activity person/partner that tends to be excluded. (ii) Why in a group we have usually a person that Many works in psychology and sociology keeps fighting against the project leader. (iii) disciplines have attempted to explain and What kind of people should never be grouped classify the social behaviors of human beings. together in order to avoid group Unfortunately the software engineering fragmentation. (iv) Why groups usually community has spent little effort to integrate divide themselves into subgroups and (v) the outcome of these areas in the modern What is the difference between the “real” software development process. In this section chain of command and the formal one. For we present a set of well-established works in example, during its lifetime, a group disciplines like psychology and sociology that encounters 5 different phases that are could be integrated in the software characterized by a different behavior of the development process in order to improve the members and different productivity. This productivity of a team. social behavior is common in every human One of the first promoters of software activity. Knowledge of these phases and the development as a social activity is Gerald M. adoption of techniques that could lead to a Weinberg in 1971 [34]. Most of his work is fast and safe “group cohesion” (last phase) focused on reengineering the software should be adopted in order to improve the development processes from a “people software engineering process. That was just empowering point of view”. In other words, an example; interested readers can refer to he considers software development as a [23],[24],[25], [26] for additional human-centric activity. Therefore, effective information.

2

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. Economists are facing the problem of attain their goals. A social application is improving the communication among people software that takes the relationship among the as well. Goleman in [35] puts a lot of effort members of the community into account and into convincing the reader that working skills supports the social activities to the benefit of are fundamental but many other factors the community. With this definition all the influence the success of projects. Successful applications that support communication and people should have social skills as well in collaboration among users can be considered order to allow a good cooperation between as social applications. Such support can be people in the same group. general and domain-independent, such as e- Other branches of psychology and mail and , or tailored for a sociology that could be useful in approaching specific domain and related community, the social software engineering problem which models intra-domain communications include the so-called Persuasion field. On one by virtual environments, such as tools that hand, Cialdini in [32] describe how our brain support collaboration in software engineering. is using seven different shortcuts in order to Social Network Services1 (SNSs) [63] simplify the amount of information that we represent a subset of social applications that are receiving and how they are used in order has gained attention recently. In addition to to convince people to share a point of view. the usual collaborative features they also On the other hand, Fogg in [29] shows how explicitly maintain the connection between the adoption of technology modifies the people. These relationships among members behaviors of a single person or of a group. are modeled as a graph that can be used to As final remark we need to point out that analyze and extract useful information to the according to psychologists most of the social benefit of target society. problems can be solved by a critical analysis SNSs are computer models of social of the dynamics between the people involved. networks that have emerged from human Sometime this introspection needs to be studies. For example, in [6] the authors performed with the help of an external entity propose social network analysis as a way to that remains uninfluenced by the dynamics mitigate human health problems. According among people. This idea supports the to [33] if a person is not inserted in a healthy approach of Weinberg [34], [21], [22] to group she/he can experience more diseases. software development. As a mater of fact by Therefore, they propose social network helping programmers to think critically we analysis as a way to detect such problems. In can avoid misunderstanding that could slow [9] the authors identify these techniques as a down the software development. way to understand possible communication The next section will address the problem weaknesses within a company and of engineering social applications by demonstrate that by solving this, productivity presenting the state of the art in relevant can increase. computer science areas like social networks In computer science, techniques on how to and collaborative applications. build social networking website are starting to be consolidated [30], [31]. Nerveless an appropriate visualization of a social network 3. On Engineering of Social Applications is still an open issue; for instance, in [8] the

It is commonly accepted that many 1 These links are examples in of Social network Services: communities rely on computer support to http://www.friendster.com/ http://www.myspace.com/ http://www.linkedin.com/ http://www.facebook.com/

3

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. authors propose techniques and tools for The computer-supported cooperative work browsing the graph that represents the (CSCW) community has investigated collaboration between people. computer-assisted collaboration for more than Finally, as explained in the following two decades [45]. The CSCW application sections many authors propose computer domains are numerous, but we consider them supported social networks as a way to to be collaborative tools that are built in order increase the connection between people and to assist in software development. In the their productivity [7] [10] [11]. 1980s and 1990s, computer science Section 3.1 gives an overview of the social researchers studied software processes as a applications that are used in the software way to improve productivity of software engineering domain. In Section 3.2 we teams. Process-centered software engineering discuss the SNSs in more detail and how environments [61] is a collection of semantic technologies can be leveraged in representative research of that era that placed order to improve their usefulness. the focus of collaboration on the process as opposed to on the people or the social aspects of the interaction. 3.1 Collaborative Applications Whitehead [58] distinguishes software engineering collaboration from the As pointed out in the introduction of this collaboration in other domains such as: paper and in Section 2, software engineering ‘artifact-based, or model-based collaboration, is a social activity. DeMarco and Lister [41], where the focus is on the production of new and Jones [47] are examples of studies on the models, the creation of shared meaning amount of time spent on communication and around the models, and the elimination of collaboration with others. Strubing [57] in his errors and ambiguities within the models. study found three other activities that Accordingly, he categorizes collaborative developers consistently carry out beyond tools for software engineering, into four coding: (i) organizing their working space groups: model-based collaboration tools, and process, (ii) representing and process support tools, collaboration communicating design decisions and ideas, awareness tools, and collaboration and (iii) communicating and negotiating with infrastructure tools. various stakeholders. Booch has conducted an Sarma [54] provides a classification experiment to obtain a snapshot of the daily framework for collaborative tools based on life of a developer that conforms to Strubing’s the user’s effort required to collaborate findings [39]. effectively. The framework is represented as a The social aspects of software process, as pyramid, consisting of five layers and three mentioned in Section 2, demand collaborative strands. Tools at higher layers provide more tools to support the collaboration among team automated support and reduce the required members. Particularly, software development effort for collaboration. Strands are critical is a highly distributed task, involving needs that crosscut all aspects of programmers, designers and architects who collaboration. According to Sarma, the main work in different time/space, due to the ever- three strands are communication, artifact growth of offshoring, outsourcing and open- management, and task management. At the source communities. The majority of large highest layer of the framework, projects are undertaken by teams of development environments (CDEs) provide a software staff working across a number of seamless environment where the organizations [50].

4

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. collaboration tools have become integrated consider the Web as an enabling technology into the development environment, thus with the potential to change software lowering the context switch barrier to the development by providing a cheap medium developers. Booch [39] defines a CDE as: “a for large-scale software distribution, update, virtual space where the stakeholders of a and reuse. The Web provides the required project – even if separated by time or space – infrastructure for transiting from a syntactic can meet, share, brainstorm, discuss, reason level of collaboration on the to a about, negotiate, record, and generally labor more semantic level by means of hypermedia together to carry out some task, most often to in a globally accessible information space. create some useful artifact and its supporting Open hypermedia systems [49][60] had been objects”. well investigated even before the invention of A number of CDEs have been proposed in the World Wide Web, and had been used in the context of software engineering. the context of software engineering [37]. Boldyreff et al. [38] presented two The Web has been considered as a key development environments to support environment for collaboration, due to the fact collaborative software engineering: GENESIS that it relies on the Internet, an infrastructure (GEneralised eNvironment for procEsS that enables the creation of highly scalable management in cooperative Software distributed systems. Such inherent properties Engineering) and OPHELIA (Open Platform of the Web accurately meet the need for and metHodologies for devELopment tools collaboration beyond the time and space IntegrAtion in a distributed environment). limits. Besides, the simple architecture of Dossick et al. [42] propose CHIME, a semi- software development on the Web, for automatically generated 3D virtual world example REST [43], has played an important representing the software system. Users reason for its acceptance as the main interact with project artifacts by “walking infrastructure for building scalable around” the virtual world, where they collaborative applications. potentially encounter and collaborate with Booch and Brown [39] provide a survey of other users’ avatars. CHIME aims to support collaborative sites. According to them, such large software development projects, in which collaborative sites, i.e., Web-based CDEs, can team members are often geographically and be classified into six groups based on their temporally dispersed, through novel use of application domain: non-software domains, virtual environment technology. asset management, information services, Considering that the Web can potentially infrastructure, community, and software be the most collaborative environment and development. They suggest a list of features that modern Web 2.0 presents a new for CDEs to be added to the feature list of paradigm for collaboration among people we virtual meeting spaces provided by Fournier continue the rest of the subsection in two [44]. They organize the CDE features into parts: (i) the impact of the Web in software three categories, namely: coordination, development, and (ii) Web 2.0 as the more collaboration, and community building. recent trend for collaboration on the Web. Furthermore, they propose a conceptual model for a software development-specific CDE, consisting of three layers: project 3.1.1 Web-based Collaboration on Software workspaces, team tools and development resources. The Web has had a great impact on software engineering. Oreizy et al. [52]

5

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. 3.1.2 Web 2.0 Fosters Software Engineering 3.2 Social Network Services

Web 2.0 is a trend that leverages end– Social Network Services (SNSs) provide a users’ participation to build collective multitude of ways for users to interact. They intelligence [51]. systems are one of the have been promoted as central to the second most concrete examples of gathering such generation of the Web (i.e., Web 2.0), which [46]. are a form is characterized by mass participation and of content management system, in the form of collaboratively generated . The Web pages, which enable a repository of usual functionalities, which are provided by a information that may be updated easily by its majority of existing SNSs (e.g., Friendster2, users, using a simplified markup language. MySpace3, LinkedIn4 and Facebook5) Wiki systems have been exploited in the include: a personal profile page for the context of software engineering [48]. Rech et participant, a network of friends listings, al. [53] use a wiki-centered framework that private messaging, discussion forums, events lets development teams quickly share management, blogging, commenting and experiences and reuse project-related media uploading. The SNSs have brought a knowledge in small- and medium-sized new way of interconnecting online content enterprises. Aguiar and David [36] suggest a and networked people for various social and wiki that helps in quickly weaving different professional purposes. People are now better kinds of contents into a single heterogeneous connected and can easily access, reuse or document, with the goal of reducing the comment on content that is authored by other development–documentation gap by making people from the network. However, in spite of documentation more convenient and being well connected within particular social attractive to developers. Schuster et al. [56] networks, the diversity of SNSs hampers the exploit a wiki system to capture and share interoperability between people from social software architecture design rationale in networks, which adhere to different SNSs. enterprise systems. These are many other Current social networks act as isolated islands examples of the use of wikis in the context of of connected people and their contents. One software engineering. possibility to overcome this lack of network Using wiki as a collaborative development interoperability is to leverage semantics into environment is one step beyond using it only social networks – interconnecting both as a documentation repository. Xiao et al. content and people in meaningful ways [1]. In [59] present Galaxy Wiki, a wiki based this section, we first outline problems with environment in which programmers can today’s SNSs that prevent them from collaboratively write source code, build accessing the full range of available content projects, execute programs and debug defects. and networked people online. Then, we Cheyer and Levy [40] introduce WubHub, a briefly explain the Semantic Web wiki-based collaborative programming technologies and how they can be leveraged environment with the notion of executable into SNSs. Moreover, we discuss potential pages that act as functions, i.e., are executable benefits of enhancing SNSs with the and able to call each other and pass defined data types. Users can collaboratively write 2 and compose services, and build upon each http://www.friendster.com/ 3 other’s work, assembling new services that http://www.myspace.com/ 4 provide new or more customized features. http://www.linkedin.com/ 5 http://www.facebook.com/

6

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. Semantic Web technologies as well as initial on shared objects that belong to other steps towards building a social networking communities. This is caused by the fact that infrastructure as a fundamental part of the today’s SNSs do not have agreed-upon Internet infrastructure. semantics to describe shared objects, that is, there is no shared understanding of the 3.3.1 Fundamental problems with today’s SNSs objects’ meaning in different SNSs. Accordingly, it is difficult to transfer the The majority of today’s SNSs are based on users’ properties such as posts, the notion of object-centered sociality [2] comments, photos and videos, from one SNS instead of explicit connections (i.e., person- to another. The next problem is that a user to-person) among people. In other words, who wants to join more than one social people do not just connect to each other; they network must create a new profile for each connect through shared objects. Karin Knorr- network from scratch. Also, contacts that a Cetina defines shared objects as the reason user has in one network cannot be why people get in touch with each other. A automatically transferred to other networks. date and job, for instance, connect us to very This causes the same person to have many different sets of people. The SNSs enable the profiles and identities (e.g. account data), one creation of object-centered sociality, via for each network. The maintenance of a people’s actions, around the content they number of different profiles and account data create together, comment on, link to or is an error-prone and tedious task. annotate with controlled vocabularies such as In addition, as their name suggests, the DublinCore6 and LOM7 or with uncontrolled SNSs mainly focuse on the human dimension, vocabularies (e.g., social tagging). For that is, all information is available only in a example, Flickr8 does this to photos, human readable way. By embedding both YouTube9 to videos, Del.icio.us10 to people (i.e., their profiles) and shared objects bookmarks, and so on. In general, the shared in more machine processable object could be any digital or non-digital (understandable) context the interconnectivity resource as an instance of the appropriate between people can be further enhanced. concept from the world modeling domains. Intelligent software agents could infer new The existing SNSs form bounded relationships between shared objects and communities of users and their shared objects hence between people who are interested in of interests. Although most of them provide them. the usual set of functionalities listed above, each SNS represents users, objects of interests and links between them in an application 3.3.2. Leveraging the Semantic Web specific way. This hampers the technologies for SNSs interoperability among SNSs and, ultimately, content creation facilities on the Web. Users The Semantic Web aims at providing an of different SNSs cannot interact with each environment in which both humans and other and can not access, reuse or comment software agents can unambiguously determine the meaning of resources and make 6 http://dublincore.org/documents/docs/ better use of them [3]. Moreover, data and 7 http://ltsc.ieee.org/wg12 knowledge stored within a resource should be 8 http://www.flickr.com/ easily accessible across application, 9 http://www.youtube.com/ enterprise, and community boundaries. In 10 http://del.icio.us/ accordance to this, the Semantic Web

7

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. community works on providing: a) common Semantic Web technology, can offer possible formats for integration and combination of solutions to this problem. data drawn from diverse sources, and b) An ontology is a formal representation of a languages for the conceptualization of real set of concepts within a domain and the world objects. The Semantic Web principles relationships between those concepts. SNSs are implemented in layers of Web can use ontologies to describe people, groups, technologies and standards. URI (Unique and actions that people perform within the Resource Identifier), RDF (Resource groups, as well as shared objects of interests. Description Framework), ontologies, and There are several initiatives for creating structured query languages such as universally recognized ontologies to describe SPARQL11 are the key Semantic Web social networks such as FOAF13 (Fried-of-a- technologies. We now briefly outline each of Friend), SIOC14 (Semantically Interlinked them and discuss how they can contribute in Online Communities) and PIMO15 [64] solving the outlined problems of today’s (Personal Information Model), which have SNSs. gained significant acceptance. We believe URIs provide means for uniquely that over time and with further enhancement identifying the resources in the Web. Using they will become standardized. However, we global URIs for the identification of people do not exclude the emergence of new and shared objects (e.g., photos, videos, blog ontologies within specific communities at any posts, etc.) within SNSs, enables them to be time. The interoperability between SNSs that identified independently of particular SNSs. use different ontologies should be solved by Once an URI is assigned to a shared object ontology-mappings [4]. The FOAF ontology within a SNS, it can be linked to other describes persons and their relationships to resources on the Web. In a similar way, users other people and objects. FOAF documents of the SNSs can use their unique identity for are RDF instances of the FOAF ontology. all social networks they belong to. OpenId12 People can manually create their FOAF is an example of an open and decentralized documents and link to them from their identity system, which allows Internet users homepages or use an SNSs with capability to to log on to many different SNSs or Web sites export the FOAF file (e.g., hi516, using a single digital identity. LiveJournel17, Tribe18, etc.) based on user The RDF is a standard model for data profiles. FOAF allows groups of people to interchange on the Web. It allows structured describe social networks across a number of and semi-structured data to be mixed, SNSs without the need for a centralized exposed and shared across different database. The SIOC ontology provides a applications. By publishing shared objects’ mechanism to integrate online community description as RDF, the SNSs enable them to information (e.g. discussion methods such as be shared with other SNSs. However, in order , forums and mailing lists). It is to understand the meaning of the shared commonly used in conjunction with FOAF objects, different communities should also use the agreed-upon semantics that lie behind 13 these descriptions. Ontologies, as the next www.foaf-project.org 14 www.sioc-project.org 15 http://www.semanticdesktop.org/ontologies/2007/11/01/pimo/ 16 http://hi5.com/ 11 17 http://www.w3.org/TR/rdf-sparql-query/ http://www.livejournal.com/ 12 18 http://openid.net/ http://www.tribe.net/

8

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. for expressing personal profile, user- Rather then building separate social generated content and the activities of online networks, the Internet infrastructure should be communities on the Web. augmented to include a social networking PIMO is based on the idea that users have a infrastructure, making social networking a mental model to categorize their environment. shared component across various desktop and It represents the user itself and the fact that he Web applications. NEPOMUK – the social has a Personal Information Model. Each semantic desktop (SSD) [5] provides an concept in the environment of the user is operating system layer that extends the represented as Thing in the model, and personal desktop into a collaboration mapped to documents and other entities that environment that supports both personal mention the concept. Things can be described information management and information and via their relations to other Things or by literal content sharing and exchange across social RDF properties. and organizational relations. NEPOMUK is The SPARQL is an RDF query language based on a set of carefully designed and and data access protocol. It enables unified integrated ontologies for the Semantic queries to RDF data regardless of where the Desktop like PIMO. It also uses a P2P data comes from. The SPARQL endpoint is a infrastructure as a communication medium, SPARQL protocol service that enables users thus avoiding centralized SNSs whose (software agents) to query remote RDF data maintenance requires a major investment. stores. By publishing RDF data such as Profile and user information remains the instances of the FOAF and SIOC ontologies property of individual users and multiple into RDF stores with a SPARQL endpoint, social software applications can crawl it. The the SNSs make this data accessible to other SSD opens the way for a range of new social SNSs. In this way, SNSs can share user software applications that can employ all profiles as well as RDF descriptions of shared person-to-person connections and access objects. shared objects of interests through the social network infrastructure.

3.3.3 Towards unified social networking infrastructure 4. Mathematical Methods for Social Software Engineering Combining SNSs with semantic technologies gives benefits to both social In this section we present and describe networking and the Semantic Web. By using some of the mathematical techniques that agreed-upon semantic formats to describe have been used to validate the theories people, shared objects and the connections presented in section 2 and 3 or that could be that bind them all together, SNSs can considered useful. In this section we will not interoperate via common semantics. Thus, the present possible mathematical open issue. We Semantic Web has the potential to connect just mention a set of models that may be disconnected social networks into a unified useful for the evaluation of new ideas related network potentially encompassing all Internet to Social Software Engineering. users. On the other hand, SNSs provide the The most used techniques and probably the possibility of creating valuable semantic most relevant is represented by the Social metadata – and the Semantic Web still lacks Network Methods [12], [18], [19]. In a sufficient (valuable) metadata. nutshell, it is commonly accepted that

9

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. analyzing a social network consists of entire system. Below the threshold, the analyzing a graph, represented by a . information may not reach all the nodes. Different properties of the matrix are mapped Above the threshold, the information spreads to properties of the social network. In Social exponentially. In Scale Free network the Network Analysis the attributes of individual threshold for the information propagation is (such as friendly, unfriendly, beginner, smart close to zero. etc.) are less important than the relationship The adoption of different human between people. The scientific community organizational models could strengthen and has accepted a few properties while many weaken the communication. Gleiser in [15] authors in different papers propose new claims that all networks constructed by metrics in order to provide a better humans follow a scale free organization by understanding of the social network structure. demonstrating that Marvel Superheroes’ The work of Borgatti [16] is an example in communications follow the power law this direction. While examples of accepted distribution. In any case, this idea does not properties are the Structural Coesion that is represent an endpoint in this direction: The minimum number of members who, if different power law distributions can lead to removed from a group, would disconnect the different structures especially for small group or the Centrality that count the number groups of people [17]. of ties to other node in the network. Another mathematical model that could be It has also been demonstrated that social useful is the Nash Equilibrium [14], [20]. In a networks usually follow a scale free structure nutshell, it represents a set of strategies, one [13], [17] instead of a random network for each player, such that no player has structure. Therefore they share all the strength incentive to unilaterally change her action. and weakness of scale free model. In random Players are in equilibrium if a change in network theory, despite the random strategies by one of them would lead that placement of links, the resulting system is player to earn less than if she retained her deeply democratic: due to the fact that the current strategy. In the Prisoner’s dilemma connections between nodes are added [62] it is shown that we can maximize the randomly, most nodes have approximately the profit in the situation where players cooperate same number of links. In a random network, with each other. From an intuitive point of it is extremely rare to find nodes that have view we would expect that on the one hand significantly more or fewer links than the the set up of a social relation between two average. In scale free networks the connection people could be mapped in a situation where between nodes follow a power law both players are not in Nash Equilibrium. On distribution. Therefore some nodes have a the other hand we could identify new high number of connections to other nodes, opportunities in situations where the while most nodes have just a few. equilibrium leads to non-cooperation between Considering that Social Networks follow a the players. scale free model they share also the strengths A final remark is that the consistence and weaknesses. For example they are robust between the social model and the reality is against accidental failures but vulnerable to hard to identify and maintains. In [11], the coordinated attacks. In addition, in random authors propose a set of questions for networks, the propagation of the information evaluating the social network parameters that needs to surpass a critical threshold (a number are used in order to build the graph. of contacted nodes) before it propagates to the

10

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. 5. Conclusions [8] Heer, J.; Boyd, D., "Vizster: visualizing online social networks" Information Visualization, 2005. INFOVIS 2005. IEEE Symposium on , vol., no., pp.32-39, 23-25 Oct. 2005. In this paper we addressed the idea of [9] Cross R., Borgatti S. and Parker A., A bird’s eye view. Social Software Engineering by providing a Using social network analysis to improve knowledge creation and sharing IBM Institute for Business Value , 2002. survey of contributions in related areas. We [10] Ogata, H., Yano, Y., Furugori, N., and Jin, Q. 2001. identified and discussed two main Computer Supported Social Networking For Augmenting subcategories: on the one hand the need to Cooperation. Comput. Supported Coop. Work 10, 2 (Jan. 2001), 189-209. integrate results from social and [11] Cross Rob, Borgatti Stephen, Parker Andrew, Prusak psychological sciences in the software Laurence, Making Invisible Work Visible: Using Social lifecycle; on the other hand, we outlined the Network Analysis to Support Strategic Collaboration Creating Value with Knowledge, January 2004 , pp. 82- need for engineering social networking 103(22): Oxford Scholarship Online Monographs services and collaborative tools. As a matter [12] A web Introduction to Social Network Methods of fact, these applications have been http://faculty.ucr.edu/~hanneman/nettext/ [13]A web introduction on Scale free network developed independently but they share many http://en.wikipedia.org/wiki/Scale-free_network use cases. Therefore, by approaching the [14] A web Introduction on Nash Equilibrium problem in a systematic way we can try to http://en.wikipedia.org/wiki/Nash_equilibrium [15] Pablo M Gleiser, How to become a superhero, Journal of formalize and improve these classes of Statistical Mechanics: Theory and Experiment September applications. 2007, Start Page: P09020 Finally we presented a set of mathematical [16] Borgatti, S.P. 2-Mode Concepts in Social Network Analysis. Encyclopedia of Complexity and System Science. techniques that have been used for [17] Guido Caldarelli Scale-Free Networks: Complex Webs experimental validation of scientific in Nature and Technology Oxford University Press; 1 edition contributions: these techniques may be used (Jun 28 2007) [18] Stanley Wasserman, Katherine Faust, Social Network as basic blocks for understanding the ideas Analysis: Methods and Applications, Cambridge University proposed for social software engineering. Press; 1 edition (November 25, 1994) [19] John P Scott Social Network Analysis: A Handbook Sage Publications Ltd; Second Edition (March 2000) [20] Mehlmann, A. The Game's Afoot! Game Theory in Myth and Paradox, American Mathematical Society (2000). 6. References [21] Gerald M. Weinberg, Becoming a Technical Leader ISBN: 0-932633-02-1 Dorset House Publishing [22] Gerald M. Weinberg, Quality Software Management [1] J. Breslin, and S. Decker, “The Future of Social Networks Volume 1 to 4 (Systems Thinking, First Order Measurement, on the Internet”, IEEE Internet Computing, vol. 11, no. 6, pp. Congruent Action, Anticipating Change) ISBN: 0-932633- 86-90. 22-6 Dorset House Publishing [2] K. Knorr-Cetina, “Sociality with Objects: Social [23] D. Cartwright and A. Zander, Group Dynamichs, Relations in Postsocial Knowledge Societies”, Theory, research and theory, Tavistok London 1960. Culture & Society, vol. 14, no. 4, 1997, pp. 1-30. [24] R.B. Cattel New Concepts foe Measuring Leadership in [3] T. Berners-Lee, J. Hendler, and O. Lassila, “The Term of Group syntality, journal on human relation, 1951, 4, Semantic Web”, Scientific Am., vol. 284,no.5,2001,pp.34-43. 161-184 [4] Euzenat, J., and Shvaiko, P., Ontology Matching, [25] Forsyth, D.R. 2006. Group Dynamics, 4th Edition. Springer-Verlag, Berlin, 2007. Belmont, CA: Thomson Wadsworth. ISBN 0-534-36822-0 [5] S. Handschuh, et al., “The Nepomuk Project – On the [26] Freud, Sigmund (1922) Group Psychology and the Way to the Social Semantic Desktop”, In Proceedings of I- Analysis of the Ego. New York: Liveright Publishing. Semantic 07’, 2007, pp. 201-211. [27] Kim Man Lui, Keith C. C. Chan Software Development [6] Margaret E. Morris, "Social Networks as Health Rhythms: Harmonizing Agile Practices for Synergy ISBN: Feedback Displays" IEEE Internet 978-0-470-07386-5 April 2008 Computing ,vol. 9, no. 5, pp. 29- [28] Edward Yourdon, Death March: The Complete Software 37, September/October, 2005. Developer's Guide to Surviving 'Mission Impossible' Projects [7] McDonald, D. W. 2003. Recommending collaboration Prentice Hall PTR (June 15, 1999) with social networks: a comparative evaluation. In [29] B.J. Fogg Persuasive Technology: Using Computers to Proceedings of the SIGCHI Conference on Human Factors Change What We Think and Do Morgan Kaufmann in Computing Systems (Ft. Lauderdale, Florida, USA, April Publishers (December 2002) 05 - 10, 2003). CHI '03. ACM, New York, NY, 593-600.

11

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. [30] Michael Hartl, Aurelius Prochazka Building a Social [51] O'Reilley, T. (2005). What is Web 2.0---Design Patterns Networking Website with Ruby on Rails ISBN 13: 978-0- and Business Models for the Next Generation of Software. 321-48079-8 (July 2007) Retrieved from [31] Alan Bradburne Practical Rails Social Networking http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/3 SitesISBN-13 (pbk): 978-1-59059-841-2 Apres 2007 0/what- is-web-20.html [32] Robert B. Cialdini, Influence: The Psychology of [52] Oreizy, P., & Kaiser, G. (1997). The Web as Enabling Persuasion Collins; Revised edition (October 7, 2005). Technology for Software Development and Distribution. [33] Spaltro Enzo Pluralità. Psicologia dei piccoli gruppi, IEEE Internet Computing , 1, 84--87. Pàtron (1993) [53] Rech, J., Bogner, C., & Haas, V. (2007). Using Wikis to [34] Gerald M. Weinberg The Psychology of Computer Tackle Reuse in Software Projects. IEEE Softw. , 24, 99-- Programming: Silver Anniversary Edition Dorset House 104. Publishing Company, Incorporated; Anl Sub edition [54] Sarma, A. (2005). A survey of collaborative tools in (September 1998) software development. Institute for software research, Donald [35] Daniel Goleman Working with Emotional Intelligence Bren school of information and computer science, University Bloomsbury Publishing PLC; New Ed edition (29 Jun 1999) of California, Irvine. [36] Aguiar, A., & David, G. (2005). WikiWiki weaving [55] Sawyer, S. (2004). Software development teams. heterogeneous software artifacts. WikiSym '05: Proceedings Commun. ACM , 47, 95--99. of the 2005 international symposium on Wikis (pp. 67--74). [56] Schuster, N., Zimmerman, O., & Pautasso, C. (2007). San Diego, California: ACM. ADkwik: Web 2.0 Collaboration System for Architectural [37] Anderson, K. M. (n.d.). Supporting software engineering Decision Engineering. In Proc. of the 19th International with open hypermedia. ACM Comput. Surv. , 20. Conference on Software Engineering and Knowledge [38] Boldyreff, C., Nutter, D., Rank, S., Smith, M., Wilcox, Engineering (SEKE 2007). P., Dewar, R., et al. (2003). Environments to Support [57] Strubing, J. (1994). Designing the Working Process: Collaborative Software Engineering. In 2nd Workshop on What Programmers Do Besides Programming. User- Cooperative Supports for Distributed Software Engineering Centered Requirements for Software Engineering Processes, (pp. 25-28). Environments. [39] Booch, G., & Brown, A. W. (2003). Collaborative [58] Whitehead, J. (2007). Collaboration in Software Development Environments.Advances in Computers,59,2-29. Engineering: A Roadmap. FOSE '07: 2007 Future of [40] Cheyer, A., & Levy, J. (2006). A Collaborative Software Engineering (pp. 214--225). IEEE Computer Programming Environment for Web Interoperability. Society. Proceedings of the First Workshop on Semantic Wikis -- [59] Xiao, W., Chi, C., & Yang, M. (2007). On-line From Wiki To Semantics. ESWC2006. collaborative software development via wiki. WikiSym '07: [41] DeMarco, T., & Lister, T. (1987). Peopleware: Proceedings of the 2007 international symposium on Wikis productive projects and teams. New York, NY, USA: Dorset (pp. 177--183). Montreal, Quebec, Canada: ACM. House Publishing Co., Inc. [60] Østerbye, K., & Wiil, U. K. (1996). The flag taxonomy [42] Dossick, S. E., & Kaiser, G. E. (1999). CHIME: a of open hypermedia systems. HYPERTEXT '96: Proceedings metadata-based distributed software development of the the seventh ACM conference on Hypertext (pp. 129-- environment. ESEC/FSE-7: Proceedings of the 7th European 139). Bethesda, Maryland, United States: ACM. software engineering conference held jointly with the 7th nited States: ACM. ACM SIGSOFT international symposium on Foundations of [61] Pankaj K. Garg, Mehdi Jazayeri (1995) Process- software engineering (pp. 464--475). Toulouse, France: Centered Software Engineering Environments Institute of Springer-Verlag. Electrical & Electronics Enginee ISBN 0818671033 [43] Fielding, R. T. (2000). Architectural Styles and the [62] Dresher, M. (1961). The Mathematics of Games of Design of Network-based Software Architectures. PhD Strategy: Theory and Applications Prentice-Hall, Englewood Thesis, UNIVERSITY OF CALIFORNIA, IRVINE. Cliffs, NJ. [44] Fournier, R. (2001). Teamwork is the Key to Remote [63] Boyd, d. m., Ellison, N. B. Social network sites: Development. Infoworld. Definition, history, and scholarship. Journal of Computer- [45] Grudin, J. (1994). Computer-Supported Cooperative Mediated Communication, 13(1), article 11 (2007) Work: History and Focus. Computer , 27, 19--26. [64] Leo Sauermann, Ludger van Elst, Andreas Dengel: [46] Jazayeri, M. (2007). Some Trends in Web Application PIMO - a Framework for Representing Personal Information Development. FOSE '07: 2007 Future of Software Models. In Proceedings of I-Semantics' 07 Engineering (pp. 199--213). IEEE Computer Society. [47] Jones, C. (1986). Programming productivity. New York, NY, USA: McGraw-Hill, Inc. [48] Louridas, P. (2006). Using Wikis in Software Development. IEEE Softw. , 23, 88--91. [49] Meyrowitz, N. (1989). The missing link: why we're all doing hypertext wrong. 107--114. [50] Oppenheimer, H. L. (2002). Issues in Globally Distributed Development. in the Proceedings of the Global Software Development Workshop.

12

Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply.