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

...دانلود...

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

چکیده

چکیده مقاله در حداکثر یک صفحه باید در این قسمت قرار گیرد.

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

فهرست مطالب

عنوانشماره صفحه

چکیده3

فهرست مطالب4

فهرست جدول ها10

فهرست شکل ها11

مقدمه14

فصل اول

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

1-1مقدمه 20

1-2تاریخچه معماری20

1-3مفهوم و تعریف معماری21

1-4چارچوبهای معماری22

1-4-1چارچوب معماری Zachman22

1-4-2چارچوب معماری FEAF23

1-4-3چارچوب معماری C4ISR23

1-5چارچوب ها و متدولوژی ها23

1-6دسته بندی معماری ها25

1-6-1معماری سیستم، معماری نرم افزار25

1-6-2معماری سازمان26

1-6-3معماری کسب و کار26

1-6-4معماری اطلاعات27

1-6-5معماری سیستمهای کاربردی27

1-6-6معماری داده 28

1-6-7معماری تکنولوژی28

1-7معماریهای دیگر30

فصل دوم

مفهوم معماری نرم افزار و مقایسه ای تحلیلی بر تعاریف آنها32

2-1مقدمه 32

2-2مفهوم معماری نرم افزار32

2-3تعاریف معماری نرم افزار33

2-4دلایل وجود تعاریف مختلف برای معماری نرم افزار35

2-4-1وجود دیدگاهها و رویکردهای متفاوت35

2-4-2کیفی بودن شناسه ‘سطح بالا بودن’ در مفهوم معماری36

2-4-3تفاوت در کلمات مورد استفاده در تعاریف36

2-5ارائه جدول اجزاء تشکیل دهنده تعاریف36

2-5-1اجزاء معماری نرم افزار و منطق انتخاب اجزاء37

2-5-2ارتباط های بین اجزاء معماری نرم افزار38

2-5-3مجموعه اجزاء معماری نرم افزار و ارتباط بین آنها39

2-6تعریف و مقایسه پارمترهای متناظر در چارچوب40

2-6-1رابطه، ارتباط، تعامل، اتصال41

2-6-2اجزاء نرم افزاری، موئلفه، زیرسیستم42

2-6-3خصوصیت، واسط، رفتار44

2-6-4ساختار، سازماندهی، چارچوب45

فصل سوم

مفهوم، تعریف و سنجش مشخصه های کیفی در معماری نرم افزار47

3-1مقدمه 47

3-2مفهوم کیفیت نرم افزار و مشخصه های کیفی47

3-3تعریف کیفیت در نرم افزار و مشخصه های کیفی49

3-4Observable via Execution50

3-5Not Observable via Execution50

3-6معرفی برخی از صفات کیفی نرم افزار بر اساس دسته بندی [Bass 03]52

3-7صفات دسته اول: صفات کیفی سیستمی53

3-7-1Availability54

3-7-2Performance54

3-7-3Security55

3-7-4Functionality55

3-7-5Usability56

3-7-6Modifiability56

3-7-7Portability57

3-7-8Reusability57

3-7-9Integrability58

3-7-10Testability58

3-8صفات دسته دوم: صفات کیفی کسب و کار59

3-8-1Time to Market59

3-8-2Cost and benefit59

3-8-3Projected lifetime of the system59

3-8-4Targeted Market59

3-8-5Rollout schedule59

3-8-6Integration with legacy systems60

3-9صفات دسته سوم: صفات کیفی معماری60

3-9-1Conceptual Integration60

3-9-2Correctness and Completeness60

3-9-3Buildability60

3-10Trade-Off موجود بین صفات کیفی60

فصل چهارم

سبک ها و الگوهای معماری نرم افزار و نحوه ارزیابی و انتخاب آنها64

4-1مقدمه و تاریخچه64

4-2تعریف سبک معماری65

4-2-1تعاریف مختلف سبک معماری نرم افزار65

