جلسه چهارم
روشهای متداول در مهندسی نرمافزار:
این روشها تعیین میکنند که در هریک از گامهای تحلیل, طراحی, پیادهسازی و تست چه فعالیتهایی و چه کارهایی انجام دهیم. روش مورد استفاده, روش ساختیافته است که این گامها را بهتر آموزش میدهد. تحلیل هرچند اولین گام در مهندسی نرمافزار است اما تحلیل ساختیافته به دنبال طراحی ساختیافته ایجادشد چرا که گام طراحی مهمتر از تحلیلاست. در هر گام سطح انتزاع کمتر میشود و رفته رفته به واقعیت نزدیکتر میشویم.
قبل از گام تحلیل, مهندسی سیستم انجام میشود و مهندس سیستم, نقش نرمافزار را مشخص کرده است. مفاهیم سطح بالا تعیین میشوند و به نحوه و جزییات پیادهسازی کاری ندارد. پس از آن مدیر اطلاعات دریافتی را تخمین میزند و وارد جزییات نمیشود و تنها برای هر گام تعیین شده باید بازه زمانی و هزینه و تعداد افرادو .. رامشخص میکند و اعضای تیمها درهرگام در آن بازه زمانی تعیین شده باید وظیفه خود را انجام دهند.
اصول و مفاهیم اولیه تحلیل:
چرا تحلیل میکنیم؟ چرا به آن نیاز داریم؟ هر عملی نیاز به تفکر دارد, ما باید در مورد عملکرد و مراحل کارفکر کنیم. هرچقدر آشنایی ما کمتر باشد, تحلیل بیشتری انجام میشود.
کار تحلیل توسط مهندسین نرمافزار که در اینجا تحلیلگر هستند انجام میشود. محصول کار مشخصه تحلیل نرمافزار است.
فعالیتهای عمده تحلیل نیاز:
1) شناسایی مسئله: تحلیلگر برای شناسایی مسئله باید اطلاعات مورد نیاز را از راههای مختلف جمعآوری کند. تحلیلگر میتواند از راههای مختلف با مشتری در ارتباط باشد.
1-1)به افراد زیادی ارائه میشود ولی افراد کمی نتایج را تحویل میدهند و جلوی جریان ایدهها و تفکر را میگیرد و نباید جواب معلوم باشد و یا جواب را به مخاطب تلقین کرد.
1-2)کارکردن و حضور در محیط: از نزدیک میتوان مشکلات را لمس کرد و در جریان کار اپراتورها قرار گرفت.
1-3)مصاحبه: از قبل باید تعییم وقت کرد و اطلاع میدهند از کدام فرد خاص و در چه زمینهای سوال میپرسند و باید دارای زمانبندی باشد. مدیریت قوی داشته باشد. در اولین ملاقات تحلیلگر و مشتری تلاش میکنند اطلاعات زیادی از طرف مقابل کسب کنند. هزینه و زمان زیادی صرف میشود. این روش در کنار سایر تکنیکها مناسب است.
1-4)مشاهده, مرور مستندات و رویههای کاری: مشابه حضور در محیط است و سبب میشود از نحوه عملکرد سیستم قبلی و کارکرد و مشکلات آن مطلع شود.
1-5)روش Fast : در این روش همه اعضا از همه بخشهای مختلف کل سیستم و در کنار نماینده مشتری جلسهای برگزار میکنند و پیش از جلسه مستنداتی در مورد محصول به افراد ارائه میشود و آنها باید موجودیتهای مسئله را شناسایی کنند, سپس در جلسه این موجودیتها و محدودیتها را کامل بررسی میکنند و سپس به گروههایی تقسیم میشوند که جزئیات بیشتر این موجودیتها را شناسایی میکنند و در آخر به کل اعضا اعلام میکنند.
1-6)روش QFD : هدف اصلی حداکثر کردن رضایت مشتری است و سعی میشود سه نوع نیاز تشخیص داده شود:
§ معمولی: آنچه مشتری خودش تعیین میکند.
§ موردانتظار: آنچه که مشتری خودش تعیین نمیکند اما بدیهی است باید وجود داشته باشد.
§ غیرمنتظره: مشتری چنین انتظاری نداردو اگر باشد رضایت را بالا میبرد.
1-7)نمونهسازی: روش مناسبی برای جمعآوری اطلاعات است و به طور کلی دو نمونه است:
§ انتهای بسته: نمونه دورانداختنی؛ نمونهای را فقط برای جمعآوری اطلاعات میسازند.
§ انمتهای باز: نمونه افزایشی-تکاملی؛ نمونهای را برای جمعآوری اطلاعات میسازیم و در گامهای بعدی آن را در جهت تکمیل پروژه اصلی به کار میبریم.
2) ارزیابی و سنتز راه حل: در بعضی از روشهای جمعآوریاطلاعات مثل Fast, QFD و نمونهسازی راهحل هم ارائه میشود. در این مرحله حالا که مسئله و نیازها و خواستهها روشن و مشخص شده, راهحل را باید تعیین کنیم.
3) مدلسازی: راهحل تعیین شده را مدل میکنیم. یک فلوچارت یا شکل گرافیکی ساده بهراحتی میتواند راهحل را نشان دهد و برای نشان دادن از زبان مدلسازی که زبان مشترک بین تحلیلگران و طراحان و مهندسین نرمافزار است استفاده میکنیم.
4) تعیین و شناسایی مشخصات مسئله: حاصلجمع مدلهای مختلف, مشخصه تحلیل را میسازد.
5) مرور: یک FTR به مشخصه تحلیل اضافه میکنیم و این مشخصه تحلیل به مخزن اضافه میشود.
اجزای مشخصه تحلیل:
§ محدوده اطلاعات نرمافزار: مدل ERD, مدل DFD, مستند Pspec, مدل CFD, مستند Cspec
§ توابع یا عملکرد نرمافزار: مدل DFD
§ رفتار نرمافزار: مدل STD
§ کارایی
§ محدودیتها
§ DD (Data Dictionary): هر شی تولید شده و به کار رفته در نرمافزار با توضیح کامل در DD قرار میگیرد. هرجا دادهای تولید شود اسم داده, نام مستعار, چه جایی استفاده شده و توضیحات اضافی.
§ Help کاربری
§ معیارهای اعتبارسنجی: پروژه خوب باید چه معیارها و ویژگیهایی داشته باشد.
مدلسازی تحلیل نیازها:
1) مدل ERD : مراحل تولید این مدل:
1-1)تشخیص انواع موجودیتها در فضای مسئله
1-2)تشخیص ارتباط میان هر زوج موجودیت و اینکه اصلا ارتبتباطی میان آنها وجود دارد یا نه
1-3) تشخیص انواع ارتباط میان هر زوج موجودیت
1-4)تشخیص درجه و الزام ارتباطات
1-5)تشخیص صفات موجودیتها
1-6)مرور
انواع ارتباط میان موجودیتها:
§ سلسله مراتبی: تمام خصوصیات سطح بالاتر را به ارث میبرند و علاوه برآن دارای صفات دیگری هم هستند.
§ شرکتپذیری: هر یک از اجزای تشکیل دهنده سطح بالاتر هستندو مشخصات خاص خود را دارند.
2) مدل DFD : هم محدوده اطلاعات را در نظر دارد و هم توابع عملکرد سیستم را.
رسم نمودار DFD: در ابتدا سیستم را به چند زیر سیستم تقسیم میکنیم
1) ابتدا فرض بر این است که کل سیستم یک فرآیند است و فقط موجودیتها و دادههای ورودی و خروجی را مشخص میکنیم. به DFD سطح صفر, Contex Diagram میگویند.
2) ارتباط زیر سیستمها را مشخص کرده و نمایی کلی از سیستم را بدست میآوریم و تبدیلات را در حالت کلی نشان میدهیم. کاری به موجودیتها نداریم و فقط دادههای ورودی و خروجی را مشخص میکنیم.
3) در گام بعدی برای تهیه و تولید DFD سطح دوم, یکی از زیرسیستمها را انتخاب کرده و تجزیه میکنیم.
3) مدل CFD: روش رسم آن است که نمودار DFD را رسم کنیم و سپس تمام خطوط داده را حذف کنیم و رویدادها را مشخص کنیم. یک رویداد که وارد میشود یک سری اطلاعات کنترلی برای فرآیند فراهم میکند. صرفا به عنوان یک داده و اطلاع روی آن فعالیت انجام میشود و موجب فعالسازی فرآیندی نمیشود. جدولی به نام Pat وجود دارد که شامل رویدادهای مختلف و فرآیند فعال شدنی در آن رویدادهاست.
4) مدل STD: حالتهای مختلف نرمافزار رانشان میدهد:
4-1) انتظار تا کسی کاری را انجام دهد.
4-2) دریافت ورودی
4-3) محاسبه خروجی
4-4) نمایش خروجی
ü ERD جداول پایگاه داده و DFD معماری را میدهد.
ü Pspec و Cspec طراحی مولفههای نرمافزار را در میآورند.
ü STD و CFD برای طراحی واسط کاربری به کار میرود.