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

Software Architecture Fundamentals Part-1 Architecture soft skill

  • Upload
    sarccom

  • View
    100

  • Download
    4

Embed Size (px)

Citation preview

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

Software Architecture Fundamentals Part-1

Architecture soft skillBy Freddy Munandar

26 Nov 2016

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

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 skill

3

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

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

4

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

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 skill

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 skill

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 skill

8

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

9

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

10

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

11

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

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 skill

13

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

14

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

15

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

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 skill

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 skill

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 skill

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 skill

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 skill

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 skill

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 skill

23

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

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

24

Robert C. Martin

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

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