4-3معرفی برخی سبک های متداول65

4-3-1سبک های متمرکز روی داده66

4-3-2سبک های جریان داده67

4-3-3سبک های ماشین مجازی68

4-3-4سبک های فراخوانی و بازگشت69

4-3-5سبک های موئلفه های مستقل71

4-3-6سبکهای چند ریختی72

4-4الگوهای معماری نرم افزار73

4-5سازماندهی الگوها73

4-5-1الگوهای پیاده سازی75

4-5-2الگوهای طراحی75

4-5-3الگوهای معماری75

4-6الگوها و سبک ها77

4-7ارزیابی و انتخاب یک سبک معماری نرم افزار77

4-7-1پارامترهای ارزیابی سبکها77

4-7-2جدول ارزیابی سبکها77

4-7-3تکمیل جدول ارزیابی سبکها78

4-7-4ارائه الگوریتم استفاده از جدول78

4-7-5مشکلات موجود80

فصل پنجم

طرح مشکل موجود، سوابق، راهکارها و کارهای انجام شده82

5-1مقدمه82

5-2طرح مشکل موجود در سبکهای معماری نرم افزار82

5-3دسته بندی های سبکهای معماری84

5-3-1دسته بندی های موضوعی84

5-3-2دسته بندی سبکهای معماری بر اساس [Clements 02-1]86

5-3-3دسته بندی های سیستمی89

فصل ششم

ارائه یک استاندارد برای سازماندهی سبکهای معماری نرم افزار93

6-1مقدمه93

6-2ورودی و خروجی های یک استاندارد سازماندهی سبکها93

6-3بررسی جنبه های موجود برای ارائه یک استاندارد سازماندهی94

6-3-1دسته بندی های سیستمی94

6-3-2دسته بندی های موضوعی94

6-3-3روشهای ارزیابی سبکهای معماری نرم افزار95

6-3-4روشهایی استاندارد برای مستند کردن و جمع بندی سبکها95

6-4اجزاء استاندارد سازماندهی سبکها97

6-4-1دسته بندی پیشنهادی برای کلیه سبکهای معماری نرم افزار97

6-4-2کاتالوگ مستند سازی کلیه سبکهای معماری نرم افزار98

6-5معرفی فرایند ایجاد استاندارد سازماندهی سبکها99

6-6فاز اول: تهیه استانداردهای مورد نیاز100

6-6-1قدم اول: ارائه یک استاندارد برای دسته بندی انواع سیستم های نرم افزاری101

6-6-2قدم دوم: ارائه یک استاندارد برای دسته بندی انواع سبکهای معماری نرم افزار103

6-6-3قدم سوم: ارائه یک استاندارد برای مستند کردن هر سبک معماری نرم افزار105

6-6-4قدم چهارم: ارائه یک استاندارد برای دسته بندی انواع مشخصه های کیفی107

6-7فاز دوم: تهیه دسته بندی استاندارد و قالب استانداردِ کاتالوگ سبکها109

6-7-1قدم اول: ارائه یک قالب دسته بندی استاندارد برای سبکهای معماری نرم افزار110

6-7-2قدم دوم: ارائه یک قالب استاندارد برای کاتالوگ کلیه سبکهای معماری نرم افزار112

6-8فاز سوم: جمع آوری و مستند کردن سبکهای موجود و ارائه روشهای ارزیابی113

6-8-1قدم اول: اضافه کردن سبکهای دسته بندی های موضوعی به استاندارد113

6-8-2قدم دوم: اضافه کردن سبکهای دسته بندی های سیستمی به استاندارد113

6-8-3قدم سوم: تهیه یا ارائه مدل ارزیابی برای سبکهای هر نوع سبک/نوع سیستم114

6-9فاز چهارم: ارائه طرحهای کاربرد، توسعه و سازگاری استاندارد114

