كارگاه آموزشي معماري نرم‌افزار

Slides:



Advertisements
Similar presentations
Architecture Arnon Rotem-Gal-Oz Product Line Architect
Advertisements

Introduction To VHDL for Combinational Logic
A component- and message-based architectural style for GUI software
CSC 480 Software Engineering
CS189A/172 - Winter 2008 Lecture 7: Software Specification, Architecture Specification.
OHT 7.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software development methodologies: - The software development life cycle.
Software Architecture in Practice
OHT 7.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software development methodologies: - The software development life cycle.
Manish Kumar,MSRITSoftware Architecture1 Architecture.
A Survey of Software Architecture Viewpoint Models Nicholas May
CHAPTER 10 Keyboard and Printer Interfacing. Matrix Keyboard.
CEN 4935 Senior Software Engineering Project Joe Voelmle.
PC COMPONENTS DISK DRIVES AND CONNECTORS. HARD DISK DRIVES Common Hard Drive Types: –ESDI - Enhanced Small Device Interface  Old Technology – IDE - Integrated.
Chapter 8 : Software Quality Assurance Juthawut Chantharamalee Curriculum of Computer Science Faculty of Science and Technology, Suan Dusit University.
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
Using MDA in Web Software Architectures Santiago Meliá Cristina Cachero Jaime Gómez Universidad de Alicante Spain.
The PCI Bus is typically measured in Megabytes per second (MBps). The USB and FireWire Bus is typically measured in Megabits per second (Mbps) and.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
1 10/14/2015ã 2007, Spencer Rugaber The Waterfall Process Software plans and requirements Validation System feasibility Validation Product design Verification.
Software Architecture in Practice Architectural description (The reduced version)
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
SOFTWARE ARCHITECT – DESIGN.  Introduction  Architecture Drivers  POS System Architecture  Mapping Between Perspective  Evaluate Architecture  Project.
Itr3 lecture 3: the motherboard Thomas Krichel
Modelling Class T16: Conceptual Modelling – Architecture Image from
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
Testing Techniques Software Testing Module ( ) Dr. Samer Hanna.
Simulation of lung alveolar epithelial wound healing in vitro by Sean H. J. Kim, Michael A. Matthay, Keith Mostov, and C. Anthony Hunt Interface Volume.
CpSc 875 John D. McGregor C11 - Documentation. 2 sources Clements et al. – book that describes an approach called Views and Beyond IEEE 1471 adopted standard.
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Extended Learning Module A Computer Hardware and Software.
Allocation Manager Demo. Perl 5 – mod_perl HTML::Tree Component-based architecture – Promote code re-use – Shares code with MYAPNIC project – 100 components.
January 27, January 27, 2016January 27, 2016January 27, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University,
© 2014 Cengage Learning Engineering. All Rights Reserved.2 Computer Organization and Architecture: Themes and Variations, 1 st Edition Clements.
Physical Views Component: A component is a physical unit of implementation with well-defined interfaces that is intended to be used as a replaceable part.
Learning Outcomes Identify the location of the Central Processing Unit (CPU), expansion slots, RAM slots, path and connectors on the motherboard Identify.
Modern Computer Architecture II Unit 4B. Premise of a Computer Start with data Process the data in some way Give the results to a human.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Documenting an Architecture 10 pages, half pictures.
1 5/18/2007ã 2007, Spencer Rugaber Architectural Documentation Graphical (views) and textual Kruchten's 4+1 Views –Philippe B. Kruchten. "The 4+1 View.
ECE 456 Computer Architecture Lecture #9 – Input/Output Instructor: Dr. Honggang Wang Fall 2013.
Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto.
IEEE P Practical Representation of P using IEEE
Real Time Systems Lab. 1 AV1394 Board : Now and Future Real Time Systems Lab. Myung Jin (Daniel), Lee.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
CpSc 875 John D. McGregor C11 - Documentation. Stock trading system trading-system-architecture- post/#prettyPhoto[slides]/7/
Design and Development of a Personal Health Monitor Android Application.
TAL Lecture 1 Introduction to Software Architecture
The PCI Bus is typically measured in Megabytes per second (MBps). The USB and FireWire Bus is typically measured in Megabits per second (Mbps) and.
Software Architecture in Practice
Software Architecture and Quality BY
Documenting SW Architecture
Software Quality Assurance (SQA)
Object Oriented Modeling and Design
Checklist for Site Reconnaissance (Sabatini et al_2002)
Design and Architecture of Complex Software Systems
What is an Architecture?
مدیریت استراتژيک منابع انسانی
Positive interactions between the basic and translational research, clinical research, patient care, and training components of an academic dialysis access.
Documenting an Architecture
C/SI SISO SAC PAR Status as of 5 May 2016
What is an Architecture?
Ռազմավարական կառավարում
NG-EPON Objectives August 20, July 2015.
Software Design Lecture : 5
Put the on A on the keyboard.
I have… I have… Who has 3:40? Who has 12:20? I have… I have…
Unsupervised principal-component analysis (PCA) of 129 seroreactive antigens for adults and children from different geographical locations. Unsupervised.
Presentation transcript:

كارگاه آموزشي معماري نرم‌افزار كارگاه آموزشي معماري نرم‌افزار دكتر فريدون شمس سيد شروين استادزاده

يك مثال: عمارت وينچستر نمونه‌اي از عدم معماري

يك مثال: عمارت وينچستر هزينه ساخت = 5/5 ميليون دلار مدت ساخت = 38 سال (از 1884 تا 1922) تعداد اطاق‌ها = 160 تعداد طبقات = 2 تعداد راه پله‌ها = 40 تعداد آسانسور = 3 تعداد درب‌ها = 467 تعداد پنجره‌ها = 1257 (10000 قطعه شيشه) تعداد بخاري = 47 تعداد دودكش = 17 سيستم گرمايي = كانال بخار، هواي گرم، بخاري تعداد درب‌هايي كه به جايي باز نمي‌شود = 950

يك واقعيت اگر سازه‌هاي بلوكي و زيرساخت‌هاي اكثر سيستم‌هاي نرم‌افزاري امروزي را با معادل‌هاي آنها در ساختمان جايگزين كنيم به عمارت‌هايي نظير عمارت وينچستر خواهيم رسيد. عمارت‌هايي كه هر چند هزينه و زمان زيادي صرف ساخت آنها شده است، ولي چون بر اساس معماري مشخصي بنا نشده‌اند، اثربخشي لازم را ندارند.

نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص

نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني

نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي

نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول

نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول هزينه غير معقول

نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول هزينه غير معقول حضور نسل‌هاي مختلفي از سبك‌ها و سيستم‌ها

نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول هزينه غير معقول حضور نسل‌هاي مختلفي از سبك‌ها و سيستم‌ها غير قابل توسعه

معماري چيست؟ معماري يعني ارايه توصيفي فني از يك سيستم كه نشان دهنده ساختار اجزاء آن، ارتباط بين آنها، و اصول و قواعد حاكم بر طراحي آن، و تكامل آنها در گذر زمان باشد.

مقدمه‌اي بر معماري نرم‌افزار مفاهيم اوليه مقدمه‌اي بر معماري نرم‌افزار

ساخت يك لانه سگ مي‌تواند توسط يك نفر ساخته شود. نيازمنديها: كمترين مدل‌سازي فرآيند ساخت ساده ابزارهاي ساده

ساخت يك خانه مي‌تواند توسط يك تيم ساخته شود. نيازمنديها: مدل‌سازي فرآيندهاي خوش ساخت ابزارهاي قدرتمند

ساخت يك آسمانخراش

چه زمانی معماری لازم است؟ ابعاد بزرگ

چه زمانی معماری لازم است؟ ابعاد بزرگ پيچيدگی زياد

چه زماني معماري لازم است؟ ابعاد بزرگ پيچيدگی زياد نيازمندي خاص

چه زماني معماري لازم است؟ ابعاد بزرگ پيچيدگی زياد نيازمندي خاص طول عمر زياد

چه زماني معماري لازم است؟ ابعاد بزرگ پيچيدگی زياد نيازمندي خاص طول عمر زياد انعطاف پذيری در برابر تغييرات

