Embed Size (px)
Software Architecture Fundamentals Part-1Architecture soft skill
By Freddy Munandar26 Nov 2016
I'm an active member of IASA Global - An Association for All IT Architects and MAPA Microsoft Association of Practicing Architects . I'm also Certified Microsoft MCPD for ASP.NET.
Technology research is my favorite things especially in Software Development. I love transforming the research result by creating software that can make job or activity more faster to finish, more accurate and more fun.
Ongoing open source project www.aspknife.net
AgendaArchitecture aspectsTechnical knowledgeDiagram as communication tools3
Technical Knowledge first because I want to try bottom top approachFrom developer to architect.Which is developer may interact with many technology which is technical knowledge area
Technical KnowledgeStuff you knowStuff you have to maintainStuff you knowYou dont knowStuff you dont knowYou dont know
Technical breadth is very important for Software architectBecause its will impact with the architecture solution.The more we know, we can do pragmatic approach
Technical Knowledge (continue)Multiplatform knowledge
Just Advice, better to have multiple knowledge thats is not vendor locking. You can integrate the best part of each.This is part of technical breadthThe more you know, it could be more effective and efficient to provide architecture solution6
Technical Knowledge (continue)Increase Technical BreadthRead Tech web such as https://techcrunch.com/ http://mashable.com/ http://www.zdnet.com/ etc. Going to tech meetup, seminar, event, workshop, conferencesRead magazine such MSDN magazine, Wired magazine, etc.Teaching, coaching, mentoring, sharingFollows big company such as Microsoft, Google, Facebook, etc.Technology Radars
Technology RadarA living document to assess the risks and rewards of existing and nascent technologies. Personal radar, to help guide career decisionsEnterprise radar, for employer, to help restore sanity to purchasing decisions and technology direction12
Sebuah dokumen hidup untuk menilai risiko dan manfaat dari teknologi yang ada dan baru lahir.radar pribadi, untuk membantu memandu keputusan karirPerusahaan radar, majikan, untuk membantu mengembalikan kewarasan keputusan pembelian dan arah teknologi12
Show Indonesia map13
Show zoom in map for Jakarta14
Map zoom in for Blibli office.
Imagine if we can zoom in and zoom out our code from low-level to high-level overview.
It would be nice, right? 16
Diagram as a communication tool and navigation17IntroduceC4 ModelThe "C4 model" is a simple hierarchical way to think about the static structures of asoftware systemin terms ofcontainers,componentsandclasses(orcode).
Showing Map as analogyDiagram to navigate each level into code17
A software system is made up of one or more containers,each of which contains one or more components,which in turn are implemented by one or more classes.
System context diagramLevel 119
The focus should be on people (actors, roles, personas, etc) and software systems rather than technologies, protocols and other low-level details. It's the sort of diagram that you could show to non-technical people.
Container diagramLevel 220
A container diagram shows the high-level shape of the software architecture and how responsibilities are distributed across it.
It also shows the major technology choices and how the containers communicate with one another.
It's a simple, high-level technology focussed diagram that is useful for software developers and support/operations staff alike
Component diagram(s)Level 321
Decompose each container.
The components diagram shows how a container is divided into components, what each of those components are, their responsibilities and the technology/implementation details.
Class diagram(s)Level 4This is optional, but draw one or more UML class diagrams if you want to illustrate specific component implementation details.22
C4 Model Demohttps://structurizr.com/public/21#Context
Robert C. Martin24
Uncle Bob references
When someone look at the top level diagram, they can saidOow.. This a churchOow. This ia a trading syste.24
For more informationThe Information Technology Architecture Body of Knowledge (ITABoK) from IASA - http://iasaglobal.org/itabok/OReilly Software Architecture - https://www.oreilly.com/topics/software-architectureSimon Brown - http://www.codingthearchitecture.com/https://www.thoughtworks.com/radar/faqhttp://nealford.com/memeagora/2013/05/28/build_your_own_technology_radar.htmlhttps://www.structurizr.com/https://8thlight.com/blog/uncle-bob/2011/09/30/Screaming-Architecture.html25