Академический Документы
Профессиональный Документы
Культура Документы
Background
Global Software Development (GSD)
Motivation for GSD
Challenges to GSD
GSD Process
Open Source Software (OSS)
OSS Development Process
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
2
SWENG 580: Advanced Software Engineering
3
SWENG 580: Advanced Software Engineering
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
6
SWENG 580: Advanced Software Engineering
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
8
SWENG 580: Advanced Software Engineering
9
SWENG 580: Advanced Software Engineering
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
13
SWENG 580: Advanced Software Engineering
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
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
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
18
SWENG 580: Advanced Software Engineering
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 †
19
SWENG 580: Advanced Software Engineering
20
SWENG 580: Advanced Software Engineering
21
SWENG 580: Advanced Software Engineering
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
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
25
SWENG 580: Advanced Software Engineering
26
SWENG 580: Advanced Software Engineering
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
OSS (Contd.)
Systems show punctuated evolution with periods of
intensive rewrite
OSS systems co-evolve with their developer communities
ENGINEERING DIVISION, PENN STATE UNIVERSITY
29
SWENG 580: Advanced Software Engineering
site discussions
30
SWENG 580: Advanced Software Engineering
31
SWENG 580: Advanced Software Engineering
-
and concentrates certain kinds of authority, trust and
respect for experience and accomplishment within
the team
32
SWENG 580: Advanced Software Engineering
33
SWENG 580: Advanced Software Engineering
References
Global Software Development
34
SWENG 580: Advanced Software Engineering
References (Contd.)
Global Software Development
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
36