Вы находитесь на странице: 1из 36

SWENG 580: Advanced Software Engineering

Global Software Development


ENGINEERING DIVISION, PENN STATE UNIVERSITY

Background
Global Software Development (GSD)
Motivation for GSD
Challenges to GSD
GSD Process
Open Source Software (OSS)
OSS Development Process

© Penn State University


Last updated: Wednesday, April 1, 2020
SWENG 580: Advanced Software Engineering

Background
Economic and technological determinants of the market
are reshaping the landscape of software development
Global distributed software development is on the rise
ENGINEERING DIVISION, PENN STATE UNIVERSITY

There is also a growing interest in software products


produced through open source software development
 Open source software development is a kind of global distributed
development
 developers from around the world cooperate with each other without any
monetary compensation

2
SWENG 580: Advanced Software Engineering

What is global software development?


Software development in a multi-site, multi-
cultural and distributed context
 Software development is viewed as a
ENGINEERING DIVISION, PENN STATE UNIVERSITY

geographically distributed network of workflows;


typically
 Requirements and high level design is done by a
central team at a single location
 Subsystems designed by the central team are
developed by remote teams at multiple different
locations

3
SWENG 580: Advanced Software Engineering

Motivation for GSD


Differences in development costs
Shift based system facilitated by time-zone
differences allowing for shorter time to
ENGINEERING DIVISION, PENN STATE UNIVERSITY

market
Limited trained workforce in a single location
in technologies that are required to build
today’s complex systems
Advances in infrastructure

4
SWENG 580: Advanced Software Engineering

Challenges to GSD
For any project, whether collocated or distributed,
to be successful a process framework needs to
orchestrate communication, coordination and
ENGINEERING DIVISION, PENN STATE UNIVERSITY

control effectively
 Teams working on a given project need to
communicate with each other
 Activities of the teams need to be synchronized
 Activities must be controlled to enforce common goals,
policies, standards and quality levels among the teams

5
SWENG 580: Advanced Software Engineering

Challenges to GSD (Contd.)


When the teams working on a project are geographically
distributed communication, coordination and control
become challenging (Carmel and Agarwal, 2001)
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Distance exacerbates the problem of clearly and unambiguously


communicating information between collaborating teams
 This becomes more complex if teams are separated by several time
zones
 Distance also makes it difficult to coordinate tasks within a
distributed development environment
 Distributed development environment makes it difficult to enforce
common goals, policies, standards and quality levels among
collaborating teams

6
SWENG 580: Advanced Software Engineering

Challenges to GSD (Contd.)


One way to overcome this challenge is to
minimize excessive communication by
optimizing the collaboration among the
ENGINEERING DIVISION, PENN STATE UNIVERSITY

distributed teams
 Collaboration is optimized by breaking a system
into loosely coupled subsystems or components
and having each team work on a given
subsystem or component relatively independent
of each other

7
SWENG 580: Advanced Software Engineering

Challenges to GSD (Contd.)


Another key aspect of successful projects
are good teams
Team building can also be challenging in
ENGINEERING DIVISION, PENN STATE UNIVERSITY

distributed projects for reasons such as


 Members not knowing each other
 Language and culture
 Absence of project’s daily processes to be
followed by members at different sites

8
SWENG 580: Advanced Software Engineering

Challenges to GSD (Contd.)


This problem can be overcome by assigning project members
who straddle multiple teams
 They act as ambassadors or liaisons between teams and
help bridge the communication gap
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 They must be engaged early in the inception and


elaboration phase; this helps them to
 Acquire the knowledge of the domain
 Gain an understanding of the architecture
 With the acquired knowledge, they can share the
architectural vision, and help answer majority of the
architecture and domain related questions from the
development teams locally

9
SWENG 580: Advanced Software Engineering

Challenges to GSD (Contd.)


Agilityis also a desired feature for a
project’s process
ENGINEERING DIVISION, PENN STATE UNIVERSITY

A process must be lightweight – it


should minimize overhead measuring
progress based on a working product
rather than completed documents
 A process must be dynamic – it must
adapt easily to the needs of the project
10
SWENG 580: Advanced Software Engineering

Challenges to GSD (Contd.)


