روشهای نرمال یکپارچه برای محیط مشخصات فراهم میکند تا بسوی مدلهای تحلیلی که کاملتر ناسازگار و با ابهام کمتر از روشهای سنتی یا شیگرا باشد رهنمون میشود.
امکانات تشریحی تئوری مجموعهها و 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 ) در یکی بکار روند.
هر کدام نکات ضعف و قوت خود را دارند.
یک ترکیب اگر به درستی بکار رود میتواند نتایج شگرفی داشته باشد.
این ممکن است و در بسیارری حالت دلخواه است که روش فرمال، روشهای سنتی، شیءگرا( فصل 21,12 ) در یکی بکار روند.
یک ترکیب اگر به درستی بکار رود میتواند نتایج شگرفی داشته باشد.
Remove Block Block Handler BlockQueue>O, Used/=Used\head BlockQueue Free/>free U head BlockQueue BlockQueue/ =tail BlockQueue دربردارنده BlockHandler موجب میشود که همه متغیرهایی که State را میسازند برای شمای Remove Block در دسترس هستند و اطمینان میدهد که data invirant قبل و بعد از اجرای عملیات قرارداده شدهاست.
دومین عملیات یک کلکسیون از از بلاک انتهای صف اضافه میکند ارائه شده به صورت AddBlock Nlock Handler Ablocks?:Block Ablocks?used BlockQueue/= BlockQueue Used/=Used Free/= free با توجه به پیماننامه z یک متغیر ورودی که از state میخواند و جزئی از آن نیست با یک علامت سئوال(؟) به پایان میرسد.
پس Ablocks?
یک پارامتر ورودی است که با کاراکتر؟
پایان یافته است.
استفاده از Z برای ارائه یک نمونه کامپونتت نرمافزاری مشخصات Z مجموعهای از شماها ساختاربندی شده – یک ساختار جعبه مانند که متغیرها را معرفی میکند روابط مابین این متغیرها را مشخص میکند یک شما بخش ضروی مشخصات فرمال است.
همچون رویهها( procedur یا Subroution ) برای یک زبان برنامهنویسی است.
به همان روشی که رویهها استفاده میشوند تا سیستم را ساختاردهی کنند.
شماها نیز برای ساختاردهی مشخصات فرمال استفاده میشود.
در این بخش، ما از زبان مشخصات Z استفاده کنیم تا مثال block Hedler را که در بخشهای 25.1.3 و 25.3 بحث شده را مدل میکنیم یک خلاصه notation زبان Z در جدول 25.1 ارایه شده مثال پیشرو از شما State ها و dat invonanf ها را شرح میدهد.
جدول 25.1 Block Handler Used , free : p Blocks Block Queue: Seq P BLOCKS Usde ferr= Usedferr= AllBlacks i : dom BlockQueue.BlockQueue I C used I,j: dom Block Queue aij BlockQueue I BlockQueue j = Q شما از دو بخش تشکیل شده بخش بالایی خط میانی متغیرهای State را تعریف میکند.
در حالیکه بخش زیریین آن data inviront را شرح میدهد هنگامیکه data inviront را و state ارائه شده در یک شما را در شما دیگر بکار میبریم پیش از نام آن از نماد استفاده میکنیم بنابراین اگر شمای پیشین روشهای دیگری نباید به صورت Black Handler استفاده میشود.
بعنوان آخرین جمله اشاره میکنیم که شما 5 میتواند برای شرح عملیات بکارگرفته شود.
مثال زیر شمایی است که عملیات حذف یک عنصر از صف بلاک را شرح میدهد.
دامنه معنایی یک زبان مشخصات فرمال اشاره میکند که چگونه زبان نیازمندیهای سیستم را ارائه میکند.
برای مثال یک زبان برنامهنویسی دارای یک مجموعه از معانی فرمال است که توسعهگر نرمافزار قادر میسازد تا الگو ریتمهای که ورودی را به خروجی تبدیل میکند را مشخص کند.
یک گرامر فرمال( همچون BNF ) می تواند استفاده شود تا نحو یک زبان برنامهنویسی را شرح دهد.
با این حال یک زبان برنامهنویسی نمیتواند یک زبان مشخصات خوب باشد زیرا آنها توابع کامپیوتری را میتواند ارائه کند.
یک زبان مشخصات باید محدوده معنایی داشته باشد که گسترده باشد یعنی اینکه محدوده معنایی یک زبان مشخصات باید قادر به ارائه ایدههایی همچون« برای متغیر x در یک مجموعه نامتناهی A وجوددارد Y در یک مجموعه نامتناهی B به نحوی که P که برای Y,X نگهداری شده(Hads for ).
دیگر زبانهای مشخصات معنای را بکار میگیرند که قادر میسازند ارائه مشخصات رفتار یک سیستم برای مثال بخود معنایی میتوانند توجه داده شود تا State ها و تغییراتشان رویدادها و تأثیرشان بر تغییرات State همه همگامبندی و زمانبندی را مشخص میکند.
این ممکن میشود با استفاده از انتزاعهای معنایی مختلف تا همان سیستم را در روشهای مختلف شرح دهند.
ما این کار را در روش کمتر فرمال در فصول 21,12 انجام دادهایم.
جریان داده و پردازشهای معادل با استفاده از dfd شرح داده شده و رفتار سیستم با استفاده از «State transition diagram » نمایش داده شده.Analogous notation استفاده شد تاسیستمهای شیءگرا را شرح دهد.
معنای هر یک از ارایهها نمای کاملی از سیستم را فراهم میکند.
برای نشاندادن این رویکرد وقتی روشهای فرمال استفاده میشوند در نظر میگیریم که یک زبان مشخصات فرمال استفاده شد تا مجموعهای از اتفاقها که موجب میشوند تا State خاص در سیستم رخ دهد را شرح دهد.
دیگر رابطه فرمال همه توابعی که داخل یک stat خاص رخ میدهد را نشان داد.
هر دوی اینها با هم یک اشاره به رویهایی که میتواند موجب رخداد تابعی خاص شوند را فراهم کردند.
یک مجموعه از زبانهای فرمال مشخصات امروزه استفاده میشوند.UDM,LARCH,CSP و Z زبانهای مشخصاتی فرمال ارائه شده هستند که خصوصیات ارائه شده قبلی در این متن را ارائه میکنند.
در این فصل برای به نمایشدرآوردن اهدافمان زبان Z را بکار میبریم و Z مجتمع با یک ابزار خودکار که قواعد کلی (axioms) ، قوانین استنتاج و قضایای کاربردی که بسوی محک درستی مشخصات رهنمون میشود را ذخیره میکند.
معادل Used بلاک قدیمی منهای ملاکهایی که حذف شدهاند.
در این مؤلفه بیان میکنند که بلاک free جدید بلاک قدیمی به اضافه عنصر سرصف که افزوده شدهاست میباشد.
سومین مؤلفه بیان میکند که صف بلاک جدید معادل همصف بلاک قدیمی است که اینها همه عناصر بجز عنصر سرصف دومین عملیات یک مجموعه از بلاک ها را از (Ablock) به صف بلوکها اضافه میکند حالت پیش بیان میکند که Ablock مجموعهای از بلوکهای استفاده شدهاست.
Ablocks Used حالت پسین این است که مجموعه بلاکها اضافه شود به انتهای صف بلاکها در مجموعههای free,used بدون تغییر بمانند.
Block Queue1=Block Queue Used1= used Free1=free هیچ تردیدی نسیت که مشخصات ریاضیاتی صف بلاکها نسبت به زبانهای طبیعی یا مدلهای گرافیکی دشوارتر است.
منحنی اضافی نیازمند تلاش است اما مزایای فراهم آمده از بهبود سازگاری و تمامیت میتواند این نوع از کاربردها را توجیه کند.
25.4- زبان مشخصات فرمال یکی زبان مشخصات فرمال معمولاً ترکیبی از سه مؤلفه اصلی است:1) یک نحو که natation های ویژه را تعریف ؟؟
میکند با توجه به مشخصاتی که ارائه شده2) معنا که کمک میکند تا یک« جهان از اشیاء» را تعریف کنیم که برای تشریح سیستم بکار میرود.3) مجموعهاتی از روابط که قوانین را تعریف میکند قوانینی که اشاره میکند به اینکه کدام اشیاء بصورت مناسب مشخصات را برآورد میکنند.
Syntactic domain :( دامنه نحوی یک زبان مشخصات فرمال اغلب برپایه نحوی است که از natation های نظریه مجموعههای استاندارد و محاسبات predicat برگرفته شدهاست.
برای مثال متغیرهایی همچون z,y,x یک مجموعه از اشیاء را که وابسته به مسئله هستند را شرح میدهند( گاهی خوانده میشود بنام دامنه مباحثه) و استفاده میشود در اتصال با عملکردهای شرح داده شده در بخش 25.2 اگرچه نحو معمولاً نمادین است آیکونها( مثلاً سمبلهای گرافیکی همچون جعبهها، فلشها و دوایر) میتواند استفاده شود اگر آنها غیرمبهم هستند.
این بسیار مشابه اعلان متغیر برنامههاست بیان میکند که used,free مجموعهای از بلاکها و BlockQueue یک دنباله است هر عنصر یک