PDA

View Full Version : طراحی پروژه



Pasargad_D
دوشنبه 30 تیر 1393, 09:56 صبح
سلام به همه.برای ایجاد یک پروژه متوسط در سی شارپ حتما باید فرمهای و کلاس های زیادی طراحی کرد .میخاستم ببینم برنامه هست که قبل شروع به ساخت برنامه خودمون به صورت تئوری رابطه بین فرم ها و کارهای برنامه رو در اون بار رسم شکل تئضیح بدم اصولا به این کار چی میگن.از دوستانی که در این زمینه تجربه دارن خواهشن میکنم راهنمایی کنید.

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

rasoolf
دوشنبه 30 تیر 1393, 12:54 عصر
با سلام
اصولا فرآیند تولید نرم افزار و نگهداری از آن بحثی هست به نام مهندسی نرم افزار (http://fa.wikipedia.org/wiki/%D9%85%D9%87%D9%86%D8%AF%D8%B3%DB%8C_%D9%86%D8%B1% D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1).
که البته کتاب ها، مقالات و مطالب در موردش زیاد هست.
وبرای اینکه یک پروژه ای موفق بشه میان با استفاده از روشهای موجود در مهندسی نرم افزار شروع میکنند به نیاز سنجی سیستمی که قراره مکانیزه بشه
به عنوان مثال: سیستم دبیرخانه ای که به صورت دستی هست میان فصل به فصل شرحش میدن
اول درمورد مزایای مکانیزه شدن سیستم صحبت میشه که برای توجیه به صرفه بودن و کارآمد بودن آون اهمیت داره.
بعد میان سیستم را مطالعه میکنن که فرآیند کار داخل چه جوری مثلا چطور نامه ورودی ثبت میشه نامه خروجی چه طور ثبت میشه موجودیت های داخل سیستم همه شناسای میشه و اینکه آیا سیستم با یک سیستم دیگر در ارتباط خواهد بود یا نه؟ وخیلی سوالها و مسائل دیگر که از حوصله بحث خارج است
بعد از نیاز سنجی نوبت به طراحی نموداری سیستم هست که در آن تمام موارد از جمله موجودیت ها،ارتباط بین آن ها و روال توابع و روال های که در سیستم اتفاق می افته به صورت تصویری رسم میشه برای اینکه میتونید از نرم افزارهای Visual Paradigm for UML v8.0 Enterprise (http://p30download.com/fa/entry/37582/) یاEnterprise Architect v10.0.1009 (http://p30download.com/fa/entry/38963/)استفاده کنید. به این طراحی های فوق طراحی نمودارهای UML (http://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D9%85%D8%AF%D9%84%E2%80% 8C%D8%B3%D8%A7%D8%B2%DB%8C_%DB%8C%DA%A9%D9%BE%D8%A 7%D8%B1%DA%86%D9%87)گفته میشه.

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

Pasargad_D
دوشنبه 30 تیر 1393, 15:01 عصر
با تشکر از شما دوستان عزیز .ایا برای طراحی یک برنامه موفق حتما پیاده سازی uml الزامیه . یا نه چون به نظ وقت گیر میاد کار کردن باهاش

بهزاد علی محمدزاده
سه شنبه 31 تیر 1393, 18:50 عصر
سلام . اگر شما می خواید با رسم شکل کار رو توضیح بدین که دیگه باید از UML استفاده کنید . اما اگر سوالت اینه که چطور پروژه های کوچک و متوسط رو انجام بدیم , می تونید روشهای مهندسی رو با روش های شخصی ترکیب کنید . من نظرم اینه که ما در نهایت به روش شخصی یا تیمی هم می رسیم و دقیقا معادل کتاب ها کارها انجام نمیشه ! من یه مثال ساده میزنم که برای پروژه های کوچک مناسب هست .

شما می تونید یه فایل Word داشته باشید که در اون ویژگی های کلی سیستم رو در یه جدول شامل ردیف , عنوان , اولویت , ذخیره کنید , فرضا برای یه پروژه CMS وب :

1. مدیریت کاربران 2. مدیریت مطالب 3. مدیریت نظرات 3. مدیریت صفحات و ...

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

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

از مهم ها و بدیهیات شروع کنید به یادداشت ویژگی ها : اضافه کردن کاربر جدید , حذف , ویرایش , دریافت لیست کاربران و ...

در اینجا هم اولویت بندی رو داریم . و این ویژگی ها در واقع طراحی برنامه رو مشخص می کنه :


public class UserManagementService{
public void CreateUser(...){}
public void DeleteUser(...){}
public List<Users> GetAllUsers(){}
}

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

منظور من از گذاشتن این مطلب این بود که برای کارهای کوچک به یه روش شخصی سازی شده باید برسی که طراحی و توسعه اش سریع باشه و سعی کردم یه مثال کوچک بزنم که منظورم رو رسونده باشم .

Pasargad_D
چهارشنبه 01 مرداد 1393, 11:41 صبح
بهزاد جان ممنون از راهنماییت کاملا مشکلمو حل کرد .