6-9-1قدم اول: ارائه طرح استانداردِ ارائه سبکهای جدید114

6-9-2قدم دوم: ارائه طرحها و قوانین توسعه استانداردهای موجود114

6-10جمع بندی کلی استاندارد ارائه شده115

فصل هفتم

مدلسازی فرایندهای استاندارد ارائه شده، بر اساس UML118

7-1مقدمه118

7-2فرایند مدلسازی فرایند118

7-3مدل کردن منابع کسب وکار119

7-4مدل کردن اهداف کسب وکار120

7-5تعیین Actorهای کسب وکار120

7-6مدل جریانهای کاری موجود در استاندارد121

7-7جریانهای کاری فاز اول122

7-7-1فاز اول – قدم اول122

7-7-2فاز اول- قدم دوم123

7-7-3فاز اول – قدم سوم123

7-7-4فاز اول – قدم چهارم124

7-8جریانهای کاری فاز دوم124

7-8-1فاز دوم – قدم اول125

7-8-2فاز دوم – قدم دوم125

7-9جریانهای کاری فاز سوم126

7-9-1فاز سوم – قدم اول127

7-9-2فاز سوم – قدم دوم127

7-9-3فاز سوم – قدم سوم128

7-10جریانهای کاری فاز چهارم128

7-10-1فاز چهارم – قدم اول129

7-10-2فاز چهارم – قدم دوم129

7-11مدل خروجی های کسب وکار130

فصل هشتم

خلاصه، نتیجه گیری و کارهای آینده132

8-1 مقدمه132

8-2 خلاصه و نتیجه گیری132

8-3 کارهای آینده133

8-4 در نهایت135

منابع و مراجع136

فهرست جدول ها

شماره جدولشماره صفحه

جدول 1 1 : چارچوب های مهم معماری23

جدول 2 1 : یک چارچوب برای تعاریف معماری نرم افزار40

جدول 2 2 : پارامترهای متناظر در چارچوب41

جدول 4 1: الگوهای معماری نرم افزار ارائه شده در [Buschmann 96]76

جدول 4 2: یک مثال برای سبکها و اعداد مربوط به هر یک از مشخصه های کیفی آنها79

جدول 4 3: مقادیر مشخصه های کیفی که کاربر درخواست نموده است.80

جدول 4 4: مجموع قدر مطلق تفاضلات محاسبه شده برای هر سبک80

جدول 4 5: مجموع مربعات تفاضلات محاسبه شده برای سبکهایی که مقدار SAD یکسانی دارند80

جدول 5 1 : دسته بندی سبکهای معماری نرم افزار در [Shaw 96]85

جدول 5 2 : دسته بندی [Fielding 00]86

جدول 5 3 : دسته بندی سبکهای معماری نرم افزار بر اساس [Clements 02-1]89

جدول 5 4 : دسته بندی [Buschmann 96]89

جدول 5 5: سبکهای ارائه شده برای سیستمهای پردازش توزیع شده از [Morisawa 02]90

جدول 5 6: سبکهای ارائه شده برای سیستمهای اطلاعاتی سازمان از [Kolp 01]90

جدول 5 7: سبکهای ارائه شده در [Hawthorne 05]90

جدول 5 8: سبکهای ارائه شده برای سیستمهای تجارت الکترونیک از [Widhani 02]90

جدول 5 9: سبکهای ارائه شده برای سیستمهای مدیریت منابع از [Kircher 04]91

جدول 6 1: انواع سیستمهایی که تاکنون برای آنها سبک معماری ارائه شده است.102

جدول 6 2: استانداردی برای مستند کردن هر سبک بر اساس استاندارد [Clements 02-1]106

جدول 6 3: عبارات اختصاری استفاده شده در جدول111

فهرست شکل ها

شماره شکلشماره صفحه

