Talk:Software architecture

From Wikipedia, the free encyclopedia
Jump to: navigation, search
          This article is of interest to the following WikiProjects:
WikiProject Computing / Software (Rated C-class)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software.
WikiProject Systems (Rated C-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Systems, which collaborates on articles related to systems and systems science.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
Taskforce icon
This article is within the field of Software engineering.

Standards Organizations[edit]

There are many standards orgs, including the IEEE, ISO, and others.

"Software Architecture" book reference[edit]

In references "Software Architecture by Rick Kazman" is mentioned. The closest match I could find on the net is this one:

Software Architecture in Practice, Second Edition by Len Bass (Author), Paul Clements (Author), Rick Kazman (Author) (ISBN 0321154959)

Kazman is the third author. Is this the book mentioned in references?

Software Architecture - An Emerging Discipline by Garlan and Shaw Sujayg (talk) 04:29, 1 July 2008 (UTC)

Large-Scale Software Architecture[edit]

I've removed the following information since I fail to see why this particular book is important, there are tons of software architecture books, so why this one?

--S.K. 22:53, 20 Dec 2004 (UTC)

Reference to creativity?[edit]

Reference to creativity is noticeably missing

Structured Link[edit]

I've linked the "Structured" list item to "Structured System Analysis and Design". Somebody please check up on me, because I'm no expert on this topic.

--DugDownDeep 16:33, 19 Apr 2005 (UTC)


The Examples don't distinguish between inter-application architectures (or systems using different processes, even computers, with inter-process communication), like peer-to-peer and client-server, and intra-application architectures. Seems like a significant architectural distinction worth highlighting, to me. In fact, why not consider the difference between inter-app and intra-app architectures in the article?

Relationship to other articles[edit]

What about something on the relationship between software architecture and software design? And software engineering? Is there a page on software development? Hmm, there is, but it redirects to software engineering. I don't like that. I think the whole computer software set of articles needs somewhat better organization. Brent 00:31:36, 2005-08-19 (UTC)

I agree there should be something, but it's not entirely clear what yet. Under software development were you looking for something like software development process? --David.alex.lamb 22:09, 23 February 2006 (UTC)

Software ontology[edit]

I've never heard of anyone claiming that software ontology is a superset of sofwtare architecture. System architecture and systems architecting yes, but not software ontology. Can anyone provide a reference to back up this claim? If not, I will delete it in a few days. --Allan McInnes (talk) 17:14, 11 April 2006 (UTC)

"To Be Engineered"[edit]

Any particular reason why "To Be Engineered" is in title case instead of lower case? I cannot find any references using the specific term in title case. Please let me know, just in case. Bwefler 18:59, 5 July 2006 (UTC)

Problem has since been fixed -- thanks. Bwefler 22:44, 13 July 2006 (UTC)

I feel that the need for software architecture is a key issue to be addressed ; like "Why is Software Architecture needed". Some people still think that once you understand what the requirement document says, you have understood it all. Maybe at some point of time I shall writing on this. Sujayg (talk) 04:36, 1 July 2008 (UTC)

Architectural Reviews[edit]

I would like to see info on software architectural reviews, such as the Architecture Tradeoff Analysis Method (ATAM) (see the Wiki article link), and others such as the Cost-Benefit Analysis Method (CBAM), as covered in referenced book "Software Architecture in Practice" (Bass, Clements, Kazman). (Such reviews seemed like the majority of an SWA course I took...)

Thanks. --Bwefler 13:57, 20 July 2006 (UTC)

  • FYI such reviews are ways to verify the architecture. --Bwefler 01:08, 3 August 2006 (UTC)


The current definition seems unclear to me. The part about "a representation of a software system, as well as the process and discipline for effectively implementing the design(s) for such a system" implies that an architecture also encompasses such things as SDLC, which is not the understanding of architecture I find in my source materials. --Stephen e nelson 00:51, 21 September 2006 (UTC)

Part of the problem may be that the current definition is perhaps conflating what a software architect produces (a "software architecture") with what a software architect does (which might also be called "software architecting"). The other problem is of course that the current definition is totally unreferenced... --Allan McInnes (talk) 01:13, 21 September 2006 (UTC)
I agree. A paraphrase of Software Architecture In Practice p. 23 might do the job. How about: "A software architecture defines the software components of the system, their externally visible properties, and their relationships with one another." Still kind of a muddle, but at least a citeable one. --Stephen e nelson 01:24, 21 September 2006 (UTC)
This SEI page has a pretty good collection of definitions from different sources. We can't really interpolate all of those definitions (that'd be original research). But the Software Architecture In Practice definition seems to me to be a pretty good distillation of the common elements in the different definitions. It's also the first definition given on the page, where it is identified as one of two "modern definitions" of software architecture. The other "modern" definition, from ANSI/IEEE Std 1471-2000, is roughly the same, but adds ...the principles governing [the system's] design and evolution... --Allan McInnes (talk) 05:05, 21 September 2006 (UTC)
Went bold and changed to a rewritten intro paragraph referring to Bass. I think it's a less confusing introduction. Adding the reference to the specific page duplicates the reference to SAiP; I've left them both in since I agree that SAiP is a very good overall intro, but perhaps it should be moved to a "further reading" section? --Stephen e nelson 18:37, 21 September 2006 (UTC)
I'm a bit hesitant to edit this page given that I am sure people will disagree whatever it says. The already cited SEI page lists numerous definitions with varying degrees of authority. In my opinion the most authoritive one, and the one most often cited is that by the ANSI/IEEE Std 1471-2000 document. It not necessarily captures all relevant aspects (hence the other definitions) but it sort of represents a broad consensus (or at least the attempt to create such a thing) at least. A wikipedia specific definition without proper citation is the last thing the world needs. I'm in favour of citing both the IEEE definition and mentioning that this remains a hotly debated topic, along with a reference to the SEI page with definitions. Anything else would be biased in favor of someone's opinion. Unless wikipedia has a strong reason to deviate from the IEEE standard definition, it shouldn't. For better or for worse, the IEEE definition is the only widely endorsed definition available. True, software architecture in practice definition is also widely cited. I would argue that it is mostly the same as the IEEE definition and arguably they are closely related in their origin. The principles bit in the IEEE definition is quite relevant and does not contradict the other definition. It's also worth noting in the article that this definition remains a hotly debated topic at relevant conferences such as e.g. WICSA (working ifip conference on software architecture), much to the dismay of veteran attendees. Jillesvangurp 18:51, 26 January 2007 (UTC)
The well-known definition of software architecture that appears in "Software Architecture in Practice" (Bass et al) is very often cited in the literature and presentations. However, this definition was revised (improved) by their authors and colleagues at the Software Engineering Institute. The revised definition appears in the 2nd edition of "Documenting Software Architectures: Views and Beyond". I updated the page with this new definition. Pmerson (talk) 18:26, 25 October 2010 (UTC)

Views caveats[edit]

The paragraph starting "Several languages..." makes a number of assertions that are not cited. I don't think that they belong in this article. Anyone have a problem with me removing them? --Stephen e nelson 01:15, 21 September 2006 (UTC)


The Background section covers the definition of "system", the definition of "software architect", a good definition of a software architecture, the definition of a "robust software architecture", traceability between the architecture and other views of the system (requirements, system tests, etc.). All very good stuff, but I had to reread it three times before I understood the general thrust of the section. I think it needs a reorg and rewrite. Thoughts? --Stephen e nelson 18:55, 21 September 2006 (UTC)

Digging in further: the entire first paragraph is a definition of "system". Since the article is specifically about software architecture, I don't see how it advances the cause. I'm going to delete it in 5 days unless someone has a defense of it or a suggestion on how to rewrite it. --Stephen e nelson 23:58, 22 September 2006 (UTC)

Deleted for me. :) --Stephen e nelson 02:32, 24 September 2006 (UTC)

The first paragraph has a specific reference for the definition, and a reliable, respectable, and publically available secondary citation for it as well. See accessed 16 Sep 2009. In my mind that is sufficient defence to support keeping it largely intact, although it doesn't preclude an overall article rewrite for better organization and clarity. ThreePD 01:05, 26 September 2006 (UTC)

Yes, I think that the current first paragraph is good. I was referring to a previous one. :) --Stephen e nelson 17:17, 28 September 2006 (UTC)
The history is a bit incomplete. In my opinion, the 1992 article by Perry and Wolf kicked off the renewed interest in software architecture and largely defined the field. Dewayne E. Perry, Alexander L. Wolf, "Foundations for the study of software architecture", ACM SIGSOFT Software Engineering Notes, Volume 17, Issue 4, Pages: 40 - 52, 1992. Before then, software architecture was not a big topic in research or practice. Jillesvangurp 19:02, 26 January 2007 (UTC).

Architectural Styles[edit]

I guess a section on Software Architectural Styles need to be added to this article. Is it OK with everyone if I add it? —The preceding unsigned comment was added by Kamyar1 (talkcontribs) 18:37, 12 May 2007 (UTC).

"-ilities" pedantry[edit]

As great a word as "-ilities" is, "security" is unfortunately not an "-ility".

Proposed change: make it "securitility" instead?

