برگشتن به کامپیوتر

دانلود پایان نامه : خط تولید نرم‌افزار مبتنی بر J2EE

۵,۵۰۰ تومان

Continue Shopping

توضیحات محصول

دانلود پایان نامه : خط تولید نرم‌افزار مبتنی بر J2EE

105ص

 

 

دانشگاه صنعتی شریف

دانشکده مهندسی کامپیوتر

 

پایان نامه کارشناسی

مهندسی کامپیوتر گرایش مهندسی نرم‌افزار

 

 

فهرست‌ مطالب

  صفحهعنوان


1 مقدمه. 1

2 خط تولید نرم‌افزار. 3

2-1 محدوده‌ی خط تولید. 6

2-2 معماری خط تولید. 8

2-2-1 تشخیص نقاط تغییر. 9

2-2-2 پشتیبانی از نقاط تغییر. 10

2-2-3 ارزیابی معماری یک خط تولید. 13

2-3 چه چیز ساختن خط تولید نرم‌افزار را مشکل می‌کند؟. 14

3 معماری خانواده‌ی نرم‌افزار خط تولید. Error! Bookmark not defined.

3-1 سکوی پیاده‌سازی.. 17

3-2 لایه‌های سیستم. 18

3-2-1 لایه داده 19

3-2-1-1 تکنولوژی مورد استفاده 19

3-2-1-2 ساختار کلاس‌ها 21

3-2-2 لایه منطق کاری.. 25

3-2-2-1 تکنولوژی مورد استفاده 28

3-2-2-2 ساختار کلاس‌ها 29

3-2-3 لایه میانای کاربری.. 30

3-2-3-1 تکنولوژی مورد استفاده 30

3-2-3-2 ساختار صفحات.. 33

3-2-3-3 ساختار کلاس‌ها 66

3-3 دغدغه‌های معماری.. 69

3-3-1 قابلیت نگهداری.. 70

3-3-2 قابلیت تولید مجدد کد. 71

3-3-3 امنیت… 71

3-3-4 اعتبارسنجی ورودی.. 72

3-3-5 قابلیت دسترسی آسان در لیست‌ها 74

3-3-6 چند فرهنگی بودن. 74

4 طراحی خط تولید. 76

4-1 حیطه‌ی کاری.. 76

4-2 مراحل کاری خط تولید. 76

4-2-1 طراحی پایگاه داده 76

4-2-2 تولید و بهبود پرونده‌های نگاشت شیء به رابطه. 77

4-2-3 تولید کد لایه‌ی داده 79

4-2-4 ورود اطلاعات مربوط به میانای کاربری.. 80

4-2-5 تولید کد مربوط به لایه‌های منطق کاری، و میانای کاربری.. 84

4-2-6 ورود اطلاعات مربوط به زبان. 85

4-2-7 سفارشی سازی منطق کاری و اعتبارسنجی داده‌ها 85

4-2-8 سفارشی سازی میانای کاربری(اختیاری) 86

4-2-9 ساخت و جای‌گذاری سیستم. 86

5 پیاده‌سازی خط تولید. 88

5-1 تکنولوژی‌های مورد استفاده 88

5-1-1 تکنولوژی‌های تولید کد. 88

5-1-2 تکنولوژی‌های میانای کاربری.. 89

5-2 نگهداری اطلاعات مدل. 90

5-3 روش ساخت… 91

6 جمع بندی.. 93

6-1 مقایسه با چند خط تولید. 93

6-1-1 AndroMDA. 93

6-1-2 MiddleGen‌ 95

6-1-3 AppFuse. 96

6-1-4 مقایسه‌ی کلی.. 97

6-1-5 نتیجه گیری.. 99

6-2 مطالعه‌ی موردی استفاده از این پروژه 99

6-3 کارهای آینده 101

6-4 نتیجه گیری.. 102

منابع. 103

 

 

  • مقدمه

معماری نرم‌افزار یک سرمایه‌گذاری بزرگ از زمان و نیروی افراد خبره‌ی تکنیکی سازمان است. بنابراین طبیعی است اگر بخواهیم مقدار زیادی از این سرمایه‌گذاری با «استفاده‌ی مجدد» از معماری نرم‌افزار در سیستم‌های مشابه یکدیگر باز گردد. سازمان‌هایی که پیشرفت قابل ملاحظه‌ای داشته‌اند تمایل دارند با معماری‌های نرم‌افزارهای خود همانند دارایی‌های هوشمند و پرارزش برخورد کنند و می‌خواهند که با کمک این دارایی سود بیشتری را به‌دست آورده و هزینه‌ها را کاهش دهند. این دو هدف یعنی افزایش سود و کاهش هزینه با کمک استفاده مجدد از معماری امکان‌پذیر است. ساخت یک خط تولید نرم‌افزار موفق به یک استراتژی هماهنگ در مهندسی نرم‌افزار، مدیریت تکنولوژی و مدیریت سازمانی نیازمند است.

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

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

  • خط تولید نرم‌افزار

