معرفی درس

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

سامانه های نرم افزاری امروزی به حجم کاربران میلیاردی بایستی دارای ساختار و معماری مناسبی باشد تا پاسخگویی نیازها و خواسته های کاربران باشد؟ به نظرتان این ساختار و ویژگی های چیستند؟

 


منابع درس:

1- Humberto Cervantes, Rick Kazman, “Designing Software Architectures: A Practical Approach”, 2016, Addison-Wesley.
2- Len Bass, Paul Clements,Rick Kazman, “Software Architecture in Practice”, 2013, Addison-Wesley, 3rd Edition.(متن فارسی ترجمه دکتر شمس و یا جعفرنژاد قمی در بازار موجود می باشد.)
3-Meier, J., Homer, A., Hill, D., Taylor, J., Bansode, P., Wall, L., Boucher Jr, R. and Bogawat, A., 2008. “Application Architecture Guide 2.0–Designing applications on the .NET platform”. Microsoft, Redmond, WA.
4-de la Torre, Cesar, Bill Wagner, and Mike Rousos. ".NET Microservices: Architecture for Containerized .NET Applications." Microsoft Corporation (2018).
5-Alexey Zimarev, “Hands-On Domain-Driven Design with .NET Core”, Published by Packt Publishing Ltd.,2019

 


طرح درس:

 

 

فعالیت کلاسی

منبع

 

 

مقدمه

PPT1

 

هفته اول

معماری نرم افزار و جایگاه آن در توسعه نرم افزار

(3) فصل 1و3 و (1) فصل 1، (2) فصل 1

 

هفته دوم

سبک های متخلف معماری

(3) فصل 6 (2) فصل 13

 

هفته سوم

ویژگیهای کیفی و  طراحی معماری

(1) فصل 2 و (3) فصل 7

 

هفته چهارم

  1. Microservices & Docker containers

(4)

*

هفته پنجم

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

(4)

*

هفته ششم

فرایند طراحی معماری

(1) فصل 3

 

هفته هفتم

مثال یک طراحی معماری

(1) فصل 4

 

هفته هشتم

  1. الگوهای طراحی نرم افزار (Design Pattern)

(5)

*

هفته نهم

مثال دوم طراحی معماری

(1) فصل 5

 

هفته دهم

  1. Domain Driven Design

 

*

هفته یازدهم

مثال سوم طراحی معماری

(1) فصل 6

 

پایان ترم

امتحان پایان ترم

 

 

پروژه پایانی - بررسی یک سیستم توزیع شده و پیاده سازی آن بر اساس میکروسرویس ها

یک هفته بعد از آخرین امتحان

 
توجه: 1) اعداد داخل پرانتر مربوط به منبع مربوطه می باشد.   2) * - به معنی ارائه توسط تیم مربوطه و در قالب بحث در کلاس می باشد. 3) مطالعه فصول مشخص شده قبل از جلسه کلاسی الزامی می باشد. 4) تیم های یک هفته قبل از ارائه بایستی منابع و مطالب ارائه شونده را در اختیار بقیه کلاس قرار دهد.
 
 

سایر  عناوین ارائه پروژه های درس معماری نرم افزار

  1. تفاوت ماهوی برنامه های موبایل با برنامه های ویندوزی و وبی از نظر سیستم عامل و محیط اجرا
  2. فراهم سازی CICD به صورت عملی
  3. فراهم سازی DevOps به صورت عملی
  4. بررسی تفاوت معماری MVC یا لایه ای
  5. Single – Sign on Solution Architecture
  6. Pushing + SingleR
  7.  AMQPپروتکل  

دانلود فایل ها