شکل 1 1: مفهوم معماری تدبیرات و نقشه های قبل از ساخت سیستمها است. ]ایزایران 81[21

شکل 1 2 : نحوه بیان متدولوژی ها با چارچوب ها ]ایزایران 81[24

شکل 1 3 : معماری سازمان و زیرمعماری های مربوطه از ]ایزایران 81[26

شکل 2 1 : مفهوم معماری نرم افزار، طراحی سطح بالا می باشد33

شکل 2 2 : جزء معماری به ناظر و منظر معمار بستگی دارد37

شکل 2 3 : R یک رابطه بیرونی و R1 یک رابطه درونی است38

شکل 2 4: فرامدل پیشنهادی برای رابطه، ارتباط، تعامل، اتصال42

شکل 2 5: فرامدل ارائه شده برای جزء، موئلفه، سیستم و…43

شکل 2 6: فرامدل پیشنهادی برای رفتار، خصوصیت، واسط45

شکل 3 1: فرامدل ارتباط مشخصه های کیفی با دیگر مفاهیم موجود در معماری از [Albin 03]50

شکل 3 2: تاکتیک های ارائه شده برای دستیابی به حد مطلوب Availability در [Bass 03]51

شکل 3 3: دسته بندی مشخصه های کیفی بر اساس [Bass 03]53

شکل 3 4: Trade-Offهای موجود بین مشخصه های کیفی و حد مطلوب آنها از [Barbacci 95]61

شکل 3 5: ارتباط صفات کیفی و وابستگی آنها به یکدیگر از [Fitzpatrik 96]62

شکل 4 1: دسته بندی Garlan و Shaw برای سبک های معماری نرم افزار از [Shaw 96]66

شکل 4 2 : مدل سبک های متمرکز روی داده از [Shaw 96]67

شکل 4 3 : سبک Pipe and Filter از [Shaw 96]68

شکل 4 4 : سبک برنامه اصلی و زیرروال از [Shaw 96]69

شکل 4 5: سبک معماری Object Oriented از [Shaw 96]70

شکل 4 6 : نمونه ای از سبک لایه ای مورد استفاده در استاندارد ارتباطی ISO از [Shaw 96]71

شکل 4 7: مجموعه از الگوها از [Trowbridge 03]74

شکل 4 8: نمایش روابط الگوها با خطوط از [Trowbridge 03]74

شکل 4 9: سطوح انتزاع الگوها از ]زاداحمد 85[75

شکل 4 10: الگوی لایه ای از ]زاداحمد 85[76

شکل 4 11 : جدول ارزیابی سبکهای معماری نرم افزار بر اساس پارامترِ مشخصه های کیفی78

شکل 5 1: قسمتی از دسته بندی سبکهای معماری نرم افزار از [Shaw 97]85

شکل 5 2 : ارتباط بین نوعِ دید معماری، سبک معماری، دید معماری از [Clements 02-1]88

شکل 6 1: ورودی و خروجی های سیستم استاندارد سازماندهی سبکهای معماری نرم افزار94

شکل 6 2: جنبه هایی که باید برای ارائه استاندارد سازماندهی سبکها در نظر بگیریم.96

شکل 6 3 : منظرها و ناظرهای هر سبک معماری نرم افزار98

شکل 6 4: اجزاء اصلی استاندارد سازماندهی سبکهای معماری نرم افزار98

شکل 6 5: دسته بندی اولیه برای سبک های معماری نرم افزار از [Ryoo 05]104

شکل 6 6: یک دسته بندی قابل توسعه برای سبک های معماری نرم افزار از [Ryoo 05]104

شکل 6 7: مدل کیفیت McCall از [Astudillo 04]108

شکل 6 8: مدل کیفیت ISO/9126 از [Astudillo 04]109

شکل 6 9: نمونه یک دسته بندی انواع سیستمها برای سیستمهای اطلاعاتی110

شکل 6 10: قالب دسته بندی پیشنهادی برای سیستمهای اطلاعاتی111

شکل 6 11: فرایند ارائه قالب استاندارد برای تهیه کاتالوگ سبکها112

شکل 6 12: فرایند ایجاد یک استاندارد برای سازماندهی سبکهای معماری نرم افزار117

شکل 7 1: منابع کسب وکار مورد استفاده در کل فرایند119

شکل 7 2: سلسله مراتب اهداف در فرایند معرفی شده120

شکل 7 3: Actorهای کسب وکار موجود در فرایند ارائه شده121

شکل 7 4: فازهای فرایند ارائه استاندارد121

شکل 7 5: مدل قدمهای ارائه شده برای فاز اول122

شکل 7 6: مدل فرایند ارائه شده برای قدم اول از فاز اول123

شکل 7 7: مدل فرایند ارائه شده برای قدم دوم از فاز اول123

شکل 7 8: مدل فرایند ارائه شده برای قدم سوم از فاز اول124

شکل 7 9: مدل فرایند ارائه شده برای قدم چهارم از فاز اول124

شکل 7 10: مدل قدمهای ارائه شده برای فاز دوم125

شکل 7 11: مدل فرایند ارائه شده برای قدم اول از فاز دوم125

شکل 7 12: مدل فرایند ارائه شده برای قدم دوم از فاز دوم126

شکل 7 13: مدل قدمهای ارائه شده برای فاز سوم126

شکل 7 14: مدل فرایند ارائه شده برای قدم اول از فاز سوم127

شکل 7 15: مدل فرایند ارائه شده برای قدم دوم از فاز سوم127

شکل 7 16: مدل فرایند ارائه شده برای قدم سوم از فاز سوم128

شکل 7 17: مدل قدمهای ارائه شده برای فاز چهارم128

شکل 7 18: مدل فرایند ارائه شده برای قدم اول از فاز چهارم129

شکل 7 19: مدل فرایند ارائه شده برای قدم دوم از فاز چهارم129

شکل 7 20: خروجی های هر یک از مراحل که منجر به استاندارد نهایی خواهد شد.130

مقدمه

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

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

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

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

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

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

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

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

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

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

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

در نتیجه می توان مشکلات موجود برای ارائه یک معماری را به صورت زیر بیان کرد:

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

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

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

4-عدم وجود یک سری از مشخصه های کیفی استاندارد که همه ارائه کنندگان سبکها از آنها برای ارائه روشهای ارزیابی خود استفاده کنند.

5-به دلیل وجود سبکهای مختلف، یک معمار نرم افزار در انتخاب یک سبک معماری دچار سردرگمی خواهد شد.

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

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

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

در نتیجه عوامل دیگری نیز باید در این دسته بندی ها لحاظ گردند. به عنوان مثال نحوه ارزیابی سبکها که باید برای تمامی سبکها، روشهای ارزیابی با سبکهای همنوع خود ارائه شود یا روشی استاندارد برای مستند کردن سبکها در این دسته بندی ها وجود داشته باشد.

در نتیجه برای رفع مشکلات موجود، نیاز به یک استاندارد سازماندهی برای کلیه سبکها داریم که بر اساس این استاندارد بتوانیم کلیه سبکهای موجود و سبکهایی را که در آینده ارائه خواهد شد، سازماندهی کنیم. درنتیجه اگر توسعه چنین استانداردی را به عنوان یک سیستم در نظر بگیریم، می توانیم از روشهای توسعه سیستمها همانند مدلهای موازی یا فازبندی شده مثل RUP ، برای توسعه و تکمیل این استاندارد استفاده کنیم.

برای توسعه چنین استانداری می توان مراحل زیر را بر اساس متدولوژی RUP جنین تعریف کرد.

1- فاز اول – شناخت (Inception): در این فاز به بررسی و شناخت مسئله موجود پرداخته و کلیه مفاهیم مورد نیاز برای آن را مورد بررسی قرار می دهیم. به طوری که دید درستی از مسئله و آنچه می خواهد داشته باشیم. در حقیقت مسئله مورد نظر، تعریف و مورد بررسی قرار می گیرد و مفاهیم مورد استفاده در مسئله شناخته می شوند.

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

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

1-2- بررسی مفهوم و تعریف معماری نرم افزار: در این مرحله به بررسی مفهوم معماری نرم افزار می پردازیم و با اشاره به تعریف معماری نرم افزار، سعی می کنیم درکی واضح و بدون ابهام از معماری داشته باشیم.

1-3-بررسی مشخصه های کیفی در معماری نرم افزار: با توجه به اهمیت مشخصه های کیفی در معماری نرم افزار و اینکه هدف اصلی معماری، دستیابی به میزان مطلوبی از این مشخصه ها است، در نتیجه باید مفهوم، تعریف و نحوه اندازه گیری هر یک از مشخصه های کیفی مورد بررسی قرار گیرد.

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

2-فاز دوم – تکوین (Elaboration): در این فاز باید نیازمندیهای سیستم مورد نظر به صورت کامل شناخته شده و مورد تحلیل قرار گیرند. برای تحلیل نیازمندیها ابتدا باید فرایندهای توسعه سیستم را پیدا یا معرفی کرده سپس آنها را به موردهای کاربرد شکسته و با معرفی سناریو برای هر یک از آنها، گروههای کاری تشکیل شده و موردهای کاربرد را مورد تحلیل قرار دهند.

برای سیستم مورد نظر یعنی ارائه یک استاندارد برای سازماندهی سبکهای معماری نرم افزار مراحل زیر را پیشنهاد می دهیم.

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

2-2- بدست آوردن فرایندهای مورد نیاز سیستم: در این مرحله باید فرایندهای مورد نیاز برای توسعه سیستم و سازماندهی مذکور ارائه شود. هر یک از فرایندها تفضیل شده و برای هر یک پیشنهاداتی ارائه شود.

2-3- تفضیل فرایندهای ارائه شده: در این برای هر یک از فرایندهای موجود باید روش توسعه آنها ارائه شود. برای هر فرایند دو حالت وجود دارد. اول اینکه این فرایند قبلاً توسط گروههای دیگر مورد بررسی و تحلیل قرار گرفته و پیاده سازی شده است. دوم اینکه برای فرایند، کارهای قبلی یا وجود ندارد و یا اینکه ناقص بوده و پیاده سازی مطلوب ما انجام نشده است. که باید روشی جدید برای توسعه فرایند ارائه شود.

3-فاز سوم – ساخت (Construction): در این مرحله بر اساس فرایندها و موردهای کاربرد بوجود آمده، باید بر اساس مدیریت انجام شده و تقسیم کار بین گروههای کاری مختلف، هر فرایند توسعه یابد و پیاده سازی گردد. مراحل این فاز بر اساس فرایندهای بدست آمده از فاز قبل تنظیم خواهد شد. در این مرحله می توان از تکنیکهای موازی سازی عملیات، تکرار عملیات و… استفاده کرد.

4-فاز چهارم – انتقال (Transition): در این مرحله با اتمام توسعه سیستم، باید سیستم مورد نظر به سیستم واقعی موجود انتقال یابد. برای این فاز مراحل زیر را پیشنهاد می کنیم:


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

معماری نرم افزار

UML

توسعه

فرایند

مفهوم معماری نرم افزار

تعریف معماری نرم افزار

انواع معماری نرم افزار

بررسی معماری نرم افزار

دسته بندی معماری نرم افزار

فاز های معماری نرم افزار

دانلود تحقیق

دانلود مقاله

مقاله

تحقیق

مقاله


دسته: فناوری اطلاعات

بازدید: 1 بار

فرمت فایل: pdf

حجم فایل: 712 کیلوبایت

تعداد صفحات فایل: 90

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