SlideShare a Scribd company logo
1 of 40
Download to read offline
Software Modularity in Practice
– a story in 5 acts -
ACT I: Exposition
ACT II: Raising Action
There is a change…..
As a project manager
I want to be able to forecast an
opportunity
So that I know when can I kick off
a project
And what was ALL the project about?
Jamie
X Files
1.
5/13/2014
As a talent manager
I want to see the distribution of skills for a
delivery unit employees
So that I know the most updated situation
2.
5/13/2014
As a sales person
I want to add and update client
opportunities
So that I can win new business
3.
5/13/2014
As a delivery director
I want to see the delta between skills used
in projects and skills demanded for new
opportunities
So that I know what people to hire
SIMPLICITY
5/13/2014
VALUE FOR $$$
REUSABILITY
So let’s talk about software modularity…
ACT III: Climax
Decisions…
Initial design
I want to manage client opportunities
So that I can win new business
Module Reuse
I want to see the distribution of skills
So that I know the most updated situation
Acyclic
Dependencies
I want to see the skills gap
So that I know what people to hire
Module Façade
I want to forecast an opportunity
So that I know when can I start it
?
Separate
Abstractions
Minimize
Dependencies
Final Design
ACT IV: Falling Action
Decisions…
–Angular Modules
–Angular Components
–Dependency Management + Dependency
Injection
–MVC
–SPA Support (ngRoute)
Opinionated Framework …
function SampleController($scope) {
$scope.message = ‘Hi Everyone!’;
}
<div ng-controller=“SampleController”>
<p> {{message}} </p>
</div>
$scope
MVC
Model
ViewController
Module
5/13/2014
Angular JS Module organization patterns
APP
TAXONOMY
FORECASTCOMMON
APP
CONTROLLERS
FILTERS
DIRECTIVES
SERVICES
Modules contain feature-specific
components
Modules contain feature-specific
components
5/13/2014
APP
CONFIG
DIRECTIVES SZ-SLIDER
CONTROLLERS
TAXONOMY D3
INDEX
FORECAST
SERVICES WS CLIENT
FILTERS
ANGULAR
NG-ROUTE
NG-RESOURCE
File Structure &
Load Dependencies
5/13/2014
Given this small proof of concept,
we easily reached 15 includes
We have to manually maintain this list and also have to keep an eye
on the inclusion order
Options
- Java/.NET JavaScript JavaScript +
AMD
JS - ES6
Modules in
deployable form
package/
assembly
.js file +
(function
expressions)
.js file +
enclosing
define(…)
function call
.js file +
export
keyword
Defining
Module
Dependencies
Package(impor
t)/
assembly
metadata
N/A array
parameter for
enclosing
define/require
function call
Import
keyword/
AMD style
System.import
Loading
Modules
handled by
JVM/CLR
<script>
(developer is
responsible
for
thoroughness
and includes
ordering)
require(…)
method call
Import
keyword /
AMD style
System.import
5/13/2014
Require JS
• Dependency management
• JS Module Injector
• JS File loader
5/13/2014
Require JS
1 ) define(<dep array>,
<factory fn(deps)>)
2 ) require(<dep array>,
<callback fn(deps)>)
3 ) require.config(<config object>)
Require JS
MAIN
APP
DIRECTIVES
SZ-SLIDER
CONTROLLERS
TAXONOMY
D3
INDEX FORECAST
SERVICES
WS CLIENT
FILTERS ANGULAR NG-ROUTE NG-RESOURCE
CONFIG
JS Require JS
<script src=“svc1.js”/>
<script src=“svc2.js”/>
<script src=“app.js”/>
<script src=“svcreg.js”/>
<script src=“config.js”/>
<script src=“main.js”/>
(list increases when adding
new modules)
<script data-main=“main”
src=“require.js”/>
(adding new modules requires no
extra script includes)
5/13/2014
Versus Plain JS
5/13/2014
Site Map
Resourcing
App
Taxonomy
Employee
Distribution
Skill Deficit
Forecast
ACT V: Resolution
https://github.com/vichim/modularity
https://github.com/CosminSontu/resourcing-demo
Thank You!
The team:
Corneliu Rimboiu, Architect
Iavi Rotberg, Business Analyst
Victor Ichim, Design Lead
Cosmin Sontu, Design Lead

More Related Content

Similar to Software modularity in practice

Get Started with Zend Framework 2
Get Started with Zend Framework 2Get Started with Zend Framework 2
Get Started with Zend Framework 2Mindfire Solutions
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)Alex Ross
 
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...Dave Bost
 
Metrics driven development 10.09.2014
Metrics driven development   10.09.2014Metrics driven development   10.09.2014
Metrics driven development 10.09.2014Erno Aapa
 
1. oop with c++ get 410 day 1
1. oop with c++ get 410   day 11. oop with c++ get 410   day 1
1. oop with c++ get 410 day 1Mukul kumar Neal
 
force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...
force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...
force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...Salesforce.org
 
Agile scrum execution - Learnings
Agile scrum execution - LearningsAgile scrum execution - Learnings
Agile scrum execution - LearningsSiddharth Rajagopal
 
Mamdouh Sami - Resume
Mamdouh Sami - ResumeMamdouh Sami - Resume
Mamdouh Sami - ResumeMamdouh Samy
 
Keeping the Vision Alive: UX Leadership in Long-Term Projects
Keeping the Vision Alive: UX Leadership in Long-Term ProjectsKeeping the Vision Alive: UX Leadership in Long-Term Projects
Keeping the Vision Alive: UX Leadership in Long-Term ProjectsDesign for Context
 
Become a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista AsiaBecome a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista AsiaConVista Consulting Asia
 
9+ years SAP Fiori/UI5 Architect looking for change
9+ years SAP Fiori/UI5 Architect looking for change9+ years SAP Fiori/UI5 Architect looking for change
9+ years SAP Fiori/UI5 Architect looking for changeMurugesh Rajeev Perumal
 

Similar to Software modularity in practice (20)

Get Started with Zend Framework 2
Get Started with Zend Framework 2Get Started with Zend Framework 2
Get Started with Zend Framework 2
 
Empower IT Trainings
Empower IT TrainingsEmpower IT Trainings
Empower IT Trainings
 
Vara Framework
Vara FrameworkVara Framework
Vara Framework
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
 
Resume
ResumeResume
Resume
 
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
 
Metrics driven development 10.09.2014
Metrics driven development   10.09.2014Metrics driven development   10.09.2014
Metrics driven development 10.09.2014
 
AngularJS 101
AngularJS 101AngularJS 101
AngularJS 101
 
1. oop with c++ get 410 day 1
1. oop with c++ get 410   day 11. oop with c++ get 410   day 1
1. oop with c++ get 410 day 1
 
force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...
force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...
force.com Canvas Overview: Leveraging Legacy Applications to Become a Custome...
 
SAP Testing Training
SAP Testing TrainingSAP Testing Training
SAP Testing Training
 
Presentation
PresentationPresentation
Presentation
 
Agile scrum execution - Learnings
Agile scrum execution - LearningsAgile scrum execution - Learnings
Agile scrum execution - Learnings
 
Mamdouh Sami - Resume
Mamdouh Sami - ResumeMamdouh Sami - Resume
Mamdouh Sami - Resume
 
Odoo erp or sap erp
Odoo erp or sap erpOdoo erp or sap erp
Odoo erp or sap erp
 
Keeping the Vision Alive: UX Leadership in Long-Term Projects
Keeping the Vision Alive: UX Leadership in Long-Term ProjectsKeeping the Vision Alive: UX Leadership in Long-Term Projects
Keeping the Vision Alive: UX Leadership in Long-Term Projects
 
Become a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista AsiaBecome a Web-Dynpro for Functional Consultants - ConVista Asia
Become a Web-Dynpro for Functional Consultants - ConVista Asia
 
SAP_UI5_oData_ABAP_Murugesan_Perumal
SAP_UI5_oData_ABAP_Murugesan_PerumalSAP_UI5_oData_ABAP_Murugesan_Perumal
SAP_UI5_oData_ABAP_Murugesan_Perumal
 
SAP ABAP_UI5_FIORI_Murugesan_Perumal
SAP ABAP_UI5_FIORI_Murugesan_PerumalSAP ABAP_UI5_FIORI_Murugesan_Perumal
SAP ABAP_UI5_FIORI_Murugesan_Perumal
 
9+ years SAP Fiori/UI5 Architect looking for change
9+ years SAP Fiori/UI5 Architect looking for change9+ years SAP Fiori/UI5 Architect looking for change
9+ years SAP Fiori/UI5 Architect looking for change
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

Software modularity in practice