۱۳۸۸ اسفند ۲۳, یکشنبه

خطاناپذیرسازی سیستم های اطلاعاتی

یکی از خطراتی که پروژه های توسعه سیستمهای اطاعاتی را تهدید می کند، عدم توجه کافی به شناخت و پیاده سازی قواعد تجاری (Business Rules) مورد نیاز در سیستم است.

متأسفانه در خیلی از موارد، تمرکز اصلی تحلیلگران بر مدل سازی داده ها (Data Modeling) ، مدل سازی فرایندی(Process Modeling) و مدل سازی کارکردی (Function Modeling) است و وقتی این فراورده ها تهیه می شوند، تصور می رود فاز تحلیل تمام شده است. در فاز ساخت نیز تمرکز اصلی بر ساخت فرم ها و گزارش هایی است که کار کنند.

اگر قواعد تجاری، به خوبی شناسایی نشده و در سیستم، پیاده سازی نشوند، رعایت آنها را به کاربران واگذار کرده ایم. از کاربران انتظار می رود خودشان قواعد تجاری را رعایت کنند که البته تجربه نشان داده که رعایت نخواهند کرد. من قانونی دارم که به صورت تجربی بدست آمده و می گوید:

اگر سیستم (اطلاعاتی) شما سوراخی به اندازه یک سوزن داشته باشد، حتماً کاربر زانویش را در آن فرو خواهد کرد!

که البته بیانی بدبینانه و طنزآلود از قانون مورفی است که می گوید:

هر آنچه که می تواند به درستی انجام نشود، سرانجام زمانی به اشتباه انجام خواهد شد.

به عنوان مثال، اگر فیلدی برای شما مهم است اما در سیستم، آنرا اختیاری(null able) دیده اید، مطمئن باشید که کاربر آنرا وارد نخواهد کرد. یا اگر کنترل نکنید که تاریخ پایان یک فعالیت، زودتر از تاریخ شروع آن نباشد، حتماً کاربر رکوردهایی وارد می کند که این شرط را ندارند. پس از مدتی به جایی می رسید که داده های سیستم، قابل اتکا نیستند و دیگران نیز سیستم را به باد تمسخر خواهند گرفت.


طراحی و ساخت سیستم ها باید به گونه ای انجام شود که جلوی خطاهای کاربر را بگیرد نه اینکه رعایت کنترل ها و قواعد را به کاربر بسپارد.

هیچ نظری موجود نیست: