Software architecture: Difference between revisions

Content deleted Content added
m Moved the text to another section to make this more coherent.
No edit summary
Line 84:
There are many activities that a [[software architect]] performs. A software architect typically works with project managers, discusses [[architecturally significant requirements]] with stakeholders, designs a software architecture, evaluates a design, communicates with designers and stakeholders, documents the architectural design and more.<ref name="Kruchten 2008">{{Cite journal | last1 = Kruchten | first1 = P. | title = What do software architects really do? | doi = 10.1016/j.jss.2008.08.025 | journal = Journal of Systems and Software | volume = 81 | issue = 12 | pages = 2413–2416 | year = 2008 }}</ref>
 
It's [[software architect]]'s responsibility to match [[List of system quality attributes|architectural characteristics]] (aka [[Non-functional requirement|non-functional requirementrequirements]]s) with business and user requirements. For example "[[Customer satisfaction|user satisfactions]]" requires availability, fault tolerance, security, testability, recoverability, agility and performance in the system. As another example, [[Time to market|time-to-market]] requires maintainability, testability and deplorability.: <ref name="O'Reilly Media" />
 
* Having a high [[Customer satisfaction|customer satisfactions]] requires availability, fault tolerance, security, testability, recoverability, agility and performance in the system.
* Doing [[mergers and acquisitions]] (M&A) requires extensibility, scalability, adaptability, and interoperability
* Constrained budget and time requires feasibility and simplicity
* Faster [[Time to market|time-to-market]] requires maintainability, testability and deplorability.
 
There are four core activities in software architecture design.<ref name="hofmeister07" /> These core architecture activities are performed iteratively and at different stages of the initial software development life-cycle, as well as over the evolution of a system.