پایان نامه کارشناسی نرم افزار خط تولید نرمافزار مبتنی بر J2EE
مقدمه. ۱
۲ خط تولید نرمافزار. ۳
۲-۱ محدودهی خط تولید. ۶
۲-۲ معماری خط تولید. ۸
۲-۲-۱ تشخیص نقاط تغییر. ۹
۲-۲-۲ پشتیبانی از نقاط تغییر. ۱۰
۲-۲-۳ ارزیابی معماری یک خط تولید. ۱۳
۲-۳ چه چیز ساختن خط تولید نرمافزار را مشکل میکند؟. ۱۴
۳ معماری خانوادهی نرمافزار خط تولید. Error! Bookmark not defined.
۳-۱ سکوی پیادهسازی.. ۱۷
۳-۲ لایههای سیستم. ۱۸
۳-۲-۱ لایه داده ۱۹
۳-۲-۱-۱ تکنولوژی مورد استفاده ۱۹
۳-۲-۱-۲ ساختار کلاسها ۲۱
۳-۲-۲ لایه منطق کاری.. ۲۵
۳-۲-۲-۱ تکنولوژی مورد استفاده ۲۸
۳-۲-۲-۲ ساختار کلاسها ۲۹
۳-۲-۳ لایه میانای کاربری.. ۳۰
۳-۲-۳-۱ تکنولوژی مورد استفاده ۳۰
۳-۲-۳-۲ ساختار صفحات.. ۳۳
۳-۲-۳-۳ ساختار کلاسها ۶۶
۳-۳ دغدغههای معماری.. ۶۹
۳-۳-۱ قابلیت نگهداری.. ۷۰
۳-۳-۲ قابلیت تولید مجدد کد. ۷۱
۳-۳-۳ امنیت… ۷۱
۳-۳-۴ اعتبارسنجی ورودی.. ۷۲
۳-۳-۵ قابلیت دسترسی آسان در لیستها ۷۴
۳-۳-۶ چند فرهنگی بودن. ۷۴
۴ طراحی خط تولید. ۷۶
۴-۱ حیطهی کاری.. ۷۶
۴-۲ مراحل کاری خط تولید. ۷۶
۴-۲-۱ طراحی پایگاه داده ۷۶
۴-۲-۲ تولید و بهبود پروندههای نگاشت شیء به رابطه. ۷۷
۴-۲-۳ تولید کد لایهی داده ۷۹
۴-۲-۴ ورود اطلاعات مربوط به میانای کاربری.. ۸۰
۴-۲-۵ تولید کد مربوط به لایههای منطق کاری، و میانای کاربری.. ۸۴
۴-۲-۶ ورود اطلاعات مربوط به زبان. ۸۵
۴-۲-۷ سفارشی سازی منطق کاری و اعتبارسنجی دادهها ۸۵
۴-۲-۸ سفارشی سازی میانای کاربری(اختیاری) ۸۶
۴-۲-۹ ساخت و جایگذاری سیستم. ۸۶
۵ پیادهسازی خط تولید. ۸۸
۵-۱ تکنولوژیهای مورد استفاده ۸۸
۵-۱-۱ تکنولوژیهای تولید کد. ۸۸
۵-۱-۲ تکنولوژیهای میانای کاربری.. ۸۹
۵-۲ نگهداری اطلاعات مدل. ۹۰
۵-۳ روش ساخت… ۹۱
۶ جمع بندی.. ۹۳
۶-۱ مقایسه با چند خط تولید. ۹۳
۶-۱-۱ AndroMDA. 93
۶-۱-۲ MiddleGen……………….. ۹۵
۶-۱-۳ AppFuse. 96
۶-۱-۴ مقایسهی کلی.. ۹۷
۶-۱-۵ نتیجه گیری.. ۹۹
۶-۲ مطالعهی موردی استفاده از این پروژه ۹۹
۶-۳ کارهای آینده ۱۰۱
۶-۴ نتیجه گیری.. ۱۰۲
منابع. ۱۰۳
فهرست شکلها
صفحه |
عنوان |
شکل۱٫ نمودار وراثت کلاس مربوط به یک شیء مقدار. ۲۲
شکل۲٫ نمودار وراثت مربوط به یک شیء دسترسی به داده ۲۵
شکل۳٫ صفحهی student.jsp. 34
شکل۴٫ صفحهی student.update.jsp. 35
شکل۵٫ انتخاب ستونهای جدول. ۳۶
شکل۶٫ جستجوی دانشجویی با مشخصاتِ نامِ «علی» و جنسیتِ «مرد» ۳۷
شکل۷٫ دکمههای صفحهبندی.. ۳۸
شکل۸٫ نمای قابل چاپ… ۳۹
شکل۹٫ صفحهی student.list.jsp. 40
شکل۱۰٫ صفحهی studentWrittenBy.listByOther.jsp. 41
شکل۱۱٫ صفحهی student.detail.jsp. 42
شکل۱۲٫ صفحهی student.listNotRelated.jsp. 43
شکل۱۳٫ صفحهی academicalCourse.listNotRelated.jsp. 44
شکل۱۴٫ actionGroup. 53
شکل۱۵٫ صفحهی student.detail.jsp و نمایش یک InputGroup. 55
شکل۱۶٫ صفحهی student.detail.jsp بدون InputPage. 56
شکل۱۷٫ صفحهی student.detail.jsp با InputPage. 57
شکل۱۸٫ صفحهی variableTime.update.jsp. 59
شکل۱۹٫ صفحهی variableTime.update.jsp و صفحهی انتخاب تاریخ.. ۶۱
شکل۲۰٫ صفحهی contractAppendix.jsp و upload کردن فایل.. ۶۳
شکل۲۱٫ تیتر صفحه. ۶۴
شکل۲۲٫ نمودار وراثت کلاسهای Action. 67
شکل۲۳٫ نمودار وراثت فرمها ۶۹
شکل۲۴٫ تولید نگاشت شیء به رابطه توسط Hibernate Synchronizer 78
شکل۲۵٫ تولید کد لایهی داده توسط Hibernate Synchronizer 79
شکل۲۶٫ ورود اطلاعات میانای کاربری.. ۸۰
شکل۲۷٫ صفحهی اول ورود اطلاعات میانای کاربری.. ۸۱
شکل۲۸٫ ساخت یک موجودیت ضعیف… ۸۲
شکل۲۹٫ صفحهی دوم ورود اطلاعات میانای کاربری.. ۸۳
شکل۳۰٫ صفحهی تولید کد میانای کاربری و منطق کاری.. ۸۴
شکل۳۱٫ نمودار وراثت کلاسهای نگهداری اطلاعات مدل. ۹۰
شکل۳۲٫ نمودار UML مربوط به مدل یک سیستم در AndroMDA.. 94
شکل۳۳٫ نشان دادن منطق کاری توسط UML. 95
شکل۳۴٫ ابزار MiddleGen: تنظیم روابط بین موجودیتها ۹۶
فهرست کدها
صفحه |
عنوان |
کد۱٫ نمونهی کد options 46
کد۲٫ نمونهی کد lov. 47
کد ۳٫ نمونهی tableList در صفحهی student.list.jsp. 50
کد ۴٫ نمونهی کد column. 50
کد ۵٫ نمونهی کد optionColumn. 52
کد ۶٫ نمونهی کد actionGroup. 52
کد۷٫ نمونهی کد InputCell 53
کد۸٫ نمونهی کد InputGroup. 54
کد۹٫ نمونهی کد InputPage. 56
کد۱۰٫ نمونهی کد actionTag. 58
کد ۱۱٫ نمونهی کد time. 59
کد۱۲٫ نمونهی کد calendar 60
کد۱۳٫ نمونهی کد image. 62
کد۱۴٫ نمونهی کد title. 64
کد۱۵٫ نمونهی کد relation. 65
کد۱۶٫ نمونهی کد button. 66
۲ مقدمه
معماری نرمافزار یک سرمایهگذاری بزرگ از زمان و نیروی افراد خبرهی تکنیکی سازمان است. بنابراین طبیعی است اگر بخواهیم مقدار زیادی از این سرمایهگذاری با «استفادهی مجدد» از معماری نرمافزار در سیستمهای مشابه یکدیگر باز گردد. سازمانهایی که پیشرفت قابل ملاحظهای داشتهاند تمایل دارند با معماریهای نرمافزارهای خود همانند داراییهای هوشمند و پرارزش برخورد کنند و میخواهند که با کمک این دارایی سود بیشتری را بهدست آورده و هزینهها را کاهش دهند. این دو هدف یعنی افزایش سود و کاهش هزینه با کمک استفاده مجدد از معماری امکانپذیر است. ساخت یک خط تولید نرمافزار موفق به یک استراتژی هماهنگ در مهندسی نرمافزار، مدیریت تکنولوژی و مدیریت سازمانی نیازمند است.
در این پروژه، یک خط تولید نرمافزار، بر اساس داراییهای نرمافزاری یک شرکت کامپیوتری، پیادهسازی شده است. در قسمتهای مختلف این گزارش به توضیح مراحل مختلف معماری، طراحی و پیادهسازی این خط تولید پرداخته میشود.
در قسمت دوم خط تولید نرمافزار مورد بررسی قرار میگیرد. در این قسمت توضیحات کلی دربارهی خط تولید، مفاهیم مربوط به آن، و همچنین نکات مهم در ساخت یک خط تولید توضیح داده میشود. در قسمت سوم معماری خانوادهی محصولات مورد بررسی قرار میگیرد. در این بخش، سکوی پیادهسازی، لایههای مختلف و ساختار آنها، و دغدغههای موجود در زمان طراحی و ساخت این معماری توضیح داده میشود. در بخش چهارم، طراحی خط تولید مورد بررسی قرار میگیرد. در این بخش مراحل کاری خط تولید و چگونگی کار این مراحل بررسی میشود. در بخش پنجم، پیادهسازی خط تولید، و روشها و نکات مربوط به آن بررسی میشود. در بخش ششم، به جمع بندی کار پرداخته میشود. خط تولید پیادهسازی شده با سه ابزار نسبتاً مشابه مقایسه میشود. همچنین در این بخش، یک مطالعه موردی روی استفاده از این خط تولید در یک پروژهی واقعی انجام میشود. در نهایت کارهای آتی این پروژه بررسی میشود.