معماري نرم‌افزار چيست؟ مفاهيم اوليه معماري نرم‌افزار چيست؟

تعريف معماري معماري يعني هنر يا علم ساخت هر نوع عمارت كه مورد استفاده بشر قرار گيرد. عمل يا فرآيند ساخت كار وابسته به معماري؛ ساختار، ساخت و ساز ساختمان يا ساختار عمومي سازمان كلي و ساختار مفهومي يك كامپيوتر يا يك سيستم كامپيوتري از ديد استفاده يا طراحي آن؛ يك عينيت بخش از آن - به نقل از فرهنگ‌نامه آكسفورد

تعريف معماري (ادامه) معماري نرم‌افزار كاري است كه معماران نرم‌افزار انجام مي‌دهند. - Beck

تعريف معماري (ادامه) يك مجموعه از عناصر معماري (يا طراحي) كه داراي يك شكل مشخص باشند. - Perry and Wolf, 1992. يك معماري سيستم نرم‌افزار تشكيل شده از ... مجموعه‌اي از مولفه‌ها، ارتباطات، و قيدهاي نرم‌افزاري و سيستمي مجموعه‌اي از نيازمنديهاي ذينفعان سيستم اصولي كه نشان دهد اين مولفه‌ها، ارتباطات، و قيدها، سيستمي را تعريف مي‌كند كه نيازمنديهاي سهامداران را برآورده مي‌سازد. - Boehm et al., 1995.

تعريف معماري (ادامه) معماري نرم‌افزار يك برنامه يا يك سيستم محاسباتي ساختار يا ساختارهايي از سيستم است كه عناصر نرم‌افزاري، خصوصيات قابل مشاهده از بيرون آن عناصر، و ارتباطات بين آنها را شامل مي‌شود. - Clements et al., 1997.

بخشهاي مشترك در تعريف معماري تعريف معماري (ادامه) بخشهاي مشترك در تعريف معماري معماري مولفه‌هاي اصلي را نشان مي‌دهد. معماري ارتباطات (ساختارهاي) مولفه‌ها و تعامل بين آنها را نشان مي‌دهد. معماري اطلاعات محتوايي درباره مولفه‌ها را كه مربوط به تعامل آنها نباشد، حذف مي‌كند. رفتار مولفه‌ها بخشي از معماري است. هر سيستمي داراي يك معماري است، حتي اگر تنها از يك مولفه تشكيل شده باشد. معماري اصول پشت پرده هر مولفه و ساختار را بيان مي‌كند. تعاريف معماري نمي‌گويند يك مولفه چيست؟ معماري يك ساختار منفرد نيست. هيچ ساختار منفردي نيز معماري نيست.

تعريف معماري (ادامه) معماري نرم‌افزار با موارد زير نيز سروكار دارد : وظيفه‌مندي قابليت استفاده قابليت استفاده مجدد پايداري قابليت درك قيدها و محدوديت‌هاي فن‌آوري و اقتصادي زيبايي شناسي

معماري، طراحي، و پياده‌سازي معماري مفاد طراحي و پياده‌سازي را مشخص مي‌كند. Analysis Architecture Design Implementation CODE

آيا اين نمودار يك معماري است؟ مثالي از معماري آيا اين نمودار يك معماري است؟ Control Card Interface Cash Dispenser Keyboard Interface

چه نكات مبهمي در نمودار قبل وجود داشت؟ مثالي از معماري چه نكات مبهمي در نمودار قبل وجود داشت؟ ماهيت عناصر (فرآيند، كلاس، شيء، واحد، وظيفه، پردازنده، ...) مسووليت عناصر نوع ارتباطات (فراخواني، درخواست، بكارگيري، سيگنال، ارسال داده، كنترل، زيركلاس، ...) مفهوم طرح‌بندي عمليات زمان اجراي سيستم

چه بخشهايي در نمودار قبل جا مانده است؟ مثالي از معماري چه بخشهايي در نمودار قبل جا مانده است؟ ماهيت هر يك از عناصر چيست؟ مسووليت هر يك از عناصر چيست؟ مفهوم هر يك از ارتباطات چيست؟ مفهوم هر يك از طرح‌بندي‌ها چيست؟ جز در مواقعي كه ما دقيقاً بدانيم هر عنصر چيست و چگونه با ديگر عناصر همكاري دارد تا يك وظيفه سيستم انجام شود، نمودار قبلي هيچ استفاده‌اي ندارد.

