معماری نرم افزار چه نیست؟!
اگر در اینترنت در مورد تعریف یا مفهوم معماری نرم افزار جستجو کنید، هزاران صفحه و مقاله خواهید یافت. اما گاهی برای درک مفهومی، راه عکس آن بهتر ما را به پاسخ خواهد رساند، به این معنا که بدانیم مفهوم مزبور به چه معنایی نیست و شامل چه مواردی نمی شود. مطلب زیر عینا از مقدمه کتابی تحت عنوان Large Scale Software Architecture کپی شده است و موضوع آن این است: معماری نرم افزار چه نیست؟!
What software architecture is not?
The software architecture does not include the hardware, network, or physical plant architecture. As such, the software architecture description is not intended to convey the complete description of the system, only the software within that system and any context needed to create the software. As an example, information such as hardware model number, hardware configuration information, routers, or LAN cards is not the focus in software architecture views. Other views, tables, or documents may be used to specify this type of information. However, this type of information should be included or referenced if it influences the software design.
In general, the software architecture description should not duplicate information found in other sources, such as requirements documents or marketing information. Duplication causes extra rework when these other documents change.
The software architecture description must be kept at the appropriate level of detail. The team that defines the architecture must keep each view at the right level of detail and avoid showing more than one level of detail in a particular view, unless the reasons for doing so are clear and agreed upon in advance.
Low-level implementation details should not be included in the software architecture description. For example, a context or subsystem view should not include details about the implementation mechanism for a particular interface.
In addition, descriptions of specific implementation mechanisms such as compiler optimizations, shared versus static libraries, COTS class or method names, or file format should not be included in the software architecture views.
Reference:
1. Large-Scale Software Architecture, Jeff Garland/Richard Anthony, Wiley Pub.