مهندسی نرم افزار1

تحلیل وطراحی سیستم ها

۲۳ الگو در ۳ گروه زیر جای گرفتند :


1- الگوهای ایجادی

·         (Abstract factory) رابطی برای ساخت فامیلی‌هایی از اشیاء مرتبط یا وابسته به هم بدون مشخص کردن کلاسهای واقعی آنها تدارک می‌بیند.

·         (Factory method) یک رابط برای ساخت اشیاء تعریف کرده و در عین حال اجازه می‌دهد تا زیر کلاسها در مورد اینکه چه شیء را نمونه سازی کنند تصمیم بگیرند. در واقع این الگو اجازه می‌دهد تا نمونه سازی را به زیر کلاسها محول نمود.

·         (Builder) فرآیند ساخت یک شیء را از نمایش آن جدا کرده تا بتوان همان فرآیند ساخت را برای ایجاد نمایش‌های مختلف بکار برد.

·         (Prototype) با استفاده از یک شیء بعنوان نمونه نوع اشیاء جدیدی که بایستی ساخته شوند را مشخص کرده و آن اشیاء را با ساختن کپی‌های جدید از این نمونه ایجاد می‌نماید.

·         (Singleton) این اطمینان را حاصل می‌کند که یک کلاس دارای تنها یک نمونه بوده و دسترسی به آن نمونه را تدارک می‌بیند.

2- الگوهای ساختاری

·         (Adapter) رابط یک کلاس را به رابط دیگری که مورد انتظار یک مشتری است تبدیل می‌کند. این الگو امکان همکاری بین اشیائی که قبلاً بخاطر داشتن رابط‌های ناسازگار نمی‌توانستند با هم کار کنند را فراهم می‌سازد.

·         (Bridge) یک مفهوم مجرد را از پیاده سازی اش مجزا کرده تا هردو بتوانند بطور مستقل تغییر کنند.

·         (Composite) اشیاء را بصورت ساختار درختی برای ایجاد ساختار سلسله مراتبی بفرم part-whole ترکیب می‌نماید. این الگو اجازه می‌دهد تا مشتریها اشیاء منفرد و مرکب را بصورت یکسانی پردازش کنند.

·         (Decorator) در زمان اجرا وظایف جدیدی به یک شی ء اضافه می‌کند. این الگو بدیلی قابل انعطاف برای گسترش عملکرد یک کلاس بوسیله زیر کلاس ساختن از آن را فراهم می‌کند.

·         (Facade) یک رابط منفرد برای مجموعه‌ای از رابط‌ها در یک زیر سیستم تدارک می‌بیند. در واقع یک facade رابط سطح بالاتری برای یک زیر سیستم تعریف کرده و باعث می‌شود تا زیر سیستم را بصورت ساده تری مورد استفاده قرار داد.

·         (Flyweight) از اشتراک منابع برای فراهم نمودن تعداد زیادی از اشیاء سبک بصورت کارا استفاده می‌کند.

·         (Proxy) یک جانشین یا جایگاه برای کنترل دسترسی به یک شیء ایجاد می‌کند.

3- الگوهای رفتاری

·         (Chain of responsibility) با دادن شانس به بیش از یک شیء برای پاسخگویی به یک درخواست از در هم آمیختن فرستنده و دریافت کننده یک درخواست جلوگیری می‌کند. به این ترتیب که اشیاء دریافت کننده یک درخواست را بصورت زنجیره‌ای در نظر گرفته و درخواست را در طول این زنجیره عبور داده تا اینکه یکی از اشیاء آنرا پاسخ پوید.

·         (Command) یک درخواست را بصورت یک شیء کپسول سازی می‌کند. بنابراین این امکان را فراهم می‌کند تا مشتری‌ها را با درخواستهای متفاوت پارامتردهی کرده، درخواستها را صف بندی یا Log کرده و اعمال قابل برگشت فراهم کنید.

·         (Interpreter) برای یک زبان، نمایشی از گرامرش به همراه مفسری که از آن نمایش برای تفسیر جملات مربوط به آن زبان استفاده می‌کند تعریف می‌نماید.

·         (Iterator) روشی برای دسترسی ترتیبی به عناصر یک شیء مجتمع (مرکب) بدون افشاء کردن نمایش آن فراهم می‌کند.

·         (Mediator) شیءی که نحوه تبادلات مجموعه‌ای از اشیاء را کپسول سازی می‌کند را تعریف می‌نماید. این الگو با پرهیز از ارجاعات مستقیم بین مجموعهای از اشیاء، اتصال حداقلی بین آنها را ترغیب نموده و اجازه می‌دهد تا تبادلات را بصورت مستقل تغییر دهید.