معماری نرم‌افزار یک سرمایه‌گذاری بزرگ از زمان و نیروی افراد خبره‌ی تکنیکی سازمان است. بنابراین طبیعی است اگر بخواهیم مقدار زیادی از این سرمایه‌گذاری با «استفاده‌ی مجدد» از معماری نرم‌افزار در سیستم‌های مشابه یکدیگر باز گردد. سازمان‌هایی که پیشرفت قابل ملاحظه‌ای داشته‌اند تمایل دارند با معماری‌های نرم‌افزارهای خود همانند دارایی‌های هوشمند و پرارزش برخورد کنند و می‌خواهند که با کمک این دارایی سود بیشتری را به‌دست آورده و هزینه‌ها را کاهش دهند. این دو هدف یعنی افزایش سود و کاهش هزینه با کمک استفاده مجدد از معماری امکان‌پذیر است.

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

خط تولید نرم‌افزار به صورت زیر تعریف می‌شود:

خط تولید نرم‌افزار مجموعه‌ای از سیستم‌های مبتنی بر نرم‌افزار است که در مجموعه‌ای مشخص از خصوصیات مشترکند، نیازهای بخشی از بازار و یا مأموریتی خاص را برآورده می‌کنند، و طبق روشی از پیش تعیین شده از روی مجموعه‌ای مشترک از دارایی‌ها اصلی ایجاد می‌شوند. ‏[3]

هدف خط تولید نرم‌افزار استفاده از مجموعه‌ای از سرمایه‌های قابل استفاده‌ی مجدد است. این سرمایه‌ها می‌توانند شامل معماری پایه و اجزایی مشترک و قابل اتصال باشد. به علاوه طراحی‌ها، مستندات، و محصولات مدیریتی پروژه(مانند بودجه‌ها)، و برنامه‌های تست نرم‌افزار در این مجموعه قرار دارند. از این جهت به این موارد سرمایه گفته می‌شود که با توجه به قابل استفاده‌ی مجدد بودن آنها می‌توان با یک بار سرمایه‌گذاری برای تولیدشان بارها از آنها استفاده کرد و به این وسیله هزینه‌ها را کاهش داد و به طور کلی از این راه سود کسب کرد. به‌دست آوردن چنین چشم‌اندازی وابستگی بسیار زیادی به مشخص کردن مناسب محدوده‌ی «خط تولید» دارد.

در یک خط تولید موفق، یک هسته‌ی اصلی از سرمایه‌های نرم‌افزاری وجود دارد. در چنین خط تولیدی هر سرمایه‌ی قابل استفاده مجدد در این هسته‌ی اصلی ذخیره می‌شود. زیرا چنین سرمایه‌ای می‌تواند در بیش از یک سیستم به کار برده شود و استفاده مجدد از آن کم هزینه‌تر از تولید دوباره‌ی آن خواهد بود. سرمایه‌های اصلی معمولاً با استفاده از نقاط تغییر[1] طراحی می‌شوند. یعنی می‌توان این سرمایه‌ها را با استفاده از این نقاط به یکدیگر متصل کرد. در یک خط تولید موفق، ساخت یک سیستم را می‌توان در دسترسی به سرمایه‌های مناسب، متصل کردن آنها با توجه به آن‌چه که برای سیستم مورد نظر خواسته شده است، و سپس جمع‌آوری آن خلاصه کرد. هر چیز جدیدی که برای یک سیستم خاص تولید می‌شود، در صورتی که به آن نیاز باشد، به طور تخمینی کمتر از ۲۰٪ کل نرم‌افزار را شامل می‌شود.‏[1] در این صورت مجتمع‌سازی[2] و تست کردن جایگزین طراحی و کد زدن می‌شوند.

خط‌ تولید موضوع جدیدی در صنعت نیست. مورخان دریافته‌اند که شخصی به نام الی ویتنی[3] در اوایل قرن ۱۸ از قطعات قابل تعویض برای ساخت تفنگ استفاده می‌کرده است. اما مثال‌هایی قبل از آن نیز وجود دارد. امروزه شرکت‌هایی چون بوئینگ[4]، فورد[5]، دل[6] و حتی مک‌دونالد[7] دارای خط تولید هستند. هر کدام از این شرکت‌ها شباهت‌های روش تولید محصولات مختلف را به‌دست می‌آورند. مثلاً ۶۰٪ قطعاتی که بوئینگ برای ساخت هواپیماهای ۷۵۷ و ۷۶۷ خود استفاده می‌کند، مشترک است. ‏[1]

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

  • محدوده‌ی خط تولید

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

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

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

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

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

  • شرکت نوکیا[8] می‌تواند ۲۵ تا ۳۰ مدل گوشی موبایل متفاوت را در هر سال بسازد، زیرا از روش خط تولید استفاده می‌کند. این تعداد قبل از استفاده از خط تولید ۴ مدل در هر سال بوده است.
  • شرکت کیومینز[9] توانست زمان مورد نیاز تولید نرم‌افزار برای یک موتور دیزلی را از یک سال به یک هفته کاهش دهد.
  • شرکت موتورولا[10] پیشرفت ۴۰۰٪ سود‌آوری را در زمینه‌ی تولید خانواده‌ای از فراخوان‌های یک طرفه به‌دست آورده است.
  • طبق گزارشی که هیولت-پکارد[11] منتشر کرده است، زمان بازاریابی این شرکت به یک هفتم کاهش یافته است و سودآوری این شرکت در خانواده‌ای از چاپگرها شش برابر شده است.
    • معماری خط تولید

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

علاوه بر جنبه‌های ثابت، نقاط تغییر نیز در یک معماری مد نظر قرار می‌گیرند. نقاط تغییر نقاطی از معماری، و یا به طور کلی دارایی‌های نرم‌افزری، هستند که در کاربردهای مختلف، بسته به نوع کاربرد، تغییر می‌کنند و این تغییرات با روشی از قبل تعیین شده انجام می‌شود.‏[1]

در معماری یک خط تولید باید این سه مورد را در نظر گرفت:

  • شناسایی نقاط تغییر
  • پشتیبانی از نقاط تغییر
  • ارزیابی معماری خط تولید به منظور سنجش مناسب بودن معماری برای خط تولید
    • تشخیص نقاط تغییر

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

تغییراتی که در حین روند نیازمندی‌ها کشف می‌شوند شامل خصیصه‌ها[12]، سکوها، واسط‌های کاربر، معیارهای کیفیت‌، و بازارهای هدف می‌باشند. برخی از این موارد از لحاظ داخلی به یکدیگر وابسته هستند. به عنوان مثال، واسط کاربر ممکن است به سکویی که از آن استفاده می‌شود وابسته باشد و در نتیجه به یک بازار خاص مربوط باشد.

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

  • پشتیبانی از نقاط تغییر

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

  • وجود یا عدم وجود اجزاء: این تصمیم می‌تواند برای محصولات مختلف در روند ساخت اعمال شود. یا ترجمه شدن کد یک جزء به پارامترهایی که وجود یا عدم وجود آن را مشخص می‌کنند بستگی داشته باشد.
  • وجود تعداد متفاوتی از اجزاء تکراری: به عنوان مثال تغییرات در ظرفیت کاری یک سیستم ممکن است با اضافه کردن تعدادی خادم به وجود آید. این تعداد باید به عنوان یک نقطه‌ی تغییر، نامشخص باشد. در این‌جا نیز یک فایل سازنده[13] تعداد مناسب سرورها را برای یک محصول خاص تعیین خواهد کرد.
  • انتخاب نسخه‌هایی از اجزا که دارای واسط‌های کاربری یکسان ولی ویژگی‌های کیفیتی یا رفتاری متفاوتی هستند: این انتخاب می‌تواند در زمان ترجمه یا ساخت و در برخی موارد حتی در زمان اجرا انجام شود. برای انتخاب دو مکانیزم وجود دارد: یکی کتابخانه‌های ایستا که دارای توابع خارجی هستند و پس از زمان ترجمه به یکدیگر متصل می‌شوند و دیگری کتابخانه‌های با اتصال پویا که انعطاف‌پذیری کتابخانه‌های ایستا را دارند اما بر اساس محتوا و شرایط تصمیم را تا زمان اجرا به تعویق می‌اندازند. با تغییر کتابخانه‌ها، می‌توان پیاده‌سازی توابعی را که نام و تعریف آن‌ها معلوم است، تغییر داد.

این مکانیزم‌ها تمام تغییرات عمده را در مرحله‌ی معماری ایجاد می‌کنند. مکانیز‌های دیگری که ظاهر یک جزء خاص را تغییر می‌دهند نیز می‌توانند معرفی شوند. به عنوان مثال تغییر کد منبع[14] یکی از مکانیزم‌های این گروه است. تکنیک‌های پیچیده‌ی بیشتری در زیر آمده‌اند:

  • در سیستم‌های شی‌ءگرا، خاص سازی یا عمومی سازی می‌تواند بر روی کلاس‌های خاصی انجام شود. کلاس‌ها می‌توانند به گونه‌ای نوشته شوند که خاص سازی‌های متنوعی را بپذیرند که در صورت نیاز برای محصولات مختلف نوشته می‌شوند.
  • با ساختن نقاط گسترش[15] در پیاده‌سازی اجزاء می‌توان رفتارها یا وظایف اضافی را به صورت صورت مطمئنی به سیستم افزود. اضافه کردن نقاط گسترش
  • تغییرات می‌توانند با معرفی پارامترهای زمان ساخت به یک جزء، یک زیر سیستم، یا مجموعه‌ای از زیر سیستم‌ها انجام شوند که به موجب آن یک محصول با تنظیم کردن مجموعه‌ای از مقادیر شکل می‌گیرد.

 

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “دانلود پایان نامه : خط تولید نرم‌افزار مبتنی بر J2EE”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *