Content deleted Content added
m Made it more neutral. Removed unnecessary details. |
Rearranged the text to make it more coherent. Also removed the example scenario because: 1) it didn't have a credible source 2) it was too detailed for the beginning of the article 3) it didn't elaborate the tough choices the architect must take and its tradeoffs. |
||
Line 5:
The ''architecture'' of a software system is a [[metaphor]], analogous to the [[architecture]] of a building.<ref name="PERRY1992">{{Cite journal | last1 = Perry | first1 = D. E. | last2 = Wolf | first2 = A. L. | author-link2 = Alexander L. Wolf| doi = 10.1145/141874.141884 | title = Foundations for the study of software architecture | journal = [[ACM SIGSOFT Software Engineering Notes]]| volume = 17 | issue = 4 | pages = 40 | year = 1992 | url = http://users.ece.utexas.edu/~perry/work/papers/swa-sen.pdf| citeseerx = 10.1.1.40.5174 | s2cid = 628695 }}</ref> It functions as the blueprints for the system and the development project, which [[project management]] can later use to extrapolate the tasks necessary to be executed by the teams and people involved.
Software architecture design is commonly juxtaposed with [[software application design]]. Whilst application design focuses on the design of the processes and data supporting the required functionality (the services offered by the system), software architecture design focuses on designing the infrastructure within which application functionality can be realized and executed such that the functionality is provided in a way which meets the system's [[non-functional requirement]]s.▼
# Everything is a trade-off▼
# "Why is more important than how"▼
"Architectural Kata" is a teamwork which can be used to produce an architectural solution that fits the needs. Each team extracts and prioritizes architectural characteristics (aka [[Non-functional requirement|non functional requirements]]) then models the components accordingly. The team can use [[C4 model|C4 Model]] which is a flexible method to model the architecture just enough. <ref>{{Cite book |title=Fundamentals of Software Architecture An Engineering Approach |publisher=O'Reilly Media |year=2020 |isbn=9781492043423}}</ref>
[[Software documentation|Documenting software]] architecture facilitates communication between [[Stakeholder (corporate)#In management|stakeholders]], captures early decisions about the high-level design, and allows the reuse of design components between projects.<ref name="SAP2">{{cite book|last=Bass|first=Len|author2=Paul Clements |author3=Rick Kazman |title=Software Architecture in Practice, Third Edition|publisher = Addison-Wesley|year=2012|___location=Boston|isbn=978-0-321-81573-6}}</ref>{{rp|29–35}} ▼
▲There are two fundamental laws that have to be considered in software architecture:<ref>{{Cite book |title=Head First Software Architecture |publisher=O'Reilly Media |year=2024 |isbn=978-1098134358}}</ref><ref>{{Cite book |title=Fundamentals of Software Architecture: An Engineering Approach |publisher=O'Reilly Media |year=2020 |isbn=978-1492043454}}</ref>
▲Software architecture design is commonly juxtaposed with [[software application design]]. Whilst application design focuses on the design of the processes and data supporting the required functionality (the services offered by the system), software architecture design focuses on designing the infrastructure within which application functionality can be realized and executed such that the functionality is provided in a way which meets the system's [[non-functional requirement]]s.
▲# Everything is a trade-off
▲# "Why is more important than how"
▲[[Software documentation|Documenting software]] architecture facilitates communication between [[Stakeholder (corporate)#In management|stakeholders]], captures early decisions about the high-level design, and allows the reuse of design components between projects.<ref name="SAP2">{{cite book|last=Bass|first=Len|author2=Paul Clements |author3=Rick Kazman |title=Software Architecture in Practice, Third Edition|publisher = Addison-Wesley|year=2012|___location=Boston|isbn=978-0-321-81573-6}}</ref>{{rp|29–35}}
[[File:Software Architecture Activities.jpg|thumb|Software architecture activities]]
|