SlideShare a Scribd company logo
1 of 11
Software architecture analysis
Maksym Shabatura
Team communication
• RoadMap with T-shirt sizes;
• Project expectations;
• Internal/External sessions;
• Code reviews;
• NO superheroes;
• NO minor players;
• Architecture – many suggestions, only one solution should GO (!).
2
Project model
• Project models, e.g. for Maven projects – pom.xml:
3
UML diagrams
• PRO webServicesImpl with UML diagrams
4
CodeCity, going through the Jungle
• e.g. the PRO webServicesImpl “city”:
1. God classes – higher complexity and
logic encapsulated between a huge amount
of methods – nightmare to maintain.
2. Brain classes – high complexity and
encapsulation could be even with one
method usage.
More details - A. Riel. Object-Oriented Design
Heuristics. Addison-Wesley, 1996.
5
Profilers to use
• Java: VisualVM, JConsole;
• PHP: Clockwork, Anbu;
• SQL: Neor SQL (MySQL), pgtop (PostgreSQL), ExpressProfiler (MSSQL);
• JavaScript: Firebug, Web developer tools;
6
Validators to use
• HTML - http://validator.w3.org/
• CSS - http://jigsaw.w3.org/css-validator/
• XML - http://xmlvalidation.com/
7
Static code analyzer
• Multilanguage - SonarQube
http://umbra.romexsoft.com:9000/dashboard/index/4181
8
Courses and readings
• Online courses, e. g. Coursera – https://class.coursera.org/posa-
002/lecture/preview
• Webinars, e. g. MIT -
https://sdm.mit.edu/news/news_articles/webinar_021411/webinar-
systems-thinking-software-architecture.html
• Grady Booch / Handbook of Software Architecture
• Len Bass, Paul Clements, Rick Kazman / Software architecture in practice
9
Swan, Pike and Crawfish
“The Art of Time management”
10
Thank you !
11

More Related Content

Similar to Architecture analysis by Maxym Shabatura

Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
OpenMockup - Presentation apr/2016
OpenMockup - Presentation apr/2016OpenMockup - Presentation apr/2016
OpenMockup - Presentation apr/2016Xavi Montero
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community EngineCommunity Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community enginemathraq
 
Rocket Circus on Code Review
Rocket Circus on Code ReviewRocket Circus on Code Review
Rocket Circus on Code Reviewrocketcircus
 
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Conference
 
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...Shift Conference
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANJeff Fox
 
MODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeMODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeHussein Alshkhir
 
Resume
ResumeResume
ResumeMina k
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDBFoundationDB
 
Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Phase2
 
Training and deploying ML models with Google Cloud Platform
Training and deploying ML models with Google Cloud PlatformTraining and deploying ML models with Google Cloud Platform
Training and deploying ML models with Google Cloud PlatformSotrender
 
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Sotrender
 

Similar to Architecture analysis by Maxym Shabatura (20)

Road map
Road mapRoad map
Road map
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
OpenMockup - Presentation apr/2016
OpenMockup - Presentation apr/2016OpenMockup - Presentation apr/2016
OpenMockup - Presentation apr/2016
 
Venkata
VenkataVenkata
Venkata
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
Rocket Circus on Code Review
Rocket Circus on Code ReviewRocket Circus on Code Review
Rocket Circus on Code Review
 
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
 
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 
Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)
 
MODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeMODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in Practice
 
Jumpstart Your Web App
Jumpstart Your Web AppJumpstart Your Web App
Jumpstart Your Web App
 
Resume
ResumeResume
Resume
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8
 
Drupal In 1 Hour
Drupal In 1 HourDrupal In 1 Hour
Drupal In 1 Hour
 
Training and deploying ML models with Google Cloud Platform
Training and deploying ML models with Google Cloud PlatformTraining and deploying ML models with Google Cloud Platform
Training and deploying ML models with Google Cloud Platform
 
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
 

More from Romexsoft

How Data Science can increase Ecommerce profits
How Data Science can increase Ecommerce profitsHow Data Science can increase Ecommerce profits
How Data Science can increase Ecommerce profitsRomexsoft
 
Romexsoft' projects
Romexsoft' projectsRomexsoft' projects
Romexsoft' projectsRomexsoft
 
Romexsoft presentation
Romexsoft presentationRomexsoft presentation
Romexsoft presentationRomexsoft
 
Collaboration vs meetings in Scrum
Collaboration vs meetings in ScrumCollaboration vs meetings in Scrum
Collaboration vs meetings in ScrumRomexsoft
 
Smarketing?! What the hack..
Smarketing?! What the hack..Smarketing?! What the hack..
Smarketing?! What the hack..Romexsoft
 
Devops services
Devops servicesDevops services
Devops servicesRomexsoft
 
Automation testing
Automation testingAutomation testing
Automation testingRomexsoft
 
What influences employees' motivation
What influences employees' motivationWhat influences employees' motivation
What influences employees' motivationRomexsoft
 
Burnout. Causes and teatment
Burnout. Causes and teatmentBurnout. Causes and teatment
Burnout. Causes and teatmentRomexsoft
 
Business communication by Yevgen Kryvun
Business communication by Yevgen KryvunBusiness communication by Yevgen Kryvun
Business communication by Yevgen KryvunRomexsoft
 
Bluetooth by Ostap Demkovych
Bluetooth by Ostap DemkovychBluetooth by Ostap Demkovych
Bluetooth by Ostap DemkovychRomexsoft
 
Continuous integration by Halyna Levko
Continuous integration by Halyna LevkoContinuous integration by Halyna Levko
Continuous integration by Halyna LevkoRomexsoft
 
MySQL tips&tricks and using JetProfiler tool by Ivan Shulyak
MySQL tips&tricks and using JetProfiler tool by Ivan ShulyakMySQL tips&tricks and using JetProfiler tool by Ivan Shulyak
MySQL tips&tricks and using JetProfiler tool by Ivan ShulyakRomexsoft
 

More from Romexsoft (15)

How Data Science can increase Ecommerce profits
How Data Science can increase Ecommerce profitsHow Data Science can increase Ecommerce profits
How Data Science can increase Ecommerce profits
 
Romexsoft' projects
Romexsoft' projectsRomexsoft' projects
Romexsoft' projects
 
Romexsoft presentation
Romexsoft presentationRomexsoft presentation
Romexsoft presentation
 
Collaboration vs meetings in Scrum
Collaboration vs meetings in ScrumCollaboration vs meetings in Scrum
Collaboration vs meetings in Scrum
 
Smarketing?! What the hack..
Smarketing?! What the hack..Smarketing?! What the hack..
Smarketing?! What the hack..
 
Devops services
Devops servicesDevops services
Devops services
 
The flow
The flowThe flow
The flow
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Solid
SolidSolid
Solid
 
What influences employees' motivation
What influences employees' motivationWhat influences employees' motivation
What influences employees' motivation
 
Burnout. Causes and teatment
Burnout. Causes and teatmentBurnout. Causes and teatment
Burnout. Causes and teatment
 
Business communication by Yevgen Kryvun
Business communication by Yevgen KryvunBusiness communication by Yevgen Kryvun
Business communication by Yevgen Kryvun
 
Bluetooth by Ostap Demkovych
Bluetooth by Ostap DemkovychBluetooth by Ostap Demkovych
Bluetooth by Ostap Demkovych
 
Continuous integration by Halyna Levko
Continuous integration by Halyna LevkoContinuous integration by Halyna Levko
Continuous integration by Halyna Levko
 
MySQL tips&tricks and using JetProfiler tool by Ivan Shulyak
MySQL tips&tricks and using JetProfiler tool by Ivan ShulyakMySQL tips&tricks and using JetProfiler tool by Ivan Shulyak
MySQL tips&tricks and using JetProfiler tool by Ivan Shulyak
 

Recently uploaded

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Architecture analysis by Maxym Shabatura

  • 2. Team communication • RoadMap with T-shirt sizes; • Project expectations; • Internal/External sessions; • Code reviews; • NO superheroes; • NO minor players; • Architecture – many suggestions, only one solution should GO (!). 2
  • 3. Project model • Project models, e.g. for Maven projects – pom.xml: 3
  • 4. UML diagrams • PRO webServicesImpl with UML diagrams 4
  • 5. CodeCity, going through the Jungle • e.g. the PRO webServicesImpl “city”: 1. God classes – higher complexity and logic encapsulated between a huge amount of methods – nightmare to maintain. 2. Brain classes – high complexity and encapsulation could be even with one method usage. More details - A. Riel. Object-Oriented Design Heuristics. Addison-Wesley, 1996. 5
  • 6. Profilers to use • Java: VisualVM, JConsole; • PHP: Clockwork, Anbu; • SQL: Neor SQL (MySQL), pgtop (PostgreSQL), ExpressProfiler (MSSQL); • JavaScript: Firebug, Web developer tools; 6
  • 7. Validators to use • HTML - http://validator.w3.org/ • CSS - http://jigsaw.w3.org/css-validator/ • XML - http://xmlvalidation.com/ 7
  • 8. Static code analyzer • Multilanguage - SonarQube http://umbra.romexsoft.com:9000/dashboard/index/4181 8
  • 9. Courses and readings • Online courses, e. g. Coursera – https://class.coursera.org/posa- 002/lecture/preview • Webinars, e. g. MIT - https://sdm.mit.edu/news/news_articles/webinar_021411/webinar- systems-thinking-software-architecture.html • Grady Booch / Handbook of Software Architecture • Len Bass, Paul Clements, Rick Kazman / Software architecture in practice 9
  • 10. Swan, Pike and Crawfish “The Art of Time management” 10