روشهای نرمال یکپارچه برای محیط مشخصات فراهم میکند تا بسوی مدلهای تحلیلی که کاملتر ناسازگار و با ابهام کمتر از روشهای سنتی یا شیگرا باشد رهنمون میشود.
امکانات تشریحی تئوری مجموعهها و 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 یک دنباله است هر عنصر یک مجموعه از بلاکها خواهد بود.
Data invairant میتواند به شکل زیر نوشته شود: Used free = Used free=All Blocks I=dom Block Queue .
Block Queue i Used i,j: dom Block Queue .
ij BlackQueue iBlock Queue j مؤلفههای ریاضیاتی data invirant شامل چهار عنصر بالایی است مؤلفههای زبان طبیعی پیشتر شرح داده شدهاست تحقیق خط از data invirant بیان میکند هیچ عنصر مشترکی در بلاکهای free,used نباشد.
دومین خط بیان کند که کلکسیون بلاکهای استفاده شده و آزاد همواره مساوی کل بلاکها در سیستم است.
سومین خط مشخص میکند که i امین عنصر در صف بلاک همواره با یک زیر مجموعه از بلاکهای استفاده شدهاست.
خط آخر بیان میکند ، برای هر عنصر صف بلاک که مشابه نیستند هیچ بلاک مشترکی در دو عنصر وجود ندارد.
دو مؤلفه نهایی که به زبان طبیعی آمدهبود از آنجائیکه free,used مجموعه هستند و بنابراین تکرار پذیر نیستند نیار بیان ندارد.
بخش عملیاتی که ما بایست تعریف کنیم این است که حذف کردن یک عنصر از هر صف بلاک به حالت پیشین که با سرعت حداقل یک آیتم در صف باشد.
Block QueueO حالت پسین این است که در صف باید حذف شده و در مجموعه بلاکهای آن در حالت پسین این است که سرصف باید حذف شده و در مجموعه بلاکهای آز در قرار گیرد و صف بایست خروج عنصر را نشان دهد used= used\head Block Queue free= free head Block Queue Block Queue= tail Block Queue یک شیء که در بسیاری از روشهای فرمال وجود دارد این است که مقدار یک متغیر بعد از عملیات به prim نشان دادهمیشود.
از اینرو نخستین مؤلفه بیان میکند ک بلاک used جدید(used) .
از آنجا که یک دنباله مجموعه از جفتهاست همه عملگرهای شرح داده شده در بخش 25.2.2 قابل استفاده است وقتی که دنباله در یک State استفاده میشود باید به کلمه کلیدی (Keyword) Seq بیاید.
مثال: File List: Seq FILE NO Users : N یک State با دو مؤلفه را مشخص میکند یکی دنباله از فایلها ویک عدد طبیعی.
25.3 بکارگیری notation های ریاضیاتی برای مشخصات فرمال: نرمافزاری ما مجدداً مثال block handler ارائه شده در بخش 25.1.3 را مرور میکنیم یک مؤلفه مهم از سیستم عامل کامپیوتر نگهداشتن فایلهایی است که توسط کاربر ساخته شدهاند.
Block Handler یک منبع از بلاکهای بلااستفاده نگه میدارد و بلاکهایی که در حال حاضر مورد استفاده هستند وقتی بلاکها آزاد میشوند بدلیل یک فایل حذف شده آنها به صورت معمول به صفی از بلاکهای در انتظار برای اضافهشدن به منبع بلوکهای بلااستفاده هستند بصورت شماتیک در شکل 25.2.4 آمده است.
یک مجموعه که BLOCKSنامیده میشود دربرگیرنده همه شماره بلاکها میباشد.
All Block مجموعهای از بلاکهاست که بین Max,Block, 1 قرار دارند و State میتواند با یک دنباله و دو مجموعه نشان داده شود.
در مجموعه free,used هستند هر دو شامل block هایی هستند – مجموعه used شامل بلاکهایی است که در حال حاضر برای فایلها استفاده میشود و مجموعه free شامل بلاکهایی است که برای فایلهای جدید در دسترس هستند و دنباله شامل مجموعه بلاکهایی است که آماده هستند تا آزاد شوند بوسیله فایلهایی که حذف شدهاند state را میتوان به شکل زیر نشان داد.
Used,free P BLOCKS BLOCK Queue : Seq p BLOCKS “ سورهای جهانی” یک روش ساختن گزارههایی در مورد عناصر یک مجموعه است که درست است برای هر عضو از مجموعه.
سورهای جهانی از سمبول : استفاده میکند یک مثال آن: بیان میکند که برای هر جفت مقدار در مجموعه اعداد طبیعی اگر i بزرگتر از j است در نتیجه بزرگتر از است.
25.2.4 دنباله یک ساختار ریاضیاتی است که واقعیت را مدل میکند که عناصرش مرتب هستند یک دنباله مجموعهای از جفتها است که عناصر آن در محده 1 تا بزرگترین عنصر هستند برای مثال: یک دنباله است آیتمیهایی که شکل میدهند نخستین عنصر مجموعهها را تشکیل میدهند در مجموع بعنوان “domain” دامنه توالی و مجموعه دومین عناصر تحت عنوان برد “rongl” دنباله خوانده میشود.در این کتاب دنبالهها با استفاده از براکتهای زاویهدار نشان داده میشود برای مثال دنباله آمده بصورت زیر نوشته میشود.
برخلاف مجموعه تکرار مجاز است و ترتیب مجموعهها مهم است بنابراین: دنباله بتی به صورت ( ) نشان داده میشود.
یک تعداد از عملگرهای دنبالهها در مشخصات فرمال استفاده میشود Catenction (الی ق) یکی عملگر دهتایی است که یکی دنباله با اضافهکردن عملوند دوم به انتهای عملوند اول میسازد.
برای مثال: عملگر تفاوت” \ “ همانگونه که از نامش پیداست.
یک مجموعه را با حذفکردن عناصر مجموعه دوم از مجموعه اول بدست میآید حاصل عبارت: مجموعه خواهد بود.
مقدار عبارت مجموعه تهی خواهد بود.
عملگر همواره یک مجموعه برمیگرداند در این مورد هیچ عنصر مشترکی بین دو عملوند موجود نیست و مجموعه نتیجه هیچ عنصری نخواهد داشت: عملگر پایانی Cross Product است x گاهی Cartesian product خوانده میشود.
دو عملوند دارد که مجموعهای از جفتها است نتیجه در یک مجموعه دوجنسی که هر جفت شامل یک عنصر گرفته از عملوند اول ترکیب شده با یک عنصر از عملوند دوم است.
یک مثال آن: نتیجه عبارت چنین است:ک قابل توجه است که هر عنصر از مجموعه اول ترکیب میشود با هر عنصر از مجموعه دوم مفهومی که برای روشهای فرمال مهم است.
“powerset” است یک powerset ( مجموعه توانی) از یک مجموعه، مجموعهای از زیرمجموعههای آن مجموعه است مجموعی که برای مجموعه توانی در این فصل استفاده میشود کاراکتر P است یک عملوند تکین که هرگاه برروی مجموعهای بکار رود مجموعه زیرمجموعههای، مجموعه را برمیگرداند.
که همگی زیرمجموعههای هستند.
25.2.3 عملگرهای منطقی مؤلفه مهم دیگر یک روش فرمال منطقی است جبر عبارت درست، نادرست .
استفاده عملگرهای منطقی متداول توسط هر مهندس نرمافزار قابل فهم است.
با این حال عملگر منطقی که مرتبط با زبانهای برنامهنویسی مرسوم هستند توسط عناصر قابل دسترسی Keyboard نشان داده میشود معادل ریاضیاتی آنها اینها هستند.
دارای مقدار frue است اگر مجموعه A توسط مجموعه B سرگرفته شود و در غیر اینصورت غلط است: دارای مقدار true است با این حال: دارای مقدار false است بخاطر اینکه عنصر RCS در مجموعه سمت راست وجود ندارد عملگر شبیه عملگر Cاست با اینحال اگر عملوند یکسان باشد نیز مقدار صحیح است بنابراین مقدار: false است و مقدار: true است.
یک مجموعه، مجموعه تهی است این مشابه صفر ریاضیات معمولی است مجموعه تهی دارای همان خصوصیاتی است که هر زیر مجموعهای از دیگر مجموعهها داراست.
دو مشخصه مفید مجموعه تهی عبارتند از: AND برای هر مجموعه A ، شناخته میشود( و به عنوان عملگر اجتماع گاهی بنام فنجان (CUP) خوانده میشود عملگر اشتراک گاهی بعنوان کلاه (cap) خوانده میشود.
عملگر اجتماع دو مجموعه را میگیرد و مجموعهای را شکل میدهد که دربرگیرنده همه عناصر دو مجموعه با از بین بردن تکرار آنهاست پس، نتیجه عبارت: مجموعه زیر است.
عملگر اشتراک دو مجموعه را میگیرد و مجموعهای شامل عناصر مشترک دو مجموعه را برمیگرداند.
نتیجه مجموعه میباشد.
و حتی شکل عناصر یک مجموعه بدیهی است ترم را میتوان از قلم انداخت: برای مثال مجموعه بالا را میتوان به صورت زیر نوشت: همه مجموعههای که اینجا شرح خواهیم داد شامل عناصر تک آیتمی هستند مجموعهها میتوانند توسط عناصریی ساخته شوند.
میتواند شامل عناصر باشد که دوتایی، سه تایی و غیره باشند.
برای مثال مجموعه مشخصات: مشخص میکند مجموعهای جفت اعداد طبیعی که در شکل میباشد و مجموع x,y 10 میباشند.
بدیهی است یک مشخصات سازنده مجموعه نیازمند است تا برخی مؤلفههای نرمافزارهای کامپیوتر را که میتوانند در رسیدگی بسیار پیچیدهتر از آنچه آمدهاست باشند را ارائه کند.
با این حال شکل اساسی و ساختارها همانند گذشته است.
عملکردهای مجموعه: یک مجموعه مخصوص از سمبلها برای ارائه مجموعه و عملکردهای منطقی استفاده میشود این سمبولها باید توسط مهندسین نرمافزار که میخواهد تا فرمال متد را بکار گیرد فهمیده شود.
عملکرد استفاده میشود تا عضویت در یک مجموعه را نشان دهد برای مثال عبارت: هنگامی true است که x یک عضو از مجموعه X باشند و در غیر اینصورت flace است: برای مثال: درست است چون 12 یک عضو این مجموعه است.
متضاد عملکرد عملکرد میباشد عبارت: true است اگر x عضو X نباشد در غیر اینصورت flase است.
برای مثال: دارای مقدار flase است.
عملکرد مجموعهها را بعنوان عملوند بکار میبرند.A C B 25.2.1 مجموعه و مشخصات ساختاری یک مجموعه کلکسیونی از اشیاء است یا عناصر است و بعنوان سنگبنای روشهای فرمال استفاده میشود.
عناصر دربرگرفته شده داخل مجموعه منحصر بفرد هستند unique) – بدین معنی که هیچ تکراری اجازه داده نمیشود.).
مجموعهها با تعداد کمی عناصر داخل کروشه نوشته میشوند و عناصری که با کاما جدا میشوند برای مثال مجموعه : دربرگیرنده نام پنج زبان برنامهنویسی است.
Theroderin ( دستور است) عناصر پدیدارشده درون یک مجموعه مجردند.
(( مجرد- غیرعادی)immaterial.)؟؟
تعداد آیتمهای یک مجموعه بعنوان Candinality شناخته میشود و عملکرد آنرا برمیگرداند.
برای مثال: دلالت می کند که عملکرد کاردینالیستی برروی مجموعه عملکرد و تعداد عناصر را برمیگرداند دو روش تعریف کردن یک مجموعه موجود است یک مجموعه را میتوان بوسیله بشمارآوردن اعضای آن ایجاد کرد( این روش که تاکنون استفاده کردیم) رویکرد دوم این است که یک مشخصات مجموعه سازنده مجموعه ایفا میکند.
مشکل اساسی اعضای یک مجموعه بوسیله یک عبارت boolean مشخص میشود.
مشخصات سازنده مجموعه ارحج است زیرا یک تعریف موجز از مجموعههای بزرگ را برآورد میسازد.
همچنین صراحتاً قوانینی که استفاده شده در ساختن مجموعه را تعریف میکنند ملاحظه کنید که نمونهای از یک مشخصات سازنده مجموعه: این مشخصات دارای سه مؤلفه است یک n:N Singurate یک Predicat n در مثال فوق، N مشخصکننده مجموعه اعداد طبیعی بنابراین اعداد طبیعی در نظر گرفته میشود.
Perdicat دربرگیرنده تنها اعداد طبیعی کمتر از 3 را شامل میشود و ترم مشخص میکند که هر عنصر از مجموعه باید به شکل n باشد.
بنابراین، این مشخصات مجموعه زیر را تعریف میکند: حالت پیشین برای دومین عملیات( حذفکردن یک فایل از یک صف مرتبط با یک وسیله خروجی خاص) این است که رسید برای Spooler شناخته شدهاند و اینکه حداقل یک مدخل در صف مرتبط با وسیله باشد.
حالت پسین این است که سرسف مرتبط به وسیله خروجی حذف شود و مدخل آن در بخش از Spooler که track های سایز فایل را نگهمیدارد و حذف شود.
حالت پیشین برای پنجمین عملیات( انتقال یک فایل از یک صف مرتبط یک خروجی در صف خروجی دیگر این است: رسید خروجی نخست برای Spooler شناخته شده باشد.
رسید خروجی دوم برای Spooler شناخته شدهباشد.
صف مرتبط به خروجی اول شامل فایلی برای انتقال باشد.
اندازه فایلها کمتر یا مساوی محدودیت اندازه فایل پرینتی خروجی دوم باشد حالت پسین برای آن است که فایل حذف شود از یک صف و به صف دیگر اضافه شود.
درهر یک از مثالهای مورد ملاحظه در این بخش ما مفاهیم کلیدی مشخصات فرمال را معرفی کردهایم.
اما ما بدون اهمیت دادن به ریاضیات آنها را انجام دادهایم که مورد نیاز است برای اینکه مشخصات فرمال را بسازیم.
در بخش بعد ما این نوع ریاضیات را شرح میدهیم.
25.2 مقدمات ریاضیاتی برای اعمال مؤثر روشهای فرمال یک مهندس نرمافزار باید یک دانش کار notation های ریاضیاتی وابسته به مجموعهها و توالی و notation های منطقی استفاده شده در حساب استنادی (Perdicate) خبری مقصود از این بخش فراهمکردن یک مقدمه خلاصه است.
برای مباحث با جزئیات بیشتر خواننده بایست به کتابهای دیگر مراجعه کند.
مجموعه وسایل خروجی توسط Spooler کنترل میشوند، روابط مابین وسایل خروجی و ماکزیمم اندازه فایلی که میتواند پرینت شود.
در رابطه بین فایل منتظر برای پرینت و سایزش در خطوط.
برای مثال شکل 25.3 نشان میدهد که وسیله خروجی 2PI یک محدودیت 570 خطی دارای دو فایل ftax و persons انتظار پرینت است و Size فایلها 700,650 خط است، هر یک به ترتیب Spooler,State با چهار مؤلفه صفها وسایل خروجی محدودیت و اندازه ارائه میشود.
Data invirant پنج مؤلفه دارد: هر وسیله خروجی یک حد بالایی برای خطوط پرینت داراست.
هر وسیله خروجی مرتبط به یک صف غیر خالی از فایلهای در انتظار پرینت است.
هر فایل مرتبط به یک سایز است.
هر صف مرتبط به یک وسیله خروجی شامل فایلهایی است که دارای اندازه ای کمتر از محدودیت بالایی وسیله خروجی است.
تعداد وسایل خروجی مدیریت شده توسط سیستم Spooler کمتر از MaxDevs است.
تعدادی ای عملیاتهایی که مرتبط با Spooler است.
برای مثال: یک عملیات که اضافه میکند وسایل خروجی را به Spooler به همراه محدودیتهای پرینت مرتبط یک عملیات که یک فایل را از صف مرتبط به کل وسیله خروجی خاص حذف میکند.
یک عملیات که یک فایل را به صف مرتبط به یک وسیله خروجی خاص اضافه میکند.
یک عملیات که تغییر میدهد محدودیت خطهای پرینت یک وسیله خروجی خاص را.
یک عملیات که یک فایل را از صف مرتبط به یک خروجی به صف خروجی دیگر انتقال میدهد.
هر یک از عملیاتها مطابق یکی از توابع Spooler است برای مثال نخستین عملیات معادل این است که Spooler از اضافهشدن یک وسیله خروجی جدید به کامپیوتری که شامل سیستم عاملی است که Spooler را مدیریت میکند.
آگاه میگردد.
همچون گذشته هر عملیات شامل حالت پیشین و پسین است برای مثال حالت پیشین برای نخستین عملیات نام وسیله خروجی در حال حاضر موجود نباشد و کمتر از MaxDevs وسایل خروجی که به Spooler معرفی شده وسایل خروجی داشته باشیم.
حالت پسین این است که نام وسیله جدید به مجموعه نام وسایل موجود اضافه شده یک ورودی جدید.
یک مدخل جدید برای وسیله صف مرتبط با هیج فایل تشکیل میشود.
و وسیله به محدودیت پرینت مرتبط میگردد.
مجموعه بلاکهای غیرقابل استفاده هیچ شماره تکراری بلاک ندارد.
مجموعه بلاکهای قابل استفاده هیچ شماره تکراری بلاک ندارد.
برخی عملیاتی که وابسته به این بلاک هستند.
یک عملیات که یک مجموعه از دادهها را به انتهای صف اضافه میکند.
یک عملیات که مجموعهای از دادههای قابل استفاده را از جلوی صف حذف کرده به مجموعه غیرقابل استفاده اضافه میکند.
یک عملیات که چک میکند که آیا صف خالی است یا نه.
حالت پیشین نخستین عملیات این است که بلاکهایی که اضافه خواهند شد باید در مجموعه بلاکهای استفاده شده باشند.
حالت پسین این است که مجموعه بلاکها با ثبت به انتهای صف افزوده شوند.
حالت پیشین برای دومین عملیات این است که صف میبایست حداقل یک آیتم را دارا باشد حابت پسین این است که بلاکها بایست به مجموعه بلوکهای غیرقابل استفاده افزوده شوند.
عملیات نهایی – چککردن اینکه صف خالی است یا نه- هیچ حالت پیشین ندارد یعنی عملیات همواره تعریف شدهاست صرفنظر از مقداری که state داراست.
حالت پسین مقدار tru را برای خایبودن صف و مقدار false را در سایر موارد برمیگرداند.
مثال 3:A Print Spooler : در سیستم عاملهای چند وظیفهای مجموعهای از وظایف درخواست را برای پرینتکردن فایل ایجاد میکند.
اغلب وسایل کافی پرینت برای انجامدادن همه درخواستها ی پرینت به صورت همزمان وجود ندارد هر درخواست پرینت که بلافاصله انجام نمیگیرد در صف درخواست پرینت قرار میگیرد بخشی از یک سیستم عامل که با مدیریت چنین صفهایی ارتباط دارد با نام Print Spooler شناخته میشود.
در این مثال ما فرض میکنیم که سیستم عامل میتواند بکار بگیرد نه بیشتر از تعداد وسایل خروجیMaxDevs و هر وسیله یک صف به خود را داراست.
و همچنین فرض میکنیم که هر وسیله وابسته به مجموعهای از خطهایی در کل فایل است که بایست آنرا پرینت کند.
برای مثال یک وسیله خروجی یک محدودیت 1000 خطی از پرینتکردن را داراست مرتبط به صفی است که تنها شامل فایلهایی میشود که بیشتر از 100 خط متن نداشته باشد Print Spooler گاهی تحمیل میکند این محدودیت را برای اینکه ممنوع کند کارهایی با جحم عظیم پرینت که ممکن است وسایل کند پرینتکردن را برای دورههای زمانی طولانی استثنایی.
یک ارائه شماتیک از Print Spooler در شکل 25.3 نمایش داده شدهاست.
برطبق شکل، حالت Spooler دربرگیرنده چهار مؤلفه است: صف فایلهای در انتظار پرینت.
هر صف وابسته به یک وسیله خروجی خاص است .
اگر برنامه جدول سمبولها وابسته به اضافهکردن یا حذف نام کارمندها از جدول سمبولها باشد پس شامل دو عملیات است.
یک عملیات برای اضافهکردن نام خاصی به جدول سمبول و یک عملیات برای حذف نام موجود.
از جدول.
اگر برنامه امکان این را چک کنیم یک نام خاص در جدول موجود است یا نه را فراهم کند پس عملیاتی خواهیم داشت که برمیگرداند نشانگری به دادهای که وجوددارد.
یک عملیات وابسته به دو حالت است: حالت پیشن و حالت پسین.
یک حالت پیشین تعریف میکند شرایطی که یک عملیات خاص معتبر است.
برای مثال حالت پیشین برای یک عملیات که یک نام را به جدول سمبول مشخص کارمندان اضافه میکند معتبر است اگر تنها نامی که اضافه می شود در جدول موجود نباشد و همچنین تعداد موجود در جدول کمتر از Max Ids باشد.
و حالت پسین یک عملیات تعریف میکند که چه صورت میگیرد وقتی یک عملیات فعالیت خود را کامل میکند.
تعریف میشود یا تأثیر خودش برروی state در مثال یک عملیات که اضافه میکند مشخصهای به جدول سمبول مشخصههای کارمندان حالت پسین به صورت ریاضیاتی مشخص میشود که جدول یک مشخصه جدید تکمیل شدهاست.
مثال 2 : یک بلاکهندلر: یکی از مهمترین بخشهای سیستم عامل کامپیوتر زیر سیستمی است که مایلهای ساخته شده توسط کاربر را نگه میدارد.
بخشی از زیرسیستم فایلها( بایگانی filing ) بلاکهندلر است.
فایلها در ذخیرگاه فایلها ترکیبی از بلاکهای ذخیرهسازی هستند که برروی یک وسیله ذخیرهسازی نگهداری میشوند هستند.
در طول عملیات کامپیوتر، فایلها ساخته میشود و حذف می شوند نیاز دارند تا بلاکهای ذخیرهسازی را تصاحب کنند و آزاد سازند.
برای انجام دادن آن زیر سیستم فایلها( زیرسیستم بایگانی) یک منبعی از بلاکهای بدون استفاده( آزاد) را نگهداری میکند track های بلاکهایی که در حال حاضر استفاده میشوند را حفاظت میکند.
وقتی بلاکها آزاد میشوند بواسطه اینکه یک فایل حذف شدهاست آنها به صورت معمول به صفی از بلاکها منتظر اضافه میشود.
تا به منبع بلاکهای بدون استفاده اضافه شوند.
این مسئله نشان داده شده در شکل 2-25 در این شکل یک تعدادی از مؤلفهها نشان داده شدهاند.
منبع در بلاکهای غیر قابل استفاده بلاکهایی که در حال حاضر شامل میشوند.
فایلهایی را که توسط سیستم عامل مدیریت میشوند و بلاکهایی که منتظر برای اضافهشدن به منبع هستند بلاکهای منتظر در یک قرار داده میشوند.
هر عنصر از صف شامل مجموعهای از بلاکهای فایلهای حذف شده است.
برای این زیرسیستم state مجموعه بلاکهای خالی است، مجموعهای از بلاکهای استفاده شده وصف بلاکهای برگشتی data invariant ارائه شده به زبان طبیعی چنین است.
هیچ بلاکی هم قابل استفاده و هم غیرقابل استفاده نیست.
همه مجموعه بلاکها قرارگرفته در صف زیر مجموعهای از مجموعه بلاکهای در حال حاضر استفاده شده میباشد.make up files??