Achieving agility seems counterintuitive in a
distributed development environment
 Agility requires close collaboration, therefore,
ENGINEERING DIVISION, PENN STATE UNIVERSITY

collocated not remote teams would be ideal


 More not less documentation is needed to
unambiguously communicate information to
remote teams
Anapproach that balances the two opposing
needs is desired
11
SWENG 580: Advanced Software Engineering

GSD Process (Sangwan et al, 2004, 2006)


We can start with the standard Unified Process that
 Is iterative and incremental
 Use case driven
 Architecture centric
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Actively manages risks


Activities can be divided into phases that have significant milestones
 Inception: Vision Milestone Phase
 Elaboration: Architecture Milestone Phase
 Construction: Operational Capability Milestone Phase
 Transition: Product Release Milestone Phase
Due to the nature of communication, coordination and control, we
need to tailor requirements engineering, architecture and project
management for GSD

12
SWENG 580: Advanced Software Engineering

Requirements Engineering
Using a model-driven requirements engineering
approach (Berenbach, 2003, 2004)
 Business requirements are modeled using UML and
ENGINEERING DIVISION, PENN STATE UNIVERSITY

progressively refined from product features to system


requirements and subsequently partitioned into
component requirements
This makes it easier to analyze, maintain
traceability among and version control fine grained
artifacts such as stakeholder requests, system
requirements, design specifications and test cases.

13
SWENG 580: Advanced Software Engineering

Requirements Engineering (Contd.)


Visual modeling aids comprehension and
communication among distributed teams
Precise semantics of UML leave less room
ENGINEERING DIVISION, PENN STATE UNIVERSITY

for ambiguity
Tool support for evaluating the models gives
on demand measure of size, progress,
consistency, completeness and quality

14
SWENG 580: Advanced Software Engineering

Requirements Engineering (Contd.)


Semi-automated transformation from earlier to later
modeling artifacts to reduce labor and mistakes in the
design process is also possible
ENGINEERING DIVISION, PENN STATE UNIVERSITY

Inception Elaboration Construction

Business
Components

Vertical
Slices
Design
Components

15
SWENG 580: Advanced Software Engineering

Architecture
The system under development is functionally
decomposed during the requirements engineering and
design process
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 This yields an application architecture of loosely coupled and


highly cohesive set of components that can be designed and
developed relatively independent of each other.
Frameworks that address the non-functional requirements
of the system are also created
 A collection of these frameworks defines a technical architecture
which constrains how the functional components will be realized
and how they will communicate with each other.

16
SWENG 580: Advanced Software Engineering

Architecture (Contd.)
The application and technical architectures
together provide a roadmap of how pieces of the
system will be created and integrated into a
ENGINEERING DIVISION, PENN STATE UNIVERSITY

finished product
 The framework components that define the technical
architecture need to be in place before the application
components can be developed
 Once the framework components are developed it
becomes possible to develop independent application
components in parallel

17
SWENG 580: Advanced Software Engineering

Project Management
Organization of product solution
development is optimized using small
distributed component development teams
ENGINEERING DIVISION, PENN STATE UNIVERSITY

synchronized by a central organization


Activities are classified to be carried out
completely offsite, loosely onsite or onsite
(Laplante et al, 2004)
 This classification is based on communication,
coordination and control

18
SWENG 580: Advanced Software Engineering

Project Management (Contd.)


 For example, consider the activities for the inception phase in the following table
Objective Activities Responsible Artifacts
Determine Establish the vision Product Manager MRS†
what must Capture scenarios Requirements Engineer; Storyboards; Glossary
ENGINEERING DIVISION, PENN STATE UNIVERSITY

be built SME †
Create initial BOM Requirements Engineer; BOM †

SME
Create feature-level screen UI designer UI Prototypes
mockups
Identify key Transform the BOM into Requirements Engineer FRS †

functionali feature-level requirements


ty Determine Feasibility Architect ADD †
Understand Organize BOM and Requirements Engineer BOM (revised); FRS
risks requirements into business (revised)
† SME: Subject Matter Expert
components
† MRS: Marketing Requirements Specification
Global analysis
† BOM: Business Object Model
Architect Global Analysis
† FRS: Feature Requirements Specification Document
† PlanDocument
ADD: Architecture Description project Project Manager Project Plan

19
SWENG 580: Advanced Software Engineering

Project Management (Contd.)


Each objective defines a cohesive set of activities that require close
collaboration among the people involved
These activities should, therefore, be carried out by a collocated
team
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Distributing a related set of activities is not prudent as it creates


communication overhead and, therefore, also impacts coordination and
control
In this particular instance, since the objectives are focused on
defining the product to be built, its key functionality and associated
risks, the central team must perform their associated activities with
some involvement of members from the distributed teams (loosely
onsite)

20
SWENG 580: Advanced Software Engineering

Project Management (Contd.)


Thecentral team plays a key role in the inception
and elaboration phase
 Feature level product requirements (FRS) are refined to
ENGINEERING DIVISION, PENN STATE UNIVERSITY

system requirements (SRS) and partitioned into


component requirements (CRS)
 The design model partitions business components into
loosely coupled design components which can be
developed independently by distributed teams
 Some members of the distributed component
development teams are engaged to disseminate
architecture vision and domain knowledge

21
SWENG 580: Advanced Software Engineering

Project Management (Contd.)


The design is carried through in sufficient detail
that the component interfaces are fully described
and can be tested
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Acceptance tests are provided along with CRS to


distributed component development teams
A common configuration management, defect
tracking and build/test environment is established
The distributed teams carry out the component
development in parallel in the construction phase
using iterative incremental development
22
SWENG 580: Advanced Software Engineering

Project Management (Contd.)


The components are grouped into vertical slices that are
incrementally developed into user visible functionality
 The development plan follows a major cycle (vertical slice development
cycle) and a minor monthly cycle (component development cycle)
ENGINEERING DIVISION, PENN STATE UNIVERSITY

Vertical Slice 1

C1 C5 C2
C4 C3

Vertical Slice 2

C6 C7
C8

Vertical Slice 3

C9
C10 C11

Month 1 2 3 4 5 6 7 8 9 10 11 12

23
SWENG 580: Advanced Software Engineering

Project Management (Contd.)


Theminor and major cycles are time
boxed
 Missingfunctionality is favored over
ENGINEERING DIVISION, PENN STATE UNIVERSITY

missing deadlines
The central team integrates the
increments into an executable version of
a product that is continuously built and
tested
24
SWENG 580: Advanced Software Engineering

Agility in GSD
Certain agile practices can be followed throughout the
product development lifecycle
 For example, short time boxed iterations delivering some fraction
ENGINEERING DIVISION, PENN STATE UNIVERSITY

of an executable product that is continuously built and tested,


test first development, continuous refactoring, pair programming
and stand up meetings
Other aspects such as collective code ownership and
customer onsite can be challenging
Most aspects of any agile development methodology (e.g.,
XP or SCRUM), however, can be easily supported during
the construction phase

25
SWENG 580: Advanced Software Engineering

Agility in GSD (Contd.)


Due to the limitation of certain agile practices to
scale up to large distributed projects it becomes
important to maintain fairly comprehensive
ENGINEERING DIVISION, PENN STATE UNIVERSITY

requirements and design models


 User stories and back-of-the-napkin design will not do
Some of this burden can be alleviated by
automating generation of some documents such
as FRS, SRS and CRS from the UML model and
also the acceptance tests

26
SWENG 580: Advanced Software Engineering

Open Source Software (OSS)


OSS development is a kind of distributed development
 Applications are built through the part-time contributions of many
developers from around the world
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Developers cooperate under a model of rigorous peer review


 Highly parallel development effort leads to innovation and rapid
advancement
 Problems are identified, characterized and fixed quickly
 Given enough eyeballs, all bugs are shallow (Raymond, 1991)

27
SWENG 580: Advanced Software Engineering

OSS (Contd.)
>70,000 OSS projects in SourceForge
Many well known, high quality projects
 Linux
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Mozilla
 Apache
 GNOME
 OpenOffice
 PostgreSQL

Range from small (< 5K SLOC) to very large (>


1M SLOC) systems
28
SWENG 580: Advanced Software Engineering

OSS (Contd.)
Systems show punctuated evolution with periods of
intensive rewrite
OSS systems co-evolve with their developer communities
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Team critical mass of 5-15 core developers needed to sustain a


viable system.
According to Lehman’s Laws, the mean growth rate would
be expected to decrease over time, however…….
Larger OSS projects have been shown to sustain super-
linear growth (Linux subsystems)

29
SWENG 580: Advanced Software Engineering

OSS Development Process (Scacchi, 2004)


Requirements Analysis and Specification
 Takes the form of threaded messages and web
ENGINEERING DIVISION, PENN STATE UNIVERSITY

site discussions

CVS,System Build and Incremental Release


Review
 Concurrent version systems play an essential
role for coordination of decentralized code

30
SWENG 580: Advanced Software Engineering

OSS Development Process (Contd.)


Maintenance as evolutionary redevelopment,
reinvention and revitalization
ENGINEERING DIVISION, PENN STATE UNIVERSITY

 Sharing, examining, modifying and redistributing


concepts and techniques
through minor improvements and mutations across many
releases with short life cycles.
 End users often act as developers or maintainers
- continually produce mutations that allow the system to
continually adapt to what the “user-developers” want it to do.

31
SWENG 580: Advanced Software Engineering

OSS Development Process (Contd.)


Project management
 Organized in interlinked layered meritocracy
A hierarchical organizational form that centralizes
ENGINEERING DIVISION, PENN STATE UNIVERSITY

-
and concentrates certain kinds of authority, trust and
respect for experience and accomplishment within
the team

 Operates as a “dynamically organized but


loosely coupled virtual enterprise”.

32
SWENG 580: Advanced Software Engineering

OSS Development Process (Contd.)


 Over 60% of OSS developers participate in 2 – 10 projects (Madey et al, 2002)
ENGINEERING DIVISION, PENN STATE UNIVERSITY

33
SWENG 580: Advanced Software Engineering

References
Global Software Development

 Berenbach, B.; “The automated extraction of requirements from


UML models,” Proceedings of the 11th Annual IEEE International
ENGINEERING DIVISION, PENN STATE UNIVERSITY

Requirements Engineering Conference (RE'03), Monterey Bay,


California, USA, September 8-12, 2003, pp 287-288.
 Berenbach, B. “Towards a Unified Model for Requirements
Engineering,” Fourth International Workshop on Adoption-Centric
Software Engineering (ACSE 2004), Edinburgh, Scotland, UK,
May 23-28, 2004, pp. 26-29.
 Carmel, E. and Agarwal, A., “Tactical Approaches for Alleviating
Distance in Global Software Development,” IEEE Software, vol.
18, no. 2, March/April 2001, pp. 22 - 29.

34
SWENG 580: Advanced Software Engineering

References (Contd.)
Global Software Development

 Laplante, P., Costello, T., Singh, P., Bindiganavile, S. and


ENGINEERING DIVISION, PENN STATE UNIVERSITY

Landon, M., “The Who, What, Where, Why and When of IT


Outsourcing,” IT Professional, January/ February 2004, pp. 37
- 41.
 Sangwan, R., Neill, C., Laplante, P., Paulish, D. and Kuhn, W.,
“A Framework for Agile Development in Outsourced
Environments,” WSEAS Transactions on Computers, vol. 3,
no. 5, November 2004, pp. 1530-1537.
 Sangwan, R., Bass, M., Mullick, N., Paulish, D. Managing
Global Software Development, to be published by Auerbach,
Boca Raton, FL, 2006.

35
SWENG 580: Advanced Software Engineering

References (Contd.)
Open Source Software
Madey G., Freeh V., and Tynan R. “The open source software
development phenomenon: An analysis based on social network
ENGINEERING DIVISION, PENN STATE UNIVERSITY

theory,” Proceedings of the Americas Conference on Information


Systems (AMCIS2002), Dallas, TX, 2002, pp. 1806 – 1813.
Raymond, E. The Cathedral and the Bazaar: Musings on Linux and
Open Source by an Accidental Revolutionary, O’Reilly, 2001.
Scacchi, W. “Understanding Open Source Software Evolution”,
revised version to appear in N.H. Madhavji, M.M. Lehman, J.F. Ramil
and D. Perry (eds.), Software Evolution, John Wiley and Sons Inc,
New York, 2004.

36

Вам также может понравиться