ارسال پاسخ 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
مهندسی نرم افزار و تجزیه و تحلیل سیستمها
11-16-2017, 06:22 AM
ارسال: #1
مهندسی نرم افزار و تجزیه و تحلیل سیستمها
وضعيت به كار گيري ابزار مهندسي نرم افزار در ايران
در عصر اطلاعات نمي توان علم يا صنعتي را يافت كه آثار فن آوري اطلاعات در آن ديده نشود . فن آوري اطلاعات علاوه بر اين كه به عنوان يك فن آوري زير بنايي قادر است كه ابعاد ديگر زمينه ها را دگرگون كند ( به گونه اي كه نگرش فعلي به اين زمينه ها را با دگرگوني كامل رو به رو سازد) ، بلكه به عنوان يك فن آوري مستقل و قدرتمند نيز قادر به خودنمايي است. به طور كلي مي توان اين فن آوري را در قالب پنج ركن اساسي آن در نظر گرفت كه هر يك به نوبه خود از اهميت و جايگاه ويژه اي برخوردارند . از اين ميان نرم افزار مي تواند به عنوان يك ركن اساسي با اهميت ويژه اي مطرح باشد . در چند سال اخير شاهد رشد مناسب اين صنعت در كشور بوده ايم (هر چند كه با اخذ تصميمات و سياست هاي صحيحي مي توانستيم با هدف مند كردن اين رشد، جايگاه واقعي اين صنعت را حتي در تجارت جهاني به خوبي نشان دهيم و از آن به بهترين نحو استفاده كنيم ). با وجود اين ، اگر چارچوب دقيق و كارآيي براي آن در كليه ابعاد به وجود نياوريم، فرصت خوبي را براي فراهم آوردن بسترهاي مناسب در رشد و بهره برداري لازم از آن ،از دست خواهيم داد . حجم زياد فعاليت هاي نرم افزاري در كشور و داشتن پتانسيل هاي كافي براي رونق بخشيدن به اين صنعت در راستاي گرفتن سهم مناسبي از بازارهاي خارجي ، ضرورت
توليد صحيح و بهينه را در اين صنعت مطرح مي كند .
توسعة روزافزون فن آوري اطلاعات در ابعاد مختلف ، سبب شده است كه در اركان خود اين فن آوري نيز دگرگوني شگرفي پديد آيد و آن را با جهش هاي غير قابل تصوري پيشرفته سازد. در حقيقت رشد اين فن آوري سبب توليد ابزرهاي جديد و سريعتر ، حتي تغيير نگرش در توليد محصولات نرم افزاري شده است . از اين ميان مي توان به توليد ابزارهاي مهندسي نرم افزار در طيف وسيع اشاره كرد .اين ابزارها در هر يك از مراحل و بخش هاي تحليل ، طراحي، پياده سازي ،آزمايش ، نگه داري ، مديريتي و غيره تأثير بسيار گذاشته است .
با استفاده از هر يك از اين ابزارها دقت و سرعت توليد محصولات نرم افزاري بسيار زياد شده است ، در جامعة كنوني كه پروژه هاي يك ساله از پروژه هاي بلند مدت نرم افزاري محسوب مي شود و پروژه هاي بيشتر از يك سال را محكوم به شكست مي دانند ( با توجه به تغييرات سريع و بنيادين فن آوري اطلاعات و آثاري كه بر روي ديگر زمينه ها دارد )، اين ابزار توانسته است با سرعت بخشيدن به انجام هر يك از مراحل فوق بتواند تمهيداتي فراهم كند كه پروژه هاي ملي و بزرگ در چارچوب هاي زماني مشخص و معقول تعريف و انجام شوند .
با توجه به مطالب ارائه شده واهميت موضوع نرم افزار و توليد بهينه آن در كشور ، دبيرخانه شوراي عالي انفورماتيك براي ترويج فرهنگ به كارگيري مفاهيم و ابزارهاي نوين در كلية زمينه هاي فن آوري اطلاعات و آشنا سازي جامعة انفورماتيك( به خصوص دانشجويان و توليد كنندگان جوان ) به اهميت مهندسي نرم افزار و اصول آن و ابزارهاي توسعة نرم افزار اقدام به تهيةمطالبي در اين زمينه كرد . به همين منظور از شركت هاي مهم نرم افزاري كشور خواسته شد اطلاعات مربوط را به دبير خانه ارسال كنند .( توجه كارفرمايان در ضرورت به كارگيري ابزارهاي كمكي براي توليد و توسعة نرم افزار به خصوص در پروژه هاي بزرگ بسيار حائز اهميت است كه اميدواريم اين مهم نيز با ارائه مطالب مختصر فوق ، برآورده شود ).
در اين جا نيز از كلية استادان ، صاحب نظران، ديگر شركت ها و مؤسسات توليدي نرم افزار مي خواهيم كه با ارسال اطلاعات مربوط در اين زمينه به دبيرخانه شورا ، ما را در هر چه بهتر عرضه كردن ابزار مهندسي نرم افزار و شناساندن توان واقعي توليد نرم افزار كشور به جامعه ، ياري دهند .
در همين راستا طي سلسله مقالاتي ، پس از بيان مقدمه اي بر ابزار هاي مهندسي نرم افزار ، به معرفي ابزارهايي كه بوسيلة شركت هاي داخلي به كار گرفته مي شوند ، خواهيم پرداخت . اين معرفي شامل كليات زير است :
ـ معرفي ابزار و شركت توليد كننده و ارائه دهندة آن
ـ تاريخچة كاربرد يا عرضة ابزار در شركت
ـ امكانات قابل ارائه ابزار ( چه فعاليتي را انجام مي دهد و چگونه و غيره )
ـ مشخصات فني ( بستر عملياتي و غيره )
ـ مختصري از نحوة كار با ابزار
ـ پروژه هاي انجام شده با اين ابزار
لازم به ذكر است كه اطلاعات بيان شده با توجه به مجموعه اطلاعاتي است كه از طريق شركت ها به اين دبيرخانه ارسال شده است ( با ذكر نام فرستنده ).بنابراين ميزان بررسي و عمق مطالب مطرح شده بستگي به اطلاعاتي دارد كه شركت ها در مورد نرم افزار مورد استفاده يا عرضة كردة خود براي ما فرستاده اند ( با تشكر فراوان از كليه شركت هايي كه اطلاعات خود را براي اين دبيرخانه ارسال داشته اند ). از طرف ديگر ، ابزار هاي مطرح شده فقط در قالب ابزارهايي هستند كه در چارچوب مراحل تحليل ، طراحي و پياده سازي مورد استفاده يا عرضة شركت قرار گرفته اند .به همين خاطر از ميان ابزارهايي كه صرفاً جهت مديريت پروژه ها ،آزمايش ، برنامه سازي و غيره در شركت ها مورد استفاده قرار گرفته است ، خودداري كرده ايم . حال به عنوان اولين نوشته از اين مجموعه به معرفي اجمالي ابزارهاي مهندسي نرم افزار خواهيم پرداخت . در اين مقوله سعي بر آن است كه با ارائه مطالبي پيرامون اين ابزار از جهت تعريف ، دسته بندي ، نحوة كلي عملكرد و غيره ، مختصر شناختي از آنها عرضه شود .


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-16-2017, 06:22 AM
ارسال: #2
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
1ـ معرفي
به گفتة فرهنگ لغات نيوتن تله كام « ابزار مهندسي نرم افزار يا مهندسي نرم افزار به كمك كامپيوتر ، روش جديد مؤثر تر و سريع تر براي تهية نرم افزارها در كاربرد هاي متفاوت است ». اين ابزار در مراحل مختلف توليد سيستم هاي طلاعاتي از جمله تحليل ، طراحي و برنامه سازي به كارگرفته مي شوند . براي مثال فرهنگ هاي داده و ابزار هاي نمودار كشي به تحليل كمك مي كنند و در مرحله طراحي ، ابزارهاي طراحي و توليد سيستم هاي كاربردي ، مرحله برنامه سازي را سريع تر مي سازند . علاوه بر آن به وسيلة اين ابزارها مرحلة سخت ،زمان گير و غير دوست داشتني مستند سازي مي تواند به راحتي انجام شود . روند توليد اين ابزارها به سمتي است كه بتواند كلية مراحل توليد نرم افزار بالاخص برنامه سازي را پشتيباني كند . ابزارهاي جديد برنامه سازي مانند :Visual Basic وpower builder و… كه به (Rapid application development)RAD معروف هستند ، از نسل هاي جديد اين ابزارها محسوب
مي شوند . امتيازات استفاده از ابزار ها بسيار زياد و متنوع است ، اما مهم ترين آن ها
را مي توان به صورت زير خلاصه كرد :
1ـ افزايش بهره وري
2ـ بهبود كنترل كيفيت
3ـ مستند سازي بهتر
4ـ سرعت استفاده از استانداردها
5ـ محدود كردن افزونگي ( زيرا تغييرات اصلي مي تواند به راحتي اعمال شود)
6ـ به اشتراك گذاشتن نمودارهاي گردش داده و فرهنگ داده ها و… در بيشتراز يك سيستم
7ـ توانايي شناسايي توافق ها در طراحي يك سيستم

2ـ انواع ابزارها ( از ديدگاه هاي مختلف )
همان طور كه گفته شد ابزارها مي توانند در محدودة وسيعي از توليد و نگه داري يك سيستم ( يا مجموعه اي از سيستم ها ) مفيد واقع شوند ، اما به كارگيري اين ابزارها در مراحل تحليل و طراحي سيستم ها بالاخص سيستم هاي بزرگ بسيار حائز اهميت و گاه ضروري است . به طور كلي ابزارهايي را كه در اين مراحل به كار گرفته
مي شوند، مي توان به دو گروه عمده تقسيم كرد :
الف ـ ابزارهاي وابسته به يك فراروش يا روش خاص،
ب ـ ابزارهاي غير وابسته به يك فراروش يا روش خاص ، گروه اول ابزارهايي هستند كه به توليد كننده نرم افزار كمك مي كنند كه در راستاي به كارگيري يك فراروش در تهيه نرم افزار ، بتوانند از امكانات اين ابزار براي تسريع در عمل ، سهولت كار و غيره كمك بگيرند . بنابراين ابزارهاي مربوط هنگامي مفيدند و به كار گرفته مي شوند كه توليد نرم افزار بر اساس فراروش يا روش مربوط پيش مي رود . البته توجه به اين نكته ضروري است كه اين ابزارها مي توانند بخش با بخش هايي از فعاليت هاي فراروش را براي انجام كار مد نظر داشته باشند . به عبارت ديگر ، اگر ابزاري بر اساس فراروش خاصي تهيه شده باشد ( يعني اين كه بتواند تكنيك هاي به كار رفته دراين فراروش را پشتيباني كند )، به اين مفهوم نيست كه كلية مراحل ، تكنيك ها ، علايم و… اين فراروش را پشتيباني كند ( مي تواند برخي از آن ها را در بر داشته باشد )
گونه اي ديگر از ابزارها هستند كه بدون در نظر گيري فراروش يا روش خاصي ، تنها مي توانند امكاناتي در اختيار توليد كنندة نرم افزار قرار دهند كه بتواند در مراحل اجراي پروژه از تكنيك ها، علايم و ديگر امكانات اين ابزارها استفاده كند . براي مثال ابزارهايي كه مي توانند نمودار گردش داده يا DFD تهيه كنند ، مي توانند در مقاطع مختلف و براي فراروش ها و پروژه هاي گوناگون به كار گرفته شوند .از طرف ديگر ابزارهاي مهندسي نرم افزار را مي توان بر اساس اين كه در چه مقطعي از چرخة حيات نرم افزار به كار گرفته مي شود ،تقسيم بندي كرد . از اين ديدگاه ، ابزارهايي كه قسمت هاي اولية چرخة عمر نرم افزار را پشتيباني مي كنند ( در انجام اين قسمت از پروژه ها به كار مي آيند )، به ابزارهاي Upper-CASE و ابزارهايي كه قدم هاي نهايي چرخة عمر را پشتيباني مي كنند ، به ابزارهاي Lower-CASE معروف هستند .
اسميت و امان نيز به گونه اي ديگر ابزارها را تقسيم كرده اند . آن ها نام هاي ابزارهاي افقي و عمودي را برگزيده اند .

ابزارهاي افقي : اين ابزارها ارتباط خودكار بين مراحل مختلف چرخة عمر را پشتيباني مي كنند و شامل مديريت پروژه ، ابزارهاي مديريت ساختاربندي ، سرويس هاي مجتمع و غيره هستند . اين ابزارها دو مرحله ( يا بيشتر ) ازمراحل چرخة عمر نرم افزار را به هم متصل مي كنند و جريان اطلاعات از يك مرحله به مرحلة ديگر را به راحتي امكان پذير مي كنند و نشان مي دهند .
ابزارهاي عمودي : دو نوع ابزار عمودي وجود دارد . اولي ، مجموعه اي از
ابزارهاست كه در يك مرحله از چرخة عمر نرم افزار به كار مي آيد . اين ابزار ها به دليل تسريع درعملكرد يك مرحله از چرخة عمر نرم افزار مفيد هستند . دستة دوم ابزارهايي هستند كه در بيشتر از يك مرحله به كار گرفته مي شوند . ( دومي براي انتقال اطلاعات ذخيره از يك مرحله به مرحلة ديگر به كار مي آيد) مانند ويراشگرهاي تصويري كه در مراحل تحليل و طراحي به كار گرفته مي شوند .
به طور كلي هرگروه از ابزارهاي مهندسي نرم افزار مي تواند فعاليت هاي : ويرايش ، برنامه سازي ، وارسي و صحت سنجي ،اندازه گيري ، مديريت پروژه ، مديريت پيكربندي را انجام دهد كه در ادامه ، به شرح مختصر هر يك از آن ها
مي پردازيم .

