. . . . . . . . Mohammad Mohsen Mavaddat . . . . . . .

جزئیات انجام پروژه تست و نگهداری نرم افزار

دوشنبه 20 تیر 1390-04:05 ب.ظ

با سلام
استاد در مورد پروژه فرمودند :
• پروژه، بخش عملی درس هست، تکمیل کننده درس هست و ارتباط مستقیم با مباحث مطرح شده نداره
• امتحان پایان ترم حداقل ۱۰ نمره
• فعلا درصد نمره تمرین و پروژه به ترتیب 60 به 40 هست، البته در صورت عدم ارسال برخی تمرین ها، با ارئه بهتر پروژه می توان این مورد را جبران کرد
• قرار است ابزاری برای مدیریت فرایند تست و پیگیری مشکلات برنامه، انتخاب و به یک شرکت توسعه دهنده نرم افزار معرفی کنید
• اگر ابزار انتخابی مستقل از تکنولوژی هست که هیچ، اما اگر وابسته هست بهتره قابل یکپارچه کردن با جاوا و محیط های توسعه جاوا باشه، البته اگر مشکل هست با دات نت هم اشکال نداره
• از طرفی بهتر هست که این ابزار با کد و فرایند ساخت نرم افزار هم در ارتباط باشد
• تیم توسعه، نرم افزار را به دپارتمان تست می دهد و در آنجا با استفاده از این نرم افزار، کلیه فعالیت های تست انجام شده و نتایج به تیم توسعه ارائه می شود، این روند ممکن است چندین بار تکرار شود
• بایستی یک Test Suit ارائه دهید و ارتباطی با گراف ها و اینطور مباحث ندارد
• ارائه Manual فارسی برای نرم افزار مورد نظر ضروری هست، بهتر است در قالب CHM یا به صورت صفحات HTML باشد
• نرم افزار مورد نظر را باید ارائه دهید، یا نسخه کد باز باشد، یا یک نسخه دمو ، که بتوان قابلیت های آن را بررسی کرد
• دلایل انتخاب این نرم افزار و مقایسه آن با سایر نرم افزار های مشابه هم باید مشخص کنید
با تشکر



تست Integration و تست System

جمعه 2 اردیبهشت 1390-03:55 ب.ظ

تست Integration و تست System :

فاز طراحی معماری در توسعه نرم افزار، قطعات و رابط هایی را مشخص میکند که سیستم را شکل می دهند، سیستمی که مشخصاتش به راستی باید نیازمندی های از پیش تعیین شده را مرتفع نماید.

.
تست سیستم برای این منظور طراحی شده که تعیین کند آیا سیستم سر هم شده، ویژگی های لازم را دارا میباشد ؟ در اینجا فرض می شود که قطعات به طور انفرادی کار می کنند و بررسی بر روی این انجام می شود که آیا سیستم به عنوان یک کل، کار می کند ؟ این سطح از تست معمولا به دنبال مشکلات طراحی و ویژگی های سیستم می گردد. در اینجا جستجو برای خطا های سطح پایین تر هزینه بسیار زیادی دارد و این تست معمولا توسط برنامه نویسان انجام نمی شود، بلکه تیم تست جداگانه ای تست سیستم را انجام می دهد.
.
فاز طراحی زیر سیستم ها در توسعه نرم افزار، ساختار و رفتار زیر سیستم ها را مشخص می کند که هر کدام باید عملکرد هایی را در معماری کلی نرم افزار انجام دهند. در اغلب مواقع زیر سیستم ها، نرم افزار های قبلا توسعه یافته تطبیق داده شده با سیستم فعلی هستند.
.
تست Integration برای این منظور طراحی شده است که تعیین کند آیا رابط های بین ماژول ها، در یک زیر سیستم، فرضیات پایداری دارند و به درستی با هم ارتباط برقرار می کنند ؟در این تست باید فرض کرد که ماژول ها به درستی کار خود را انجام می دهند.
.
در برخی ادبیات واژگان تخصصی، این دو تست به جای هم تعریف شده اند.
در اینجا تست Integration، به تست سیستم یا زیر سیستم مجتمع شده اشاره نمی کند.
تست Integration معمولا جزء وظایف اعضاء تیم توسعه است.

Source : Introduction to software testing  -  Ammann & Offutt

نوع مطلب : مهندسی نرم افزار 

پروژه تحلیل و طراحی فروشگاه الکترونیکی

دوشنبه 2 اسفند 1389-04:02 ب.ظ

تحلیل و طراحی فروشگاه الکترونیکی :

  • تعریف یک سایت e Shopping و امکانات آن
  • تحلیل نیازمندی ها
  • طراحی سیستم
  • ارائه مستندات لازم،برای کمک به درک آسان طراحی، شامل معماری، لایه بندی و وظایف هر لایه، مسایل امنیتی، نحوه دسترسی به داده،انجام کنترل ها و تکنولوژی مورد استفاده
  • ارائه یک Prototype که شامل صفحات به هم متصل سایت می باشد
  • ارائه بروشور محصول و بیان ویژگی ها

نکات قابل توجه :

  • امکان Integrate شدن با سایر سیستم ها
  • امکان افزودن Functionality  جدید
  • امکان انجام تغییر توسط مشتری
  • استفاده از ابزار های open source
  • هزینه تمام شده پایین تر
  • استفاده از ابزار های جدید

قابل ذکر است که هیچ گونه برنامه نویسی برای انجام این پروژه نیاز نیست و ارائه مستندات و Prototype کافی است

برای انجام این تمرین می توانید از مباحث مطرح شده در محتوای درس و کتاب زیر استفاده کنید :
 
Web Application Architecture Principles, protocols and practices


منبع : نکته هایی  که استاد در آخرین جلسه کلاس فرمودند



تمرین درس زبان های برنامه نویسی وب

شنبه 4 دی 1389-04:00 ب.ظ

با سلام 

از بین PHP, JSP, Servlet, CGI, ASP, ASP .Net و JSF یکی را انتخاب کرده، برنامه ای بنویسید که در آن کاربر با ورود ID و Password صحیح، Login کرده ، پیغامی را وارد می کند، پیغام در پایگاه داده ذخیره می شود و می توان لیست پیغام هایی که تا بحال وارد شده را نیز مشاهده کرد. 

تذکر : در این برنامه از هیچ محصول آماده ای استفاده نکنید و تنها از امکانات بستر موارد بالا استفاده نمایید.

کد برنامه و تصاویر بخش های برنامه اجرا شده (به صورت Screenshot) بر روی سیستم را تا قبل از سه شنبه این هفته برای استاد ایمیل کنید . 

موفق باشید


اطلاعات تکمیلی تمرین شماره یک مباحث پیشرفته

پنجشنبه 25 آذر 1389-03:59 ب.ظ

اطلاعات تکمیلی تمرین شماره یک مباحث پیشرفته :

سوال در مورد آژانس هواپیمایی هست که بخش مربوط به رزرو تور را با توجه به سناریو و سوالات داده شده می بایست طراحی کنید.

وارد آژانس شده و به بخش تور مراجعه می کنید، با توجه به علاقه خودتان هتل و پرواز رزرو می کنید و ...
Tour Reserve، یک مفهوم تراکنشی هست که در نهایت بعد از ذخیره تور رخ می دهد
Agency Counter، نماینده تور است که با توجه به این که چه مقدار مشتری جذب کند و صندلی بفروشد از آژانس پورسانت می گیرد.

از مورد 1 تا مورد 4 مدل های دامنه، روابط Association و Cardinality را مشخص کنید .

در  5  یک سناریو خلاصه داده شده و سوالاتی بر اساس آن طرح شده

6 - سناریو بالا را به طور مفصل تر و حالت های استثنا ارائه دهید، مدل دامنه را بر  اساس سناریو کامل کنید و یک، یا چند مفهوم دیگر که نیاز است، با توجه به سناریو داده شده، اضافه کنید و مدل دامنه را نیز تکمیل نمایید.
سپس SSD ها را مشخص کرده و بعد از آن طراحی شما شروع می شود .

با توجه به الگوها، برای هر System Operation باید یک System Realization طراحی کرد

در نهایت یک طراحی یا Realization برای مورد کاربرد رزرو تور خواهیم داشت.

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

Expedia System  را به عنوان یک سیستم خارجی در نظر بگیرید .

موفق باشید


شروع دوباره کلاس ها

سه شنبه 16 آذر 1389-12:51 ق.ظ

از این هفته مرحله دوم  کلاس ها شروع می شود

شنبه ها مباحث پیشرفته تولید نرم افزار ساعت 16:30 تا 18:30
یکشنبه ها مدیریت پروژه ساعت 18 تا 20
سه شنبه ها زبان های برنامه نویسی وب ساعت 19 تا 21
چهار شنبه ها پایگاه داده پیشرفته ساعت 8 تا 10 صبح

درس مباحث پیشرفته :

استاد بوشهریان برای درس مباحث پیشرفته یک تمرین  در LMS  تعیین کرده اند که درباره  طراحی مدل دامنه یک آژانس هواپیمایی هست و نوشتن سناریو و طراحی های مربوط به اون
تاریخ پاسخ به این تمرین، 30 آذر تعیین شده
در ضمن 40% از نمره نهایی این درس به تمرین ها اختصاص دارد

مدیریت پروژه :

ضمن تشکر از استاد کشت ورز، احتمالا کلاس ها 1 ساعت بیشتر خواهد شد و تا ساعت 21 ادامه خواهد داشت
ما هم امیدواریم که ساعت کلاس ها بیشتر شود
نمرات میان ترم و تاریخ اعلام نمره ها هنوز مشخص نیست

زبان های برنامه نویسی وب :

مطالب جلسه آینده را می توانید در این صفحه ببینید :  http://vus-sdd.mihanblog.com/post/13
همچنین برای طرح سوال در تالار گفتمان :  http://www.sun-iran.com/forum/posts/list/42.page
(قابل ذکر است که طبق فرمایش استاد، فقط سوال های جمع بندی شده در تالار، و مرتبط با درس هر جلسه،  در کلاس  پاسخ داده می شود )
همچنین جهت مشارکت در بحث آزاد کلاس به لینک زیر در تالار گفتگو مراجعه کنید :
http://www.sun-iran.com/forum/posts/list/35.page

بانک های اطلاعاتی پیشرفته :

تمرین دوم که در LMS قرار گرفته، مربوط به XSLT و تبدیل فایل XML است و تا 17 آذر مهلت دارد
در ضمن طبق فرمایش استاد، مباحث مربوط به امتحان میان ترم  جزء مباحث مربوط به آزمون  پایان ترم  نخواهد بود




تمرین شماره 1 درس مباحث پیشرفته در تولید نرم افزار

دوشنبه 15 آذر 1389-03:58 ب.ظ

به نام خدا

 

تمرین شماره 1 درس مباحث پیشرفته در تولید نرم افزار :

 

بخشی از مدل دامنه برای سیستم رزرو تور در آژانس هواپیمایی که شامل مفاهیم

  • Tour Reservation
  • Tour
  • Agency Counter
  • Tour Reservation Book

می باشد را در هر یک از موارد زیر دقیقا طراحی کنید :

 

در صورت لزوم جهت رابطه انجمنی بین مفاهیم را نیز مشخص کنید.

+ توجه کنید که اطلاعات رزروهای با موفقیت انجام شده در Tour Reservation Book نگهداری می شود.  

 

  1. هر کانتر فقط رزرو جاری را می شناسد و رزروهای قبلی که در این کانتر انجام شده را به یاد نمی آورد.
  2. هر کانتر فقط اطلاعات رزروهایی  که "هنوز کامل نشده اند" را به یاد می آورد.
  3. هر رزرو از کانتر خود اطلاع دارد.
  4. مدیر سیستم می خواهد با وارد نمودن شماره یک کانتر در سیستم، لیست رزروهای کانتر موردنظر را ببیند. 
           + در صورت لزوم مفهوم جدیدی برای طراحی این نیاز به مدل دامنه بیافزایید و روابط انجمنی را مشخص کنید.
  5. برای مورد کاربرد Reserve Tour سناریو با فرمت کامل بنویسید.

 

در این موردکاربرد پس از وارد کردن اطلاعات تور موردنظر، لیست مشخصات تور (پکیج تور) نمایش داده می شود(خط هوایی، مشخصات هتل، محلهای گردش، نوع غذاها، زمان رفت و برگشت و سیم کارت تلفن...)

+ مشتری می تواند بعضی یا همه امکانات تور انتخاب کرده یا در کیفیت آنها درخواست تغییر نماید مثلا درخواست یک خط هوایی خاص یا کلاس خاص در هواپیما یا هتل متفاوت از آنچه در لیست امکانات تور آمده است.

+ مسوول کانتر تور، تعداد مسافران مورد نظر و پاسپورت آنها را دریافت کرده و در سیستم ثبت می کند.

+ با توجه به اینکه آژانس برای یک تور، هتل و پرواز خاصی را چارتر می کند در صورتیکه مشتری درخواست یک خط هوایی متفاوت یا هتل دیگری را بنماید سیستم باید با اتصال به سیستم Expedia رزرو خاص آن پرواز یا هتل را برای متقاضی انجام دهد.

+ در صورتیکه مشتری امکانات متفاوتی از آنچه در پکیج تور آمده است را درخواست کند قیمت تور بر اساس قوانین آژانس مجددا محاسبه شده و به مشتری اعلام می شود.

 

  1. مدل دامنه را برای سیستم فوق کامل نمایید.
  2. برای مورد کاربرد فوق، SSD رسم کنید.
  3. برای هر یک از عملیات سیستمی از SSD فوق یک Operation Contract بنویسید.
  4. با استفاده از الگوهای GRASP تحقق هر یک از عملیات سیستمی را مشخص نمایید.

 

مهلت انجام تمرین : 30-9-89

 موفق باشید




شروع دوباره کلاس ها

جمعه 12 آذر 1389-03:54 ب.ظ

با سلام

از این هفته مرحله دوم  کلاس ها شروع می شود 

شنبه ها مباحث پیشرفته تولید نرم افزار ساعت 16:30 تا 18:30
یکشنبه ها مدیریت پروژه ساعت 18 تا 20 
سه شنبه ها زبان های برنامه نویسی وب ساعت 19 تا 21
چهار شنبه ها پایگاه داده پیشرفته ساعت 8 تا 10 صبح

درس مباحث پیشرفته :

دکتر بوشهریان برای درس مباحث پیشرفته یک تمرین  تعیین کرده اند که درباره  طراحی مدل دامنه یک آژانس هواپیمایی هست و نوشتن سناریو و طراحی های مربوط به اون
تاریخ پاسخ به این تمرین، 30 آذر تعیین شده 
در ضمن 40% از نمره نهایی این درس به تمرین ها اختصاص دارد 


زبان های برنامه نویسی وب : 

مطالب جلسه آینده را می توانید در این صفحه ببینید :  
همچنین برای طرح سوال در تالار گفتمان : 
همچنین جهت مشارکت در بحث آزاد کلاس به لینک زیر در تالار گفتگو مراجعه کنید : 

بانک های اطلاعاتی پیشرفته :

تمرین دوم  مربوط به XSLT و تبدیل فایل XML است و تا 17 آذر مهلت دارد
در ضمن طبق فرمایش استاد، مباحث مربوط به امتحان میان ترم  جزء مباحث مربوط به آزمون  پایان ترم  نخواهد بود 

موفق باشید  


سوالات درس زبان های برنامه نویسی وب جلسه 6

پنجشنبه 20 آبان 1389-03:53 ب.ظ

سلام به همه دوستان

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

درج سوال نهایی در تالار :

بحث آزاد مطالب این جلسه در تالار :


4. Web Servers

4.3    Advanced Features 
4.3.1 Virtual hosting 
4.3.2 Chunked transfers 
4.3.3 Caching support 
4.3.4 Extensibility

4.4    Server Configuration 
4.4.1 Directory structure
4.4.2 Execution
4.4.3 Address resolution
4.4.4 MIME support
4.4.5 Server extensions

4.5    Server Security
4.5.1 Securing the installation
4.5.2 Dangerous practices
4.5.3 Secure HTTP
4.5.4 Firewalls and proxies



گروه های بحث مقایسه هزینه نرم افزار های وب و دسکتاپ

سه شنبه 4 آبان 1389-03:45 ب.ظ

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

(بر اساس نظر دوستان در کلاس مورخ 4 آبان 1389)

...



سوالات درس زبان های برنامه نویسی وب

سه شنبه 27 مهر 1389-03:29 ب.ظ

 لطفا سوالات مربوط به جلسه آینده که شامل فصل 4 کتاب بخش های 1 و 2 هست را در تالار مطرح نمایید.


4. Web Servers

4.1  Basic Operation 
4.1.1 HTTP request processing
4.1.2 Delivery of static content
4.1.3 Delivery of dynamic content
4.2 Advanced Mechanisms for Dynamic Content Delivery 
4.2.1 Beyond CGI and SSI 
4.2.2 Native APIs (ISAPI and NSAPI)
4.2.3 FastCGI
4.2.4 Template processing
4.2.5 Servlets
4.2.6 Java server pages
4.2.7 Future directions



اولین جلسه درس مباحث پیشرفته تولید نرم افزار

شنبه 17 مهر 1389-03:34 ب.ظ

با سلام 

اولین جلسه درس مباحث پیشرفته تولید نرم افزار برگزار شد.

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

عنوان درس : توسعه سریع نرم افزار توسط الگوهای طراحی
پیش نیاز : گذراندن درس مهندسی نرم افزار 1 و آشنایی با شی گرایی و تحلیل و طراحی نرم افزار و آشنایی با یک زبان برنامه نویسی شی گرا

  • در این درس به طور ویژه به الگو های طراحی یا Design Pattern  ها پرداخته خواهد شد که روش هایی مهندسی جهت تولید نرم افزار ارائه می کنند.
  • دو دسته الگوی طراحی مطرح خواهند شد Grasp و GOF
  • در پایان این درس هدف این است که دانشجویان با استفاده از روش طراحی سریع و الگوهای طراحی بتوانند پروژه هایی را در قالب تیم های نرم افزاری، در زمان مشخصص طراحی و تولید نمایند.
  • بعد از پایان هر بخش مساله هایی مطرح می شود  و به عنوان تمرین می بایست با استفاده از مباحث درس خروجی های مورد نظر ارائه شود.
  • امتحان میان ترم نخواهد داشت
  • با توجه به کوچک بودن پروژه ها ،تک نفره تحویل داده می شوند
  •  4 یا 5  مساله یا پروژه کوچک مطرح خواهد شد

  • کتاب Applying UML and Patterns به عنوان کتاب مرجع 
  • ابزار های کیس در این درس مطرح نیستند
  • agile up یک حالت customize  شده متداول از RUP است
  • در توسعه سریع، مستندات آرشیوی جایگاهی ندارند و حتی نمودار های طراحی هم سازمان دهی و نگهداری نمی شوند .
  • در توسعه سریع، مهمترین مطلب کیفیت نرم افزار و خود نرم افزار است
  • از این رو نرم افزاری که خود مستند بوده و نیاز به مستند سازی یا کامنت گذاری نداشته باشد مطلوب است .
  • مهمترین مستند در تحلیل شی گرا سناریو ها هستند و نقطه تفاهم بین تولید کنندگان و مشتریان خواهد بود.
  • متدولوژی های به کار رفته در طراحی و تولید نرم افزار، بخصوص در مورد نرم افزار های سفارشی، باید منعطف باشند تا همگام با تغییر نیاز های مشتری قابلیت تغییر در پروژه وجود داشته باشد.

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

  •  یکی کاربر محور که با توجه به نحوه تعامل کاربر نهایی با سیستم انجام می شود و منجر به طراحی شی گرا می شود. (کاربر محور - سرویس گرا )
  • و دیگری با توجه به توضیحات کارفرما و یا کسانی که سیستم را تعریف کرده و عملیات اصلی را در آن انجام می دهند که منجر به طراحی ساخت یافته می  شود . ( پردازه گرا )

  • در این روش، نمودار های UML تنها جهت درک راحت تر مدل ها به کار می روند و نمودار های دقیق و بی عیب و نقص مد نظر نیستند
  • دلیل عدم استفاده از روش های مهندسی احساس عدم نیاز و تلاش در جهت پایین آوردن هزینه ها می باشد.
  • روش تولید سریع سعی می کند تا هزینه ها را کاهش دهد
  • کتاب Design Patterns کتاب مرجع دیگری است که استاد معرفی کردند که نویسنده آن Erich Gamma  هست
شاد و پیروز باشید 



اولین جلسه درس زبان های برنامه نویسی وب

چهارشنبه 14 مهر 1389-03:26 ب.ظ

با سلام 

اولین جلسه درس زبان های برنامه نویسی وب برگزار شد

استاد محترم این درس جناب آقای دکتر علی حمزه هستند، 
استاد دکترای هوش مصنوعی از دانشگاه علم و صنعت ایران دارند
جهت مشاهده اطلاعات بیشتر به صفحه پروفایل استاد مراجعه نمایید 
http://www.cse.shirazu.ac.ir/~ali

منابع درسی : 

کتاب اول : ( + فایل های صوتی )
web application architecture principles protocols and practices 

کتاب دوم : 
( + فایل های صوتی )
developer's guide to web application security

کتاب سوم :
web engineering principles and techniques
Woojong Suh

کتاب چهارم ( اختیاری ) :
 
Foundations of Security: What Every Programmer Needs to Know
Neil Daswani
Pub: Apress

*در صورت نیاز به یاد آوری مباحث شبکه کتاب زیر را جهت مطالعه معرفی کردند
Networking Top Down Approach 

طریقه محاسبه نمره نهایی :

امتحان میان ترم برگزار نخواهد شد
پروژه و تمرین 30 تا 40 درصد از نمره را شامل می شود


سایر نکاتی که استاد فرمودند : 
در درس ها به مفاهیم پرداخته می شود و زبان خاصی مد نظر نیست
پروژه ها به صورت انفرادی انجام می شوند

موضوع بحث جلسه دوم : 
هزینه های طراحی تولید و نگهداری نرم افزار های تحت وب و مقایسه آن با نرم افزار های دسکتاپ

در ضمن فرمودند  از کتاب اول Chapter 1 و همچنین 
Chapter3 - Sections 1-2-3   مطالعه گردد

موفق باشید


 


اولین جلسه درس مدیریت پروژه های نرم افزاری

یکشنبه 11 مهر 1389-03:15 ب.ظ

باسلام به همه دوستان

اولین جلسه کلاس برگزار شد

کلاس از ساعت 6 رسما شروع شد و تا ساعت 8 ادامه داشت .

استاد گرامی، جناب آقای دکتر محسن کشت ورز هستند 

منابع درس : 

Modern Systems Analysis and Design
Third Edition
Jeffrey A. Hoffer
Joey F. George
joseph s. Valacich

Prentice-Hall, inc

در این جلسه بخش زیر تدریس شد

Chapter 3
Managing the Information Systems Project


طریقه محاسبه نمره نهایی : 

1   انضباط 
3   پروژه
1   حضور در کلاس 
7   میان ترم
8   پایان ترم

در ضمن استاد فرمودند که پروژه های انتخابی میتونن در زمینه های نرم افزار، وب سایت های تجارت الکترونیک و حتی شبکه باشند .

با تشکر



برنامه نویسی شی گرا - قسمت چهارم

شنبه 9 مرداد 1389-11:58 ق.ظ

چند شکلی بودن - Polymorphism :

مفهوم چند شکلی یعنی این که یک شی یا موجودیت در شرایط مختلف رفتار متفاوت و مناسب داشته باشد .مثلا اگر در یک حلقه تابع toString را روی آرایه ای از اشیاء ( که نوعا متفاوت، اما همه فرزندان Object هستند ) صدا بزنیم، هر کدام به طریق مناسب خود را معرفی می کنند .

  • چند شکلی، امکان برنامه نویسی آینده نگر را فراهم می کند Future proof
  • متغیر چند شکلی متغیری است که می تواند انواع مختلف داده را بگیرد مثلا [] object objArray = object
  • با استفاده از چندشکلی هرچند تنها روال های پدر قابل مشاهده است اما در صورت وجود، روال های متناظر فرزند ( نوع حقیقی True-Type ) صدا زده می شود
در بالا چند شکلی خالص آورده شد اما به طور کلی می توان چند شکلی را به سه نوع تقسیم کرد :
  1. خالص (جایگذاری)
  2. پارامتری
  3. سربارگذاری
مزایای چند شکلی :
  1. کاهش کد نویسی
  2. درک بهتر کد
  3. امکان توسعه آسان

[Queue[T
و
([T] Add (a[T],b[T]
نمونه های دیگری از کاربرد چند شکلی هستند

  • سعی کنید روابط را از پیاده سازی جدا کرده و بجز کلاس های برگ، سایر کلاس ها را مجرد abstract تعریف کنید
  • هیچ گاه وراثت صحیح را قربانی چند شکلی نکنید و روال ها را بی جهت در سلسله مراتب ارث بری بالا نبرید
  • فراموش نکنید که چند شکلی، سرعت اجرا را تا حدودی پایین می آورد

ادامه مطالب به زودی  . . . .


نوع مطلب : مهندسی نرم افزار 



  • تعداد صفحات :3
  • 1  
  • 2  
  • 3  







ساخت وبلاگ در میهن بلاگ

شبکه اجتماعی فارسی کلوب | اخبار کامپیوتر، فناوری اطلاعات و سلامتی مجله علم و فن | ساخت وبلاگ صوتی صدالاگ | سوال و جواب و پاسخ | رسانه فروردین، تبلیغات اینترنتی، رپرتاژ، بنر، سئو