·         (Memento) بدون شکستن کپسول سازی، حالت درونی یک شیء را تسخیر و ذخیره کرده تا آن شیء بتواند بعداً به آن حالت برگشت یابد.

·         (Observer) یک نوع وابستگی یک- به- چند بین اشیاء تعریف کرده بطوریکه وقتی یک شیء حالتش را تغییر داد تمام اشیاء وابسته به آن خبردار شده تا آنها خود را با آن تغییر هماهنگ کنند.

·         (State) اجازه می‌دهد تا یک شیء هنگامیکه حالتش عوض شد رفتارش را تغییر دهد. اشیاء از این نوع رفتار کلاسی که در آن قرار دارند را تغییر می‌دهند.

·         (Strategy) یک خانواده از الگوریتم‌ها را تعریف؛ کپسول سازی و قابل جایگزین کردن می‌کند. استراتژی اجازه می‌دهد تا یک الگوریتم را بدون توجه به جائیکه مورد استفاده قرار می‌گیرد تغییر داد.

·         (Template method) اسکلت یک الگوریتم را تعریف کرده و پیاده سازی بعضی قدم‌های آنرا به زیر کلاسها محول می‌کند. این الگو امکان تغییر بعضی از قدم‌های یک الگوریتم را بدون تغییر در ساختار کلی الگوریتم به زیر کلاسها می‌دهد.

·         (Visitor) عملی که بایستی بر روی عناصر یک ساختار از اشیاء اعمال شود را نمایش می‌دهد. این الگو اجازه   می‌دهد تا عمل جدیدی بدون نیاز به تغییر کلاسهای عناصری که بر روی آن عمل می‌کند را تعریف کنید.

·     

منبع

وکی پدیا

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ آذر ۹۴ ، ۰۱:۰۷
فاطمه حدیدی

الگوهای معماری

- هر معماری نرم افزار ممکن است چند الگوی معماری داشته باشد که به مسائل گوناگون از قبیل همروندی، ماندگاری و توزیع

مربوط می شوند.

- چند دامنه الگوی معماری: کنترل دستیابی، همروندی، توزیع و ماندگاری

 الگوهای طراحی در سطح مولفه ها

- الگوهای طراحی در سطح مولفه ها راهکارهای اثبات شده در اختیار شما قرار می دهند که به یک یا چند مساله فرضی

استخراج شده از مدل خواسته های می پردازند.

- در بسیاری موارد، الگوهای طراحی از این نوع یک عنصر از سیستم را کانون توجه قرار می دهند

 الگوهای طراحی واسط کاربر

واسط کاربر کامل: راهنمایی برای طراحی ساختار سطح بالا و گشت و گذار در سرتاسر واسط فراهم می آورد.

- الگوی Top Level Navigation : هنگامی استفاده می شود که یک سایت یا برنامه کاربردی چند قابلیت عملیاتی عمده را

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

قابلیت های عمده را فراهم می سازد.

 الگوهای طراحی برای برنامه های تحت وب

- هنگام پرداختن به مسائل طراحی مرتبط با ساخت برنامه های تحت وب، در نظر گرفتن گروه های الگو با در نظر گرفتن دو

بعد می تواند مفید واقع گردد:

- کانون طراحی الگو: مشخص می کند که کدام جنبه از مدل طراحی مد نظر است.

- سطح دانه بندی: سطح انتزاع را مشخص می کند.

 کانون طراحی

- در سطح بالایی از انتزاع آغاز می شود، و به تدریج به جزئیات و مشخصات آن ها افزوده می شود.

- به بیان دیگر، کانون طراحی با نزدیکتر شدن به طراحی باریک تر می شود.

- مسائلی که هنگام طراحی معماری اطلاعاتی برای برنامه تحت وب به آنها بر می خورید با مسائل که هنگام اجرای طراحی

واسط مشاهده می کنید، تفاوت دارد.

- الگوهای برنامه تحت وب را می توان بر اساس سطح کانون طراحی گروه بندی کرد: الگوی معماری اطلاعاتی، الگوهای گشت و

گذار، الگوهای ارائه و الگوهای عملیاتی.

 دانه بندی طراحی

- از نظر سطح دانه بندی الگوها را می توان در سطوح زیر تعریف کرد: الگوهای معماری، الگوهای طراحی و الگوهای مولفه ها



www.mjahangir.ir

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ آذر ۹۴ ، ۰۰:۳۹
مینا قاسمی

 الگو چیست؟

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

