طراحی نرم افزارهای حساس

sszz23

عضو جدید
همه ما به نحوی از فناوری اطلاعات و سیستمهای فنی و مهندسی در زندگی استفاده میکنیم.خیلی از این سیستمها حساس و مهم نیستند و وجود اشکال در آن سیستمها تاثیر چندانی در زندگی ما نخواهند گذاشت.اما سیستمهایی وجود دارند که از حساسیت بالایی برخوردارند و وجود اشکال در هر یک از آنها ممکن است از لحاظ مالی و جانی در زندگی ما اختلال ایجاد کند.مثلا اگر سیستم بانکداری الکترونیکی دچار اشکال شود ممکن است یکباره میلیونها تومان از حساب شما برداشته شود یا اشکالی جزئی در سیستم نرم افزاری اتاق عمل ممکن است برای بیمار خطر جانی ایجاد کند.پس این سیستمها باید دارای مشخصاتی مثل قابل دسترس بودن به صورت دائمی،قابلیت اطمینان و امنیت بالا باشند.به طور طبیعی سیستمهایی که تمامی این مشخصه ها را به صورت کامل داشته باشند،هزینه بسیار بالایی دارند و زمان و نوع طراحی این سیستمها یا نرم افزارهای عادی تفاوتهای زیادی دارد.این سیستمها در تمامی مراحل تولید خود باید زیر نظر گروههای حرفه ای تولید نرم افزار قرار گرفته و در هر مرحله از چرخه تولید باید آزمایشهای اطمینان کیفیت در هر جزئی از سیستم انجام گیرد.به طور کلی از لحاظ عملکردی، سیستمهای حساس را میتوان به سه گروه عمده تقسیم کرد:
1-سیستمهای حساس و راهبردی که در اهداف سازمان تاثیر گذارند.این سیستمها را MCS=Mission Critical Systems می نامند که اهدافی بلند مدت را در سازمان دنبال میکنند.سیستمهایی مثل نرم افزارهای مدل کسب و کار و شبیه ساز،نرم افزارهای مدیریت زنجیره تامین supply chain management و سیستمهای مدیریت چرخه کالا در سازمان.وجود اشکال در این سیستمها اگرچه کارهای روزمره سازمان را تحت تاثیر چندانی قرار نمیدهد اما باعث میشود سازمان در طول زمان با مشکلات راهبردی و تصمیم گیری مواجه شود.در نتیجه فعال بودن بدون وقفه این سیستمها از اهمیت بالایی برخوردار است.
2-سیستمهای حساسی که در کسب و کار سازمان تاثیر گذارند.این سیستمها نرم افزارهایی هستند که در اهداف کوتاه مدت سازمان تاثیر گذارند و به BCS=Business critical systems معروفند.به عنوان مثال میتوان از سیستمهای بانکداری،مدیریت کالا،ERP,CRM نام برد.
وجود هر گونه مشکلی در این سیستمهای حساس باعث از دست دادن مشتریان سازمان خواهد بود.
3-سیستمهایی که به صورت روزانه و بدون وقفه در سازمان به کار گرفته میشوند. از این گروه از سیستمها که به OCS=operation critical systems معروفند،میتوان به سیستمهای ATM سیستم سفارش خرید و صدور صورتحساب خرید و مدیریت ایمیل اشاره کرد.خرابی در این سیستمهای حساس یا هر گونه اختلال در این نرم افزارها باعث ضررهای مالی و پرداخت هزینه های هنگفتی برای سازمان خواهد شد.
هدف هر یک از گروههایی که سیستمهای بالا را تولید میکنند،باید رسیدن به حداقل 4 فاکتور مهم کیفیت سیستم نرم افزاری باشد.فاکتور اول:قابلیت اطمینان بالا در نرم افزار است.این فاکتور روی عملکرد و کارایی سیستمها برای انجام فعالیت به صورت کامل و مستمر در تمامی مراحل ورود اطلاعات،پردازش اطلاعات و خروجی آن تاکید دارد.فاکتور دوم:دسترسی پذیری بالاست که تاکیدش بر فعال و عملیاتی بودن سیستم به صورت شبانه روزی است.فاکتور سوم و چهارم نیز بر امنیت سیستمها تاکید دارد.برای رسیدن به کیفیت بالا در این فاکتورها هیچگونه عملیات خطر آفرینی در سیستم وجود ندارد(مثلا از عملیات حذف رکورد به صورت کلی استفاده نشود.)
و ریسک امنیتی سیستمها حداقل ممکن است.راهبرد تولید سیستمهای حساس باید بر محور اجرای متدهای طراحی و تولید نرم افزار برای رسیدن به سیستمی باشد که در آن هیچگونه اشکالی وجود نداشته باشد.اشکالی که در این سیستمها به وجود می آید ممکن است براساس موارد جزئی باشد که در مراحل طراحی،آنالیز و تمامی مراحل چرخه تولید رخ دهد.در این سیستمها نباید از تکنیکهای برنامه نویسی که احتمال خطا را بالا میبرند،به هیچ عنوان استفاده کرد.این تکنیکها عبارتند از:
عبارتهای pointer-Goto ها-recursion ها.
استفاده از وراثتهای پیچیده نرم افزاری و استفاده زیاد از اعداد-Floating point و تبدیل آن.این سیستمها از لحاظ معماری و کد باید در هر مرحله از تولید با متدهای Formal و Informal آزمایش شود.ضمن آنکه باید از تکنیکهای RDD و SRS که به صورت کامل و صحیح در آن به کار برده شده اطمینان حاصل کرد.
 
بالا