نظراتي درباره معماري معماري تنها بر روي كاغذ است. معماري همان طراحي است. معماري همان زيرساخت است. معماري همان ساختار است. فن‌آوري مورد علاقه من يك معماري است. معماري نتيجه كار تنها يك معمار است. معماري مي‌تواند توسط يك نوع خروجي نمايش داده شود (تك ديدي است). معماري سخت‌افزار مقدم بر معماري نرم‌افزار است. معماري قابل ارزش‌يابي و يا اعتبارسنجي نيست. معماري يك علم است. معماري يك هنر است.

چرخه كاري معماري چه مواردي بر معماري تاثير مي‌گذارند؟ چه مواردي از معماري تاثير مي‌گيرند؟

چه كساني بر معماري تاثير دارند؟

مشتريان و كاربران نهايي نيازمنديها (+ صفات كيفيتي مثل كارايي، قابليت نگهداشت، ...) محدوديت‌هاي بودجه‌اي محدوديت‌هاي زماني رعايت قواعد خاص سازمان مثل رعايت يك فن‌آوري خاص

سازمان توسعه موارد كاري موارد سازماني سرمايه‌گذاري و استهلاك زيرساخت‌ها كاهش هزينه‌ها ساده بودن پياده‌سازي موارد سازماني استفاده از ساختار سازماني موجود استفاده بهينه از كارمندان

محيط فن‌آوري گرايش غالب امروزي (مثلاً نرم‌افزارها تحت وب باشد) فن‌آوري موجود (مثلاً تصميم در استفاده از يك سيستم متمركز يا توزيع‌شده بستگي به هزينه پردازنده‌ها و سرعت خطوط ارتباطي دارد)

پيش زمينه معمار معماران كارشان را با توجه به مجموعه تجربيات گذشته‌شان انجام مي‌دهند. تجربه موفق باعث تكرار آن در معماري جديد مي‌شود. تجربه ناموفق باعث عدم استفاده از آن در معماري جديد مي‌شود.

تاثيرات بر معماري

معماري بر روي سازمان توسعه تاثير دارد ساختار و منابع سازماني واحد‌هاي كاري زمانبندي بودجه اهداف سازماني تخصص در زمينه ساخت يك نوع از سيستم‌ها موفقيت در بازار ارزيابي بازار دارايي‌هاي خط توليد

معماري بر روي نيازهاي مشتريان تاثير دارد دانش مشتريان ارتقاء سيستم، انطباق پذيري، ...

معماري بر روي تجربه معمار و محيط فن‌آوري تاثير دارد ساخت يك سيستم بر روي تجربه معمار تاثير خواهد داشت. معمولاً، يك سيستم يا يك معماري بر روي محيط فن‌آوري تاثير دارد.

چرخه كاري معماري

فعاليتهای چرخه كاري معماري ايجاد يک مورد کاری برای سيستم فهم نيازمنديها ايجاد يا انتخاب معماری تعامل با معماری تحليل يا ارزيابی معماری پياده سازی بر مبنای معماری حصول اطمينان از انطباق محصول با معماری

ساختارها و ديدهاي معماري

تعريف ساختار يك مجموعه از عناصر همگن به همراه ارتباط بين آنها است. براي هر ساختار مي‌توان موارد زير را مشخص كرد. نوع عناصر نوع ارتباطات مجموعه‌اي از قيدهاي نحوي معني نمودار اصول، قواعد، و راهبردها براي چه هدفي قابل استفاده است؟ ديد نمايشي از معماري نرم‌افزار بر پايه يك ساختار است كه توسط معمار ترسيم شده و دينفعان آن را مي‌خوانند. (نمونه‌اي از يك ساختار) معماري نرم‌افزار توسط تعدادي ديد مستند مي‌شود.

چارچوب مفهومي معماري (IEEE Std. 1471-2000) ماموريت انجام مي دهد 1..* دارد يك تاثير دارد بر محيط سيستم معماري قرار دارد در توصيف مي شود با 1..* دارد 1..* تعيين هويت مي كند 1..* حمايت مي كند مهم است براي 1..* توصيف معماري عقلانيت (منطق) صاحب نقش - ذينفع مشخص مي كند 1..* شركت مي كند در دارد 1..* انتخاب مي كند 1..* سازمان مي يابد با 1..* تبيين مي كند 1..* مطابق دغدغه ديدگاه ديد استفاده مي شود تا پوشش دهد 1..* شركت مي كند در 1..* انتخاب مي شود از 0 .. 1 جمع شده 1..* شامل 1..* كتابخانه ديدگاه روشي را براي تبيين ايجاد مي كند مدل

طبقه‌بندي ساختارها ساختارهاي ماژول (Module) ساختارهاي مولفه و اتصال (Component & Connector) ساختارهاي تخصيص (Allocation) اين طبقه بندی ها متعامد هستند.

1- ساختارهاي واحد عناصر: ماژول‌ها (واحدهاي پياده‌سازي) مشخص مي‌كند : مسووليت وظيفه‌اي ماژول‌ها ساير عناصري كه ماژول اجازه استفاده از آنها را دارد. روابط عام و خاص عمليات زمان اجرای نرم‌افزار براي اين ديد اهميتي ندارد.

1-1 ساختار تجزيه عناصر: ماژول‌ها به شكل سلسله مراتبي ارتباطات: زيرواحدي از ...، به اشتراك مي‌گذارد با ... مفيد براي ... تخصيص منابع پنهان سازي اطلاعات محصور‌سازي كنترل پيكربندي

1-2 ساختار استفاده عناصر: ماژول‌ها، روال‌ها، يا منابع مربوط به واسط ماژول‌ها ارتباطات: استفاده مي‌كند از ... مفيد براي ... مهندسي گسترش

1-3 ساختار لايه‌اي زيرنوعي از ساختار استفاده است. عناصر: لايه‌ها (مجموعه‌اي همگن از وظيفه‌مندي مرتبط) ارتباطات: استفاده مي‌كند از ... (در حالت ايده‌آل، هر لايه تنها از لايه قبل از خود استفاده مي‌كند). مفيد براي ... ماشين مجازي

1-4 ساختار كلاس عناصر: كلاس‌ها ارتباطات: وراثت، نمونه‌اي از ... است مفيد براي ... طراحي شيءگرا

2- ساختارهاي مولفه و ارتباط عناصر: مولفه‌هاي زمان اجرا (واحدهاي اصلي محاسبه) و اتصالات (ابزارهاي ارتباطي بين مولفه‌ها) مشخص مي‌كند: مولفه‌هاي اجرايي اصلي و چگونگي تعامل بين آنها انباره‌هاي داده مشترك اصلي چه بخشي از سيستم تكرار شده است؟ جريان داده در سيستم چه بخش‌هايي بصورت موازي مي‌توانند اجرا شود؟ ساختار سيستم در حين اجرا چگونه مي‌تواند تغيير كند؟

2-1 ساختار مشتري/خدمتگزار عناصر: مشتري، خدمتگزار ارتباطات: ارتباط برقرار مي‌كند با ...، وابسته است به ... مفيد براي ... عمليات توزيع شده جداسازي موارد بااهميت تعادل بار

2-2 ساختار پردازه عناصر: پردازه‌ها يا نخ‌ها ارتباطات: موازي اجرا مي‌شود با ...، قبل از ... اجرا مي‌شود مفيد براي ... تحليل كارايي تحليل زمانبندي

2-3 ساختار توازي عناصر: نخ‌هاي منطقي ارتباطات: اجرا مي‌شود بر روي ... مفيد براي ... اتصال انشعاب

2-4 ساختار داده مشترك يا انباره عناصر: انباره داده، توليدكننده داده، مصرف كننده داده ارتباطات: توليد داده، مصرف داده مفيد براي ... يكپارچگي داده كارايي تغييرپذيري

3- ساختارهاي تخصيص ارتباط بين نرم‌افزار را با عناصري از محيط خارجي نشان مي‌دهد. مشخص مي‌كند: پردازنده‌اي كه هر يك از عناصر نرم‌افزاري را اجرا مي‌كند. فايلي كه هر يك از عناصر نرم‌افزاري را در هنگام توسعه نگهداري مي‌كند. انتساب نرم‌افزار به تيم توسعه

3-1 ساختار استقرار عناصر: نرم‌افزار، سخت‌افزار، و مسيرهاي ارتباطي ارتباطات: تخصيص داده شده به ...، مهاجرت به ... مفيد براي ... تحليل كارايي تحليل دسترس پذيري تحليل امنيت

3-2 ساختار پياده‌سازي عناصر: هر واحد منطقي(مثل ماژول) ارتباطات: پياده‌سازي مي‌كند مفيد براي ... كنترل پيكربندي يكپارچه سازي فعاليت‌هاي آزمون

3-3 ساختار انتساب كار عناصر: هر واحد منطقي(مثل ماژول) ارتباطات: انتساب داده مي‌شود به ... مثالي از كاربرد مديريت پروژه بهنرين استفاده از تخصص‌ها

طبقه‌بندي ساختارها

صفات كيفيتي

طبقه‌بندي سنتي نيازمنديها وظيفه‌اي غيروظيفه‌اي يك افسانه متداول در نرم‌افزار: ابتدا نرم‌افزاري ساخته شود كه نيازمنديهاي وظيفه‌اي را برآورده كند، سپس نيازمنديهاي غيروظيفه‌اي به آن افزوده يا تزريق شود. اين ايده ما را به سمت اتلاف منابع و كيفيت پايين سوق مي‌دهد. بايد تمركز بر روي كيفيت را از همان ابتدا آغاز كرد (در سطح معماري)

وظيفه‌مندي و معماري وظيفه‌مندي و صفات كيفيتي از نظر تئوري متعامد هستند. نمي‌توان با هر سطحي از وظيفه‌مندي به همه صفات كيفيتي دست يافت. وظيفه‌مندي را مي‌توان به شكل‌هاي مختلف بدست آورد (چندان به معماري مربوط نيست) معماري قصد دارد با سازماندهي وظايف به صفات كيفيتي دست پيدا كند.

معماري و كيفيت دستيابي به كيفيت بايد در تمام مراحل طراحي (از جمله معماري)، پياده‌سازي، و استقرار مد نظر قرار گيرد. كيفيت هم جنبه‌هاي مربوط به معماري و هم جنبه‌هاي نامربوط به معماري دارد. مثلاً دسترس پذيري: انتخاب از بين عناصر در برابر پشتيباني از عمل بازگشت كارايي: مقدار ارتباط بين مولفه‌ها در برابر الگوريتم‌ها صفات كيفيتي مستقل نيستند و نبايد بصورت مجزا به آنها دست يافت. همبستگي مثبت (مثل تغييرپذيري و قابليت ساخت) همبستگي منفي (مثل قابليت اطمينان و امنيت)

طبقه‌بندي صفات كيفيتي صفات كيفيتي سيستمي: دسترس‌پذيري، تغييرپذيري، كارايي، امنيت، آزمون‌پذيري، و قابليت استفاده صفات كيفيتي كاري: مثلاً مدت زمان بازاريابي صفات كيفيتي معماري: مثلاً يكپارچگي مفهومي

طبقه‌بندي صفات كيفيتي سيستمي قابل مشاهده از طريق اجرا (مثل كارايي و امنيت) غيرقابل مشاهده از طريق اجرا (مثل تغييرپذيري و آزمون‌پذيري) اين دو گروه كاملاً مستقل (متعامد) هستند . اگرچه گروه دوم بر روي اولي تاثير غيرمستقيم دارد. صفات كيفيتي غيرقابل مشاهده نيز مهم هستند، گاهي حتي مهم‌تر !!!

صفات كيفيتي سيستمي دسترس‌پذيري (وابسته به قابليت اطمينان) تغييرپذيري (شامل قابليت حمل، قابليت استفاده مجدد، مقياس‌پذيري) كارايي امنيت آزمون‌پذيري قابليت استفاده (شامل قابليت خود انطباقي و قابليت انطباق كاربر)