Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Software Architecture in Distributed Software Development
1. Software Architecture in Distributed
Software Development
Werner Heijstek, Leiden Institute of Adv. Computer Science.
Universiteit Leiden
The Netherlands
Leiden University. The university to discover.
2. Software Architecture in Distributed Software Development
Introduction
Werner Heijstek 1 | 24
• Sinds 2007 promovendus aan het LIACS obv.
Dr. Michel Chaudron (Software Engineering Group)
• Onderzoeksinteresses
• gedistribueerde softwareontwikkeling
• software architectuur en design (als product ´n als proces)
e
• modelgedreven softwareontwikkeling
• software productiviteit
• Samenwerkingen met verschillende (internationale)
industri¨le partners en universiteiten
e
Leiden University. The university to discover.
3. Software Architecture in Distributed Software Development
Introduction
Outline 2 | 24
Theory
Practice
Cases Studies
Expert Interviews
Recommendations
Leiden University. The university to discover.
4. Software Architecture in Distributed Software Development
Theory
What is Software Architecture? 3 | 24
Definition
“The fundamental organization of a system embodied in its
components, their relationships to each other, and to the
environment, and the principles guiding its design and
evolution.”
Architecture addresses and guarantees non-functional
requirements like security maintainability, extendability and
portability.
Leiden University. The university to discover.
5. Software Architecture in Distributed Software Development
Theory
Software Architecture Representation 4 | 24
The system described in this diagram provides support for
creating new mortgages and alteration of existing mortgages.
The design aims to separate the complexities of the business
logic from the Financial Application Frontend by bundling all
mortgage-related services on a central Mid Office System. This
system provides services for the setup of all `mortgage actions'.
The Front Office Component hosts a Financial Application
Frontend which contains a Mortgage-specific Application
Component. Due to concerns regarding decreased Back Office
availability, mortgage action requests may have a maximum size
of 300 kilobytes.
The Mortgage Webservice provides an additional method to
update mortgage attributes. This service only connects to an
interface provided by the Mortgage Attribute Update
specialization.
Leiden University. The university to discover.
6. Software Architecture in Distributed Software Development
Theory
Global Software Development 5 | 24
• Also: outsourcing, offshoring or distributed SD
• Many motivations (cost, skill shortage, development speed)
• India is a (very) common offshore destination
• Introduces three “distances”
• Fails more often than co-located software development
Leiden University. The university to discover.
7. Software Architecture in Distributed Software Development
Theory
Architecture Dissemination 6 | 24
• Two strategies exist to transfer knowledge:
• Personalisation
• Codification
• A mix or Hybrid strategy is commonly used.
• Common GSD approach is “Transfer by Development Stage”
• In GSD, codification is thought to be more dominant
Leiden University. The university to discover.
8. Software Architecture in Distributed Software Development
Practice
Architecture Documentation 7 | 24
• RUP’s UML-centric Software Architecture Document
(SAD) is commonly used in practice
• In a set of 59 industrial SADs we found that
• less then 45% of diagrams is UML
• non-UML diagrams mostly lack legends
• great variation exists in the ratio text-to-diagram
• this is not different for GSD SADs
• Diagram-dense SADs are not better understood
• Linguistic distance from English greatly impacts SAD
understanding
Leiden University. The university to discover.
9. Software Architecture in Distributed Software Development
Practice
Research Objective 8 | 24
Architecture matters but appears to be hindered by GSD.
• How is software architecture design and dissemination
organized?
• What is the role of the architect(s) during the software
development life cycle ?
• How is software architecture documentation used?
• How is architecture compliance organized?
By means of three case studies and additional expert interviews
Leiden University. The university to discover.
10. Software Architecture in Distributed Software Development
Cases Studies
Case A & B Characteristics 9 | 24
Case A Case B
funct. size 34 use cases 70 use cases
pl. duration 10 months 3 months
methodology RUP RUP
budget e 800,000 e 210,000
technology .Net .Net
project Expansion of an existing sys- Centralization of a hu-
objective tem for indexing and making man resources portal.
searchable information.
interviewed Senior Mgr, Architect, Senior Mgr, Architect,
onshore Project Mgr., Arch. Re- Arch. Reviewer
viewer, Test Lead
interviewed Project Mgr. #1, #2, Archi- Project Mgr., Sr. Devel-
offshore tect, Developer #1, #2, #3, oper, Developer
#4
Leiden University. The university to discover.
11. Software Architecture in Distributed Software Development
Cases Studies
General Observations 10 | 24
Case A Case B
• The strict deadline • frequent requirement
was overly ambitious changes
• No proof of concept • high degree of employee
(POC) was built turnover
• Requirements were • The offshore development
changed late during team was unable to
the project. package for deployment
Note that these factors at not at all uncommon.
Leiden University. The university to discover.
12. Software Architecture in Distributed Software Development
Cases Studies
Architecture Communication 11 | 24
• Offshore was to deliver the architecture but failed or refused.
• Architecture responsibilities moved onshore
• Architect did not travel offshore
• Developers often required extensive code examples
• A hierarchy of developers exists offshore:
1. technical team lead (architect)
2. senior developer
3. junior developer
Leiden University. The university to discover.
13. Software Architecture in Distributed Software Development
Cases Studies
“Limited Front Office Availability” 12 | 24
:Onshore Architect :Offshore Architect :Developer
Question
Question
Preliminary Answer
Definitive Answer
Leiden University. The university to discover.
14. Software Architecture in Distributed Software Development
Cases Studies
“No Problem Here” 13 | 24
:Onshore Architect :Offshore Architect :Developer
Question
Question
Question
Question
Leiden University. The university to discover.
15. Software Architecture in Distributed Software Development
Cases Studies
“Chinese Whispers” 14 | 24
:Onsh. Arch. :Offsh. Arch. :Des. :Sr. Dev. :Dev.
Q.
Q.
Q.
Q.
Leiden University. The university to discover.
16. Software Architecture in Distributed Software Development
Cases Studies
Architecture Documentation 15 | 24
SAD was an important document, used as the primary
architecture communication vehicle, but
• Some (important) parts were written in Dutch
• Most diagrams were not UML and box-and-line diagrams
lacked legends.
• Developers
• found the SAD irrelevant
• read only “their parts”
• had too little time to read the SAD
• were denied the SAD
Leiden University. The university to discover.
17. Software Architecture in Distributed Software Development
Cases Studies
Case A & B Architecture Compliance 16 | 24
developers find architecture “very important”. However:
• Developers were not very knowledgeable about the
software architecture
• Onshore architecture reviewed half of all code (straining
the project budget)
• Much code was reworked by the both onshore and offshore
Leiden University. The university to discover.
18. Software Architecture in Distributed Software Development
Cases Studies
Case C Characteristics 17 | 24
Case C
funct. size 800 funct. pts.
pl. duration 4 months
methodology Agile / Scrum
budget e 400,000
technology .Net
objective Rebuild of an existing application
int. onshore Senior Mgr, Project Mgr.
int. offshore Sr. Developer, Developer
Leiden University. The university to discover.
19. Software Architecture in Distributed Software Development
Cases Studies
Non-Model-Driven Development 18 | 24
(
Klant
Business
Analyst
Requirements
Engineer
Software
Architect
Ontwerper
( Programmeur
graag zouden wij
onze klanten import java.io.*;
directer met ons import java.util.*
laten interactieren public class Finder {
doormiddel van
een portal.
Figure: A ‘normal’ software development process
Leiden University. The university to discover.
20. Software Architecture in Distributed Software Development
Cases Studies
Model-Driven Development 19 | 24
Business
Analyst
Requirements
Klant
Engineer
Software
Ontwerper
Architect
Programmeur
Figure: A model-driven software development process
Leiden University. The university to discover.
21. Software Architecture in Distributed Software Development
Cases Studies
Case C Development Process 20 | 24
• A proven, home grown MDD platform was employed.
• This project was less complex than Cases A and B
• Most of the architecture was generated.
1. Weekly, a low-level design was made by the onshore
2. This design was conferred by means of a video-link.
3. The offshore team was required to summarize what they
understood.
4. This was then reviewed and implemented
Leiden University. The university to discover.
22. Software Architecture in Distributed Software Development
Cases Studies
Findings of Case Studies 21 | 24
1. Dissemination of software architecture is not formalized
(while this might benefit the development process)
2. The role of the architect in GSD is not clearly defined
3. The SAD is intended to be used extensively but
• is of disputable quality
• developers use the SAD sparingly if at all
4. Developers find architecture very important but they are
mostly knowledgeable about “their own” component
Leiden University. The university to discover.
23. Software Architecture in Distributed Software Development
Expert Interviews
Two Major Influences 22 | 24
1. Knowledge Gap
Exists between the onshore and offshore location regarding
• software architecture design
• and its role during the software development life cycle.
2. Implementation Focus
Prematurely forces projects into the construction phase.
Cost reduction
• drives offshore development
• forces more responsibilities towards offshore
• reduces opportunity for training
• leads to favoring implementation-related disciplines
Leiden University. The university to discover.
24. Software Architecture in Distributed Software Development
Expert Interviews
Implications and Consequences 23 | 24
• an unclear and • more architectural
incomplete SAD freedom exists
• software architects • developers make
available less time assumptions
• less direct interaction • compliancy violations
are more likely
• incorrect / incomplete
knowledge of the • less code is reviewed
software architecture
• leads to rework, delays
and overrun
Leiden University. The university to discover.
25. Software Architecture in Distributed Software Development
Recommendations
Recommendations 24 | 24
1. Include offshore team in SAD development
2. Implement only after architecture is stable
3. The SAD should be mature too
4. Architects should be available more and travel
5. Verify continuously
6. Keep the SAD current to battle turnover
Invest in architecture design,
dissemination and coordination!
Leiden University. The university to discover.
26. Software Architecture in Distributed Software Development
Questions?
Questions? 24 | 24
?
Leiden University. The university to discover.
27. Software Architecture in Distributed Software Development
Contact Informatie
Contact Informatie 24 | 24
Werner Heijstek
heijstek@liacs.nl
http://www.liacs.nl/˜heijstek
Snellius building room 150
+31 (0) 71 – 527 7050
Skype: wernerheijstek
Leiden University. The university to discover.