Software Architecture Guide
We see that Martin Fowler is influenced by Ralph Johnson in deriving for himself a definition of architecture. In particular,there was no objective way to define what was fundamental, or high levelAnd goes on to lean heavily on the idea that ‘application architecture' is a social construct. But I am then left with a thought that if application architecture is a social construct, that means there should be identifiable social characteristics that make-up the application architecture, characteristics that can be further quantified to an acceptable degree, such that they can be defined as fundamental.Taking a step back from Martin’s influence & conclusion, and ask ourselves, “couldn’t software architecture, or architecture in general, be defined by a set of heuristics that lead to objectively defining what is fundamental to a particular context?“Suppose we create three rules that need to be defined before reaching our conclusion:- context: what scale does the architecture in question reference?- collection of computing elements: what are the computing elements (this can range from machines to software)- connectedness: how are the computing elements connected?For example, in order to determine the architecture of my web scraping local machine setup I would go through the rules:- context: a single script file with code written to accomplish the task- collection: functions that are used to perform the task of scraping the webpage- connectedness: functions pass data to other functions to perform specific tasks of scrapingIn this example we have a guide to achieve objectively what is fundamental to our architecture.