تحقیق استانداردهای موجود در مهندسی نرم افزار و مقایسه آن با وب در word دارای 113 صفحه می باشد و دارای تنظیمات و فهرست کامل در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد تحقیق استانداردهای موجود در مهندسی نرم افزار و مقایسه آن با وب در word کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : توضیحات زیر بخشی از متن اصلی می باشد که بدون قالب و فرمت بندی کپی شده است
بخشی از فهرست مطالب پروژه تحقیق استانداردهای موجود در مهندسی نرم افزار و مقایسه آن با وب در word
فصل اول: مهندسی نرم افزار
نرم افزار چیست
برنامه های کاربردی چیست؟
مهندسی نرم افزار
پیشینه مهندسی نرم افزار
محدوده مهندسی نرم افزار و تمرکز آن
نیاز به مهندسی نرم افزار
تکنولوژی ها و روشهای عملی
ماهیت مهندسی نرم افزار
فصل دوم: استانداردهای موجود در مهندسی نرم افزار
پیشگفتار
بخش اول: مقدمه
بخش دوم: اصول و تحولات استانداردهای مهندسی نرم افزار
بخش سوم:معرفی استاندارد MIL-STD-498
بخش چهارم: معرفی استاندارد مستندسازی نرم افزار در سازمان NASA
بخش پنجم:معرفی استاندارد نرم افزار آژانس فضایی اروپا
بخش ششم: معرفی استاندارد ISO/IEC 12207
1- معرفی ISO/IEC
بخش هفتم: معرفی استاندارد IEEE/EIA 12207
الف-IEEE/EIA 12207
ب- EIA/IEEE J-STD -016
بخش هشتم: معرفی زبان مدل سازی PSL/PSA
بخش نهم: معرفی زبان استاندارد مدلسازی UML
1- مقدمه
2- تاریخچه
بخش دهم: آشنایی با CASE ابزارهای تولید نرم افزار به کمک کامپیوتر
تقلیل نیاز به متخصص کامپیوتر
تقلیل زمان
تقلیل هزینه
ایجاد هماهنگی بین اعضاء تیم پروژه
تقلیل اشتباهات و خطاها(ارتقاء کیفیت)
الف- ابزارها(Tools)
ب- Workbenches
ج-Environments
فصل سوم: اقسام و انواع استانداردهای مهندسی نرم افزار
اصول و تحولات استانداردهای مهندسی نرم افزار
مهندسی نرم افزار در سیستمهای متن باز
فرآیندهای مهندسی نرم افزار در نرم افزارهای متن باز
مهندسی نرم افزار و فرآیندهای آن
جمع آوری نیازمندیها
طراحی در سطح سیستم
طراحی جزئیات
پیاده سازی
یکپارچه سازی
آزمون
پشتیبانی و نگهداری
فرآیندهای تولید نرم افزار متن باز
فرآیند تولید نرم افزار متن باز بدون حمایت مالی
جمع آوری نیازمندیها
طراحی در سطح سیستم
طراحی جزئیات
پیاده سازی
آزمون
پشتیبانی و نگهداری
فرآیند تولید نرم افزار متن باز تجاری
سه نگاه عمیق تر به فرآیند تولید نرم افزار متن باز
نمونه سازی
مدیریت نسخه ها
مدیریت بیرونی دادن خروجی
عدد گذاری
شاخه های توسعه
وضعیت کاری
نامهای به صورت کد
تاریخچه بیرون دادن
نسخه های دلخواه
انتقال دادن
مستندسازی
داخلی و برخط
ساده
کامل، درست و به روز
متدولوژی SSADM
فصل چهارم: بررسی استانداردهای موجود در وب و مقایسه آن با استانداردهای موجود در مهندسی نرم افزار
استانداردهای وب چیست و چرا باید از آنها استفاده کنیم؟
استانداردهای وب چه چیزهایی هستند
استانداردهای کنسرسیوم جهانی وب(W3C)
W3C چیست؟
زبان نشانه گذاری ابرمتن HTML 4.0
زبان نشانه گذاری قابل گسترش XML 1.0
XHTML and Modularization
شیوه نامه آبشاری(CSS)
الگوی شیئی سند سطح 1(DOM Level 1)
استانداردهای ECMA
ECMA چیست
ECMA Script چیست
مزایای استفاده از استانداردها چیست
قابل دسترس بودن برای نرم افزار / دستگاه
قابل دسترس بودن برای مردم
پایداری
WASP: در نبرد برای استانداردها
مهندسی وب به عنوان یک رشته
IE8 و استانداردهای وب
سازگاری کامل با استانداردها و Backward Compatibility
روند توسعه رو به جلو یا بازی تبلیغاتی
نتیجه گیری
بخشی از منابع و مراجع پروژه تحقیق استانداردهای موجود در مهندسی نرم افزار و مقایسه آن با وب در word
1 Luca Cabibbo, Antonio Carosi, ” Managing Inheritance Hierarchies in Object/Relational Mapping Tools “ Journal of Systems and Software, Volume 77, Issue 2, August 2005, Pages 193-207
2 Wolfgang Keller, ” Mapping Objects to Tables A Pattern Language ” Proceedings EuroPLoP 1997
3 Ronald Bourret, Christof Bornh, Alejandro P. Buchmann, ” A Generic Load/Extract Utility for Data Transfer Between XML Documents and Relational Databases” Information and Software Technology, Volume 42, Issue 3, 25 February 2000, Pages 197-210
Martin Snyder, Ted O’Connor. ” Object-Relational Mapping in Java with Simple ORM ” Dr. Dobb’s Journal. San Mateo: Dec 2005. Vol. 30, Iss. 12; p. 34 (3 pages)
5. Achievement and weaknesses of object oriented databases , Sikha Bagui, Department of Computer Science, University of West Florida, U.S.A
.6 type systems for object oriented database programming language, Yuri Leontiev , M. Tammer Ozsa , Duane Szafron,
7. کتاب Artificial intelligence structures & strategies for complex problem solving
نوشته George F.Luger & william A. Stubble field
چاپ Wesley long man Inc,
چکیده
با شناسایی مشکلات موجود کشور در زمینه مستندسازی تولید محصولات نرمافزاری، طرح ملی استاندارد مستندسازی توسط شورای پژوهشهای علمی کشور تصویب شد. این گزارش که نتیجه مطالعه اقدامات انجام شده در سایر کشورها میباشد معرف این مطلب است که کشورهای پیشرفته سعی کردهاند استانداردهایی را برای تولید و مستندسازی محصولات نرمافزاری مورد نیاز دستگاههای دولتی یا نظامی خود تدوین کنند و بر اعمال آنها توسط پیمانکاران تولید کننده محصولات نرمافزاری نظارت نمایند
با توجه به تجارت بینالملل و نیاز به استفاده از استانداردهایی که مورد قبول کشورها باشد، مؤسسه بینالمللی ISO با همکاری مؤسسه IEC با تشکیل گروههای اشتراکی اقدام به تدوین استانداردهای بینالمللی برای تولید و مستندسازی محصولات نرمافزاری نمودند. استاندارد12207 ISO/IEC که در سال 1995 ارائه شد توصیههایی برای کل چرخه ساخت و حیات یک محصول نرمافزاری پیشنهاد کرده است. پس از آن انجمن IEEE که مهمترین انجمن حرفهای بینالمللی در تدوین استانداردهای مهندسی نرمافزار است به کمک مؤسسه EIA اقدام به بومیسازی استاندارد 12207 در جامعه امریکا نمود و نسخه بومی شده و بهتر توصیف شده آن تحت عنوان12207 IEEE/EIA را ارائه نمود. نهایتاً DOD امریکا که چهار دهه است استانداردهای متعددی را برای تولید و مستندسازی محصولات نرمافزاری ارائه کرده است با پذیرش استاندارد12207 IEEE/EIA، استانداردهای قبلی خود یعنی016-1995 J-STD-و498 MIL-STD-را از رده خارج کرد. یادآوری میگردد سایر کشورهای پیشرفته مانند ژاپن، آلمان، انگلستان، کانادا، ; نیز اقدام به بومیسازی استاندارد12207 ISO/IEC در کشور خود نمودهاند
این گزارش بصورت اجمالی استانداردهای مهندسی نرمافزار تدوین شده توسط DOD امریکا، سازمان NASA، آژانس فضایی اروپا، مؤسسه IEEE و مؤسسه ISO/IEC را تشریح مینماید. علاوه بر آن دو زبان PSL/PSA و UML را که به ترتیب برای مدلسازی محصولات نرمافزاری بر اساس روش ساخت یافته و شیگرا هستند، و نهایتاً ابزارها و محیطهای پشتیبانی تولید نرمافزار را معرفی میکند
در بخش بعدی این طرح ملی، استاندارد12207 ISO/IEC بعنوان استاندارد مرجع تولید و مستندسازی محصولات نرمافزاری انتخاب میگردد امّا سعی میشود با استفاده از استانداردهای MIL-STD-و12207 IEEE/EIA و الزامات خاص کشور ایران، استاندارد مستندسازی محصولات نرمافزاری ایران تهیه و تدوین و در گزارش بعدی ارائه گردد
و در آخر مقایسه ای اجمالی بین استانداردهای مهندسی نرم افزار و استانداردهای وب صورت گرفته است که در فصل آخر ارائه می گردد
مقدمه
نرمافزار در مقایسه با سایر مصنوعات تولیدی یک تفاوت مهم و اساسی دارد. مصنوعات (مانند اتومبیل، تلویزیون، یخچال، ;) بر اساس یک مجموعه وظیفهمندی قطعی ساخته میشوند و پس از آن در وظیفهمندیهای مصنوع تغییری ایجاد نمیگردد. البته ممکن است وظیفهمندیهای هر مصنوع، کم یا زیاد شود امّا هرگونه تغییر در وظیفهمندیها منجر به ساخت مدل جدیدی از آن مصنوع میگردد و کسی انتظار ندارد که این وظیفهمندیهای جدید در مدلهای موجود اعمال گردند. امّا نرمافزار پس از تولید اولیه تا پایان عمر در حال تغییر و تحول است و بایستی متناسب با نیازها، سیاستها، و قوانین جدید تغییر یابد. بنابراین بهتر است نرمافزار با یک موجود زنده به جای یک مصنوع مقایسه گردد. بدیهی است نرمافزاری را میتوان به راحتی و به شکل صحیح تغییر داد که راجع به آن به اندازه کافی اطلاعات در دسترس باشد. چنانچه خواستههای اولیه، طراحی، چگونگی پیادهسازی و آزمون نرمافزارها در مراحل ساخت به خوبی مستند شوند در اینصورت اعمال تغییرات در نرمافزارها به راحتی قابل مدیریت و انجام است. بدیهی است که تأثیر تغییرات جدید بایستی در مستندات سیستم اعمال گردد تا مستندات آخرین وضعیت سیستم نرمافزاری را نمایش دهند
چهار دهه از شروع اقدامات اولیه برای ساماندهی پروسه تولید نرمافزار میگذرد. اوایل به دلیل فقدان یک رویه منظم (متدولوژی) برای طی پروسه تولید نرمافزار، مشکلات زیادی فراروی تولید کنندگان نرمافزار بود که نتیجه آن کیفیت ضعیف نرمافزارهای تولیدی، سربار هزینهای، و عدم تحقق برنامههای زمانبندی شده بود
کمکم نیاز به تدوین متدولوژی، مدل ساخت، و تبعیت از آنها در پروسه ساخت نرمافزار بیشتر ملموس شد و در این چهاردهه متدولوژیهای زیادی تدوین شد و با بکارگیری آنها، نرمافزارهای با کیفیت بیشتری تولید شد. این متدولوژیها عموماً روی یکی از دو روش ساختیافته یا شیگرا پایهگذاری شدهاند. متدولوژیهای بر پایه روش ساختیافته در اواسط دهه 80 میلادی کاملاً به بلوغ خود رسیدند و متدولوژیهای بر پایه شیگرایی نیز با طراحی زبان مدلسازی UML سریعتر به سمت وحدت و بلوغ خود نزدیک شدند. در همین راستا، مؤسساتی با بهرهگیری از تجربیات حاصل از دهها سال تولید نرمافزار اقدام به تدوین استانداردها و توصیههایی برای تولید نرمافزار نمودند
استانداردهای مهندسی نرمافزار مجموعهای از پروسهها میباشند که تمامی وظایفی که بایستی در چرخه تولید و بکارگیری یک محصول نرمافزاری انجام شود را بیان میکنند. نکته مهم اینست که این پروسهها چگونگی انجام یک وظیفه را بیان نمیکنند بلکه صرفاً مجموعهای از وظایف و فعالیتها را بیان میکنند که بایستی در دورههای زمانی معینی انجام شوند. این رویه در تمامی استانداردهای مهندسی نرمافزار رعایت میشود تا اولاً آنها فراتر از یک متدولوژی عمل کنند و ثانیاً اجازه دهند مهندسین نرمافزار بر حسب نوع محصول نرمافزاری از متدولوژی که چگونگی انجام وظایف را بیان میکند، استفاده کنند. نکته جالب توجه اینست که استانداردهای جهانی حتی از نظر نوع نگرش مهندسی نرمافزار (ساخت یافته یا شیگرا) نیز خود را محدود نکردهاند و توصیهها و قوانینی را مطرح کردهاند که در هر دو دیدگاه قابلیت استفاده دارند
متأسفانه به علت فقدان استاندارد یا لااقل توصیهای واحد برای مستندسازی محصولات نرمافزاری و بیتوجهی سازندگان نرمافزار و کارفرمایان، نرمافزارهای تولید شده در ایران اکثراً فاقد حداقل مستندات لازم هستند. البته فشار کارفرمایان به پیمانکاران برای کاهش هزینه تولید نرمافزار عموماً منجر به حذف و یا کم رنگ شدن بخش مستندات سیستمهای نرمافزاری شده است. یادآوری میگردد بطور متوسط 30% هزینه تولید هر نرمافزار صرف تهیه مستندات آن سیستم میگردد
در این طرح ملی در نظر است توصیههایی ارائه گردد تا حداقل مستندات لازم برای هر محصول نرمافزاری توسط تولیدکنندگان نرمافزار تهیه گردد. در این گزارش سعی شده است شناختی از استانداردهای اصلی مهندسی نرمافزار با تکیه بر مستندسازی بصورت اجمالی ارائه گردد. در این راستا، استانداردهای مهندسی نرمافزار تدوین شده توسط DOD ، سازمان NASA ، آژانس فضایی اروپا، مؤسسه IEEE ، و مؤسسه ISO/IEC جمعآوری شده که هر یک از آنها بطور خلاصه معرفی میگردد
با توجه به مطالب ارائه شده در بخش دوم این گزارش، استاندارد ISO/IEC 12207 بعنوان استاندارد مرجع تولید و مستندسازی سیستمهای نرمافزاری انتخاب میگردد. امّا سعی میشود با استفاده از استانداردهای MIL-STD-498 ، J-STD-016-1995 و IEEE/EIA 12207 و الزامات خاص کشور ایران، استاندارد مستندسازی محصولات نرمافزاری ایران تهیه و در گزارش بعدی ارائه گردد
در ادامه این گزارش، ابتداء اصول و تحولات استانداردهای مهندسی نرمافزار در بخش دوم شرح داده میشود. سپس به ترتیب، استانداردهای DOD ، سازمان NASA ، آژانس فضایی اروپا، مؤسسه ISO/IEC و مؤسسه IEEE هر یک در یک بخش مستقل بطور خلاصه معرفی میگردد. در بخشهای هشتم و نهم گزارش، دو زبان PSL/PSA و UML که به ترتیب زبانهای مدلسازی بر اساس روش ساختیافته و روش شیگراء هستند معرفی میگردد. این زبانها مخصوصاً UML میتوانند تاثیرات خوبی بر استانداردسازی مستندات محصولات نرمافزاری بگذارند. نهایتاً در بخش دهم، ابزارها و محیطهای پشتیبانی تولید نرمافزار و چند نمونه از آنها بصورت اجمالی معرفی میگردد
و در مقایسه با استانداردهای وب باید گفت که استانداردهای وب، عبارتی است کلی در بحث ساختار و طراحی وب، به معنی «دستورها و قانونها» و مشخصات فنی وضع شدهای از سوی کنسرسیوم جهانی وب، که سیمای کلی و همه جنبههای شبکه جهانی وب را نمایش و شرح میدهند. در سالهای اخیر، این عبارت بیشتر به جنبش استانداردهای وب وابسته شدهاست. جنبشی رو به گسترش، برای فراگیر ساختن «مجموعه استانداردی از روشهای ساخت» سایتهای اینترنتی، و تعریف فلسفهای گسترده تر در سبکِ ساخت و طراحی وب، که شامل این مجموعه «روشهای ساخت» است
برای نمونه، قانون «ساختار متن»، یا دستور چگونگی قرار دادن متن در صفحه وب، بدون استفاده از ترفندهای غیر استاندارد، به روشی که حتا برای کاربران نابینا هم دسترسایی آسانی داشته باشد، یکی از این دستورهاست که طراح وب را مجبور میکند تا قانون «ساختار متن» را رعایت کند
بسیاری از این دستورها و مشخصات فنی وضع شده که بر همه جنبهها و سیمای کلی اینترنت حکم شدهاند، و نه تنها شبکه جهانی وب، به گونهای مستقیم یا نامستقیم، روش طراحی، مدیریت، ساخت و پیشبرد یک سایت و دیگر سرویسهای وب را زیر تأثیر خود قرار میدهند. با اینکه هر یک از این دستورها و روشها ممکن است «استانداردهای وب» خوانده شوند، پویندگان جنبش استانداردهای وب، به استانداردهای بالاتری که بیشتر و به گونهای مستقیم، سایتهای وب را هدف قرار دادهاند، مانند دسترسی پذیری یا (Accessibility) و کاربردپذیری (یا Usability)، تمایل نشان میدهند
نرم افزار چیست؟
در کشور ما صنعت نرم افزار بسیار نوپا و جوان است. هنوز فرهنگ نرم افزاری در بین مردم کشور ما جایی ندارد. میانسالان ما با نرم افزار و تکنولوژی های روز از جمله اینترنت کاملا غریبه اند. هنوز بسیاری از ادارات ، شرکت ها و فروشگاه ها اطلاعات خود را به روش دستی روی کاغذ مدیریت می کنند و به اهمیت و مزایای اتوماسیون اداری پی نبرده اند. امیدوارم نوشتار زیر در درک بهتر موجودیت “نرم افزار” به شما کمک کند
بسیاری از مردم، نرم افزار را با برنامه های کامپیوتری یکسان می دانند. در واقع این دید، بسیار محدودکننده است. نرم افزار فقط برنامه های کامپیوتری نیست، بلکه تمام مستندات و داده های پیکربندی را که برای حیات این برنامه ها ضروری اند را شامل می شود. سیستم های نرم افزاری معمولا شامل تعدادی برنامه، فایل های پیکربندی جهت حفظ تنظیمات، مستندات سیستم جهت تشریح ساختار نرم افزار، مستندات و راهنمای کاربر برای تشریح چگونگی کار با سیستم می باشد
محصولات نرم افزاری به دو نوع کلی دسته بندی می شوند
1- محصولات کلی : این ها سیستم های مستقلی اند که توسط یک شرکت تولیدکننده نرم افزار ساخته می شوند و به بازار عرضه می گردد و مشتریان برحسب نیاز آنها را تهیه می کنند. این گونه محصولات شامل پکیج های آماده نرم افزاری مثل واژه پردازها و نرم افزارهای حسابداری است
2- محصولات سفارشی : این ها محصولات نرم افزاری هستند که توسط مشتری خاصی سفارش داده می شوند. این گونه محصولات توسط پیمانکاران نرم افزاری برای مشتری سفارش دهنده ایجاد می شوند
تفاوتی که میان این گونه محصولات وجود دارد این است که شرکتی که محصولات کلی را تولید می کند مشخصات نرم افزار را کنترل می کند، اما در محصولات سفارشی تعیین مشخصات و کنترل نرم افزار توسط سازمان خریدار انجام می شود
از نظر مجازی، اکنون تمام کشورهای وابسته به سیستم های نرم افزاری پیچیده اند. تمامی سیستم های دولتی و تجاری بر پایه سیستم های کامپیوتری بنا شده اند. نرم افزار در این سیستم ها، بخش بسیار زیادی از هزینه های کل سیستم را به خود اختصاص میدهد. بنابراین، تولید نرم افزار با هزینه مناسب، در عملکرد اقتصاد ملی و بین المللی بسیار موثر است
نرم افزار انتزاعی و ناملموس است و بوسیله مواد اولیه که ناشی از قوانین فیزیکی یا فرآیندهای ساخت است، محدود نمی شود. چون محدودیت های فیزیکی در نرم افزار وجود ندارد، مهندسی نرم افزار ساده به نظر میرسد. از طرف دیگر عدم وجود محدودیت های طبیعی به معنای این است که نرم افزار می تواند کاملا پیچیده باشد و در نتیجه درک آن بسیار مشکل است
نرم افزار، معمولا” بر روی دیسک فلاپی یا دیسک فشرده CD-ROM عرضه می شود، اگر چه، هر روز نرم افزار های بیشتری بر روی شبکه جهانی اینترنت قرار می گیرند و این امکان را به شما می دهند که بدون استفاده از CD یا فلاپی، نرم افزار مورد نیاز خود را تهیه کنید. در اغلب مواقع، قبل از اینکه بتوانید از رایانه استفاده کنید، باید نرم افزار، درون آن نصب شود. نصب یک برنامه ی کاربردی به معنی انتقال تمامی اطلاعات مورد نیاز، از دیسک اصلی (Original Disk) به دیسک سخت (Hard Disk) رایانه است. بعد از نصب برنامه، برای حفاظت دیسک های اصلی می توان آنها را در محیط مناسب نگهداری کرد. بسیاری از رایانه های جدید با نرم افزارهایی که از پیش بر روی آن نصب شده اند عرضه می شوند. این رایانه ها دارای مزایایی هستند، از جمله، ممکن است شما نتوانید دیسک اصلی را تهیه کنید ولی نرم افزارهای نصب شده در رایانه می تواند به راحتی در رایانه ای که تازه بسته بندی آن باز شده است، استفاده شوند
حتی اگر در رایانه، این مجموعه نرم افزارها وجود نداشته باشد همواره سیستم عاملی روی آن نصب می گردد
Microsoft Windows
برای استفاده مفید از رایانه، قبل از هر چیزی به یک نرم افزار نیاز است و نرم افزار نیز قبل از انجام هر کاری به یک سیستم عامل نیاز دارد. سیستم عامل مورد استفاده در اغلب رایانه ها، Windows از شرکت میکروسافت است. Windows از قبل بر روی رایانه ها نصب می شود وبرای موارد ضروری معمولا” بر روی یک CD-ROM نیز عرضه می شود. سیستم عامل، رابطی است بین شما و رایانه. شما از این سیستم عامل استفاده کرده و به رایانه می گویید چه کاری انجام دهد. در Windows می توان از یک موش استفاده کرد که قادر است نشانگر روی صفحه نمایش را کنترل کند. با فشار دادن دکمه موش(Click) روی نشانه ها icon)، تصویرهای کوچکی که در این سیستم عامل گنجانده شده)، انتخاب گزینه از منو و نوشتن با کمک صفحه کلید، شما می توانید رایانه را کنترل کنید و به آن دستور دهید
وقتی که می گویند یک نرم افزار تحت Windows اجرا می شود، یعنی این نرم افزار انتظار دارد که درون رایانه ی شما Windows در حال اجرا باشد و در غیر این صورت اگر رایانه فاقد Windows باشد نرم افزار مورد نظر، نصب نشده و اجرا نخواهد شد. نرم افزارهایی که برای نگارشهای قدیمی تر ویندوز (سیستم عامل پیش ازWindows XP) یا MS-DOS طراحی شده اند، با رایانه ای که دارای سیستم عامل Windows جدید (مانند XP یا Vista ویندوز ویستا) است نیز اجرا می شود، اما این نرم افزارها نمی توانند از ویژگی های جدید Windows های نگارش جدید سود ببرند