Transcript Document

‫امروزه دانش مهندس ی نرم افزار و به دنبال آن صنعت نرم افزار در دنیا به خوبی‬
‫جا ی خود را بازنموده است ‪.‬‬
‫متاسفانه حرکت موتور صنعت نرم افزار در ا یران بسیار کند و آهسته می باشد ‪.‬‬
‫عدم وجود د یدگاه ها ی مهندس ی و شیوه برخورد غیر مهندس ی با ا ین زمینه می‬
‫باشد ‪ .‬چرا که نرم افزارها ی طراحی شده داخل کشور یا به شیوه کارگاهی توسط‬
‫افراد ی که صرفا توانا یی هایی در یک زبان برنامه نویس ی‪ ،‬آن هم به طو ر‬
‫محدود‪،‬داشته اند انجام شده است ‪ .‬و یا اینکه به عنوان یک طرح تحقیقاتی و نه‬
‫تجاری و سودآور‪ ،‬در یکی ازمراکز دانشگاهی یا پژوهش ی کشور به انجام رسیده‬
‫است‬
‫طراحی ساختمان های داده‬
‫محاسبات‬
‫طراحی الگوریتم های مناسب‬
‫پروتکلهای ارتباطی‬
‫همزمانی و دسترسی به داده ها‬
‫تخصیص عملکرد برای طراحی المان ها‬
‫توزیع فیزیکی‬
‫ترکیب المان های طراحی‬
‫مقیاس و بازدهی نرم افزار‬
‫توجه به معماری و تمرکز بر روی آن اولین قدم و سنگ بنای شروع‬
‫ساخت و توسعه یک سیستم نرم افزار محسوب می گردد‪.‬‬
‫‪RUP‬که در چند سال اخیر از آن به عنوان متدولوژی پیشرو در‬
‫صنعت نرم افزار یاد می شود ‪ ،‬یک متدولوژی مبتنی بر معماری می‬
‫باشد ‪ .‬بدین معنا که بالفاصله پس از شناخت سیستم ‪ ،‬معماری نرم‬
‫افزار ترسیم می گردد ‪ .‬و تا استخراج یک معماری مشخص از‬
‫سیستم‪ ،‬فاز ساخت نرم افزار شروع نخواهد شد‪.‬‬
‫الیه بندی را می توان یک گروه بندی منطقی زیر سیستم ها بر اساس‬
‫عملکردشان دانست‪ .‬که بر این اساس عملکرد ها و وظایف مرتبط‬
‫با کاربرد و تعامل کاربر با سیستم در الیه های باالیی ‪ ،‬عملکرد ها‬
‫و وظایف مرتبط با دامنه مساله در الیه های میانی و عملکردها و‬
‫وظایف مرتبط با استقرار نر م افزار هم در الیه های پایینی قرار‬
‫می گیرند‪.‬‬
‫نقاط ضعف‬
‫نقاط قوت‬
‫افزایش حجم کاری و طوالنی شدن روند توسعه‬
‫سیستم‬
‫ساده شدن نگهداشت نرم افزار در آینده‬
‫کاهش سرعت سیستم در صورت افزایش الیه ها‬
‫استقالل الیه ها از یکدیگر و عدم وابستگی آنها به‬
‫هم‬
‫امکان بروز اشتباه در تعیین دقیق مرز الیه ها‬
‫امکان استفاده مجدد از کالس های هر الیه در‬
‫آینده‬
‫تجزیه یک سیستم به چند زیر سیستم و درک و‬
‫توسعه بهتر آن‬
‫منظور از سیستم های اطالعاتی ‪ ،‬به طور کلی سیستم های نرم افزاری‬
‫است که داده هایی را از کاربران سیستم اخذ نموده و آنها را در‬
‫پایگاه داده ذخیره کرده ‪ ،‬بر روی این داده ها پردازشهایی را انجام‬
‫داده و آنها را به اطالعات ‪ ٤‬تبدیل می کند ‪ .‬در انتها هم اطالعات‬
‫را در قالب گزارش های متنوع و با فرمتهای گوناگون و قابل فهم‬
‫کاربران به آنها ارائه می نماید‪ .‬این گونه نرم افزارها همواره به‬
‫یک سیستم مدیریت بانک اطالعاتی متصل بوده و با آن ارتباط‬
‫تنگاتنگی دارند‪.‬‬
‫این معماری که در واقع یک معماری دو الیه ‪Client‬ها و ‪server‬است ازسیستم‬
‫‪ Main Frame‬ایده گرفته است‪.‬‬
‫‪.‬‬
‫خارجی‬
‫مفهومی‬
‫داخلی‬
Presentation
<<layer>>
Business
<<layer>>
Data Access
<<layer>>
‫کالس‪: customer view‬‬
‫این کالس مسئول اجرای منطق الیه نمایش و تعامل با کاربر انسانی (مشتری) است ‪.‬‬
‫این کالس اجرای عناصر موجود در رابط(های) گرافیکی کاربر مشتری را‬
‫برعهده دارد‪.‬‬
‫کالس ‪: Customer‬‬
‫این کالس مسئول اجرای منطق الیه کسب و کار است ‪ .‬برای مثال این کالس مواردی‬
‫این کالس مسئول اجرای منطق الیه کسب و کار است ‪.‬‬
‫کالس ‪:CustomerData‬‬
‫این کالس مسئول اجرای منطق الیه دسترسی به داده است ‪ .‬برای مثال این‬
‫کالس حالت های مانا ی یک مشتری ( مثل اطالعات شخصی و شناسنامه ای و سایر‬
‫اطالعات مشابه ) را نگهداری می کند‪.‬‬
‫نوع سیستم‬
‫الیه ها‬
‫سمت کالینت‬
‫‪Single System‬‬
‫سمت سرور‬
‫الیه های ‪ :‬نمایش‪ُ ،‬دمین و‬
‫دسترسی به داده‬
‫‪Thin Client‬‬
‫الیه نمایش‬
‫‪Fat Client‬‬
‫الیه های ‪ :‬نمایش‪ُ ،‬دمین‬
‫الیه های ‪ُ :‬دمین و دسترسی به‬
‫داده‬
‫الیه دسترسی به داده‬
‫راهکاری که عموما ً برای جداسازی دو الیه از هم ارائه می شود و ما در اینجا برای الیه های‬
‫نمایش ودمین آنرا به کار خواهیم برد ‪ ،‬استفاده از یک الیه سوم یا الیه واسط است که بین این‬
‫دوالیه قرار میگرد ‪ .‬این الیه که معموالً با نام الیه کاربرد معرفی و شناخته می شود ‪ ،‬دقیقا ً‬
‫نقشی واسطه ای بین دوالیه نمایش و ُدمین دارد ‪ .‬الیه کاربرد مسئول تمامی دسترسی ها به‬
‫الیه ُدمین و انجام هر گونه پردازشی بجز پردازش های مربوط به واسط های گرافیکی کاربر‬
‫است‪.‬‬
Presentation
<<layer>>
Facade
<<layer>>
Domain
<<layer>>
MFC, Borland VCL, MS .Net,
Mac App, ...
‫نقش و جایگاه الیه "کاربرد" در میان سایر الیه ها‬