ويرايشگرها :به طور كلي اين ابزارها براي ويرايش اطلاعات به كار مي روند . ويرايشگرها به دو گروه متني و تصويري تقسيم مي شوند . گروه اول براي كار با متن ها مانند مستندات و برنامه ها به كار مي آيند . امروزه اين گروه از ابزارها براي تهية برنامه ها و نوشتن كد برنامه داراي امكانات ويژه اي هستند كه برنامه نويس را به نحوة نوشتن برنامه راهنمايي مي كنند ( براي مثال كلمات كليدي ، توضيحات و … را با رنگ هاي متفاوتي از يكديگر مجزا مي كنند ). ويرايشگرهاي تصويري نيز قسمتي از نرم افزارهاي مهندسي نرم افزار را براي تهية مراحل مختلفي از چرخة عمر نرم افزار تجهيز مي كنند .
براي مثال محيط ويرايشگر طراحي IDE به نام Software-throught-pictures نمونة خاصي از ابزارهاي گرافيكي ويرايش است كه تنها براي پشتيباني از مراحل طراحي و تحليل در چرخة عمر نرم افزار براي استفاده از تكنيك هاي متفاوت به كار مي آيد .
اغلب اين گونه ويرايشگرها با ابزارهاي ديگري نيز تجهيز مي شوند كه مراحل بيشتري از چرخة عمر را پشتيباني كنند . براي مثال ويرايشگر تصويري IDE داراي يك توليد كنندة متن و يك تجزيه كننده است . برخي ديگر از اين ويرايشگرها براي دستكاري رابط كاربر گرافيكي (GUI) تهيه شده اند و اغلب آن ها متن هاي برنامه را براي GUI هاي تعريف شده ، تهيه مي كنند . يكي از نمونه هاي اين گونه ويرايشگرهاKhoros Software Development Environment است . زبان هاي برنامه نويسي تصويري نمونه ديگري از ويرايش گرهاي تصويري هستند . مانند كانتاتا و اي وي اس . اين گونه برنامه ها به صورت محاوره اي به كاربر اجازه مي دهند كه نمادهاي (icons) نمايانگر عملكرد روي داده ها را با يكديگر براي تهية نرم افزار تركيب كرده به كار گيرند .


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-16-2017, 06:23 AM
ارسال: #3
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
برنامه سازي: ابزارهاي برنامه سازي به چند گروه تقسيم مي شوند : براي نوشتن متن ـ براي غلط گيري ـ توليد كننده هاي متن و تجديد ساختار كننده هاي متن كه همگي جزو ابزارهاي سطح پايين (Lower-CASE) محسوب مي شوند . به طور كلي برنامه نويسان ( و گاهي طراحان ) با اين گونه ابزارها كم و بيش آشنايي دارند . از اين ميان اشاره به ابزارهاي تجديد ساختار كننده بي فايده نيست . اين ابزارها شكل متن برنامه ها و مستندات را به گونه اي كه مشخص تر ، خواناتر و قابل فهم تر باشند، تغيير مي دهند .

وارسي و اعتبار سنجي : اين ابزارها براي بررسي كيفيت نرم افزار در طول دورة عمر نرم افزار به كار مي آيند . اين گروه از ابزارها به بخش هاي مختلفي تقسيم مي شوند از جمله : تحليل گران ، مقايسه كنندگان ، شبيه سازها و مديريتي و جزو ابزارهاي افقي و عمودي هستند .
سنجيده ها : اين ابزارها براي تعيين ميزان كيفيت و يا مشكلات و نارسايي هاي نرم افزارها به كار گرفته مي شوند . به دليل اين كه آن ها در هر مرحله از توليد نرم افزار ممكن است به كار گرفته شوند ، در گروه ابزارهاي افقي قرار مي گيرند .
مديريت پروژه ها : اين ابزارها به طور كلي براي مديريت پروژه هاي نرم افزاري به كار گرفته مي شوند و مي توانند شامل اجزاء گوناگوني براي برطرف كردن نياز مديران در هر قسمت و موضوع باشند . ( مانند ابزارهايي كه داراي بخش قيمت سنجي ، طراحي پروژه ، ابزارهاي ارتباطي و پي گير مراحل و غيره هستند ) .
مديريت پيكربندي: مديريت پيكربندي نرم افزار(SCM) مجموعه اي از
روال ها هستند كه توليد نرم افزار را مديريت مي كنند . اين روال ها هريك براي ساخت سيستم و نظارت و كنترل در تغييرات انجام شده درسيستم در طي مدت توليد آن ، تنظيم شده اند .
وظايف SCM به چندين گروه شكسته مي شود ( براي مثال ، كنترل تغييرات ، مديريت نسخه هاي توليد شده از نرم افزار ، مديريت توابع كتابخانه اي و غيره ).
ابزارهاي CASE موضوعات مختلفي را تحت پوشش قرار مي دهند كه در اين نوشته به موارد در حد امكان اشاره شد لازم به ذكر است كه براي آشنايي با مقوله هاي مربوط به آن ابزارها فهرستي از آنها را ( براساس حروف الفبا ) به تدريج در هر مقاله ذكر مي كنيم . اسامي برخي از اين ابزارها و آدرس و مشخصات توليد و عرضه كنندگان آن ها نيز به همين ترتيب درشماره هاي بعدي به تدريج ذكر خواهد شد . اميد است اطلاعات مختصري كه براي آشنايي با ابزارهاي مهندسي نرم افزار در قسمت اول اين مجموعه ارائه شد به همراه توضيحات بيشتر در ارتباط با تاريخچه و روند رو به رشد آن ها در مقالات بعدي زمينه هاي مناسب را فراهم آورده باشيم تا بتوانيم با دريافت اطلاعات بيشتري از شركت ها به تشريح كامل ابزارهاي مهندسي نرم افزار مورد استفاده در ايران بپردازيم .

موضوعات ابزارهاي CASE ( تا حرفD )
intelligent OOA /RD modeling tool
2D charting and graphing widget
2D /3D charting and graphing
3-tier CS/TP Application Generator
3D charting widget
4th Generation
ActiveX Controls
Activity Based Costing Support
Ada
Ada 2D /3D Graphics
Ada and C code generators
Ada dynamic testing
Ada LSE and automatic style compliance
Ada X window
Add-on for TI Composer c/s encyclopaedia


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-16-2017, 06:24 AM
ارسال: #4
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
مهندسي نرم افزار 2004
راهكارهاي آموزشي براي برنامه هاي درجه ليسانس در مهندسي مر افزار
حجم سري هاي آموزشي رشته كامپيوتر
مقدمه
اين مقاله براساس فرمان هيئت آموزشي ACM و هيئت فعاليتهاي آموزشي اجتماعي كامپيوتر IEEE براي ايجاد نظريات آموزشي در چندين نظام رشته كامپيوتر انجام شده است: علم كامپيوتر، مهندسي كامپيوتر، مهندسي نرم افزار و سيستم هاي اطلاعاتي. ديگر مجامع حرفه اي در يك سري پروژه ها به هم پيوستند. چنين مجامعي مورد قابل توجهي براي پروژه 2004 SE هستند كه جامعه كامپيوتري استراليا، جامعه كامپيوتري انگلستان و جامعه پردازش اطلاعات ژاپن در آن حضور دارند.
مرحله توسعه
پرو‌ژة 2004 SE توسط انجمن استرينگ هدايت و توسط جوامع حمايت مي گردد. مرحله توسعه با انتصاب روساي انجمن استرينگ وديگر اعضاء در پائيز 2001 شروع شد. اعضاي ديگر شامل نمايندگان ديگر جوامع در نيمه اول 2002 افزوده شدند . اعضاي انجمن استرينگ در ذيل ذكر شده اند:

رؤسا
ريچ ليبلانس، ACM، مؤسسه تكنولوژي جورجيا، امريكا.
آن سوبل ،IEEE-CS، دانشگاه ميامي، آمريكا
رئيس منطقه دانش
آن سوبل، دانشگاه ميامي، آمريكا.
روساي گروه آموزشي
مردچاي بن – مناحيم، دانشگاه بن مگورين،اسرائيل
تيموتي نسي. ليتريج، دانشگاه اتاوا، كانادا
مولفان
جرج ال. دياز – هريرا، موسسه في روچسترا، آمريكا
توماس بي 9هيلبرن، دانشگاه هوانوردي امبري، ريدن، امريكا
نمايندگان سازماني
ACM : اندرو مك گتريك ، دانشگاه استراتكليد، انگلستان
AOM SIGSOFT : جواتا ام آتلي، دانشگاه واترلو، كانادا
تحصيلات دانشكده دو ساله ACM : اليزابت كي، هاتورن، دانشكده بخش اتحاديه، امريكا
جامعه كامپيوتر استراليا : جان ليني، دانشگاه فني سيدني، استراليا
جامعه كامپيوتر انگلستان: ديويد باجن، دانشگاه كيلي، انگلستان
جامعه پردازش اطلاعات ژاپن : يوشيهارو والتسوموتو، موسسه فني هوساشي، ژاپن
انجمن فني IEEE-CS مهندسي نرم افزار : جي . باري تامسون، دانشگاه ساندرلند، انگلستان
سپاسگذاري
مؤسسه علم ملي، انجمن دستگاههاي آمپيوتري و جامعه كامپيوتري IEEE ، از پيشرفت اين مقاله حمايت كرده اند.
افراد بسياري در پروژه SE2004 ، از شروع شركت كرده اند، حتي بيش از ظرفيتشان، اين كار بدون فداكاري و تخصص داوطلبين تكميل نمي شد. ضميمه B، نام اين افراد مشترك در پيشرفت هاي گوناگون را ليست كرده است و سطوح اين مقاله را بررسي ميكند. تشكر خاص خود را خدما سوزان منگال از دانشگاه فني تگزاس، رئيس اصلي انجمن استيرينگ و انجام دهنده وظايف سازماني اوليه براي پروژه 2004SE، ابراز مي داريم.



فصل 1 : مقدمه
1-1 هدف اين مقاله
هدف اوليه اين مقاله راهنمايي مؤسسات آكادميك و سازمانهاي رسمي دربارة چگونگي تأسيس آموزش مهندسي نرم افزار در سطح ليسانس مي باشد. اين نظريات توسط يك انجمن بين المللي شامل اعضاي داوطلب بسط مي يابد. اين گروه بسياري از كارهاي انجام شده در آموزش مهندسي نرم افزار طي ربع قرن گذشته را به حساب آورده است. نظريات فارغ التحصيلان مهندسي نرم افزار از رابطه خاصي هستند چون در ايجاد برنامه هاي مهندسي نرم افزار و مراحل رسمي براي چنين برنامه هاي موجود در يك سري كشورها موج وجود دارد.
نظريات موجود در اين مقاله براساس سطح بالاي ويژگي هاي فارغ التحصيلان مهندسي نرم افزار در فصل 3 مذكور هستند. در پي آمد اين نتايج، دو ويژگي اين مقاله عبارتند از:
SEEK : دانش فارغ التحصيل مهندسي نرم افزار – آنچه هر فارغ التحصيل SE (مهندسي نرم افزار) بداند.
آموزش : راههاي آموزشي و انتقال اين دانش و مهارتهاي بنيادين به مهندسين نرم افزار در زمينه هاي مختلف
2-1 محل شايستگي ها در آموزش كامپيوتر
در سال 1998 ، انجمن وسايل كاميوتري (ACM) و مؤسسه جامعه كامپيوتري براي مهندسان الكترونيك و الكتريكي (IEEE-CS) يك نيروي آموزشي جديد به عنوان آموزش رشته كامپيوتر 2001 و بطور خلاصه 2001 CC ايجاد كردند. وظيفه اصلي 2001CC ايجاد راهكارهاي آموزشي هماهنگ با آخرين پيشرفتهاي تكنولوژي كامپيوتر در دهة گذشته و دهة آتي مي باشد. اين گروه به وسايلي تجهيز شده اند كه فنون كامپيوتر در تمام زمينه ها را تحت پوشش قرار مي دهد. در 50 سال گذشته رشته كامپيوتر، مهندسي نرم افزار، سيستم هاي اطلاعات، و غيره را احاطه كرده است. با بسط اين حوز، گروه به اين نتيجه رسيدند كه هيچ گروه خاصي نمي تواند اميد تسلط بر كل رشته كامپيوتر را داشته باشد. در همين زمان، بازخورد دريافتي آنها در مورد طرح اوليه شان روشن مي سازد كه انجمن آموزش رشته كامپيوتر بطور شديد از محاسبة پهناي رشته حمايت كرد.
راه حل آنها براي اين رقابت، ادامه توسعه مقاله نظريان آموزشي علم كامپيوتر چاپ شده 2001 به عنوان پروژه را گسترش دهند تا كتاب هاي نظريان مربوط به ليست رشته هاي مذكور را نيز شامل شود. اين مقاله كار پروژة 2004 SE (مهندسي نرم افزار 2004) را نشان مي دهد و اولين كار IEEE-CS , ACM براي توسعه راهكارهاي آموزشي مهندسي نرم افزار مي باشد.
در اواخر 2000، برنامه آموزشي مدل 2002 S او راهكارهاي برنامه هاي درجه ليسانس در سيستم هاي اطلاعات تصويب و چاپ شد كه توسط ACM، انجمن سيستم هاي (AIS)، و انجمن پيشروان فني اطلاعات (AITP) طراحي شده اند. تلاشهاي اضافي براي توليد آموزش مهندسي كامپيوتر و تكنولوژي اطلاعات در حال پيشرفت هستند.
3-1 مرحلة توسعه مقالة 2004 SE
ساختار اين مقاله بر سه مورد تمركز دارد كه داوطلبان بيشتري را به اندازة اعضاي انجمن استرينگ جذب مي كند. اولين اين موارد، توسعه نتايج آموزشي دلخواه بيان دانش لازم فارغ التحصيلان SE مي باشد. دومين مورد، به تشخيص و تخصص دانش لازم در برنامه مهندسي نرم افزار فارغ التحصيل، SEEK ، مي پردازد. مورد سوم، ساختار مجموعة نظريات آموزشي، توصيف كنندة چگونگي ساختاربندي آموزش مهندسي نرم افزار، ثبت SEEK ، در فرضيه هاي مختلف مي باشد.


