ورود

View Full Version : چند سئوال در مورد مهندسی نرم افزار



caspianhero
جمعه 17 خرداد 1392, 21:57 عصر
با سلام
میخواستم کاربرد مهندسی نرم افزار چیست؟؟با مثال میگم:فرض کنید شما میخواهید با یک زبان مثل سی شارپ یک نرم افزار مثلا مدریت کتابخانه تولید کنید!!! مراحلی که برای تحلیل نرم افزار باید انجام بشه چطوری هست؟؟
یعنی اول باید پایگاه داده نرم افزار را طراحی کرد !! بعد uml را؟؟ کلا طراحی در uml به درد چی میخوره؟؟
سپاس

omiditc
شنبه 18 خرداد 1392, 08:27 صبح
مبانی مهندسی نرم افزار خیلی خوبه و در ساخت یه نرم افزار میتونه کارها رو به خوبی مدیریت کنه.مدیریت زمان و منابع.خلاصه خیلی دقیق شما یه پروژه رو با یه تیم برنامه نویسی شروع می کنید و طبق برنامه سر موقع تمام می کنید و تحویل مشتری میدید.ولی تو ایران شاید 90 درصد به قوانین مهندسی نرم افزار توجه نمیکنن و کارو غیر اصولی و غیر استاندارد پیش می برن.مثلا در یه پروژه ای که استاندارد استارت بخوره هر کسی یه نقشی داره مثل تحلیل گر،مدیر پروژه،کد نویس،تستر برنامه و ... . ولی اینجا همه وظایف روی دوش یه نفره.پروژه ای که استاندارد باشه و مراحل دقیق انجام بشه قیمت پروژه بالا میره و کسی دیگه پولی نمیده.مثلا هزینه تستر برنامه که فقط میشینه برنامه رو تست میکه هر ساعت 19.800 تومنه.(قیمت پارسال)

caspianhero
شنبه 18 خرداد 1392, 10:32 صبح
ممنون: ولی من مراحل تولید نرم افزار گفتم!! مثل طراحی پایگاه داده و..

charkhkar
دوشنبه 20 خرداد 1392, 16:16 عصر
با سلام
مهندسی نرم افزار مثل نقشه ساختمان میمونه یعنی قبل از اینکه شما بخواهید شروع کنید به ساخت ساختمان باید نقشه اش رو داشته باشید تا بدونید قرار چکار کنید. متد های زیادی برای مهندسی نرم افزار وجود داره ولی الان بیشتر از UML و RUP استفاده می شه اگز می خواهی از UML استفاده کنی باید به منابعش رجوع کنی مثلاً اول در مورد پروژه اطلاعات کسب کنی بهش می گن مرحله شناخت یا تعیین نیازمندی ها بعدش باید نمودار کاربرد رو رسم کنی بعد نمودار تولی و نمودار کلاس و ... تو همه پروژه ها هم از کلیه نمودار ها استفاده نمی شه کلیه این مراحل رو که تمام کردی تازه می ری سراغ کد نویسی مثلاً از روی نودار کلاس می تونی دیتا بیست رو طراحی کنی

بهزاد علی محمدزاده
سه شنبه 21 خرداد 1392, 20:12 عصر
سلام . من یه مثال خیلی خیلی ساده برات میزنم از بخش تحلیل و استخراج نیازمندی ها . از همون مثالی که خودت گفتی :

اول ما به روشهایی میریم که نیازمندی ها رو تحلیل کنیم . بعد تحلیل رو با UML‌ مدل می کنیم :

105411


کسانی که با سیستم کار می کنند و شناسایی می کنیم . در مثال شما یکیش می تونه کتابدار باشه . بعد بررسی می کنیم که چه چیزهایی نیاز داره . اونها رو لیست می کنیم :

1- سیستم باید امکان جستجوی در کتاب ها را برای کاربر فراهم کند .

2- و ...

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

اونوقت برای هر کدام از این کارها ( که اسمش UseCase هست ) ، شرح چگونگی می نویسیم که بهش میگن سناریو ( مثل سینما ) :

من یه سناریو خیلی کوتاه و سریع نوشتم ، که البته سناریو نویسی دیگه به تجربه است . لینک (http://uplod.ir/tme8uj2olm8c/search-scenario.pdf.htm)

بعضی از این سناریو ها پیچیده است و میشه اونها رو مدل کرد . بعدش میره برای دیاگرام های دیگه ، و کلاس طراحی میشه و از روی کلاس و یا همین تحلیل ها می تونید دیتابیس رو هم طراحی کنید .

mohamad100000
جمعه 07 تیر 1392, 14:16 عصر
مهندسي نرم افزار كمك مي كنه كه در ابتدا نياز هاي نرم افزار رو مشخص كني
بعد بر اساس قوانين شي گرا و به كمك uml ، بتوني بر روي يك نياز خاص تمركز كني ، توالي يك نياز خاص رو بتوني درك كني.
بعد بر اساس توالي بتوني كلاس ها رو تعريف كني
بتوني كلاس ها رو بر اساس منظق خاص خودشون دسته بندي كني
مثلا يك سري كلاس ها هستنند به اون ها كلاس هاي entity گفته ميشه ، اطلاعات هر يك از فيلد هاي اين كلاس به پايگاه داده نگاشت ميشه
اينجاست كه ميشه گفت اطلاعاتي نياز به ذخيره سازي دارند رو پيدا كردي.
كمك مي كنه بتوني رابطه هاي بين كلاس ها از نوع رابطه هاي مجاز بر اساس قوانيين شي گرايي باشه.
كمك مي كنه بتوني نياز هاي سيستم طراحي شده : مثلا نياز هاي سخت افزاري رو مدلسازي كني.
كمك مي كنه بتوني يك مدل محكم و بدون نقص براي يك سيستم طراحي كني كه در صورت توسعه سيستم با مشكلي مواجه نشي.
كمك مي كنه بر اساس كلاس ها و رابطه هايي كه تعريف كردي ، در صورتي كه سيستم دچار مشكل شود در كمترين زمان نقطه مشكل رو پيدا رو انو برطرف كني.
اميدوارم كافي باشه.