When I started my
career as a "Trainee Developer", I was fascinated about just java
coding, coding and coding... Then I learned fundamentals and principles of OOP Design and few more programming languages... As I
grown my experience in software development and design; I started to get
opportunities to grasp architecture of legacy systems, create architecture for
proposed applications, envision high level architecture for proposals, analyze
architecture and NFRs… And yeah, building architectural proficiency looks like
a long journey!
In this post, I am
publishing list of my favorite online resources which helping me during the
journey of building my software architectural know-how.
On a separate note,
- If you are entry level or bit experienced software programmer, then I strongly recommend you to see 97 Things Every Programmer Should Know.
- If you want executive view of software architecture, then read "Are you a Software Architect article published by Simon Brown on InfoQ" & "Software Architecture ebook by Free Technology Academy".
I am greatly
thankful to below mentioned assets and also endorse them for building
proficiency in software architecture.
Microsoft Application
Architecture Guide
Even
though it is for Mocrosoft Application Architecture; the explained
fundamentals, guidelines and practices of software architecture and design is also applicable for Java Platform based
Application Architecture. I simply love it! Also Architecture 101: Skyscrapr has interesting articles covering architectural perspective.
Software Architecture in
Practice by Len Bass, Paul C. Clements, Rick Kazman
One would find
"SoftwareArchitecture in Practice, Third Edition" to be a valuable resource for
getting up to speed on the state of the art; when need to design, develop, or
manage large software systems (or plan to do so). From this book, one would
learn how to envision, create and analyze architectures using provided case
studies and some of SEI methods
explained in the book.
One needs to
purchase this book, however its second edition is available online.
Software Architecture
Documentation Case Studies by SEI Wiki
The
known architecture description styles are
ISO/IEC 42010 (an international standard
for architecture descriptions of systems and software) / 4+1 Architectural View Model / Views and Beyond: The SEI Approach to ArchitectureDocumentation.
But for newbies to
software architecture documentation, the case studies on SEI Wiki is great
place to start containing the sample architecture documentation of
the "Adventure Builder" and the "Java Pet
Store" applications.
READ HERE = https://wiki.sei.cmu.edu/sad/index.php/Main_Page
---(https://wiki.sei.cmu.edu/sad/index.php/System_Overview
/ https://wiki.sei.cmu.edu/sad/index.php/PetStore_ArchitectureBackground)
On a separate note,
- One would need to understand UML, when it comes to Architecture documentation. If you don't know UML, then see http://www.uml-diagrams.org/
97 Things Every Software
Architect Should Know
Great compilation of
things which every software architect should know, and also published as a book
by Oreilly.
READ HERE = http://97things.oreilly.com/wiki/index.php/97_Things_Every_Software_Architect_Should_Know_-_The_Book
Architectural Posts
Apart from
systematic approach of building architectural skills, one should develop habit
of exploring architectural experiences shared by intelligentsia. There are many
resources for reading architectural posts, but my favorite are
highscalability.com and infoq.com.
READ HERE = http://highscalability.com/ and http://www.infoq.com/architecture-design/
Frameworks for Enterprise
Architecture
Apart from software
architecture, when it comes to enterprise architecture, mainly I refer TOGAF framework documentation.
Disclaimer:
Undoubtedly there
are unlimited resources for learning and building Software Architecture
know-how. So I don't claim the above-mentioned are the best, but I am saying
that those are my favorite and I trust recommending those to others.
Finally if you know any better available online
resource for enhancing software architecture skills, then please share in
comments.