1-3-1 گروه دانش آموزش
كار در اوايل بهار 2002 با انتصاب داوطلبان منطقه دانش براي توسعه پيكرة اوليه دانش اوليه آموزش مهندسي نرم افزار (SEEK) شروع شد. مجموعه اوليه مناطق دانش آموزشي به داوطلبان داده شد و آنها مسئول تعريف واحدها و موضوعات براي هر منطقه دانش با استفاده از الگوهاي توسعه يافتة انجمن استرينگ مي شوند. بعلاوه نتايج عملكردهاي انجام شده در 2002CSEE , T (كنفرانسي دربارة آموزش و تعليم مهندسي نرم افزار 2002) و مباحث دربارة محتواي دانش آموزشي مورد نياز در اوج آموزش مهندسي نرم افزار در رابطه با 2002 CSE برگزار مي گردند و براي توسعه دهندگان SEEK ورودي تهيه مي كنند.
كار اوليه داوطلبان كه در طرح مقدماتي SEEK ثبت مي شد و در كارگاه حمايت شدة NSF در مورد SEEK استفاده مي شدند، در ژوئن 2002 برگزار گرديدند. اين كارگاه اعضاي گروه منطقه دانش آموزشي، اعضاي انجمن استرينگ، رهبران آموزش مهندسي نرم افزار را دور هم جمع كرد و اعضاي گروه آموزشي را براي كاربر طرح مقدماتي انتخاب كرد. محصولات حاصلة اين كارگاه توسط انجمن استرينگ تصحيح شدند.
بررسي انتخابي مقاله SEEK توسط مجموعه اي از متخصصين مهندسي نرم افزار بين المللي انجام شد. ارزيابي آنها توسط انجمن استرينگ براي توليد نسخه طرح رسمي اوليه SEEK مورد استفاده قرار گرفت كه در آگوست 2002 براي عموم فاش شد.
وقتي در اوايل اكتبر 2002 اولين پنجره بررسي منتهي شد، انجمن استرينگ تقريباً 50 بررسي دريافت كرد. هر ارزيابي به همراه يك پاسخ مكتوب از انجمن استرينگ شامل عملكرد و توصيه بوده پس از پست دومين نسخة SEEK در دسامبر 2002، چرخه ديگري از بررسي ها تا شروع مارس 2003 آغاز گشت. WGSEET (گروه كار كننده بر آموزش و تعليم مهندسي نرم افزار) در جهت دهي محتواي نسخه دوم SEEK قابل استفاده در جوركردن بهتر راهكارهاي آموزش گروه تربيتي مي باشد. همكاري هاي WGSEET در راستاي مجموعة دوم ارزيابي ها، SEEK را براي نسخه نهايي آن نمو داده است.
2-3-1 گروه منطقه تمركز آموزشي
در اكتبر 2002، گروه تمركز آموزشي كار امري توليد نظريات آموزشي با استفاده از SEEK به عنوان شالوده شروع كرد. كارگاه اين گروه شكل گرفت. اعضاي گروه كاربر روي شناسايي راهكارهاي آموزشي، مدلهاي آموزشي، سازواري بين المللي و محيطهاي اجرايي را شروع كردند. اين اطلاعات بعداً توسط انجمن استرينگ طي فوريه 2003 تصحيح شد. بررسي هاي اين طرح فصل آموزش طي جلسة WGSEET اتفاق افتاد و در ماه مارس در كارگاه در كنفرانس 2003 در مورد آموزش و تعليم مهندسي نرم افزار برگزار گرديد.
طرح مقدماتي فصل آموزش شامل بخش هاي ذيل بود :
- اصول طرح و تحويل برنامه آموزشي مهندسي نرم افزار
- برنامه آموزشي مفروض شامل مدلهاي آموزشي و واحدهاي نمونه از موضوعات SEEK
- سازواري با محيطهاي آموزشي مربوط مثل دانشكده هاي دو ساله
مدلهاي آموزشي حاضر با استفاده از SEEK، مقاله علم كامپيوتر (CCCS) و مطالعه مجمل برنامه هاي مهندسين موجود توسعه يافته اند. كل 32 برنامة آمريكاي شمالي، اروپا و استراليا براي اين كار مشخص شده است. تكنيك كليدي براي توسعه مدلهاي شناسايي موضوعات SEEK، با واحدهاي CCCS موجود تحت پوشش قرار خواهد گرفت. مواد SEEK باقيمانده درون واحدهاي مهندسي نرم افزار، با استفاده از برنامه هاي موجود به عنوان راهنما توزيع شدند.

3-3-1 توسعه مقالة كامل
در بهار و تابستان 2003، موارد اضافي مشمول SEEK و اجزاي آموزشي براي ساخت يك طرح كامل از مقاله 2004SEEK مي شدند. بررسي اول طرح مقاله 2004SE در درجه دوم در مورد آموزش مهندسي نرم افزار در 2003CSE1 برگزار شد. انجمن استرينگ ورودي را از درجه دوم و ديگر بررسي هاي غيررسمي براي توليد اولين طرح عمومي مقاله 2004SE كامل از جولاي 2003 تا سپتامبر 2003 استفاده كرد. همچنين طرح بررسي شد و توسط هيئت آموزشي ACM و هيئت فعاليتهاي آموزشي IEEE-CS تفسير شد. بررسي كنندگان بيشتر توسط انجمن استرينگ نتيجة نسخة نهايي مقالة 2004SE كار مي كنند.

4-1 ساختار مقاله
فصل 2 در مورد ماهيت مهندسي نرم افزار به عنوان يك انضباط ، نمايش دهندة برخي تاريخچة آموزش مهندسي نرم افزار، و توضيح چگونگي تأثير اين عناصر بر اين مقاله ميباشد. فصل 3 اصول راهنماي تحت توسعه اين مقاله را ارائه مي دهد. اين اصول توسط 2001CC حين شروع كار سازوار مي شوند. همچنين فصل 3 در مورد آنچه يك فارغ التحصيل SE بداند توضيح مي دهد. فصل 4 پيكرة SEEK را ارائه مي دهد كه زمينة راهكارهاي آموزشي و طرح هاي برنامة آموزشي ارائه شده در فصل 5و6 ميباشد. فصل 7 نيز در مورد سازواري نظريه هاي آموزشي در فصل 6 با محيطهاي مربوط بحث ميكند. در نهايت، فصل 8 برنامه هاي آموزشي مختلف و مشي هاي ارزيابي را بررسي ميكند.
فصل 2 : نظام مهندسي نرم افزار
اين فصل دربارة ماهيت مهندسي نرم افزار و تاريخچة پس زمينه مربوط به توسعه راهكار آموزشي مهندسي نرم افزار بحث مي كند. هدف اين فصل تهيه زمينه براي موارد آموزشي در فصول متوالي مي باشد.
1-2 نظام مهندسي نرم افزار
از دهة 1940، كاربردهاي كامپيوتر با سرعت رشد كرده اس. نرم افزار مركزي در اغلب جوانب زندگي روزانه بازي مي كند: در دولت، بانك داري و دارايي، آموزش، حمل و نقل، سرگرمي، پزشكي، كشاورزي و قانون. شماره، اندازه و قلمروي كاربرد برنامه هاي كامپيوتري بطور شگفت آوري رشد كرده است. در نتيجه، صدها بيليون صرف توسعه نرم افزار مي شود و وسيله معاش و زندگي اغلب مردم بسته به كارايي اين توسعه مي باشد. محصولات نرم افزاري به ما كمك مي كنند كه پربارتر و كاراتر باشيم و مسائل را بهتر حل كنيم. آنها محيطي امن تر، انعطاف پذيرتر با محدوديت كمتر براي كار ايجاد مي كنند. عليرغم اين موفقيتها، مشكلات جدي در هزينه، زمان و كيفيت بسياري از محصولات نرم افزاري وجود دارد. دلايل اين مشكلات بسيار زياد هستند و شامل موارد ذيل مي گردند:
- محصولات نرم افزاري در ميان پيچيده ترين سيستم هاي ساخته بشر مي باشند و نرم افزار خصوصيات ماهيتي و ضروري دارند (مثل پيچيدگي، غيرقابل رويت بودن و قابليت تغيير) كه به سهولت مورد كاربرد قرار نمي گيرند.
- فنون و مراحل برنامه ريزي كه بطور موثر براي يك شخص يا يك تيم كوچك براي توسعه و برنامه هاي سايزبندي شده بكار مي روند، براي توسعه سيستم هاي پيچيده و بزرگ مناسب نيستند.
- سرعت تغيير در كامپيوتر و تكنولوژي نرم افزار حوزه اي را براي محصولات نرم افزاري جديد ايجاد مي كند. اين موقعيت انتظارات مشتري و نيروهاي رقابتي را ايجاد مي كند كه قابليت ما در توليد كيفيت نرم افزاري با برنامه هاي توسعه قابل قبول را تحت فشار قرار مي دهد.
حدوداً 35 سال پس از اولين مبحث رسمي و سازمان دهي شده مهندسي نرم افزار، نظامي توسط كنفرانس 1968 ناتو در مورد مهندسي نرم افزار شكل گرفت. واژه مهندسي نرم افزار همكنون در سطح وسيعي در صنايع، دولت، دانشگاهها استفاده ميشود و صدها هزار متخصص كامپيوتر با عنوان مهندس نرم افزار خوانده ميشوند.
انتشارات، گروهها، سازمانها و كنفرانس هاي حرفه اي مختلف از اين واژه در اسمهايشان استفاده مي كنند و رشته ها و برنامه هاي تحصيلي بسياري در مورد مهندسي نرم افزار وجود دارد. اگرچه هنوز مخالفتها و تفاوتهاي عقيده اي در مورد مفهوم اين واژه وجود دارد. تعاريف ذيل چندين ديدگاه از مفهوم و ماهيت مهندسي نرم افزار را بيان ميكند. گرچه آنها همگي در يك راستا هستند و دلالت دارند كه مهندسي نرم افزار بيش از برنامه نويسي است و شامل كيفيت، فهرست و اقتصاد، دانش و كاربرد اصول و قوانين مي باشد.
تعاريف مهندسي نرم افزار
طي سالها تعاريف بسياري از نظام مهندسي نرم افزار ارائه شده است. بسته به هدف اين مقاله ها تعاريف ذيل را بيان مي كنيم:
- تأسيس و كاربرد اصول مهندسي صورت به منظور دستيابي به نرم افزار اقتصادي كه منطقي است و ب ماشين هاي واقعي كار مي كند. (باور 1972).
- مهندسي نرم افزار فرعي از مهندي است كه بر اصول علم و رياضيات كامپيوتر به منظور نيل به راه حلهاي موثر و بهينه براي مسائل نرم افزاري دلالت مي كند. (CMU/SEI-90-TR-003).
- كاربرد روشي منظم، با كيفيت و با قاعده در توسعه، پردازش و حفظ نرم افزار (IEEE 1990) در هر يك از اين تعاريف جوانبي وجود دارد كه در منظر مهندسي نرم افزار كاربردي در ساختار اين مقاله شركت دارد. يك جنبه بسيار مهم اين است كه مهندسي نرم افزار براساس علم كامپيوتر و رياضيات مي باشد. ولي در عرف مهندسي، از اصل تكنيكي فراتر مي رود تا رديفي از نظامها را ترسيم نمايد.
اين تعاريف به وضوح بيان مي كنند كه مهندسي نرم افزار دربارة ايجاد نرم افزار با كيفيت در يك مشي تكامل نرم افزار دارد. بعلاوه، موضوعات مربوط به مديريت و كيفيت، تازگي و خلاقيت، استانداردها، مهارتهاي شخصي، كار گروهي و عملكرد حرفه اي وجود دارد كه نقشي حياتي در مهندسي نرم افزار بازي مي كند.
2-2 مهندسي نرم افزار به عنوان يك نظام كامپيوتري
يك مفهوم مفقود معمول درباره مهندسي نرم افزار، فعاليتهاي جهت دارش مي باشد (مثل نيازها، طرح، اطمينان كيفيت، بهبود مرحله و مديريت پروژه). در اين نظر مي توان با كسب پس زمينه مهندسي قوي، آشنايي با مرحله توسعه نرم افزار، حداقل پس زمينه دربارة علم كامپيوتر شامل تجربه كاربرد يك يا چند زبان برنامه نويسي به صلاحيت مهندسي نرم افزار نايل شد. در واقع چنين پس زمينه اي كاملاً كافي نيست. اين سوء برداشت از ديدگاه ناكامل به ماهيت و تغييرات مهندسي نرم افزار نشأت مي يگرد.
در توسعه تاريخي علم كامپيوتر، دانشمندان كامپيوتر، نرم افزار توليد كردند و مهندسان الكتريكي سختي افزاري توليد كردند كه با آن نرم افزار كار كند. وقتي سايز، پيچيدگي، و اهميت بحراني نرم افزار رشد كرد، حصول اطمينان از عملكرد دلخواه نرم افزار ضروري شد. تا اوايل دهة 1970 معلوم شد كه عملكردهاي توسعه نرم افزار مناسب نيازمند چيزي بيش از اصول علم كامپيوتر هستند. آنها نيازمند ابزار تحليلي و توصيفي توسعه يافته با علم كامپيوتر و دقتي هستند كه اصول مهندسي را به اعتبار و درستي محصولات آنها وارد كند.
بنابراين مهندسي نرم افزار از ديگر نظام مهندسي مجزاست كه به علت ماهيت غيرقابل لمس نرم افزار و ماهيت گسسته عملكرد نرم افزار مي باشد. مهندسي نرم افزار در جستجوي تكميل اصول رياضيات و علم كامپيوتر با عملكردهاي مهندسي توسعه يافته براي ايجاد محصولات فيزيكي و قابل لمس مي باشد. با شالوده اي از كامپيوتر و رياضيات، مهندسي نرم افزار در پي توسعة مدلهاي با قاعده و فنون منطقي براي توليد نرم افزاري با كيفيت بالاتر مي باشد و اين مفاهيم همگي راه را از تئوري و اصول به عملكردهاي توسعه بسط مي دهد كه نسبت به ظاهر نظام قابل رويت تر است. در حالي كه انتظار نمي رود هر مهندس نرم افزار تخصص عميقي در تمام جوانب كامپيوتر داشته باشد، يك ادراك عمومي از رابطه آنها و برخي تخصص ها در جوانب خاصي ضروري مي باشد. تعريف پيكره SEEK كه در فصل 4 آمده است منعكس كنندة اتكاي مهندسي نرم افزار بر علم كامپيوتر مي باشد.
3-2 مهندسي نرم افزار به عنوان يك نظام مهندسي
مطالعه و عملكرد مهندسي نرم افزار تحت تأثير ريشه هاي آن در علم كامپيوتر و صنعتي بودن آن به عنوان نظام مهندسي مي باشد. ميزان قابل توجهي از تحقيقات مهندسي نرم افزار جاري درون زمينه علم كامپيوتر و دانشكده هاي كامپيوتر انجام مي گيرند. به طور مشابه برنامه هاي مهندسي نرم افزار با چنين واحدهاي آكادميك به اندازه دانشكده هاي مهندسي توسعه مي يابند. بنابراين نظام مهندسي نرم افزار مي تواند با چنين واحدهاي آكادميك به اندازه دانشكده هاي مهنسي توسعه مي يابند. بنابراين نظام مهندسي نرم افزار مي تواند به عنوان يك رشته مهندسي با ارتباط قويتر با نظام علم كامپيوتر نسبت به زمينه هاي مهندسي سنتي ديده شود. در مرحله ساخت اين مقاله، توجه خاصي به شركت عملكردهاي مهندسي در توسعه نرم افزار و تشخيص اين برنامه آموزشي از برنامه آموزشي علم كامپيوتر شده است. براي آمادگي جهت توسعة دقيق تر اين نظرات، اين بخش علم اصول مهندسي و چگونگي كاربرد آن در توسعه نرم افزار را به بحث مي كشد.
همچنين ما بايد اشاره كنيم كه گرچه شباهتهاي بسياري بين مهندسي نرم افزار و مهندسي هاي ديگر وجود دارد و حتي تفاوتهايي نيز وجود دارد:
- شالوده ها در علم كامپيوتر نه در علوم طبيعي.
- تمركز بر گسستگي بيش از رياضيات متوالي است.
- توجه بجاي محصولات فيزيكي / واقعي بر نهادهاي منطقي / خيالي مي باشد.
- هيچ مرحله ساختي در مفهوم سنتي وجود ندارد.
- در نگهداشتن نرم افزار به توسعه مداوم يا سير تكامل اشاره دارد نه به موارد عرضي.



==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-18-2017, 09:16 AM
ارسال: #5
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
مهندسی نرم افزار :
مهندسی نرم افزار ( SE ) طراحی ، توسعه و ثبت نرم افزار با بکارگیری تکنولوژی ها و کار با علم کامپیوتر ، مدیریت پروژه ، مهندسی محدوده های کاربرد طرح همبست ، مدیریت دارایی دیجیتال و دیگر زمینه ها است .
اصطلاح مهندسی نرم افزار پس از 1968 عمومیت یافت در حین کنفرانس نرم افزار NATO 1968 بوسیله ریکس fl باور و از آن به بعد گسترش یافت .
این اصطلاح معانی متفاوت خاصی دارد :
• بعنوان اصطلاح کنونی غیر رسمی برای محدوده وسیعی از فعالیت ها که قبلاً در برنامه ریزی و تحلیل های سیستم بکار می رفت .
• بعنوان اصطلاح وسیع کلیه جنبه های کار برنامه ریزی کامپیوتر در مقابل تئوری برنامه ریزی کامپیوتری که علم کامپیوتر نامیده می شود .
• بعنوان اصطلاح حمایت از یک راهکار خاص برای برنامه ریزی کامپیوتری که باید بعنوان قاعده مهندسی به جای هنر آن به کار رود و از کد بندی اعمال توصیه شده ای حمایت می کند که به شکل متدلوژی های مهندسی نرم افزاری می باشند .
• مهندسی نرم افزار کار ، کاربرد یک راهکار سیستماتیک ، قانونمند و کمی برای توسعه عملکرد و حفظ نرم افزار است که کاربرد مهندسی در نرم افزار است . ( مطالعه راهکارهایی در استاندارد IEEE 610,12
محدوده و تمرکز :
مهندسی نرم افزار با مفهوم ، توصیه و تعدیل یک سیستم نرم افزاری است که این قاعده با شناسایی ، تعریف ، شناخت و اصلاح ویژگی های لازم نرم افزار منتج سرو کار دارد .
این ویژگی های نرم افزاری می تواند شامل مواردی شود که آمادگی طرح و مختصات تکنیکی است که اگر مناسب اجرا شود منتج به نرم افزاری می شود که می تواند برای برآورد این الزامات اصلاح شود .
مهندسی نرم افزار همچنین مربوط به ویژگی های فرآیند توسعه نرم افزار است . در این زمینه با ویژگی های هزینه توسعه ، طول توسعه و ریسک های توسعه نرم افزار سرو کار دارد .

نیاز به مهندسی نرم افزار :
نرم افزار در مواردی یافت می شود که اطمینان زیادی انتظار می رود ، در شرایطی مثل بررسی و کنترل طرح های نیروی هسته ای یا خطوط هوایی ، چنینی کاربردهایی شامل میلیونها خط رمز می شود که ماشین مدرن پیچیده ای است بعنوان مثال : یک خط هوایی مدرن میلیونها بخش دارد و نرم افزار این خط هوایی 4 میلیون خط رمز دارد .

تکنولوژی های و اعمال :
مهندسین نرم افزار از بسیاری از تکنولوژی ها و اعمال متفاوت دفاع می کنند یا عدم توافق زیاد این بحث 60 سال است که ادامه دارد و همیشه ادامه خواهد داشت – مهندسین نرم افزار تکنولوژی ها و اعمال وسیعی دارند و متصدیان از تکنولوژی متنوع ، به جمع آورنده ها فرآیندهای کلمه و غیره استفاده می کنند . متصدیان تلاش فراوانی مثل برنامه ریزی مزدوج ، بررسی های رمز و ملاقات های روزمره ، هدف هر مهندس نرم افزار باید ایده ای از مدل طراحی می باشد که شفاف باشد و خوب ثیت شده باشد .

ویژگی SE چیست؟
ریاضیات: برنامه ها ویژگی های ریاضی زیادی دارند مثلاً اصلاح وپیچیدگی الگاریتم های زیاد که مفاهیم ریاضی قابل اثبات هستند، برنامه ها محدودند. لذا دراصل توسعه دهندگان به روش ریاضی برنامه های بسیاری می دانند. استفاده ازریاضیات در مهندسی نرم افزار اغلب روشهای رسمی نامیده می شود.ولی تئوری محاسبه اثبات مفید برنامه راثابت می کند، ریاضیات برای قطعات رمز کوچک کار می کند ومقیاس بندی مشکلی دارد.
مهندسی: مهندسی نرم افزار یک قاعده مهندسی است چون راهکارهایی وویژگیهای خاصی برای مهندسی دارد. تحلیل ،تثبیت و رمزبندی مناسب غلاتی از یک مهندس می باشند. دیویدپارنز معتقد است که مهندسی نرم افزار مهندسی است .برنامه هاارزیابی می شوند مثلاً عملکرد ومقیاس برنامه ها تحت یارکار متفاوت ارزیابی می شود. موثر بودن پردازش ها، شبکه های سریعتر، پایه های اطلاعاتی نوین مباحث مهندسی اند. معادلات ریاضی گاهی از ارزیابی هااستتناج می شود. راهکارهای ریاضیات برای تحلیل وسیع سیستم خوب عمل می کند اما اغلب مقایسه اجزای کوچک رمز بی معنی است.
تولید :
برنامه ها بعنوان توالی مراحل ساخته می شوند، تعریف مناسب وانجام این مراحل شبیه خط تولید است . مدافعین امید به بهبود تولید توسعه گران کیفیت برنامه های نهایی دارند. این راهکارپردازش های متفاوتی دارد در حالی که دیگران از قبیل مولفین programmers stone این نظریه را پذیرفته اند که درواقع قادر اجرای هوش مصنوعی است. یک طراح خط تولید را شبیه سازی می کند.
مدیریت پروژه :
پروژه های نرم افزار تجاری خواهان مدیریتند. اینها بودجه هاو برنامه ریزی هایی برای تنظیم هستند. استخدام و هدایت افراد، منابع لازم که تمامی اینها درمحدود، مدیریتند.

هنرهای شنیداری و تجسمی :
برنامه ها حاوی اجزای هنرمندانه اند مثل نوشتنی یا نقاشی، صحبتهای کاربر باید خوشایند باشد وارتباط صوتی و دیداری مطلوب را به کاربران نهایی می دهد.آنچه مدنظر است"طراحی خوب"است که اغلب ذهنی است وحس زیبایی را مشخص می کند .
بدلیل اینکه هنرمندان گرافیک اجزای گرافیک برای صحبتهای کاربر گرافیکی خلق می کنند ، طراحی گرافیک طرح و واکنش درموقعیت طراح همبست دارد.
-بتهای کاربرمستلزم شناخت تکنیکی– گرافیکی با رمز است تکنولوژی انیمیشن کامپیوتر، خودکار بودن تولید گرافیک ، جمع بندی گرافیک ها با تکنولوژی ثبت صوتی وکاربرد ریاضی است. می توان گفت که مهندسی صوتی تصویری لازم است.
همبست های کاربر یا متن خواندنی می تواند از کپی رایت تخصصی و نوشته تکنیکی ارتقاء یابد.
رمز باید برای برنامه ریزان خوشایند باشد . نام متغیر یا نام طبقه یک سوال هنری است.
عملکرد :
عمل نرم افزار نوشتاری مستلزم این است که توسعه گران انرژی یافتن پاسخ ها به خود را از کیبرد بیابند. خلق نرم افزار عملکردی است که شبیه آنچه است که ورزشکاران در زمین انجام می دهند. هنرمندان و موسیقی دانان روی صحنه برخی معتقدند که SE برای خلق رمز نیاز به تهیج دارد. گاهی اوقات یک جرقه خلاق برای خلق معماری یا واحد رمز برای حل مشکل خاصی مورد نیاز است .دیگران معتقدند که قاعده یک نسبت کلیدی است ،برنامه ریزی مزدوج تاکید بر این نقطه نظر دارد. برخی براین تاکید دارند.
شاخه ای ازکدام زمینه ؟
آیاSE شاخه ای از برنامه ریزی است یک شاخه از علم کامپیوتر یک شاخه از مهندسی رسمی یا زمینه ای که خودش است. در این مورد بحث زیادی شده است و مفاهیم خاصی دارد جواز آن یک مبحث قطب بندی است به برخی از آن دفاع می کنند وبرخی مخالفند.

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

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

شاخه مهندسی :
برخی از متصدیان ومحصلین SE از قاعده SE بعنوان مهندسی دفاع کردهاند و معتقدند که عمل مهندسی شامل استفاده از ریاضی ، علم وتکنولوژی روز می باشد برای هدفمند بودن،SE مدل مهندسی مجاز و تخصصی را برمی گزینند.

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


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-18-2017, 09:20 AM
ارسال: #6
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
تخصص مهندسی نرم افزار :
از سال 2004 انجمن آمار کار آمریکا 760840 مهندس نرم افزار را که در این شغل در آمریکا بودند را شناسایی کرد . در مقایسه 4/1 میلیون متصدی در زمینه مهندسی ترکیبی دارد . حدود 5/1 میلیون متصدی در اروپا ، آسیا و جای دیگر وجود دارد . پیش آهنگان SE شامل یری پوهم و فردیروکز ، CAR هوار و دیوید پارناس می باشند ، بحث SE کیفی بودن فرد و کسانی که استاندارد را تنظیم می کنند می باشد .
بحث در مورد اینکه چه کسی مهندس نرم افزار است ؟
عنوان مهندس کامپیوتر ( نرم افزار ) از اواخر 1990 به وجود آمد که مهندسی نرم افزار انجام می دهد ، مع هذا مدرک لیسانس مهندسی نرم افزار در دانشگاه ها معروف است ، برخی معتقدند که معیاری برای تشخیص مهندسی نرم افزار و غیر از آن وجود ندارد . بعلاوه این صنعت در جوار مهندسین نرم افزار پیچیده است . که آیا این شغل یک هنر خلاق یا علم تکراری است در اصل سیستم موجود بررسی کار مهندسی نرم افزار از لحاظ قانونی مهندسی است که بدلایل قانونی کیفیت کاری دارد .

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

آموزش :
افراد با پشتوانه های متفاوت آموزش سهم مهمی در SE دارند ، امروزه مهندسین نرم افزار می توانند مدرک مهندسین نرم افزار ، کامپیوتر و علم کامپیوتر کسب کنند .

مدارک نرم افزار :
حدود نیمی از متصدیان امروزه مدارک علم کامپیوتر دارند ، عده ای از آنها مدرک مهندسی نرم افزار دارند ، در 1996 انجمن روجستر تکنولوژی اولین مدرک BSSE در ایالات متحده را تثبیت کردند و تثبیت ABE1 را در 2003 داشتند . از آن به بعد مدرک فارغ التحصیلی مهندسین نرم افزار در دانشگاه های زیادی تاسیس شد یک برنامه تحصیلی بین المللی برای فارغ التحصیلی مهندسین نرم افزار بوسیله CCSE اخیراً تعریف شده است از سال 2004 در آمریکا 50 دانشگاه دارایی این رشته بودند که هم علم کامپیوتر و هم اصول و اعمال مهندسی را تعلیم می دهند . اولین مدرک مهندسی کامپیوتر در دانشگاه ستیل در سال 1979 اخذ شده از آن به بعد مدرک مهندسی کامپیوتر در بسیاری از دانشگاه ها مرسوم شد .

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



اشتغال :
بیشتر مهندسین نرم افزار شاغل یا قراردادی هستند . مهندسین نرم افزار با تجار عوامل دولتی و سازمان های غیر انتفاعی کار می کنند برخی نیز کار آزاد دارند ، برخی سازمانها متخصصین برای انجام فرآیند توسعه نرم افزار دارند . و برخی دیگر از مهندسین نرم افزار می خواهند که کارهایی برای آنها انجام دهند . در پروژه های بزرگ ، افراد نقش های بسیاری را دارند مثل : تحلیلگران ، معماران و غیره و در دانشگاه ها بعنوان محقق و استاد هستند .
بحث درباره چشم انداز شغلی مهندسین نرم افزار و دیگر مخصصین وجود دارد . بعنوان مثال یک بازار آتی آن لاین در آمریکا سعی دارد که پاسخ دهد که آیا شغل های IT بیشتری منجمله مهندسی نرم افزار در سال 2012 نسبت به 2002 وجود خواهد داشت یا نه .

تاییدیه :
تایید به مهندسین نرم افزار بحث داغی است . برخی آن را ابزاری برای بهبود تخصص می دانند و دیگران آن را زیاد موثر نمی دانند بیشتر برنامه های تاییدیه در صنعت نرم افزار در جهت تکنولوژی های خاصی است و برای انجمن هایی است که افرادی که از این تکنولوژی تا استفاده می کنند بکار می رود . تادییه کلی متصدیان نرم افزار مورد بحث است .
ACM یک برنامه تاییدیه تخصصی در اوایل دهه 1980 دارد اما فقط 500 نفر در امتحان مارس 2005 قبول شده اند . در کانادا استفاده از عنوان مهندسی نرم افزار قانونمند شده است و تایید سیستم های اطلاعاتی بکار می رود .
برای مکان هایی که جواز یا تایید به مهندسین نرم افزار ندارند برخی طبقه بندی هایی بر اساس آموزش و تجربه انجام می دهند سطوح طبقه بندی شامل سطح ورودی ، سطح متوسطه و ارشد می شود . مهندسین نرم افزار سطح ورودی مدرک لیسانس دارند و صفر تا 5 سال تجربه دارند . مهندسین نرم افزار سطح متوسط مدرک فوق لیسانس دارند و 5 تا 10 سال تجربه دارند و سطح دکترای آن ده تا بیشتر سال تجربه دارد . توجه داشته باشید که فقط راهکارهایی که در اعمال استخدام وجود دارد بیان شد و استثنا ئاتی نیز وجود دارد .

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

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

سابقه :
مهندسی نرم افزار سابقه تکاملی طولانی دارد . هر دو ابزاری که بکار می رود و کاربردهایی که نوشته می شنوند در طول زمان تکامل یافته اند و محتمل است که مهندسی نرم افزار در چند دهه آتی به رشد خود ادامه دهد .


60 سال خط زمانی :
• دهه 1940 اولین کاربران کامپیوتر کد کامپیوتر را دستی نوشتند .
• دهه 1950 به اولین ابزار مثل جمع کننده های مکان و تفسیر کنندگان ایجاد شدند ومورد استفاده زیادتر قرار گرفتند . اولین اصل جمع آوری کنندگان را به حد مطلوب رساندند .
• دهه 1960 ، ابزار نسل دوم مثل جمع کننده ها و بازدید کننده های مطلوب برای ارتقاء کمی و کیفی به کار رفتند ، مفهوم مهندسی نرم افزار مورد بحث فراوانی قرار گرفت اولین پروژه بزرگ ایجاد شده قالب های تجاری و نرم افزار مرسوم برای تجارت بزرگ وجود داشتند ، کنفرانس موثر NATO 1968 در مورد نرم افزار کامپیوتر برگزار شد .
• دهه 1980 کامپیوترهای شخصی و ایستگاه های کاری شخصی عمومیت یافت .

ارتقاء عمومی نرم افزار کامپیوتر :
• دهه1990 برنامه ریزی هدفمند و پردازشگرهایی شبیه پذیرش جریان اصلی حصول برنامه ریزی فوق العاده . www و کامپیوترهای دستی نرم افزار را حتی قابل قبول تر نمود .
• دهه 2000 کد اداری و پلت فرم های تفسیری را از قبیل NET ، PHP ، پیتون و جاوا نرم افزار نوشتاری را ساده تر از همیشه کردند .


روند های کنونی در مهندسی نرم افزار :
مهندسی نرم افزار یک قاعده جوان است و هنوز در حال توسعه است .
هدایت هایی که در آن نرم افزار مهندسی توسعه می یابد شامل موارد زیر است :

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

AGILE :
توسعه نرم افزار اجایل پروژه های توسعه نرم افزار را هدایت می کند که سریعاً با تغییر انتظارات و بازارهای رقابتی تکامل می یابند ، معترضین توسعه نرم افزار agile معتقدند که پردازش های اسناد سنگین اهمیت خود را بوسیله این پردازشگرهای سنگین انتقال می دهند . مفاهیم مرتبط شامل برنامه ریزی فوق العاده و توسعه نرم افزار طریف می شود .
آزمایش :
مهندسی نرم افزار آزمایش شاخه ای از مهندسی نرم افزار است که علاقمند به آزمایشاتی در این زمینه هستند در جمع آوری اطلاعات از این آزمایشها و در طراحی قوانین و تئوریها از این اطلاعات معترضین نرم افزار آزمایشی می گویند که ویژگی این نرم افزار طوری است که می توانیم دانش نرم افزار را از طریق آزمایش فقط توسعه دهیم .

خطوط محصول نرم افزار :
خطوط محصول نرم افزار یک روش سیستماتیک تولید خانواده های سیستم نرم افزار است بجای خلق یک سلسله محصولات فردیتکمیل شده .
راهکار خطوط تولید نرم افزار سعی در صنعتی نمودن فرآیند توسعه نرم افزار است . کنفرانس آینده مهندسی نرم افزار ( Fose ) در ICSE 2000 برگزار شد و وضعیت هنر SE را ثبت کرد و مسایل بسیاری را برای حل در چند دهه دیگر عنوان نمود . پروژه فیربند سعی در کشف آینده نرم افزار بوسیله جستجو و انتشار ایده های متکبرانه دارد .
مهندسی نرم افزار امروزه در سال 2006 مجله و www . Salary . com مهندسی نرم افزار را بعنوان بهترین شغل در آمریکا بر حسب رشد ، پرداخت ، سطح دسترسی و انعطاف پذیری در ساعات و محیط کار ، خلاقیت و آن روبرو را ورود و پیشرفت دو این زمینه مطرح نمود .


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-18-2017, 09:24 AM
ارسال: #7
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
Document Flow Diagram



اين نمودار ارتباط بين موجوديتهاي خارجي و سيستم مكانيزه فروشگاه زنجيره اي را نمايش مي دهد.





موجوديت خارجي منبع/مقصد جريان داده
مشتري مقصد
منبع فاكتور فروش
بهاي فاكتور
شركتهاي
طرف قرارداد منبع
مقصد
منبع
مقصد پيش فاكتور
سفارش خريد
فاكتور فروش
بهاي فاكتور
حسابداري مقصد
مقصد
مقصد حواله انبار
رسيد انبار
بهاي فاكتور

Context Diagram
دانلود فایل DOC در لینک زیر:
http://forum.a00b.com/upload/Uploads/636...am_DFD.doc


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-18-2017, 09:27 AM
ارسال: #8
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
نمونه نمودار DFD سطح 0 و سطح 1 و سطح 2 و سطح 3
نمودار جریان داده ها Data Flow Diagram دانلود در لینک زیر:

http://forum.a00b.com/upload/Uploads/636..._Pages.doc



==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-18-2017, 09:33 AM
ارسال: #9
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
با توجه به نیاز روز افزون به استفاده از کامپیوتر و ضرورت توسعه و فراگیری علوم و فنون مربوط به آن به ویژه در زمینه مهندسی نرم افزار و با توجه به فقدان مطالب و منابع در این زمینه، بر آن شدیم تا گامی هرچند کوچک اما سازنده در این زمینه برداریم. مطالبی که پیش روی دارید حاصل تحقیقات مطالعات و گردآوری نکات مهم و اساسی در زمینه توسعه مهندسی نرم افزار به روش RUP می باشد. امید است که حاصل تلاش مان موثر و مفید واقع شود.

فصل اول
مهندسی نرم افزار وروش های آن
1-1 مهندسی نرم افزار چیست ؟
مهندسی نرم افزار، مدیریت برای به نظم درآوردن وقاعده مند نمودن وابستگی ها وارتباطات همه جنبه های محصول نرم افزاری که درتمامی مراحل سیستم شنا سایی وتعیین می گردد ، می باشد .
درواقع مهندسی نرم افزارفرایند تولید نرم افزار براساس فهم مسائل ومشکلات ، دستیابی به راه حل ها ودستیابی به تئوریها ، روش ها وابزارهای مورد نیاز ودرانتها رسیدن به هدف مطلوب می باشد .
مهندسی نرم افزارباید درطول ساخت ، نگهداری توسعه وانفصال یک نرم افزار برهمه عملکردها نظارت داشته باشد .
2-1 ساخت یافتگی ومهندسی نرم افزارساخت یافته
در رهیافت طراحی نرم افزار بر اساس روش ساحت یافته، ابتدا به مسئله در حالت کلی نگاه می شود، آنگاه مسئله به قسمت های کوچکتر شکسته می شود، این کار آنقدر تکرار می گردد تا مسائل خرد شده به اندازه کافی قابل فهم و ساده باشند. این مراحل به تجزیه عملیاتی معروف است. بیشتر اجزاء (توابع) در این روش نیاز به داده ها دارند که در سیستم عملیات در بانک های اطلاعاتی نگهداری می شوند. در واقع در این روش داده ها و توابع عملیاتی از هم تفکیک می گردند. پس از حل مسائل کوچکتر و ترکیب آنها با هم، مسئله اصلی قال حل خواهد بود.
مشکل اساسی در این رهیافت این است که اگر مسائل پیچیده باشد، سیستم در نگهداری اطلاعات با مشکل مواجه می شود. اگر در این سیستم ها نیاز باشد که تغییری صورت گیرد، این تغییر در مکان های زیادی باید اعمال گردد. در این صورت مشکلات تقریباً بزرگی به وجود می آید.
مهندسی نرم افزار ساخت یافته نیز بر اصول ذکر شده فوق مبتنی است. از جمله متدلوژی های مهندسی نرم افزار می توان به دو روش
( (structured Systems Analysis & Design Method SSADM روش تحلیل و طراحی سیستم های ساخت یافته و (Jackson System Development) JSD توسعه سیستم جکسون، اشاره نمود.
3-1 شی ء گرایی و مهندسی نرم افزار شیء گرا
از دید شیء گرایی داده ها و توابع به هم مرتبط هستند و در یک ماژول قرار می گیرند. در واقع هریک از این ماژول ها که مجموعه داده ها و توابع هستند که شیء نامیده می شوند. اشیاء در دنیای واقعی نیز می توانند به وسیله دو چیز مشخص گردند (مشخصه و رفتار).
اصول بنیادی که در شیء گرایی با آن مواجه هستیم، اشیاء، کلاس ها و وراثت می باشند. ایده شیء گرایی نیز به دنیای مهندسی نرم افزار راه یافته است و بر این اساس روش های مختلف مهندسی نرم افزار به وجود آمده است. که از آن جمله می توان به موارد ذیل اشاره نمود :
- (object Modeling Technique) OMT
- (Real – time Object – Oriented Modeling ) ROOM
-Object – Oriented Software Engineering ) OOSE)
-(Unified Modeling Language) UML
بدلیل آنکه از UML در مراحل توسعه نرم افزار (RUP) استفاده می گردد، در این قسمت جا دارد که در مورد UML توضیحات بیشتری بدهیم.
4-1 معرفی Unified Modeling Language
در میانه دهه نود، سه روش وجود داشت که از بقیه قویتر به نظر می رسید. این سه زبان که شروع به همگرایی کرده بودند، هریک دارای عناصری از دو روش دیگر نیز بود و دارای توانایی های منحصر بفردی نیز بودند :
- Booch برای طراحی و پیاده سازی عالی به نظر می رسید. گرچه روش بوچ خیلی قوی بود ولی علائم زبان به سختی درک می شد.
- OMT (تکنیک مدل سازی اشیاء) برای تجزیه و تحلیل بسیار عالی بود و بهترین روش برای سیستم های اطلاعاتی دارای داده های حساس به نظر می رسید.
- OOSE (مهندسی نرم افزار به روش شیء گرا) به عنوان یک مزیت به مدل Use Case معروف است. Use Case تکنیک توانمندی برای درک رفتار کل سیستم هستند. (محدوده ای که شیء گرایی به طور سنتی در آن ضعیف بود)
در سال 1994 Gim Rumbaugh تاسیس کننده OMT و در سال 1995 Ivar Jacobson بنیانگذار OOSE هم به گروه Booch در شرکت Rational پیوست. بدین ترتیب گروه سه نفر بوچ ، رامبو و جاکوبسن مدل یکپارچه UML را به وجود آوردند.
UML یک زبان استاندارد برای مدل سازی اشیاء در توسعه سیستم های شی ء گرا می باشد. UML از ترکیب و اتحاد سه متدلوژی و طراحی شیء گرای فوق به وجود آمده است.
هدف اصلی UML ایجاد یک زبان مشترک برای مهندسان و تولیدکنندگان نرم افزار در تحلیل و طراحی سیستم های شیء گراست.
5-1 تصورات غلط در رابطه با Rational Unified Process
علی رغم آنکه اغلب افراد تصور می کنند RUP یک متدلوژی و یا روش مهندسی نرم افزار است، باید اظهار داشت که این تصور و برداشت کاملاً نادرست می باشد.
RUP خود یک مدل از مهندسی نرم افزار است که بر تکرار و توسعه استوار است و هریک از متدها می تواند در قالب این مدل تکرار و توسعه نقش بگیرد. چنانچه قبلاً اظهار شد UML به عنوان زبان یکپارچه ساز و روشی شی ء گرا در مدل RUP استفاده می گردد. در واقع RUP استفاده می گردد. در واقع RUP رویکردها، وظایف و مسئولیت ها را در یک سازمان توسعه یافته نظام دهی می کند و هدف آن تضمین تولید محصول نرم افزاری خروجی با کیفیت بالا و منطبق بر نیازمندی های کاربران در زمان و هزینه پیش بینی شده می باشد. در واقع RUP پروسه تولید است و توسط شرکت نرم افزاری Rational پشتیبانی می گردد.

فصل دوم

مقدمه ای بر Rational Unified Process(RUP)
1-2- RUP چیست؟
با پرسیدن این سوال، بنابر اینکه چه کسی و در چه موقعیتی می باشد، پاسخ های متفاوتی خواهید شنید. RUP دارای سه مشخصه بارز می باشد، که عبارتند از :
• RUP عاملی است برای توسعه نرم افزار که دارای تکرار معماری و Use case می باشد و بهترین منبع در ارتباط با RUP خود نرم افزار Rational Rose می باشد که شامل راهنما، مثال و ... می باشد.
• RUP یک فرآیند مهندسی نرم افزار خوش ساختار و خوش تعریف می باشد. و به وضوح معین می کند که چه کسی مسئول چه کاری می باشد و چگونه و در چه زمانی مسئولیت خود را باید انجام دهد به کمک RUP مراحل مهم پروژه و نکات اصلی به سرعت شناخته می شود.
• RUP یک فرآیند تولید است که به شما امکان تغییرات دلخواه و منطقی را می دهد. RUP شامل فرآیندهای گوناگونی است و با تنظیمات RUP می توان تیم های بزرگ و یا کوچک را توسعه داد. RUP افراد ذیل را در انجام پروژه ها یاری می کند :
الف) تحلیل گران Analysts
ب) توسعه دهندگان Developer
پ) تست کنندگان Testers
ت) مدیران پروژه و اعضای دیگر تیم project Managers
2-2 اصول ضروری Rational Unified Process
• بر مشکلات غلبه کنید و در غیر این صورت آنها بر شما غلبه خواهند کرد.
• مطمئن شوید که شما ارزش ها را به مشتریان می فهمانید.
• به نرم افزارهای اجرایی توجه کنید.
• تغییرات را با پروژه وفق دهید.
• یک معماری ثابت بنا کنید.
• پروژه را به اجزای مختلف ( Componets) تبدیل کنید.
• همه با هم یک تیم را تشکیل دهید.
• کیفیت را برای همیشه بخواهید و نه برای یک لحظه
3-2 RUP و چرخه تکرار
امروزه تیم های نرم افزاری نیز وجود دارند که از روش آبشاری (waterfall) استفاده می کنند، بدین معنا که در هر مرحله ترکیبی از نیازمندی ها را تشخیص می دهند، سپس آن ها را تجزیه و تحلیل ، طراحی و بعد پیاده سازی و در نهایت آزمایش می کنند و یا از روش رایج تر که همان روش آبشاری است ولی با بازخورد (feedback) استفاده می کنند. در این روش ممکن است با کناره گیری یک عضو از تیم خسارت هایی به سیستم وارد شود.
برخلاف سیستم های فوق، RUP از روش تکرار ( Iterative) استفاده می کند، که به معنای یکسری گام ها برای رسیدن به هدف می باشد و هر تکرار ) Iteration ) شامل اصول توسعه (نیازمندی Requirements ، تحلیل Analysis طراحی Design پیاده سازی Implementation و ...) می باشد در تصویر زیر این مفاهیم را مشاهده می کنید :



هر Iteration بر اساس عملکرد Iteration قبلی عمل می کند و لذا در هر مرحله و با جلو رفتن، پروژه اصلاح می شود، تا آنکه نسخه نهاییت سیستم ارائه شود.
Iteration های اولیه بیشتر تأکید بر روی نیازمندی ها (Requirements) ، تحلیل (Analysis) و طراحی Design) ) دارند و Iteration های بعدی اصرار بیشتری بر روی پیاده سازی Implementation)) و آزمایش Testing) ) دارند.
با توجه به مطالب ذکر شده این سئوال به وجود می آید که به چه علت روش Iterative بهتر از Waterfall است؟ بعضی از این علت ها عبارتند از :
- تطبیق تغییرات با نیازمندی ها
تغییرات و معایب موجود در تکنولوژی روز از منابع اصلی مشکلات پروژه می باشد که باعث می شود بجای آن که به تیم و اجرایی بودن نرم افزار توجه شود، در طی گذشت چند هفته به این معایب توجه گردد.
- ایجاد اتحاد و یکپارچگی در ابتدای پروژه نه در لحظات آخر
بدون توجه به نتیجه های بدست آمده از تلاش هر گروه، در لحظات آخر هر پروژه زمان زیادی تا حدود 40 درصد تلف می شود تا آن یکپارچگی لازم اتخاذ شود. برای اجتناب از این موضوع می بایستی Iteration ها را به قسمت های کوچکتر تقسیم کرد و نتایج را گام به گام به یکدیگر متصل نمود.
- مشکلات معمولاً کشف می شوند.
بعد از آن که پروژه را به Iteration های کوچکتر تقسیم گردید، لذا با توجه به داشتن افراد در هر قسمت به سرعت می توانید مشکلات را در همان اوایل کشف نمایید.
مدیریت به معنای ایجاد تغییرات تاکتیکی در محصول است
بعد از انجام هر Iteration به سرعت شما می توانید یک معماری قابل اجرا را پیاده سازی کنید نسخه های اولیه سریعاً تهیه و قابل اجرا خواهند بود.
تیم فرصت پیشرفت دارد
اعضای پروژه فرصت های فراوانی دارند تا بتوانند از اشتباهات خود عبرت بگیرند و به مهارت های خود بیافزایند.
RUP یک فرآیند مهندسی نرم افزاری است
در طراحی خود RUP از تکنیک های طراحی نرم افزار استفاده شده است. به ویژه توسط فرآیند مهندسی متا مدل نرم افزاری برای تهیه آن، استفاده شده است و کاملاً بر پایه UML است.
Software Process Engineering Metamodel (SPEM)
Unified Modeling language (UML)

4-2 فازها، اهداف و نکات اصلی
فاز شروع (Inception)
اهداف :
الف ) شناخت حوضه و قلمرو پروژه
ب) ساخت حالت تجاری (Business Cases)
- فاز شناخت (Elaboration)
اهداف :
الف) کاهش خطرات تکنیکی
ب) ساخت معماری پایه سیستم
پ) فهم نحوه ساخت سیستم
نکته اصلی : مهماری پروژه LCA ( Lifecycle Architecture Milestone)
فاز ساخت ( (Construction
هدف :
الف) ساخت اولین نسخه عملیاتی
فاز انتقال (Transition)
هدف :
الف) ساخت نسخه نهایی و انتقال به مشتریان
5-2 نکات اصلی
ساختار ایستایی RUP
ساختار ایستا در نحوه کنار یکدیگر قرار گرفتن منطقی فعالیت ها (Activity) ، اصول Disciplines)) ، محصولات(Artifacts) و نقش ها Roles) ( دخالت دارد. در واقع در این پروسه معین می شود که ، چه کسی، چه کاری را چگونه و در چه زمانی انجام می دهد. در RUP از چهار عنصر مدل سازی استفاده می شود.

دانلود فایل اصلی به همراه نمودار و شکل و توضیحات کامل در قالب فایل Word Doc در لینک زیر:

http://forum.a00b.com/upload/Uploads/636...ML_RUP.doc



==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-18-2017, 09:40 AM
ارسال: #10
RE: مهندسی نرم افزار و تجزیه و تحلیل سیستمها
ویژگیهای نرم افزار
برای درک مفهوم نرم افزار (و سرانجام درکی از مهندسی نرم افزار)، بررسی آن دسته از ویژگیهای نرم افزار که آن را از دیگر چیزهای ساخته دست بشر متمایز می سازد، اهمیت دارد. هنگامی که سخت افزاری ساخته می شود، فرآیند آفرینش بشری (تحلیل، طراحی، ساخت، آزمون)، سرانجام به یک شکل فیزیکی منتهی می شود. اگر یک کامپیوتر جدید می سازیم، طرحهای اولیه، ترسیمات طراحی رسمی و نمونه های اولیه به یک محصول فیزیکی (تراشه ها، مدارها، منبع تعذیه و غیره) تکامل می یابند.
نرم افزار یک عنصر سیستمی منطقی است نه فیزیکی. از این رو، نرم افزار دارای ویژگیهایی است که تفاوت چشمگیری با ویژگیهای سخت افزار دارند.
1. نرم افزار، مهندسی و بسط داده می شود و چیزی نیست که به معنای کلاسیک کلمه، ساخته شود.
گرچه شباهتهایی میان بسط نرم افزار و ساخت سخت افزار وجود دارد، این دو عمل تفاوت بنیادی دارند. در هر دو عمل، کیفیت بالا از طریق طراحی خوب به دست می آید، ولی فاز ساخت برای سخت افزار باعث بروز مشکلات کیفیتی می شود که برای نرم افزار وجود ندارند (یا به راحتی قابل رفع هستند). هر دو عمل وابسته به انسان هستند، ولی رابطه میان انسان و کاری که انجام می شود، کاملاً متفاوت است (فصل 7). هر د. عمل مستلزم ساخت یک ((محصول)) هستند ولی روشها متفاوت است.
هزینه های نرم افزار در مهندسی آن متمرکز است. این بدان معناست که پروژه های نرم افزاری را نمی توان همانند پروژه های تولید معمولی مدیریت کرد.
2. نرم افزار فرسوده نمی شود.
شکل 1-1 نمودار آهنگ شکست را به صورت تابعی از زمان برای سخت افزار نشان می دهد. این رابطه که غالباً ((منحنی وانی)) نامیده می شود، نشان می دهد که سخت افزار، آهنگ شکست نسبتاً شدیدی در ابتدای عمر خود نشان می دهد (این شکستها را غالباً می توان به عیوب طراحی و تولید نسبت داد)؛ این عیوب تصحیح می شوند و آهنگ شکست برای یک دورۀ زمانی به حدی ثابت نزول می کند (که امید می رود، بسیار پایین باشد). با گذشت زمان، سخت افزار شروع به فرسایش کرده دوباره آهنگ شکست شدت می گیرد.
نرم افزار نسبت به ناملایمات محیطی که باعث فرسایش نرم افزار می شود، نفوذپذیر نیست. بنابراین، در تئوری، منحنی شکست برای نرم افزار باید شکل منحنی ایده آل شکل 2-1 را به خود بگیرد. عیوب کشف نشده باعث آهنگ شکست شدید، در ابتدای عمر برنامه می شود. ولی، این عیوب برطرف می شوند (با این امید که خطاهای دیگر وارد نشود) و منحنی به صورتی که نشان داده شده است، هموار می شود. منحنی ایده آل نسبت به منحنی واقعی مدلهای شکست نرم افزار، بسیار ساده تر است (برای اطلاعات بیشتر، فصل 8 را ببینید). ولی، معنای آن واضح است، نرم افزار هرگز دچار فرسایش نمی شود بلکه فاسد می شود!
این تناقض ظاهری را می توان با در نظر گرفتن ((منحنی واقعی)) به بهترین وجه توضیح داد (شکل 2-1). نرم افزار در دوران حیات خود دستخوش تغییر می شود (نگهداری). با اعمال این تغییرات، احتمال دارد که برخی عیوب جدید وارد شوند و باعث خیز منحنی آهنگ شکست شوند (شکل 2-1). پیش از آن که منحنی بتواند به آهنگ شکست منظم اولیه خود برسد، تغییر دیگری درخواست می شود که باعث خیز دوباره منحنی می شود. حداقل میزان شکست به آهستگی افزایش می یابد – نرم افزار در اثر تغییر فاسد می شود.
یک جنبۀ دیگر از فرسایش نیز اختلاف میان سخت افزار و نرم افزار را نشان می دهد. هنگامی که یک قطعه از سخت افزار فرسوده می شود، با یک قطعه یدکی تعویض می شود. ولی نرم افزار قطعات یدکی ندارد. هر شکست نرم افزار نشانگر خطایی در طراحی یا فرآیندی است که طراحی از طریق آن به کدهای قابل اجرا روی ماشین تبدیل می شود. از این رو، نگهداری نرم افزار به مراتب پیچیده تر از نگهداری سخت افزار است.
3. گرچه صنعت در حال حرکت به سوی مونتاژ قطعات است، اکثر نرم افزارها همچنان به صورت سفارشی ساخته می شوند.
شیوه ای را در نظر بگیرید که در آن یک سخت افزار کنترلی برای یک محصول کامپیوتری طراحی و ساخته می شود. مهندس طراح یک الگوی ساده از مدار دیجیتالی رسم می کند، قدری تحلیل بنیادی انجام می دهد تا از عملکرد صحیح اطمینان حاصل کند، و سپس به قفسۀ حاوی کاتالوگهای قطعات رجوع می کند. پس از انتخاب همۀ قطعات می تواند آنها را سفارش دهد.
به موازات تکامل یک رشته مهندسی، مجموعه ای از قطعات طراحی استاندارد ایجاد می شود. پیچ های استاندارد و مدارات مجتمع فقط دو مورد از هزاران قطعۀ استانداردی هستند که مهندسان مکانیک و برق در طراحی سیستمهای جدید به کار می برند. قطعات قابل استفاده مجدد طوری طراحی شده اند که مهندس بتواند بر عناصر واقعاً جدید یک طراحی، یعنی قطعاتی از طراحی که ارائه دهنده چیزی تازه هستند، تمرکز داشته باشد. در جهان سخت افزار، استفاده مجدد از قطعات، بخشی طبیعی از فرآیند مهندسی است. در مهندسی نرم افزار این امر به تازگی مورد توجه قرار گرفته است.
یک قطعه نرم افزاری باید چنان طراحی و پیاده سازی شود که بتوان در برنامه های متفاوت از آن بهره برد. در دهۀ 1960، کتابخانه هایی از زیرروال های علمی ساختیم که در آرایۀ گسترده ای از کاربردهای مهندسی و علمی قابل استفاده بودند. این کتابخانه ها از الگوریتم هایی معین به شیوه ای کارامد استفاده می کردند، ولی دامنه کاربرد محدودی داشتند. امروزه، ایدۀ استفاده مجدد نه تنها الگوریتم ها، بلکه ساختمان داده ها را نیز در بر می گیرد. قطعات مدرن قابل استفاده مجدد، هم داده ها و هم پردازشی را که در مورد آنه اعمال می گردد، پنهان سازی کرده مهندس نرم افزار را قادر می سازد تا از قطعات قابل استفادۀ دوباره، برنامه های کاربردی جدید بسازد. برای مثال، واسطهای کاربر گرافیکی امروزی با استفاده از قطعات قابل استفاده مجدد ساخته می شوند که ایجاد پنجره های گرافیکی، منوهای باز شونده و انواع راهکارهای محاوره را میسر می سازند.
کاربردهای نرم افزار
نرم افزار را در وضعیتی می توان به کار برد که در آن یک مجموعه مراحل از پیش تعیین شده (یعنی یک الگوریتم) تعریف شده باشد (استثنائات قابل ملاحظه در این خصوص، نرم افزارهای سیستم های خبره و نرم افزارهای شبکه عصبی اند). محتوای اطلاعاتی و قطعیت اطلاعاتی عوامل مهمی در تعیین ماهیت کاربرد یک نرم افزار هستند. منظور از محتوا، معنی و شکل اطلاعات ورودی و خروجی است. برای مثال، در بسیاری کاربردهای تجاری، از داده های ورودی بسیار ساخت یافته (یک بانک اطلاعاتی) استفاده می شود و ((گزارشهای)) فرمت شده تولید می شود. نرم افزاری که یک ماشین خودکار را کنترل می کند (مثلاً کنترل عددی) داده هایی مجزا با ساختاری محدود را می پذیرد و فرمانهایی انفرادی را به توالی برای آن ماشین تولید می کند.
قطعیت اطلاعاتی به معنای قابلیت پیش بینی ترتیب و زمان بندی اطلاعات است. یک برنامه تحلیل مهندسی، داده هایی را می پذیرد که دارای ترتیبی از پیش تعیین شده بوده الگوریتم (های) تحلیلی را بدون وقفه اجرا نموده داده های حاصل را در گزارش یا با قالب گرافیکی تولید می کند. چنین کاربردهایی دارای قطعیت هستند. ولی یک سیستم عامل چند منظوره، ورودی هایی را می پذیرد که دارای محتوای گوناگون و زمان بندی اختیاری هستند؛ الگوریتمهایی را اجرا می کند که توسط شرایط خارجی قابل وقفه اند و خروجی تولید می کند که تابعی از محیط و زمان است. کاربردهایی با این ویژگی فاقد عزم هستند.
تعیین گروههای کلی با معنی برای کاربردهای نرم افزار قدری دشوار است. با پیچیده تر شدن نرم افزار، مرزهای صریح و روشن، رنگ می بازند. زمینه های زیر را می توان به عنوان گروههای کاربردی مشخص کرد:
نرم افزارهای سیستمی.نرم افزار سیستمی مجموعه ای از برنامه هاست که برای سرویس دهی به برنامه های دیگر نوشته شده اند. برخی نرم افزارهای سیستمی (مثل کامپایلرها، ویراستارها و برنامه های کمکی مدیریت فایل) ساختارهای اطلاعاتی پیچیده ولی قطعیت دارند. برخی برنامه های سیستمی دیگر (نظیر قطعات سیستم عامل، راه اندازها، پردازنده های ارتباط راه دور) مقادیر زیادی ار داده های میانی را پردازش می کنند. در هر حال، مشخصه های حیطۀ نرم افزارهای سیستمی عبارتند از: برهمکنش سنگین با سخت افزار کامپیوتر؛ استفاده سنگین توسط چند کاربر؛ عمل کنونی که مستلزم زمانبندی است؛ مدیریت فرآیند پیچیده و اشتراک منابع؛ ساختمان داده های پیچیده و واسطهای خارجی چندگانه.
نرم افزارهای زمان حقیقی. نرم افزاری که رویدادهای جهان واقع را همانطوری که رخ می دهند، نظارت / تحلیل / کنترل می کند، نرم افزار زمان حقیقی نامیده می شود. عناصر نرم افزار زمان حقیقی عبارتند از یک قطعۀ جمع آوری کنندۀ داده ها که اطلاعات را از محیط خارجی جمع آوری و قالب بندی می کند؛ یک قطعه تحلیل کننده که اطلاعات را بنا به نیاز کاربردی انتقال می دهد؛ یک قطعه کنترل / خروجی که به محیط خارجی پاسخ می دهد و یک قطعه نظارت که همۀ قطعات دیگر را هماهنگ می کند تا پاسخ زمان حقیقی (معمولاً بین یک هزارم ثانیه تا یک ثانیه) برقرار بماند.
نرم افزارهای تجاری. پردازش اطلاعات تجاری گسترده ترین زمینۀ کاربرد نرم افزارها را تشکیل می دهد. ((سیستمهای مجرد)) (مثل لیست حقوق، حسابهای دریافت و پرداخت، موجودی انبار و غیره) به نرم افزارهای سیستم اطلاعاتی مدیریتی (MIS ) تکامل یافته اند. این نوع برنامه های کاربردی، داده های موجود را دوباره به شیوه ای سازماندهی می کند که عملیات تجاری و تصمیم گیری مدیریتی تسهیل شوند. این نرم افزارها علاوه بر کاربردهای پردازش داده ها، شامل برنامه های کامپیوتری محاوره ای (نظیر پردازش تراکنش نقطۀ فروش) نیز می شود.
نرم افزارهای مهندسی و علمی. نرم افزارهای علمی توسط الگوریتم هایی مشخص می شوند که ((ارقام و اعداد)) را پردازش می کنند. کاربردهای آن از نجوم تا بررسی آتش فشانها، از تحلیل فشار اتوموتیو تا دینامیک مدار شاتلهای فضایی و از زیست شناسی مولکولی تا مکانیزاسیون صنعتی را در بر می گیرد. ولی، کاربردهای نوین در حیطۀ مهندسی و علمی از الگوریتم های عددی مرسوم فراتر رفته اند. طراحی به کمک کامپیوتر، شبیه سازی سیستم ها، و برنامه های کاربردی محاوره ای دیگر، رفته رفته خصوصیات نرم افزارهای زمان حقیقی و نرم افزارهای سیستمی را به خود می گیرند.
نرم افزارهای تعبیه شده. محصولات هوشمند تقریباً در هر بازار صنعتی و مصرفی جای خود را باز کرده اند. نرم افزار تعبیه شده در حافظۀ فقط خواندنی جای دارد و برای کنترل محصولات و سیستمهای مربوط به بازارهای صنعتی و مصرفی به کار می رود. نرم افزار تعبیه شده قادر به انجام اعمال بسیار محدود و اختصاصی (از قبیل کنترل صفحه کلید برای فرهای مایکروویو) بوده یا وظایف مهم و قابلیت کنترل (مانند عملیات دیجیتال در خودروها از قبیل کنترل سوخت، صفحه نمایش داشبورد، سیستم ترمز و غیره) را بر عهده دارد.
نرم افزارهای کامپیوترهای شخصی. بازار نرم افزارهای کامپیوتری شخصی طی دو دهۀ اخیر به سرعت رشد یافته است. واژه پردازی، صفحات گسترده، گرافیک کامپیوتری، چند رسانه ای، سرگرمی، مدیریت بانکهای اطلاعاتی، برنامه های کاربردی مالی شخصی و تجاری، شبکه خارجی یا دستیابی به بانکهای اطلاعاتی فقط چند مورد از صدها کاربرد در این حیطه است.
نرم افزارهای مبتنی بر وب. صفحات وبی که توسط یک مرورگر بازیابی می شوند، نرم افزارهایی هستند که دستورات اجرایی (مثل CGI، HTML، Perl یا جاوا) و داده هایی (مثل فوق متن و انواع فرمتهای تصویری و صوتی) را به هم مرتبط می سازند. در اصل، شبکه به یک کامپیوتر عظیم تبدیل می شود که یک منبع نرم افزاری تقریباً نامحدود فراهم می آورد؛ منبعی که هر کس با داشتن مودم قادر به دستیابی به آن است.
نرم افزارهای هوش مصنوعی. نرم افزارهای هوش مصنوعی (AI ) از الگریتم های غیر عددی برای حل مسائل پیچیده ای که به روشهای عددی قابل حل نیستند، استفاده می کنند. سیستم های خبره، که سیستم های مبتنی بر آگاهی نیز نامیده می شوند؛ تشخیص الگوها (تصویری و صوتی)؛ شبکه های عصبی مصنوعی؛ اثبات قضایا و بازی، همگی مثالهایی از کاربرد این گروه هستند.
دامنه کاربرد نرم افزار
نخستین فعالیت در برنامه ریزی پروژه، تعیین دامنه کاربرد نرم افزار است. عملکرد و کارآیی که نرم افزار طی مهندسی سیستم (فصل 10) به نرم افزار تخصیص داده شد، باید مورد ارزیابی قرار گیرد تا دامنه کاربرد نرم افزار به صورتی نامبهم و قابل درک در سطوح مدیریتی و فنی مشخص گردد. در بیان دانه کاربرد، حد و مرز باید مشخص باشد.
دامنه کاربرد نرم افزار داده ها و کنترلی که باید پردازش شود، عملکرد، کارآیی، شرایط حد، واسطها و قابلیت اطمینان را توصیف می کند. عملیات توصیف شده در بیان دامنه کاربرد مورد ارزیابی قرار گرفته در برخی موارد تجدید نظر می شوند تا پیش از شروع برآورد، جزئیات بیشتری فراهم آید. چون برآوردهای هزینه و زمانبندی، مبتنی بر عملیات هستند، غالباً قدری تجزیه، مفید واقع می شود. ملاحظات کارآیی شامل خواسته های پردازشی و زمان پاسخ می شوند. شرایط حدی، محدودیتهای حاکم بر نرم افزار را که از سخت افزار خارجی، حافظۀ در دسترس و سیستمهای موجود دیگر ناشی می شوند، مشخص می کنند.
به دست آوردن اطلاعات لازم برای دامنه کاربرد
همواره در آغاز یک پروژه نرم افزاری، امور قدری درهم و برهم هستند. نیازی تعیین شده اهداف اصلی بیان شده اند، ولی اطلاعات لازم برای تعیین دامنه کاربرد (که از پیش نیازهای برآورده است) هنوز تعیین نشده است.
پرکاربردترین تکنیک برای پر کردن شکاف ارتباط میان مشتری و سازنده و شروع فرآیند ارتباطی، برگزاری یک نشست یا مصاحبه مقدماتی است. نخستین نشست میان مهندس نرم افزار (تحلیلگر) و مشتری را می توان به نخستین جلسه خواستگاری تشبیه کرد. هیچ کدام از طرفین نمی دانند چه بگویند یا چه بپرسند: هر دو نگران هستند که چیزی بگویند و از آن تعبیر بدی شود؛ هر دو در این اندیشه اند که این دیدار به کجا خواهد انجامید (احتمالاً هر دو دارای انتظاراتی هستند که تفاوت اساسی با هم دارند)؛ هر دو می خواهند کارها به خوبی پایان بپذیرد و در عین حال موفق باشند.
به هر حال، این ارتباط باید آغاز شود. گاوز و واینبرگ [GAU89] پیشنهاد می کنند که تحلیلگر با پرسیدن سئوالات مستقل از مسئله شروع کند. یعنی یک مجموعه سئوالاتی که منجر به درک بنیادی مسئله، افراد خواهان حل مسئله، ماهیت حل موردنظر، و میزان تأثیر نخستین برخورد شود.
نخستین مجموعه از سئوالات مستقل از مسئله، برمشتری، اهداف کلی، و محاسن تأکید دارد. برای مثال، تحلیلگر ممکن است بپرسد:
• چه کسی پشت تقاضای این کار قرار دارد؟
• چه کسی از حل این مسئله استفاده می کند؟
• حسن اقتصادی یک حل موفق چیست؟
• آیا منبع دیگری برای حل وجود دارد؟
مجموعه سئوالات بعدی، تحلیلگر را قادر می سازند تا مسئله و مشتری را بهتر درک کرده راجع به یک راه حل، پرسشهایی را بپرسد:
• شما (مشتری) چگونه خروجی ((خوبی)) را که توسط یک حل موفق ایجاد می شود، دسته بندی می کنید؟
• این راه حل برای چه مسئله (هایی) مناسب است؟
• آیا می توانید محیطی را که این راه حل در آن استفاده خواهد شد، به من نشان دهید (یا توصیف کنید)؟
• آیا شرایط حدی یا مشکلات کاری خاصی وجود دارد که شیوه رسیدن به حل مسئله را تحت تأثیر قرار دهد؟
آخرین مجموعه سئوالات بر میزان کارآمدی نشست تأکید دارد. گاوز و واینبرگ آنها را شبه سئوال می نامند و لیست (کوتاه شده) زیر را پیشنهاد می کنند:
• آیا شما شخص مناسب برای پاسخ دادن به این سئوالات هستید؟ آیا پاسخها ((رسمی)) هستند؟
• آیا سئوالاتی که می پرسیم با مسئله شما ارتباط دارد؟
• آیا زیاد سئوال می کنم؟
• آیا کس دیگری هم هست که اطلاعات بیشتری بدهد؟
• آیا مورد دیگری هست که از شما بپرسم؟
این سئوالات (و سئوالات دیگر) به شروع کار کمک کرده ارتباطی را که برای تعیین دامنۀ کاربرد پروژه ضروری است، آغاز می کند. ولی قالب پرسش و پاسخ، روشی کاملاً موفق نیست. در واقع جلسه پرسش و پاسخ را فقط برای برخورد اول باید به کار برد و سپس شیوه ای را جایگزین آن کرد که عناصر حل مسئله، بحث و مشخصات درهم آمیزد.
مشتریان و مهندسان نرم افزار غالباً به طور ناخودآگاه با یکدیگر احساس غربت دارند. به جای آنکه به صورت تیمی به تشخیص و پالایش خواسته ها بپردازند، هر طرف به تعیین قلمرو خود پرداخته از طریق یک سری یادداشتها، نامه های رسمی، مستندات و جلسات پرسش و پاسخ با یکدیگر ارتباط برقرار می کنند. تاریخ نشان داده است که این روش، نتایج ضعیفی در پی داشته است. سوء تفاهمهایی پیش می آید، اطلاعات مهمی از قلم می افتد و هرگز رابطه کاری موفقی برقرار نمی شود.
عده ای از پژوهشگران مستقل، با عنایت به همین مشکلات، یک روش مبتنی بر تیم برای جمع آوری خواسته ها ابداع کرده اند که می توان آن را برای تعیین دامنه کاربرد پروژه به کار برد. در این روش، که به تکنیکهای تعیین مشخصات کاربرد (FAST) موسوم است، ایجاد یک تیم همکاری از مشتریان و سازندگان توصیه می شود که با همکاری یکدیگر، به تعیین مسئله پرداخته، عناصری از راه حل را پیشنهاد می کنند، روشهای متفاوت را به بحث می گذارند و مجموعه ای از خواسته های مقدماتی را مشخص می کنند.
امکان سنجی
هنگامی که دامنه کاربرد تعیین شد (با حضور مشتری)، منطقی است که بپرسیم: ((آیا می توان نرم افزاری ساخت که مناسب این دامنه کاربرد باشد؟ آیا این پروژه امکان پذیر هست؟)) تقریباً در اکثر اوقات مهندسان نرم افزار به سرعت از این دو سئوال می گذرند (یا مدیران و مشتریان کم صبر آنها را وادار به این کار می کنند) تا زودتر خود را درگیر پروژه ای کنند که سرنوشت آن از آغاز معلوم است. پوتنام و مایزر [PUT97a] این مشکل را چنین عنوان می کنند:... هر چیز قابل تصوری، امکانپذیر نیست حتی در نرم افزار که در نظر افراد بیرونی ممکن است ناپایدار باشد. برعکس، امکان پذیری نرم افزار چهار بعد دارد: فنّاوری – آیا پروژه از نظر فنی امکانپذیر هست؟ آیا می تواند پیشرفته باشد؟ آیا نقایص را می توان تا آن حد کاهش داد که با نیازهای کاربرد مورد نظر جور درآید؟ مالی – آیا از نظر مالی امکان پذیر هست؟ آیا می توان پروژه را با هزینه ای به پایان رساند که سازمان نرم افزاری، مشتری آن یا بازار از عهدۀ این هزینه برآید؟ زمان – آیا زمان تحویل محصول پروژه به بازار طوری هست که رقبا را از میدان به در کند؟ منابع – آیا سازمان دارای منابع لازم برای موفقیت هست؟
برای برخی پروژه ها در زمینه های مشخص، پاسخ دادن به سئوالات فوق آسان است. قبلاً پروژه های مشابه را انجام داده اید. پس از چند ساعت و گاه چند هفته تحقیق، مطمئن می شوید که قادر به انجام دوباره آن هستید.
پروژه هایی که تاکنون تجربه نکرده اید، چندان آسان نیستند. ممکن است تیمی ماهها وقت صرف کند تا دریابد خواسته های اصلی یک کاربرد که پیاده سازی آنها دشوار است، واقعاً کدامها هستند. آیا برخی از این خواسته ها ریسکهایی را تحمیل می کنند که پروژه را امکانپذیر می کند؟ تیم تعیین امکان سنجی باید معماری و طراحی خواسته های با ریسک بالا را تا نقطه ای حمل کند که بتواند به سئوالات فوق پاسخ دهد. در برخی موارد، هنگامی که تیم پاسخهای منفی گرفت، ممکن است بحث کاهش دادن خواسته ها پیش آید.
در همین حال، مدیران ارشد عصبانی می شوند. غالباً با بی حوصلگی می گویند: ((کافی است، وظیفه تان را انجام دهید)). بسیاری از پروژه هایی که به عنوان شکست بزرگ در روزنامه ها به چشم می خورند، شروعی این چنین داشته اند.
پوتنام و مایزر به درستی پیشنهاد می کنند که تعیین دامنه کاربرد به تنهایی کافی نیست. هنگامی که دامنه کاربرد مشخص شد تیم نرم افزاری و دیگران باید کار کنند تا تعیین شود که آیا پروژه را در ابعاد ذکر شده در بالا می توان به پایان رساند یا خیر. این بخش مهم از فرآیند برآورد است که غالباً هم چندان مورد توجه قرار نمی گیرد.
مثالی از تعیین دامنه کاربرد
برقراری ارتباط با مشتری منجر به تعیین موارد زیر می شود: داده ها و کنترلی که باید پردازش شود، عملیاتی که باید پیاده سازی شوند، کارآیی و شرایط حدی که سیستم را محدود می کنند و اطلاعات مربوط. به عنوان مثال، نرم افزاری برای یک سیستم مرتب سازی خط نقاله (CLSS) را در نظر بگیرید. بیان دامنه کاربرد CLSS به شرح زیر است:
سیستم مرتب سازی خط نقاله (CLSS) جعبه هایی را که روی خط نقاله در حرکتند، مرتب می کند. هر جعبه توسط یک بار کد شناسایی می شود و حاوی یک شمارۀ قطعه است و در یکی از شش صندوقی که در انتهای خط قرار دارد، انداخته می شود. جعبه ها از یک ایستگاه مرتب سازی عبور می کنند که حاوی یک بارکدخوان و یک PC است. PC ایستگاه مرتب سازی، به راهکاری متصل است که جعبه ها را به صندوقهای مناسب هدایت می کند. جعبه ها با نظم تصادمی عبور می کنند و سرعت یکسان دارند. سرعت خط، 5/1 متر در دقیقه است. طرح کلی از CLSS در شکل 1-5 نشان داده شده است.
CLSS اطلاعات ورودی را از یک بارکد خوان و در بازه های زمانی مطابق با سرعت خط نقاله دریافت می کند. داده های بارکد به فرمت مناسبی برای شناسایی جعبه رمزگشایی می شود. نرم افزار در یک بانک اطلاعاتی از شماره قطعات که حداکثر 1000 مدخل دارد، به جستجو پرداخته صندوق مناسب را برای جعبه ای که در حال حاضر در ایستگاه مرتب سازی قرار دارد، تعیین می کند. مکان صندوق مناسب به یک شنت مرتب سازی داده می شود تا آن شنت، جعبه را در صندوق مناسب بیندازد.
برای هر جعبه، رکوردی از صندوق مقصد نگهداری می شود تا بعداً برای بازیابی و گزارش مورد استفاده قرار گیرد. نرم افزار CLSS همچنین ورودی حاصل از یک نانومتر (سرعت سنج) پالسی را دریافت می کند که برای همزمان سازی سیگنال کنترل با راهکار شنت به کار می رود. براساس تعداد پالسهایی که بین ایستگاه مرتب سازی و شنت تولید می شود، نرم افزار یک سیگنال کنترل تولید می کند که شنت، جعبه را در جای مناسب قرار دهد.

دانلود فایل اصلی در قالب فایل DOC :
http://forum.a00b.com/upload/Uploads/636...L_RUP2.doc




==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان