Software Architecture Fundamentals Part-1-Architecture soft skills

25
Software Architecture Fundamentals Part-1 Architecture soft skill By Freddy Munandar 26 Nov 2016

Transcript of Software Architecture Fundamentals Part-1-Architecture soft skills

Page 1: Software Architecture Fundamentals Part-1-Architecture soft skills

Software Architecture Fundamentals Part-1

Architecture soft skillBy Freddy Munandar

26 Nov 2016

Page 2: Software Architecture Fundamentals Part-1-Architecture soft skills

2

About MeI'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

Page 3: Software Architecture Fundamentals Part-1-Architecture soft skills

3

Agenda•Architecture aspects•Technical knowledge•Diagram as communication tools

Page 4: Software Architecture Fundamentals Part-1-Architecture soft skills

4

Page 5: Software Architecture Fundamentals Part-1-Architecture soft skills

5

Technical Knowledge

Stuff you knowStuff you have to maintain

Stuff you knowYou don’t know

Stuff you don’t knowYou don’t know

Technicaldepth Technical

breadth

Focus here

Page 6: Software Architecture Fundamentals Part-1-Architecture soft skills

6

Technical Knowledge (continue)

Multiplatform knowledgeJust Advice, better to have multiple knowledge that’s is not vendor locking. You can integrate the best part

of each.This is part of technical breadth

The more you know, it could be more effective and efficient to provide architecture solution

Page 7: Software Architecture Fundamentals Part-1-Architecture soft skills

7

Technical Knowledge (continue)Increase Technical Breadth• Read Tech web such as https://techcrunch.com/

http://mashable.com/ http://www.zdnet.com/ etc. • Going to tech meetup, seminar, event, workshop,

conferences• Read magazine such MSDN magazine, Wired magazine,

etc.• Teaching, coaching, mentoring, sharing• Follows big company such as Microsoft, Google,

Facebook, etc.• Technology Radars

Page 8: Software Architecture Fundamentals Part-1-Architecture soft skills

8

Page 9: Software Architecture Fundamentals Part-1-Architecture soft skills

9

Page 10: Software Architecture Fundamentals Part-1-Architecture soft skills

10

Page 11: Software Architecture Fundamentals Part-1-Architecture soft skills

11

Page 12: Software Architecture Fundamentals Part-1-Architecture soft skills

12

Technology Radar• A living document to assess the risks and rewards of

existing and nascent technologies. • Personal radar, to help guide career decisions• Enterprise radar, for employer, to help restore sanity to

purchasing decisions and technology direction

Page 13: Software Architecture Fundamentals Part-1-Architecture soft skills

13

Page 14: Software Architecture Fundamentals Part-1-Architecture soft skills

14

Page 15: Software Architecture Fundamentals Part-1-Architecture soft skills

15

Page 16: Software Architecture Fundamentals Part-1-Architecture soft skills

16

Imagine if we can zoom in and zoom out our code from low-level to high-level overview.

It would be nice, right?

Page 17: Software Architecture Fundamentals Part-1-Architecture soft skills

17

Diagram as a communication tool and navigation

IntroduceC4 Model

The "C4 model" is a simple hierarchical way to think about the static structures of a software system in terms of containers, components and classes (or code).

Page 18: Software Architecture Fundamentals Part-1-Architecture soft skills

18

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.

Page 19: Software Architecture Fundamentals Part-1-Architecture soft skills

19

System context diagramLevel 1

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.

Page 20: Software Architecture Fundamentals Part-1-Architecture soft skills

20

Container diagramLevel 2A 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

Page 21: Software Architecture Fundamentals Part-1-Architecture soft skills

21

Component diagram(s)Level 3

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.

Page 22: Software Architecture Fundamentals Part-1-Architecture soft skills

22

Class diagram(s)Level 4This is optional, but draw one or more UML class diagrams if you want to illustrate specific component implementation details.

Page 23: Software Architecture Fundamentals Part-1-Architecture soft skills

23

C4 Model Demohttps://structurizr.com/public/21#Context

Page 24: Software Architecture Fundamentals Part-1-Architecture soft skills

24

Robert C. Martin

Page 25: Software Architecture Fundamentals Part-1-Architecture soft skills

25

For more information• The Information Technology Architecture Body of

Knowledge (ITABoK) from IASA - http://iasaglobal.org/itabok/• O’Reilly Software Architecture -

https://www.oreilly.com/topics/software-architecture• Simon Brown - http://www.codingthearchitecture.com/• https://www.thoughtworks.com/radar/faq• http://nealford.com/memeagora/2013/05/28/build_your_own

_technology_radar.html• https://www.structurizr.com/• https://8thlight.com/blog/uncle-bob/2011/09/30/Screaming-

Architecture.html