ilities is just a generalization. Security is fine. In fact several times ilities is over used (as for example in securitility). If you talk about the software quality attribute security everyone knows what are you talking about. (IMHO) Aludstartups (talk) 19:30, 20 February 2011 (UTC)

Distinction between pattern and style[edit]

Without any explanation the terms pattern and style are used together as section headline in this article. But where are the differences? I know there are some but not sure where. I would be very happy if anybody could clarify this issue.

Architecture Frameworks[edit]

I wonder why the mentioned architecture frameworks have been put in this Software Architecture Page. Ideally other than the 4+1, rest of them are all related to the Enterprise Architecture domain. If anyone could clarify on this, it would be great. Else I would like to remove all the frameworks mentioned except 4 +1, RM-ODP and SMOF. Sai Geetha (talk) 05:47, 21 July 2009 (UTC)

Good point. However I think it is maybe even better to explain. Something like: Frameworks relate to the domain of software architecture are 4 +1, RM-ODP and SMOF... Other architectures such .... as relate to the field of Enterprise_architecture. I will give it a try in the article. -- Marcel Douwe Dekker (talk) 11:31, 21 July 2009 (UTC)

Removal of text from Views section[edit]

In the process of delinking a deleted page, I noticed what seemed to me off-topic WP:OR in section Views, and removed it. I also took in account the following statement from Talk:Notational bias:

The programming part is nonsense. If you use a hammer instead of a chair trying to put a nail in the wall you don't have a "pro-hammer bias", you just use the best available tool. If a language would not support lists of integers, but you happen to need one and hash tables (strange enough) are available, using them would not be a bias but probably a rational choice. If you'd use hash tables and there are faster, simpler, etc. options it still wouldn't be a bias but just a lack of knowledge in which case the rational thing to do would still be to use hash tables. The music example sounds better, but still doesn't really convince me of the actual existence of this bias. The questionnaire example isn't a bias, if people must choose between A and B and the best option would be C, they do know that C is not there. It's just a bad questionnaire instead of people changing their minds to think A or B. Joepnl (talk) 03:38, 15 December 2009 (UTC)

("The programming part" referred to following text:

Computer programming languages provide another example. Each programming language provides a notation which can introduce a bias in how problem solving is approached. For example, if a programming language makes it easy to notate a hash table then hash tables are more likely to feature in the programmer's articulation of the algorithm used to solve a problem.

) — Sebastian 17:19, 31 December 2009 (UTC)

about the dysfunctional meaning of functional requirements[edit]

Sadly I don't have the level of English to fix this but at least I want to make a point: Some people en the MIT and along with they several communities in the world thinks that non functional requirements is a "dysfunctional definition" due the fact that all quality attributes requirements even performance are functional... and there exists too constraints or restrictions. Not functional requirements are the union of both quality attributes requirements and constraint. And you can elicit and work with quality attributes requirements (throughout quality attribute scenarios) but constraint are just that constraint you can "balance" it.

moreover quality attributes requirements need it own section I'll left the references: and of course kasman, clemments and garlan books on software architecture. — Preceding unsigned comment added by Aludstartups (talkcontribs) 15:43, 20 February 2011 (UTC)

External Links[edit]

I saw two links to the same site (it is that really necessary). A blog without posts since 2 year. And many journals and vendors blogs (ibm, ms) with explanations about software architecture truly different of the ones prayed for the SEI (I think we should follow the SEI teaching). Maybe for this journal we can create a page "journals_on_software_architecture" OR "resources_on_software_architecture" Aludstartups (talk) 20:13, 21 February 2011 (UTC)

Impending massive change to the Software Architecture page[edit]

On November 19, 2012, the members of the IFIP working group 2.10 on software architecture will start rolling out a complete overhaul of this page on Software Architecture, addressing many of the concerns expressed here.--PhilippeKruchten 15:08, 12 November 2012 (UTC) — Preceding unsigned comment added by Kruchten (talkcontribs) (talk) 14:03, 19 November 2012 (UTC)

Major overhaul of the Software Architecture page[edit]

On November 19, 2012, members of the IFIP working group 2.10 on software architecture have produced a complete overhaul of this page. The subgroup working on the wikipedia page is composed of: Remco de Boer, Ivica Crnkovic, Len Bass, Antony Tang, Philippe Kruchten, Henry Muccini, Eltjo Poort, Tomi Männistö, Eoin Woods, Christina Cooper-Bland, Muhamad Ali Babar, and Rich Hilliard.

Comments are welcome, preferably in this Talk page.

On December 10, 2012, the group will meet to do a review of the changes, and implement further refinements.

PhilippeKruchten 15:13, 19 November 2012 (UTC)

