روشهای نرمال یکپارچه برای محیط مشخصات فراهم میکند تا بسوی مدلهای تحلیلی که کاملتر ناسازگار و با ابهام کمتر از روشهای سنتی یا شیگرا باشد رهنمون میشود.
امکانات تشریحی تئوری مجموعهها و nofation های منطقی نا مهندس نرمافزار یک گزاره شفاف از واقعیات(نیازمندیها) را ایجاد کند.
مفاهیم زیرساختی که بر روشهای نرمال حاکم است(1) data inuariant یک شرط که درست است در سراسر اجرای سیستم که شامل مجموعهای دادههاست stste(2) .
دادههای ذخیرهشده که توسط سیستم به آنها در دسترس است و تغییر میکنند 431 عملیات، یک عملیات که در سیستم قرار دارد و دادهها را به State مینویسد یا از آن میخواند.
یک Stat با دو شرط شناخته میشود: شرط پیشین و شرط پسین.
ریاضیات گسترHeuristic, notation مرتبط با مجموعهها و مشخصات سازنده عملکردهای مجموعهای، عملکردهای منطقی و دنبالهها – اساس روشهای نرمال را شکل می دهند. ریاضیات گستر در یک زبان مشخصات نرمال همچون z اجرا میگردد. z همچون همه زبانها مشخصات نرمال دودامنه معنایی و نحوی را دربرمیگیرد. دامنه بخوبی از یک نماد شاسی استفاده میکند که کاملاً توسط notation های مجموعهها و محاسبات(predicate) دامنه معنایی زبان را قادر میسازد تا نیازمندیها را به یک روش موخر بیان نمایید. ساختار Z ترکیبی از شماهاست. ساختارهای جعبهمانند که متغیرها و روابط مابین آنها را مشخص میکند.
تصمیم برای استفاده از روش نرمال باید با توجه به هزینههای اولیه به همان نحو که به تغییرات فرهنگی مرتبط با یک تکنولوژی اساساً متفاوت توجه شدهاست باشد. در اغلب نمونهها، روشهای نرمال بهترین منفعت را برای سیستمهای کار بحرانی یا ایمنی – بحرانی ایجاد مینماید.
جدول 1-25 خلاصهای از nolafion Z ( نهادهای Z )
notation های z پایه تئوری مجموعهها typed و منطق first-ader است.
Z فراهم میکند یک ساختار که شما نامیده میشود تا operation , State های یک مشخصات را شرح دهد. یک شما گروهبندی میکند اعلان متغیرها را بایستی از Spredicate که تحلیل میکند احتمالاً مقدار یک متغیر در Z شمای X به فرم زیر تعریف میشود.
.
.
.
25.7 روشهای نرمال – راهپیشرو
هرچند نرمال تکنیکهای مشخصات برپایه ریاضیات هنوز به صورت گسترده در صنعت بکار نمیروند آنها مزیتهای اساسی نسبت به تکنیکهای غیرنرمال دارند.
Lisko و Bresios این را به صورت خلاصه زیر بیان میکنند.« مشخصات نرمال میتواند بصورت ریاضیاتی مطالعه میشود در حالیکه مشخصات غیرنرمال نمیتوانند برابر مثال یک برنامه صحیح میتواند براساس مشخصات خود درآید. یا دو مجموعه مشخصات میتواند معادل باشند.
فرمهای مشخص با تمامیت یا عدم سازگاری میتوانند خودکار شناسایی شوند. شما بعلاوه مشخصات نرمال ابهام را از بین میبرد و سختی را در گامهای نخست فرآیند مهندسی نمیتواند تقویت نماید.
اما مشکلات باقی میماند مشخصات ذیل عمدتاً برروی کارکرد و زمانبندی دادهها زوم نمودهاست. و جنبههای رفتاری یک مسئله برای ارائه دشوارتر است. بعلاوه برخی عناصر مسئله( همچون رابط انسان/ ماشین) توسط تکنیکهای گرافیکی یا prototype بهتر مشخص میشود. در نهایت مشخصات که با استفاده از نرمالمتر سختتر برای یادگیری از متدهایی همچون ساختاری است و یک شوک فرهنگی معنادار برای برخی شاغلین نرمافزار ایجاد میکند.
به همین دلیل محتمل است که نرمال تکنیک مشخصات زیاضیایی پایهای برای ساخت Cass tools ها جدید در آینده شکل میدهد.
هنگامی که واگر رخ دهد مشخصات بر پایه ریاضیات احتمالاً توسط بخش گستردهتری از جامعه مهندسین نرمافزار پذیرفته میشود.
.b توبایست به صورت لکافی مستندکنی
روشهای نرمال یک روش موجز غیرمبهم و سازگار را برای مستندکردن نیازمندیهای سیستم فراهم با این حال این توصیه شده که یک سلسله یاداشتهای زبان طبیعی همراه مشخصات نرمال برای خدمتکردن بعنوان یک مکانیزم برای کمک کرده تا خوانندهها سیستم را درک کنند.
Compromise
7 - توبایست استاندارد کیفیت خود را.
« هیچ چیز خالص در مورد نرمال متد وجود ندارد» [BOW,&] به همین دلیل دیگر فعالیتهای SQA (فصل 8 ) بایست ادامه یابند تا بکار روند بعنوان سیستمی که توسعه داده میشود.
8- تونبایست متعصب با شیء
یکی مهندسین نرمافزار بایست بدانی که روشهای نرمال یک تضمین برای درستی نیست. این ممکن است( شاید باید گفت، محتمل) است که سیستم نهای حتی وقتی با روشهای نرمال توسعه دادهمیشود ممکن است از قلم افتاد که باگهای کوچک و دیگر خصایصی که مورد انتظار نیست را دارا باشد.
9 : تو باید تست کنی، تست کنی و دوباره تست کنی.
اهمیت تست نرمافزار در فصول 23,18,17 شرح داده شود روشهای نرمال مهندسین نرمافزار را از نیاز به خوب – برنامهریزی شده رفتارکردن در سراسر تست، مبرا نمیکند.
10 – توبایست دوباره استفاده کنی.
در عبارت پیشین تنها روش متوسط به کاهش هزینههای نرمافزار و افزایش کیفیت استفاده از reuse است.( فصل 27 ) روشهای نرمال این واقعیت را تغییر نمیدهند. در حقیقت این مشکل است که روشهای نرمال یکی رویکرد مناسب هستند هنگامیکه کامپونتها برای کتابخانههای قابل استفاده مجدد ساخته میشوند.
256 ن فرمان روشهای نرمال
تصمیم برای استفاده از روشهای نرمال در دنیای واقعی به همین سادگی پنداشته شود. Hinchky, Bowan « ن روشهای نرمال» را بعنوان راهنمایی برای این رویکرد مهم مهندسی نرمافزار را بکار میبرند ابداع نمودند.
1. تو بایست notation اختصاصی خود را انتخاب کنی برای انتخاب مؤثر از میان تعداد گسترده زبانهای مشخصات نرمال یک مهندس نرمافزار باید واژگان زبان، نوع کاربرد مخصوص و گسترده استفاده از زبان را در نظر بگیرید.
2. تو باید فرمال بکنی اما نه بیش از حد
این بیان میکند که نیازی نیست تا روشهای فرمال را در تمام جنبههای سیستم اصلی بکار گرفت مؤلفههایی که ایمنی بحرانی هستند نخستین انتخاب هستند. بعلاوه مؤلفههایی که در آنها اشتباه غیرقابل پذیرش است.( به دلایل کاری).
3- تو باید هزینهها را تخمین بزنی.
روشهای فرمال هزینههای ابتدایی زیادی دارند کارمندان مجرب، آشنایی با ابزارهای پشتیبانی استفاده از مشاور قرار داد. در بالابردن اولین هزینههای مؤثر است. این هزینه باید در نظر گرفته شود وقتی که برگشت سرمایه روشهای نرمال آزمون میشود.
4- تو باید یک استاد فرمال متد داشته باشی.
وقتی روشهای فرمال برای اولین بار استفاده میشود متخصص مجرب و رلیزنی مداوم برای موفقیت الزامی است.
5- تو نباید روشهای سنتی توسعه را ترک کنی.
این ممکن است و در بسیارری حالت دلخواه است که روش فرمال، روشهای سنتی، شیءگرا( فصل 21,12 ) در یکی بکار روند. هر کدام نکات ضعف و قوت خود را دارند. یک ترکیب اگر به درستی بکار رود میتواند نتایج شگرفی داشته باشد.