¡     یک طرح کلی از یک راه حل با قابلیت استفاده مجدد برای یک مسئله کلی است.


الگوهای طراحی

1.      تاریخچه

بحث Design Pattern برای اولین بار در دنیای نرم‌افزار توسط GoF صورت گرفت. یک گروه چهار نفره شامل: Erich Gamma ،Richard Helm ،Ralph Johnson و John Vlissides ملقب به Gang of Four یا GoF هستند. این گروه در ۲۱ اکتبر سال ۱۹۹۴ کتابی را تحت عنوان Design Patterns: Elements of Reusable Object-Oriented Software منتشر کردند. (این کتاب تا تاریخ آوریل ۲۰۰۷، سی و ۶ بار تجدید چاپ شده است) آنها در این کتاب ۲۳ الگوی طراحی کلاسیک را با زبان‌های شی گرا مطرح در آن زمان (++C و Smalltalk) برای اولین بار مورد بحث قرار دادند.

2.      اشنایی با مفاهیم

      در الگوی طراحی از اشیاء ویژه‌ای به نام آداپتور (واسطه) استفاده می‌شود. این آداپتورها به اشیاء مورد نیاز در پروژه مرتبط می‌شوند. نوشتن برنامه تا حد زیادی از طریق این واسطه‌ها انجام می‌شود . الگوهای طراحی را بر اساس دو معیار طبقه بندی می‌کنیم.

1- اولین معیار، که مقصود نامیده شده، منعکس کننده آنچه یک الگو انجام می دهداست. یک الگو ممکن است هدف ایجادی، ساختاری یا رفتاری داشته باشد.
الگوهای ایجادی پروسه ایجاد اشیاء را مورد توجه قرار می‌دهند.
الگوهای ساختاری با ترکیب کلاسها و اشیاء سروکار دارند.
الگوهای رفتاری طرقی که اشیاء با همدیگر فعل و انفعال انجام داده و وظایف را توزیع می‌کنند مشخص می‌سازند.
2-
 معیار دوم، که محدوده نامیده شده، مشخص کننده اینکه الگو بر روی کلاسها یا اشیاء اعمال می‌گردد. است. الگوهای در محدوده کلاسها با ارتباطات بین کلاسها و زیر کلاسهای آنها سر و کار دارند. اینگونه ارتباطات از طریق وراثت برقرار می‌گردد، که بنابراین در زمان کمپایل ثابت می‌شوند. الگوهای در محدوده اشیاء با ارتباطات بین اشیاء سرو کار داشته که می‌تواند در زمان اجرا تغییر کرده و در نتیجه پویا هستند. تقریباً تمام الگوها از وراثت استفاده می‌کنند. بنابراین الگوهایی که با برچسب "در محدوده کلاس" معین شده‌اند آنهایی هستند که تنها بر روی ارتباط بین کلاسها تاکید دارند. توجه کنید که بیشتر الگوها در محدوده اشیاء عمل می‌کنند.

 

      3.  کاربرد

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

 

منابع با اندکی تغییر

ازمایشگاه هوشمند

وکی پدیا

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ آذر ۹۴ ، ۰۵:۲۱
فاطمه حدیدی

طراحی مبتنی بر الگوها چیست؟

- در این شیوه، نرم افزار جدید، با یافتن مجموعه ای از راهکارهای اثبات شده در یک مجموعه مسائل ایجاد می شود.

- هر مساله به وسیله یک الگوی طراحی توصیف می شود که توسط سایر مهندسان نرم افزاری بررسی شده است، که هنگام

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

- هر الگوی طراحی برای بخشی از مساله که قرار است حل شود، یک رویکرد و روش اثبات شده در اختیار شما می گذارد.

 

 

الگوهای طراحی

 الگوهای طراحی چه هستند؟

- الگوهای طراحی را می توان یک قاعده سه بخشی دانست که واسط میان یک حیطه معین، یک مساله و یک راهکار را بیان

می کند.

- حیطه: این امکان را می دهد تا محیطی را که مساله در آن جای دارد درک کند و در یابد چه راهکارهایی ممکن است در این

محیط مناسب باشد.

- مجموعه ای از خواسته ها، از جمله محدودیت ها و قید و بندها، به عنوان سیستم نیروهای تاثیرگذار بر شیوه تفسیر مساله در

حیطه اش و چگونگی بکارگیری موثر آن راهکار عمل می کند.

- مفهوم اثبات شده است یعنی الگوها راهکارهایی را به دست می آورند که دارای سابقه باشند.

- الگوهای طراحی، اگر به طور موثر استفاده شود امکان طراحی نرم افزار بهتر را فراهم می کنند.

 

 

مخازن و زبان های الگو

- زبان الگوها شامل مجموعه ای از الگوها می شود که هر یک با به کارگیری یک قالب استاندارد شده توصیف می شود و با سایر

الگوهای مربوطه ارتباط داده می شود تا مسائل موجود در یک دامنه کاربرد را با همکاری یکدیگر حل کنند.

- زبان الگوها مشابه با یک جزوه راهنمای ابرمتنی است که برای حل مساله در یک دامنه خاص بکار می رود .

- ده ها زبان الگو برای طراحی نرم افزار پیشنهاد شده است در اکثر موارد، الگوهای طراحی که بخشی از زبان الگوها هستند در

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

آورد.

 طراحی مبتنی بر الگوها در حیطه

- طراحی مبتنی بر الگو در خلا به کاربرده نمی شود.

- مفاهیم و تکنیک های بحث شده برای طراحی معماری، طراحی در سطح مولفه ها و طراحی واسط در ارتباط با رویکرد مبتنی

بر الگو به کار برده می شوند.

- هنگامی که کار خود را به عنوان طراح شروع کردید، همواره باید صفات کیفیتی را مدنظر داشته باشید.

- این صفات راهی برای ارزیابی کیفیت نرم افزار تعیین می کنند ولی در دستیابی به آن کمک چندانی ارائه نمی دهند

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ آذر ۹۴ ، ۰۱:۵۱
مینا قاسمی

?What Is The Pattern 

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

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


کلاس الگو های نرم افزار 

الگو های مفهومی 

الگوهای طراحی : 

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

الگو های تجزیه و تحلیل :

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

الگو های برای معماری نرم افزار :

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

سازمانی و فرآیند الگوها :

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

الگو های نرم افزار ->ولادن دودزیک 

الگو مبتنی بر مهندسی نرم افزار ->ویلیام ک. چو 

چیه -وی -لو 

چیه هانگ چنگ 

یه چینگ چانگ

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ آذر ۹۴ ، ۰۰:۰۳
مریم قویدل

Pattern

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


سوال این جاست که آیا باید از الگو ها استفاده کنیم؟ 

اگر پاسخ صحیح است از کدام یک باید استفاده کنیم؟ 

چگونه الگوی درستی را پیدا کنیم؟ 

چقدر زمان در پیدا کردن ، یادگیری و سپس اعمال الگوی سرمایه گذاری لازم است؟

چه چیز در مورد الگوهای جدید وجود دارد؟ 

ایا الگوهای مورد استفاده در پروژه شخصی یا سازمان وجود دارد ؟

چگونه بازدید کنندگان می توانند این الگوها را به طور خودکار استفاده کنند؟ 


با مهندسی بر اساس الگو (PBE) _ درباره ی این سوالات بحث می کنیم و شما را با ابزار ها اشنا میکنیم.

بهترین شیوه و الگوها به شما کمک میکند تا پاسخ درست را برای وضعیت خود پیدا کنید.

(PBE) شامل مجموعه ای از محتوا و ابزار ها است برای کمک به شما در استفاده از الگو ها در پروژه خود که باعث موفقت میشوند.


نمونه کارها شامل:


1. الگو های کتاب های مهندسی :

کتاب پوشش جامع از یک رویکرد سیستماتیک و منظم به استفاده از الگوها ( هر دو به عنوان مشخصات و خودکار به عنوان پیاده سازی) به موفقیت ارائه نرم افزار کمک می کند.


 PBE practice .2 :

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

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


3. دستور العمل های دقیق و الگو های PBE :

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


4. یک مطالعه موردی :

مطالعه مورد بحث در این کتاب ، عمل PBE و الگوهای PBE و دستورالعمل ها را فراهم می کند .مشخصات دقیق از اینکه چگونه یک سازمان می تواند PBE در تلاش تحویل نرم افزار خود را قدرت نفوذ بخشد . کد منبع و آزمون مصنوعات برای دانلود در دسترس هستند.


5. مهندسی بر پایه الگو :

خالص _ این وب سایت، فراهم می کند که دسترسی به دانلود مرتبط با این کتاب (از جمله عمل PBE و مصنوعات مورد مطالعه کتاب) با بینش بیشتر از نویسندگان کتاب، اشاره گر به موارد مرتبط،  شما را به تعامل با نویسندگان کتاب قادر میسازد.



Related Resources


۰ نظر موافقین ۰ مخالفین ۰ ۲۵ آذر ۹۴ ، ۲۳:۵۰
فرناز شعبانی