مراحل طراحی يک نرم افزار :
1ـ تعريف نيازمندي ها
2- تحليل نيازمندي ها
3- زمان بندي پروژه
4- هزينه ها
5- ساختار بانک اطلاعاتی
6- طراحي سيستم
7- ارزيابي و تعيين صحت نرم افزار
8- نگهداری نرم افزار
1ـ تعريف نيازمندي ها:
در اين قسمت مشخص مي شود كه سيستم چه خدماتي بايد انجام دهد و محدوديتهاي موجود در عمليات و توسعه سييستم نيز مشخص مي شوند كه اين فعاليت ها را مهندسي خواسته ها گويند.
مهندسي خواسته ها يك مرحله حياتي ويژه در فرايند نرم افزار است كه خطاهاي موجود در اين مرحله منجر به مشكلاتي در طراحي و پياده سازي سيستم مي شود .
چهار مرحله اصلي در فرايند مهندسي خواسته ها عبارتند از :
1ـ1ـ مطالعه امكان سنجي :
هدف از امكان سنجي ارزيابي اوليه جهت قبول يا رد پيشنهاد انجام پروژه نرم افزاري است.
تحليل گر مجرب بايد قادر به شناخت نيازها و ارائه راه حل هاي ممكن براي انجام پروژه باشد و هزينه هاي سخت افزار و نرم افزار و افراد لازم براي اجراي پروژه را مشخص نمايد. تخمين ناصحيح هزينه ها مي تواند براي تحليل گرو سازمان وي فاجعه آميز باشد موفقيت در امكان سنجي مستلزم تجربه زياد برنامه نويسي و شناخت كافي از امكانات سخت افزاري، ايجاد شبكه ما و ابزار جانبي كامپيوتر و بالاخره آشنايي كامل با سيستم هاي عامل، زبان هاي برنامه سازي، بسته هاي نرم افزاري و موارد كاربرد آنها است.
امكان سنجي شامل 7 مرحله است:
1. بررسي صحت وميزان اهميت متن تقاضاي پروژه: براي اين منظور بايستي نمودار سازماني افراد و فعاليتهايي كه در پروژه كار تحليل كر براي يافتن واقعيات در مورد چگونگي مشكلات سيستم هاي موجود و راه حل هاي پيشنهادي براي رفع آن آغاز مي شود بايد دقت كنيم كه هيچ گونه تفاوتي بين خواسته ها و راه حل هاي ارائه شده براي رفع مشكلات وجود نداشته باشد.
2. بررسي و تجليل اهداف سيتم جديد: اهداف بر اساس اولويت و تقدم اجرايي طبقه بندي مي شوند و براي هر هدف جديد افراد و واحدهاي زينفع مشخص مي شوند بايد اهداف سيستم جديد در بر گيرنده راه حلي براي مشكلات موجود باشد.
3. تعيين موجوديتهاي خارج از سيستم كه مستقيماً با آن در ارتباط مي باشد اين مرحله در غالب بررسي داده هاي ورودي و خروجي سيستم مشخص مي شود كه توسط دياگرامي به نام دياگرام متن انجام مي شود. دياگرام متن شاخص ورودي و خروجي هاي سييستم در حالت كلي مي باشد. پس از مشخص نمودن دياگرام متن وظايف اصلي سيستم مشخص مي شود. كه براي هر وظيفه شرحي كوتاه و واحد جدا كننده آن نيز مشخص مي شود.
4. تعيين عوامل محدود كننده و عواملي كه اجراي پروژه را مكمل است به مخاطره بياندازد و يا به عبارت ديگر ميزان ريسك در موفقيت پروژه را مي توان مشخص نمود همچنين ريسك استفاده از تكنولوژي هاي جديد براي پياده سازي سيستم مكانيزه جديد را بررسي كرد.
5. تعيين و تاييد دامنه، وسعت و محدوده هاي پروژه: در اين مرحله بايستي محدوده هاي پروژه را به تاييد كارفرما رساند و كوتاهي در اين امر مي تواند در انتهاي پروژه مشكلاتي را فراهم كند.
6. در ارائه راه حل هاي مختلف و تكنولوژي هاي سخت افزار و نرم افزار توسط تحليل گر به كارفرما واضح است كه در اين مرحله شناخت و تجربه كافي تحليل گر از امكانات سخت افزار و نرم افزار موجود بسيار حائز اهميت است.
7. بررسي اقتصادي پروژه: در اين مرحله هزينه هاي اجراي پروژه و مزاياي حاصل از آن براي كارفرما مشخص مي شود.
بطور كلي گزارش امكان سنجي مرجع و معياري براي مديريت در شناخت ميزان اهميت و ضرورت يك پروژه است.
اين مطالعه مشخص مي كند كه آيا سيستم پيشنهادي از نظر اقتصادي مقرون به صرفه است يا نه؟ و آيا با محدوديتهاي فعلي بودجه قابل انجام است يا خير؟
1ـ2 استخراج و تحليل خواسته ها:
در اين مرحله خواسته هاي سيستم از طريق مشاهده سيستم موجود، بحث و مصاحبه با كاربران و تهيه كنندگان سيستم، تهيه پرسشنامه تحليل وظايف و ... به دست مي آيد.
پرسشنامه: در اين پرسشنامه هايي از طرف تحليل گر، جهت گرد آوري اطلاعات تهيه و در اختيار كاربران سيستم گذاشته مي شود.
به طور مثال در يك سيستم آموزش سؤالات زير مي تواند مطرح شود:
نظر شما در مورد سيستم آموزش چيست؟
به نظر شما كدام قسمت سيستم آموزش براي افراد مشكلات زياد ايجاد مي كند؟
براي افزايش سرعت عمليات سيستم چه پيشنهادي داريد؟
مشكل اين روش دريافتن افراد صاحب نظر براي پاسخگويي است و مزيت آن گردآوري سريع و مستند اطلاعات است.
مصاحبه: مسلماً قبل از انجام مصاحبه بايد ليست مصاحبه شوندگان تهيه شود. براي اين منظور مي توان از چارت سازماني استفاده كرد.
سه مرحله عملياتي شامل آماده سازي، مصاحبه و تهيه مستندات مي توان در نظر گرفت.
جهت آماده سازي ضمن تعيين وقت ملاقات ها بهتر است خلاصه اي از موضوع مصاحبه در اختيار مصاحبه شونده قرار داده شود و در ضمن انجام مصاحبه هدف از سؤالات خود را دقيقاً مشخص نمود.
زمان مصاحبه نبايد از 2 ساعت تجاوز كند. ضمن مصاحبه بايستي مطالب زير را مد نظر قرار داد:
پس از انجام مصاحبه گزارش مصاحبه جهت تصحيح و تاييد به شخص مصاحبه شونده تحويل و براي وي توضيح داده مي شود و نهايت نتايج به اطلاع مديريت مي رسد.
1ـ3 مشخصات خواسته ها:
فعاليتي است كه خواسته هاي به دست آورده در اثناي فعاليت تحليل را به مستنداتي ترجمه مي كند كه مجموعه اي از خواسته ها را تعريف مي كند.
1ـ4 اعتبار نسبي خواسته ها:
اين فعاليت خواسته ها را از نظر واقعي بودن، سازگاري و تماميت بررسي مي كند.
2- تحليل نيازمندي ها:
در اين مرحله مشكلات سيستم موجود بررسي و راه حل هاي ممكن ارائه مي شود. مسلماً لازم است كه قبل از ارائه هرگونه راه حلي با نگرش سيستمي در شناخت مسائل تعريف دقيقي از مسئله فراهم شود. براي اين منظور در نگرش سيستمي به صورت زير عمل مي شود:
نهايتاً از ديدگاه SSADM تحليل نيازها شامل سه مرحله مي باشد:
2ـ1 شناخت نيازهاي سيستم:
مراحل شناخت به صورت زير است:
2ـ2 انتخاب راه حل:
هدف انتخاب بهترين راه حل، كامپيوتري براي برآورده كردن نيازهاي كاربر است. راه حل ها ممكن است بيانگر امكانات مختلف براي ورود و خروج اطلاعات وابسته به نيازهاي كاربر باشد.
نقش و وظيفه كاربر در راه حل هاي پيشنهادي نيز ممكن است دستخوش تغييرات شود، چگونگي عملكرد سيستم به صورت Batch يا Online مهم است.
مسلماً سيستم online امكانات بيشتري را فراهم مي كند امّا هزينه پياده سازي آن بيشتر است.
برنامه هايي كه بطور آماده وجود دارند و هزينهء توليد برنامه مشابه كه مي تواند به صورت خاص توليد شود نيز بايد به عنوان راه حل هاي متفاوتي مطرح شود.
2ـ3 شرح نيازها:
در اين مرحله حاصل مرحله شناخت در غالب مدل هاي تحليل و طراحي به صورت دقيق و خلاصه توسط مهندس نرم افزار مشخص مي شود.
بايد عمليات و پردازش هاي سيستم مورد نياز را مشخص كرد براي اين منظور مهندس نرم افزار با رجوع به راهنماي نيازها مدل هاي طراحي شده براي گردش داده ها، دياگرام متن و مدل منطقي داده ها در سيستم موجود را ترسيم مي كند به اين ترتيب مدل منطقي گردش داده ها، دياگرام متن و مدل منطقي داده ها براي سيستم مورد نظر مشخص مي شود. پس از تعيين مدل منطقي داده ها و مدل منطقي گردش داده ها و بالاخره تعيين نقش كاربرها در سيستم مورد نياز بايد وظايف سيستم جديد را مشخص كند. وظايف با ارجاع به دياگرام گردش داده ها تعيين مي گردد. با تعيين مسؤليت ها و داشتن ساختار مكالمات كاربر با سيستم و بالاخره دياگرام هاي ورودي / خروجي مي توان نمونه هاي اوليه از صفحات كاربر را تهيه و براي آزمايش و مشخص شدن هر گونه خط در اختيار وي قرار داد.
با توجه به مقداري كه گفته شد به بررسي و طراحي و تحليل و مستند سازي يك سيستم آموزش مانند سيستم آموزش دانشگاه مي پردازيم.
بطور كلي هر سازمان دولتي واحدي به نام اداره آموزش دارد. از جمله اين مراكز دانشگاه ها مي باشد اين واحد وظايف مختلفي را انجام مي دهند از جمله آن ها جذب استاد و دانشجو است. اگر چنين واحدي مجهز به يك سيستم ثبت نام نباشد. ثبت نام دانشجويان با مشكلاتي مواجه مي شود كه از جمله آنها مي توان تداخلي دروس را نام برد و همچون عمل ثبت نام در مدت زيادي انجام مي شود و غيره.
در حالت كلي گردش اطلاعات در محيط اين اداره را مي توان در قالب دياگرام متن زير خلاصه نمود. اين دياگرام چگونگي ارتباط واحد آموزش را با سيله واحدهاي سازمان مربوطه مشخص مي كند.
پس از ترسيم دياگرام متن بايد واحدهاي عملياتي و يا تقسيم بندي مسئوليت ها را مشخص نمود.
تقسيم كاري اداره آموزش يك سازمان به صورت زير است:
حال با در دست داشتن تقسيم بندي عملياتي اداره آموزش مي توان دياگرام جريان مستندات را ترسيم كرد.
براي اين منظور مستطيل موجود در مركز دياگرام متن را حذف نموده، واحد فني برنامه ريزي، ثبت نام و امور مالي را جايگزين مي كنيم با اين كار مشخص مي شود كه اطلاعات ورودي / خروجي سيستم به چه واحدهايي از درون سيستم انتقال مي يابد و در ضمن بين اين واحدها چه اطلاعاتي جريان دارد.
3- زمان بندي پروژه:
زمان بندي يك نرم افزار اهميت ويژه اي دارد ممكن است زمان زيادي در قرارداد قيد شود كه هر كدام معايبي را به دنبال دارد زمان بندي پروژه شامل تاريخ شروع و خاتمه و افراد مورد نياز براي انجام هر مرحله كه با استفاده از نمودار گانت انجام مي شود همچنين با استفاده از گراف pert نيز مي توان ارتباط بين مراحل پروژه را نيز معين كرد.
براي هر يك از وظايف و فعاليت ها با در نظر گرفتن وسعت و دامنه پروژه تعداد افراد مورد نياز پروژه و زمان تقريبي انجام كار مشخص مي شود پس از مشخص نمودن وظايف و فعاليت هاي پروژه بايد ارتباط آنها را با يكديگر مشخص نمود. برخي از فعاليت ها به يكديگر وابسته اند و نمي توان يكي از آنها را قبل از ديگري انجام داد.
براي اين منظور گراف وظايف ترسيم و از روش مرتب سازي توپولوژيك استفاده مي شود اين نوع گراف اصطلاحاً pert ناميده مي شود براي معين كردن ترتيب زماني فعاليت ها، تخمين زمان اجراي هر فعاليت و تعيين زمان آزاد بين فعاليت ها و بالاخره مشخص نمودن طولاني ترين وظيفه استفاده مي شود.
براي كنترل عمليات از نموادر گانت استفاده مي شود
4- هزينه ها:
يك مهندس نرم افزار خوب بايد قادر به پيش بيني دقيق هزينه هاي سخت افزاري نرم افزاري و به خصوص هزينه افراد درگير باشد. عدم دقيت در تخمين دقيق هزينه ها در اغلب موارد موجب ورشكستگي شركت هاي كامپيوتري و شكست پروژه هاي توليد نرم افزار شده است.
هزينه ها شامل اقلام زير است:
5- ساختار بانک اطلاعاتی ثبت دانشجو:
جدول درس و استاد
فيلد |
نام فيلد |
نوع فيلد |
طول فيلد |
کد درس |
Course-ID |
کاراکتر |
6 |
ترم |
Term |
کاراکتر |
3 |
کد استاد |
Teacher-ID |
کاراکتر |
5 |
نمره |
Grade |
عددی |
5 |
جدول استاد
فيلد |
نام فيلد |
نوع فيلد |
طول فيلد |
نام استاد |
Teacher-name |
کاراکتر |
20 |
کد استاد |
Teacher-ID |
کاراکتر |
5 |
جدول درس و استاد و دانشجو
فيلد |
نام فيلد |
نوع فيلد |
طول فيلد |
کد دانشجو |
Student-ID |
کاراکتر |
8 |
کد درس |
Course-ID |
کاراکتر |
6 |
کد استاد |
Teacher-ID |
کاراکتر |
5 |
ترم |
Term |
کاراکتر |
3 |
نمره |
Score |
عددی |
5 |
جدول درس
فيلد |
نام فيلد |
نوع فيلد |
طول فيلد |
نام درس |
Course-name |
کاراکتر |
20 |
کد درس |
Course-ID |
کاراکتر |
6 |
نوع درس (تعداد واحد) |
Course-type |
کاراکتر |
1 |
نمره |
Grade |
عددی |
5 |
جدول دانشجو
فيلد |
نام فيلد |
نوع فيلد |
طول فيلد |
نام دانشجو |
Student-name |
کاراکتر |
20 |
کد دانشجو |
Student-ID |
کاراکتر |
8 |
آدرس |
Address |
کاراکتر |
40 |
مدرسه |
School |
کاراکتر |
10 |
سن |
Age |
عددی |
2 |
6- طراحي سيستم:
6-1 طراحی منطقی سيستم:
هدف از طراحي منطقي تعيين منطق عملكرد سيستم مكانيزه است با ملاحظه نيازهاي كاربر در اين مرحله مكالمات بين سيستم و كاربر مشخص شده شرح نيازمندها به شرح پردازه ها و عمليات بر روي داده ها تبديل مي شود. نهايتاً حاصل كار تبديل به توصيف برنامه ها و ملزومات آنها مي شود. طراحي منطقي طي مراحل زير انجام مي شود:
ابتدا دياگرام هاي ورودي / خروجي را مي توان به ساختار مكالمات كاربر و سيستم تبديل كرد. اين دياگرام ها كه در مرحله تحليل نيازها مشخص شده بودند تعيين كننده ساختار ورود اطلاعات توسط كار و پاسخ سيستم براي انجام هر وظيفه است.
در مدل منطقي توابع بروز رساني بانكهاي اطلاعاتي هر تابع از دياگرام كه تاثير همزمان يك رويد بر چند موجوديت را تعيين مي كند ايجاد مي شود. سپس توابع لازم جهت دستيابي به اطلاعات مورد نياز در داخل بانكهاي اطلاعاتي مشخص مي شود اين توابع كه براي تهيه گزارشات بسيار ضروري هستند. حاصل مرحله طراحي منطقي بصورت زير خلاصه مي شود:
6ـ 2 طراحي فيزيكي:
هدف از طراحي فيزيكي تعيين داده ها، پردازه ها، ورودي ها و بالاخره خروجي ها با استفاده از زبان و محيط فيزيكي تعيين شده است . طرح نهايي بايد حاوي كليد جزئيات لازم جهت پياده سازي سيستم كاربردي باشد. قبل از طراحي فيزيكي بايد گزارشي از امكانات متفاوت سخت افزاري و نرم افزاري در اختيار كاربر گذاشته نشود تا تصميمات لازم اتخاذ شود.
طراحي فيزيكي از ديدگاه SSADM شامل سه عنصر اصلي به شرح زير است:
طراحي داده ها:
طراحي داده ها شامل عمليات زير مي باشد:
در ارتباط با محيط فيزيكي داده ها سؤالاتي در ارتباط با محيط سيستم بانك اطلاعاتي مورد استفاده مطرح مي شود مثلاً چگونه ارتباط بين جداول و فايلها ذخيره مي شود (ارتباط يك به چند يا ارتباط يك به يك)
تعيين نوع فيلدها در ساختار ركورها، وابسته به نوع سيستم مديريت بانك اطلاعاتي است بايد با اهدف كاهش حجم و افزايش سرعت دسترسي به داده ها نوع فيلدها را مشخص مي كنيم.
قراردادن كنترل هاي لازم جهت آزمون صحت مقادير فيلدها از نكات ديگري است كه بايد قابل توجه كاربر باشد. (نامبريك يا كاركتر يا مقدار پيش فرض)
طراحي رابط داده ها
چنان چه ديدگاهي كه از داده ها و اطلاعات ذخيره شده وجود دارد متفاوت از واقعيت فيزيكي داده ها باشد بايد رابطي جهت تفكيك داده ها ايجاد شود.
هدف تبديل طرح منطقي پردازه ها به مدل فيزيكي عمليات در سيستم جديد مكانيزه است اين عمل با در نظر گرفتن ساختار فيزيكي و محيط پياده سازي نرم افزاري و سخت افزاري مورد استفاده ايجاد مي شود.
7- ارزيابي و تعيين صحت نرم افزار:
هدف از آزمون نرم افزار ارزيابي آن در رسيدن به اهداف از قبل تعيين شده و همچنين مشخص نمودن هر گونه نقص در عملكرد سيستم است براي اين منظور در طي مراحل آزمون ابتدا مشخص مي كنند كه آيا عناصر نرم افزاري وظايف خود را به درستي انجام مي دهند و خروجي هاي مطلوب را ايجاد مي كنند. براي اين منظور روش هاي آزمون وظايف (جعبه سياه) مورد استفاده قرار مي گيرد پس از تعيين خطا مي توان با استفاده از آزمون ساختاري برنامه نويسي را بررسي كرد تا اين كه عامل خطا مشخص شود ممكن است نرم افزار كاملاً صحيح باشد و هيچ گونه خطايي نداشت باشد امّا قابل اطمينان نباشد.
8- نگهداری نرم افزار :
مرحله ای از طول عمر حيات نرم افزار است که دارای طول عمر بيشتری نسبت به هر فعاليت ديگر است.