مهندسی نرم افزار و مهندسی نرم افزار 2

مهندسی نرم افزار و مهندسی نرم افزار 2
مهندسی نرم افزار و مهندسی نرم افزار 2|39015619|zaranetwork

مهندسی نرم
افزار و مهندسی نرم افزار 2



توضیحات محصول :
کتاب های خلاصه منابع رشته کامپیوتر و نرم افزار
برای آمادگی آزمون دکتری دانشگاه آزاد به همراه مجموعه تست با پاسخنامه تشریحی برای کنکوریها



مفاهیم و اصول شیءگرا


مزایاي استفاده از تکنولوژي اشیاء عبارتست از:

ـ استفاده مجدد:
افزایش توسعه سریعتر نرم افزار و برنامه هایی با کیفیت
بالاتر


ـ نگهداري آسان: مجزا بودن ساختار نرم افزار به
صورت ذاتی، کم بودن تأثیرات جانبی هنگام تغییرات یک بخش


ـ قابلیت سازگاري و گسترش آسان: سیستم هاي حجیم را میتوان به راحتی
و با سـهم کـردن زیـر سیسـتمهـاي از


پیش آماده شده تهیه کرد.

شکل 1 ـ سیماي مدل تکاملی فرایند شیگرا



آنگونه که در شکل مشخص می باشد در صورد وجود اشیاء و
کلاسهاي مـورد نیـاز از آنهـا دوبـاره اسـتفاده شـده و در


صورت موجود نبودن مهندسی نرم افزار تحلیل شیگرا
( OOA ) طراحی شیگرا (OOD ) برنامهنویسـی شـ یگـرا ( OOP) و

تست شیگرا ( OOT) را براي ساختن
کلاسها و اشیایی که از آنها استخراج میشوند را انجام می . دهند


یک شیء دادهها و پردازشی را که بر روي این دادهها انجام
میشود، بسته بنـدي مـینمایـد ایـن خصوصـیت مهـم باعـث


میشود کلاسهایی از اشیاء ایجاد شوند که به کتابخانه هایی از
اشیاء و کلاسهاي قابل استفاده مجدد منتهی گردند
.

دیدگاه شیءگرا نیازمند یک شیوه تکامیلی براي نرم افزارمهندسی است. توصیف
یکباره تمام کلاسها براي یـک سیسـتم


یا محصول عمده در یک تکرار دشوار و حتی غیرممکن است. «14»
مهندسی نرم افزار و مهندسی نرم افزار2


مفاهیم شیءگرا:


صفات (Uttributes): صفات
یک کلاس خصوصیات آن را تشریح میکند. صفات یک کلاس معمولاً تنهـا توسـط خـدمات


(servise) قابل دستیابی هستند که در این حال، به علت ایجاد
پنهانسازي اطلاعات که ایجاد شده است تاثیرات جـانبی


به هنگام تغییرات بسیار کم خواهد شد.

ــ اشـیاء دادههـا (صـفات یـا attributes) و توابـع دسـتکاري دادههـا (services, operation,
methods ) را بسـتهبنـدي

(encapsulate . ) میکنند

ـ کلاس: توصیفی کلی (الگو) که مجموعهاي از اشیاي مشابه را
توصیف . میکند


ـ پیغام ها (messages ): روشی که
به وسیله آن اشیا با هم تبادل اطلاعات . میکنند


وراثت: امکان میدهد که یک زیر کلاس از دادهها و رویهها یک
فوق کلاس موجود استفاده نماینـد همجنـین مکـانیزمی


براي انتشار تغییرات فراهم می . کند

ـ چند ریختی (polymorphism) مکانیزمی
که اجازه میدهد اشیاي متعـددي در یـک سلسـله مراتـب کـلاس متـدهاي


مختلفی با یک اسم داشته باشند.

ـ فوق کلاس (superclass): گروهی از کلاسها

ـ زیر کلاس (superclass): نمونه
خاصی از یک کلاس


ـ سلسله مراتب کلاس:یک زیر کلاس صفات و متدهاي یک فوق کلاس
را به ارث می . برد


Cox ارتباط بین اشیا را این گونه تعریف میکند: از یک شیء با
ارسال پیغام خواسته میشود یکی از اعمال خود را انجام


دهد. شیء دریافتکننده به این پیغام با انتخاب عمل و اجراي
آن، و برگرداندن کنتـرل بـه فراخواننـده پاسـخ مـیدهـد
.

پیغام، متصلکننده اجزاي سیستم شیء گرا به یکدیگر است.
پیغامهاي دیدگاهی را از رفتار هر یک از اشیاء و کل سیستم


شیءگرا فراهم می . نمایند

بسته بندي وراثت و چند ریختی و (Encapsulation Inheritance , polymorphism)

وجه تمایز سیست مهاي شیء در سه خاصیت مهم میباشد که آن را
یگانه نمودهاند. بستهبندي خواص زیر را ایجاد . میکند


ـ جزئیات پیادهسازي داخل دادهها و روالها از دنیاي خارج
پوشیده می شوند پنها
. نسازي اطلاعات
مهندسی نرم افزار و مهندسی نرم افزار15» 2
»



ـ استفاده مجدد به دلیل ترکیب ساختار دادهها و عملیاتی که
آنها را دستکاري میکند میسر . میشود


ـ ارتباط بین اشیاء بسته بندي شده ساده گشته است. یک شیء که
پیامی را ارسال میکند نیـازي نـدارد تـا از جزئیـات


ساختار دادههاي داخلی شیء و مقصد اطلاعی داشته باشد. دیگر
جنبه مهم تفاوت بین سیسـتمهـاي سـنتی و شـیگـرا


وراثت میباشد.



تمامی صفات در کلاس و عملیات آن توسط
زیر کلاسها به ارث برده می . شود


هنگام ایجاد یک کلاس چهار امکان وجود دارد:

1ـ کلاس جدید را از اول ایجاد کنیم و از وراثت
استفاده نکنیم
.

2ـ براي تولید کلاس جدید از وراثت استفاده شود و کلاس جدید
از کلاسی که حداکثر اعمال و صفات مورد نیـاز را دارد


آنها را به ارث ببرد.

3ـ سلسله مراتب کلاسها به نحوي سازماندهی مجدد شود که صفات
و اعمال مورد نیاز توسط کلا س جدید به ارث برسند
.

4ـ خصوصیات و اعمال یکی از کلاسهـاي موجـود بازنویسـی شـوند
و از وراثـت اسـتفاده شـود تـا کـلاس جدیـدي بـا


ویرایشهاي خصوصی این صفات و اعمال ایجاد شود.

چند ریختی خصوصیتی است که نیاز به توسعه و گسترش سیستمهاي
شیءگراي موجود را تا حد زیادي کاهش میدهـد


در حالت چند ریختی وجود یک فوق کلاس که سایر کلاسها از آن
ارث می برند منجر به عمل بارگذاري اضافی شـده و


بنابراین نیازي به تعریفهاي دیگر و مجزا نیست.



تشخیص کلاسها و اشیاء



لاشیاء به شک هاي مختلفی ظاهر می :
شوند مانند


ـ رویدادها مانند کامل شدن یک فعالیت در پروژه

چارچوبها: حسگرها، کامپیوترها، اتومبیل

مکانها: مانند زمین کارخانه

چیزها: مانند فرمها وگزارشها و صورتحسابها و
..

نهادهاي خارجی: سیستمهاي دیگر و ...

واحدهاي سازمانی: مانند تیم و گروه و ... «16» مهندسی نرم
افزار و مهندسی نرم افزار2


مدیریت پروژههاي نرمافزاري شیءگرا:

1ـ ایجاد زمینه کاري مشترك فرایند براي پروژه

2ـ استفاده از این زمینهکاري به همراه معیارهاي سابقه براي
توسعه تخمین فعالیت و زمان


3ـ ایجاد اقلام قابل تحویل و نشانگرهایی که باعث اندازهگیري
پیشرفت . میشوند


4ـ تعریف نقاط آزمایش براي مدیریت ریسک، تضمین کیفیت
و کنترل


5ـ مدیریت تغییراتی که در ضمن پیشرفت پروژه انجام می
. شوند


6ـ پیگیري، نظارت و کنترل پیشرفت.

بعضی معیارهاي پروژههاي شی ءگرا: تعداد سناریوهاي موجود،
تعداد کلاسهاي کلیدي، تعداد کلاسهاي پشتیبان، تعداد


متوسط کلاسهاي پشتیبان براي هر کلاس کلیدي، تعداد زیر سیستم
. ها


معیارهایی که میتوانند در ضمن زمانبندي پروژه استفاده شوند:
تعداد تکرارهاي عمده، تعداد تعهدات کامل شده
.

براي پیگیري پروژه میتوان از نشانگرهاي تکنیکی کامل شدن
تحلیل شیءگرا، کامل شـدن برنامـهنویسـی شـیءگـرا و


آزمایش شیءگرا استفاده کرد.



مجموعه تست

1ـ قانون 40ـ20ـ 40 نشاندهنده این است که کمترین توان تیم
روي ..........است


1) تست 2) کد زدن 3) تحلیل و طراحی 4) تخمین و برنامهریزي

2ـ کدام عبارت صحیح است؟

1) هنگامی که برنامه نوشته و اجرا شده دیگر کار تمام است.

2 ) راههایی وجود دارد تا بتوان کیفیت محصول نرمافزاري را
قبل از اجرا نیز ارزیابی کرد
.

3) یک توضیح کلی از اهداف براي آغاز نوشتن برنامه کافیست،
میتوان جزئیات را بعداً اضافه نمود
.

4) از یک واژه از برنام ه زمانبندي خود عقب بیافتد میتوان
با افزودن برنامهنویسان خبره شکل . 1 حل کرد


3ـ کدام عبارت غلط . است

1) طراحی نرمافزار با در نظر گرفتن امکان استفاده مجدد نیاز
به تلاش بیشتري دارد
.

2) هنگامی که نرمافزار به سفارش مشتري ساخته میشود از
قابلیت اطمینان بالاتري برخوردار است
.

3) هنوز مزایاي استفاده از مؤلفههاي نرمافزاري آماده به
خوبی و به طور کامل روش نشده است
.

4) فشاري که همواره به علت وجود مهلت تحویـل پـروژه وجـود
دارد از توجـه لازم بـه سـرمایهگـذراي بـراي آینـده


جلوگیري . میکنند

4ـ در یک نمودار جریان دادهاي یک جریان دادهاي دو طرفه و
بدون نام میان یـک پـردازه و یـک انبـاره ي


داد هها .........

1) یک اشتباه است.

2) به معناي درج رکورد کامل در انبارهي دا . دههاست

3) به معناي جذب یک رکورد کامل در انبارهي دا . دههاست

4) به معناي خواندن و به روز در آوردن یک رکورد کامل در
انباره دا . دههاست مهندسی نرم افزار و مهندسی نرم افزار135» 2
»



5ـ تصور کنید اهداف مهندسی نرمافزاري را با علائم
dan براي برطرف کردن نیازهاي کاربر Lop ( براي هزینه

پائین تولید) HP (بررسی کارایی
بالا
) p (براي انتقالپذیري بیشتر)
Lcom (براي هزینه پائین نگهـداري) HR

(براي قابلیت اعتماد بالا) و DOT (براي تحویل به موقع) نشانگذاري میکنـیم. اولویـت ایـن اهـداف بـراي

نرمافزار یک سیستم عامل مطابق کدامیک از موارد زیر (چپ به
راست) باید اولوی . تگذاري شود


P , HR , LCM, HP , doun, LCP , DOT (2 Dot , HR, dun, HP , LCP , Cou (1

main , LCM, HR , P , LCP , DOT (4 Main , HR , LCM , HP , LCP , DOT , D (3

6ـ براي استخراج مشخصات رفتارهاي ایستاي
(Static ) موجودیتها (classes ) کـدامیـک از ابزارهـاي زیـر

مناسب است؟

sequence Diaram use caseduodd (1

Collwoation Diagram use case doud (2

sequence Diagram collabartion Diagram (3

use case model state tinstion Diagram (4

7ـ کدام عبارت در مورد مدل (روشهاي) توسعه نرمافزار صحیح
است؟


1 ) مدلهاي الگوسازي و آبشاري را میتوان در مدل حلزونی جمع
کرد


2 ) مدلهاي آبشاري را میتوان در مدل الگوسازي جمع کرد.

3 ) مدلهاي الگوسازي و حلزونی را میتوان در مدل آبشاري جمع
کرد
.

4) هر سه مورد صحیح است.

8ـ کدام عبارت در مورد طراحی نرمافزار از طریق روش تجزیه
عملیات و روش طراحی دادهگرا صحیح است؟


1) روش طراحی تجزیه عملیات و روش طراحی دادهگرا ساختمان
داده متفاوت و همچنین سـاختار برنامـ ه متفـاوتی


تولید . میکنند

2) روش طراحی تجزیه عملیات و روش طراي دادهگرا ساختمان داده
یکسان لیکن ساختار برنامه متفاوتی تولید . میکنند


3) روش طراحی تجزیه عملیات و روش طراحی دادهگرا
ساختمان داده متفاوت لیکن ساختار برنامه سیکانی تولید می . کنند «136» مهندسی نرم
افزار و مهندسی نرم افزار2


4) روش طراحی تجربه عملیات و روش طراحی داده
.