ویرگول
ورودثبت نام
Nasser Niazy
Nasser Niazy
خواندن ۱ دقیقه·۳ سال پیش

عوامل تاثیر گذار در انتخاب معماری یک نرم افزار به زبان ساده

#Availability:

نرم افزار چقدر باید در دسترس باشد و تحمل دان شدن چقدر است

#Reliability/ #safety:

. نرم افزار چقدر باید مطمعن کار کند و پایدار باشد.هزینه خطا چقدر است؟

#Testability:

نرم افزار چقدر قابل تست است

#Scalability:

نرم افزار را تا چه حدی می توان بدون تغییر ساختار نرم افزاری گسترش داد

#Security:

نرم افزار چقدر امن است

#Agility:

چقدر تغییر نرم افزار و افزایش امکانات زمانبر است

#Fault_tolerance:

نرم افزار چقدر تحمل خطا و ناسازگاری دارد

#Elasticity:

نرم افزار چقدر قابلیت توسعه خودکار در محیط کلود را دارد (تا کجا می توان با افزایش یوزرها ماشین اضافه کرد و نرم افزار را پایدار نگه داشت)

#Recoverability:

چقدر طول می کشد در موقع بحران نرم افزار را به حالت پایدار برگرداند

#Performance:

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

#Deployability:

چقدر راحت می توان نرم افزار را نگه داری کرد و از کد به پروداکشن برد

#Learnability:

آموزش نرم افزار چقدر برای نیروی جدید راحت است

#Continuity

آیا می توان درمواقع بحران نرم افزار را ریکاور کرد

#Robustness

آیا نرم افزار تحمل هر کمبودی مثل نبود اینترنت یا خرابی سخت افزار را دارد ؟‌

#Configurability/ #usability

آیا می توان به راحتی با نرم افزار کار کرد

#Extensibility

چطور می توان یک قابلیت نرم افزاری جدید را به نرم افزار اضافه کرد

#Installability

در چه محیط هایی می توان نرم افزار را نصب کرد

#Leverageability/ #reusebility

چقدر می توان اجزای نرم افزار را در سایر محصولات دوباره استفاده کرد

#Localization

چه تعداد زبان را می توان پشتیبانی کرد

#Maintainability

هزینه نگه داری نرم افزار چقدر است

#Portability

آیا می توان به راحتی از یک پلتفرم نرم افزار را روی پلتفرم دیگر برد

#Supportability

هزینه پشتیبانی چقدر است و چقدر قابل پشتیبانی است

#Upgradeability/ #Compatibility

چقدر نسخه های نرم افزار با هم سازگار است


ref: Fundamentals of Software Architecture Mark Richards and Neal Ford

software archetecturesoftware design
بیش از ۱۰ سال سابقه برنامه نویسی وب و سیستم های پیچیده. معماری و رهبری پروژه های بزرگ نرم افزاری.
شاید از این پست‌ها خوشتان بیاید