Software Architecture in Distributed          Software DevelopmentWerner Heijstek, Leiden Institute of Adv. Computer Scien...
Software Architecture in Distributed Software DevelopmentIntroductionWerner Heijstek                                      ...
Software Architecture in Distributed Software DevelopmentIntroductionOutline                                              ...
Software Architecture in Distributed Software DevelopmentTheoryWhat is Software Architecture?                             ...
Software Architecture in Distributed Software DevelopmentTheorySoftware Architecture Representation                       ...
Software Architecture in Distributed Software DevelopmentTheoryGlobal Software Development                                ...
Software Architecture in Distributed Software DevelopmentTheoryArchitecture Dissemination                                 ...
Software Architecture in Distributed Software DevelopmentPracticeArchitecture Documentation                               ...
Software Architecture in Distributed Software DevelopmentPracticeResearch Objective                                       ...
Software Architecture in Distributed Software DevelopmentCases StudiesCase A & B Characteristics                          ...
Software Architecture in Distributed Software DevelopmentCases StudiesGeneral Observations                                ...
Software Architecture in Distributed Software DevelopmentCases StudiesArchitecture Communication                          ...
Software Architecture in Distributed Software DevelopmentCases Studies“Limited Front Office Availability”                   ...
Software Architecture in Distributed Software DevelopmentCases Studies“No Problem Here”                                   ...
Software Architecture in Distributed Software DevelopmentCases Studies“Chinese Whispers”                                  ...
Software Architecture in Distributed Software DevelopmentCases StudiesArchitecture Documentation                          ...
Software Architecture in Distributed Software DevelopmentCases StudiesCase A & B Architecture Compliance                  ...
Software Architecture in Distributed Software DevelopmentCases StudiesCase C Characteristics                              ...
Software Architecture in Distributed Software DevelopmentCases StudiesNon-Model-Driven Development                        ...
Software Architecture in Distributed Software DevelopmentCases StudiesModel-Driven Development                            ...
Software Architecture in Distributed Software DevelopmentCases StudiesCase C Development Process                          ...
Software Architecture in Distributed Software DevelopmentCases StudiesFindings of Case Studies                            ...
Software Architecture in Distributed Software DevelopmentExpert InterviewsTwo Major Influences                             ...
Software Architecture in Distributed Software DevelopmentExpert InterviewsImplications and Consequences                   ...
Software Architecture in Distributed Software DevelopmentRecommendationsRecommendations                                   ...
Software Architecture in Distributed Software DevelopmentQuestions?Questions?                                             ...
Software Architecture in Distributed Software DevelopmentContact InformatieContact Informatie                             ...
Upcoming SlideShare
Loading in …5
×

Software Architecture in Distributed Software Development

886 views

Published on

Seminar presented at a meeting of the Platform Outsourcing the Netherlands (PON) in Baarn (The Netherlands) at 9 May 2012

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
886
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software Architecture in Distributed Software Development

  1. 1. Software Architecture in Distributed Software DevelopmentWerner Heijstek, Leiden Institute of Adv. Computer Science. Universiteit Leiden The Netherlands Leiden University. The university to discover.
  2. 2. Software Architecture in Distributed Software DevelopmentIntroductionWerner 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. 3. Software Architecture in Distributed Software DevelopmentIntroductionOutline 2 | 24TheoryPracticeCases StudiesExpert InterviewsRecommendations Leiden University. The university to discover.
  4. 4. Software Architecture in Distributed Software DevelopmentTheoryWhat is Software Architecture? 3 | 24Definition“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-functionalrequirements like security maintainability, extendability andportability. Leiden University. The university to discover.
  5. 5. Software Architecture in Distributed Software DevelopmentTheorySoftware 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. 6. Software Architecture in Distributed Software DevelopmentTheoryGlobal 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. 7. Software Architecture in Distributed Software DevelopmentTheoryArchitecture 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. 8. Software Architecture in Distributed Software DevelopmentPracticeArchitecture 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. 9. Software Architecture in Distributed Software DevelopmentPracticeResearch Objective 8 | 24Architecture 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. 10. Software Architecture in Distributed Software DevelopmentCases StudiesCase 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. 11. Software Architecture in Distributed Software DevelopmentCases StudiesGeneral Observations 10 | 24Case 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 deploymentNote that these factors at not at all uncommon. Leiden University. The university to discover.
  12. 12. Software Architecture in Distributed Software DevelopmentCases StudiesArchitecture 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. 13. Software Architecture in Distributed Software DevelopmentCases 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. 14. Software Architecture in Distributed Software DevelopmentCases Studies“No Problem Here” 13 | 24 :Onshore Architect :Offshore Architect :Developer Question Question Question Question Leiden University. The university to discover.
  15. 15. Software Architecture in Distributed Software DevelopmentCases Studies“Chinese Whispers” 14 | 24 :Onsh. Arch. :Offsh. Arch. :Des. :Sr. Dev. :Dev. Q. Q. Q. Q. Leiden University. The university to discover.
  16. 16. Software Architecture in Distributed Software DevelopmentCases StudiesArchitecture Documentation 15 | 24SAD was an important document, used as the primaryarchitecture 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. 17. Software Architecture in Distributed Software DevelopmentCases StudiesCase A & B Architecture Compliance 16 | 24developers 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. 18. Software Architecture in Distributed Software DevelopmentCases StudiesCase 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. 19. Software Architecture in Distributed Software DevelopmentCases StudiesNon-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. 20. Software Architecture in Distributed Software DevelopmentCases StudiesModel-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. 21. Software Architecture in Distributed Software DevelopmentCases StudiesCase 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 onshore2. 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. 22. Software Architecture in Distributed Software DevelopmentCases StudiesFindings of Case Studies 21 | 241. 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 defined3. The SAD is intended to be used extensively but • is of disputable quality • developers use the SAD sparingly if at all4. Developers find architecture very important but they are mostly knowledgeable about “their own” component Leiden University. The university to discover.
  23. 23. Software Architecture in Distributed Software DevelopmentExpert InterviewsTwo Major Influences 22 | 241. 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. 24. Software Architecture in Distributed Software DevelopmentExpert InterviewsImplications 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. 25. Software Architecture in Distributed Software DevelopmentRecommendationsRecommendations 24 | 241. Include offshore team in SAD development2. Implement only after architecture is stable3. The SAD should be mature too4. Architects should be available more and travel5. Verify continuously6. Keep the SAD current to battle turnover Invest in architecture design, dissemination and coordination! Leiden University. The university to discover.
  26. 26. Software Architecture in Distributed Software DevelopmentQuestions?Questions? 24 | 24 ? Leiden University. The university to discover.
  27. 27. Software Architecture in Distributed Software DevelopmentContact InformatieContact 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.

×