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

Architecture analysis by Maxym Shabatura

  • 1.
  • 2.
    Team communication • RoadMapwith 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 • Projectmodels, e.g. for Maven projects – pom.xml: 3
  • 4.
    UML diagrams • PROwebServicesImpl with UML diagrams 4
  • 5.
    CodeCity, going throughthe 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 andCrawfish “The Art of Time management” 10
  • 11.