Hi Phillipe, I welcome this kind of cooperation. To give you my review of the changes, I have first wikified the article once more, see here. I will try to explain both:
  1. As you can see I simplified the structure and rearranged it into the common structure for a Wikipedia articles, that offer and overview of a field of technology. A reference here is the Electrical engineering, which is a featured Wikipedia article for over five years.
  2. A good Wikipedia article on a difficult technological subject, should first make a significant effort trying to explain what is it?, before explaining how it is developed in time? Now both the previous and the current article lacks a more simple description on what it is.
  3. This second point is also a problem in related articles: in the article "Software" section Software#Architecture and in the Architecture framework article.
  4. This article might still be to technical. The first sentence starts with: The software architecture of a system is the set of structures needed to reason about the software system.... This could/should be explained some more in the first section.
  5. The historical development could be divided in subsections, and give some more general introduction and main events
  6. The "Software architecture topics" should give an overview of all relevant subjects. Part of the subjects, where moved away which I restored. You could ask, if all relevant (sub)topics are listed?
  7. The new sections Architecture activities and (software) architecture supporting activities are a mayor improvement to the article.
  8. At the moment I see little added value of the new Software architecture description article
  9. The "Examples of architectural styles and patterns" could use some more general introduction
  10. The whole article could use some more illustrations.
I hope this helps you get some ideas about further improving of this article. -- Mdd (talk) 14:45, 20 November 2012 (UTC)

The misuse of IEEE 1471 as in Enterprise Architecture[edit]

There has been no formal acceptance of the definition of architecture used in IEEE 1471 as applying to enterprise architecture by either ISO or IEEE. The committee said that it could be applied and that is all.

--Mgoetsch9 (talk) 02:28, 11 January 2013 (UTC)

That statement is incorrect.

IEEE's "formal acceptance" of IEEE 1471, was on 21 September 2000: "acceptance" means acceptance of all of the text in the Standard. The scope of the Standard – as accepted and published – was: "architecture description of software-intensive systems". The text of the Standard – as accepted and published – clearly includes enterprise:

As used in the Standard, "the term system encompasses individual applications, systems in the traditional sense, subsystems, systems of systems, product lines, product families, whole ENTERPRISES, and other aggregations of interest." (4.1 of IEEE 1471:2000)

So from the earliest publication, enterprise architecture was included in the scope of application.

IEEE 1471 became an ANSI national standard (in the US) – with the same scope and text – August 2001.

ISO adopted IEEE 1471 via a fast-track ballot in March 2006 – with the identical scope and text – published as ISO/IEC 42010.

RfHilliard (talk) 15:45, 11 January 2013 (UTC)

Software Architecture vs. Software Architecture[edit]

ANSI/IEEE Std 1471-2000, ISO 42010 only applies to software architecture documentation. Clements and Bass talk about this in the latest edition of the their book "Software Architecture in Practice". Taylor and Medividovic in "Software Architecture: Foundations, Theory, and Practice" do the Academic Treatment referring to it only as "interesting" (i.e. academic for not being complete).

--Mgoetsch9 (talk) 02:28, 11 January 2013 (UTC)

The first sentence is incorrect:
(i) ANSI/IEEE 1471 is now withdrawn, replaced by ISO/IEC/IEEE 42010
(ii) the scope of that standard was never limited to software architecture. See Talk discussion item above.
Can you make your citations more specific?
I cannot find what you claim in Bass et al. (3rd edition).
Cf. discussion of ISO/IEC/IEEE 42010 page 360 and a short discussion of relation of software and enterprise architecture, pages 7-8.
Or in Taylor et al's book, cf. pages 68 and 627-628.
RfHilliard (talk) 15:47, 11 January 2013 (UTC)

Removed 2 sentences about documenting the architecture[edit]

While making some minor copy edits overall, I admit to:
Removing two unreferenced sentences about documenting architectures formally versus informally.
They seemed just badly out-of-date. I also felt they gave the exact wrong impression to any budding software architects out there.
Overall, this piece seems to be structured around the art of creating a systems software architecture for a stand-alone, highly proprietary, closed system. If the outline was opened up a bit, perspective-wise, I wonder if people might find it easier to contribute new content about collaboration at even the architectural level, given the integrated nature of even proprietary software systems today, as well as anything open-source.
(PS - the phrase "document experience in a wikipage" was not me - I just decided to leave it there!)
Maura Driscoll (talk) 19:57, 17 March 2013 (UTC)

First use of the term software architecture[edit]

The current article states: The term software architecture was first used in the late 1960s ,[13]..., referring to

However, it seems that this publication doesn't the term "Software architecture" or "architecture". -- Mdd (talk) 11:59, 9 August 2013 (UTC)