PDA

View Full Version : یک پروژه ساده با دلفی که مستندات و UML کامل داشته باشه



sara66
دوشنبه 02 خرداد 1390, 12:46 عصر
سلام ، UML را خوندم اما نمیدونم چجوری پیاده سازی کنم ، نمیدونم برای نوشتن یک برنامه ساده چجوری باید تجزیه و تحلیل را مستند کرد و رسید به کد نویسی ، اینجا سوال را مطرح کردم چون دلفی تا جایی که من کار کردم همش به صورت پروسیجر بوده و شی گرا نمی نوشتم ، اما UML همش هرف از کلاس و اشیا میزنه ، خواهش می کنم اگر یک برنامه هرچند ساده با دلفی دارید که مستندات و UML کامل داره بهم بدید تا با مطالع اون بتونم این UML و کلا مراحل تجزیه و تحلیل و طراحی و مستند سازی و کدنویسی یک برنامه اصولی را توی دلفی متوجه بشم ، پروژه های قبلی شرکت را بدون استفاده از UML و مستند سازی می نوشتم اما میخوام این پروژه جدید را اصولی کار کنم ، مرسی

sara66
دوشنبه 02 خرداد 1390, 13:13 عصر
یادم رفت بگم که بهترین نرم افزار برای کار با UML چی هست (برای دلفی کار ها) ، Model Maker فکر کنم مربوط به دلفی بود این نرم افزار با Rational Rose قابل مقایسه هست ؟

vcldeveloper
دوشنبه 02 خرداد 1390, 19:41 عصر
اما UML همش هرف از کلاس و اشیا میزنه
UML صرفا یک زبان توصیف بصری هست، نه چیز بیشتر؛ یعنی به شما کمک میکنه که بصورت بصری (دیداری) برخی مفاهیم را توضیح بدید. اینطوری، هر کس (یا در مواردی ماشین) با هر زبان گفتاری یا زبان برنامه نویسی میتونه با نگاه کردن به توصیف بصری شما، متوجه منظور شما بشه. UML رو خیلی بزرگش نکنید، و البته تحلیل و طراحی شی گرا رو هم با UML قاطی نکنید. UML در تحلیل یا طراحی شی گرا روشی برای توصیف اون تحلیل یا طرح خاص هست. شما می تونستید به جای شکل های UML، خودتون شکل اختراع کنید، یا همه جزئیات را به صورت مکتوب بنویسید؛ ولی در اون صورت، هم حجم مطالبی که می نوشتید زیاد می شد، هم ممکن بود دیگران درست متوجه منظور شما نشند، و هم اینکه یک نرم افزار یا ماشین عموی تولید خودکار کد، نمی تونست از روی اون توضیحات شما، همه یا بخش هایی از کد مربوط به طراحی شما را تولید کنه.


پروژه های قبلی شرکت را بدون استفاده از UML و مستند سازی می نوشتم اما میخوام این پروژه جدید را اصولی کار کنم
با UML کار کردن پروژه شما رو اصولی نمیکنه، چه بسا در روند تولید پروژه تون هم اخلال ایجاد کنه. باید اول مشخص کنید که تعریف تون از کار اصولی چی هست؟ یک بار یک شرکت میخواد فرآیند تولید نرم افزار خودش را بهینه کنه، یک بار یک برنامه نویس یا یک طراح یا یک تحلیل گر میخواد کار خودش را از نظر کیفیت بهبود بده.

یک شرکت میتونه با مطالعه متدهای مختلف تولید نرم افزار، یا با استخدام یک متخصص در این زمینه، فرآیند تولید نرم افزار خودش را بررسی کنه، و متد مناسب خودش را برای تولید نرم افزار تشخیص بده، سپس به آموزش اون متد خاص به کارکنان و برنامه نویسان خودش بپردازه، و اون رو در شرکت عملیاتی کنه؛ مثلا شرکت تصمیم میگیره از یکی از متدهای Agile مثل Scrum یا XP Programming استفاده کنه.

یک برنامه نویس یا طراح یا تحلیلگر میتونه با مطالعه پارادایم های مختلف برنامه نویسی، الگوهای متداول طراحی، تکنیک های مناسب کد نویسی، و غیره کیفیت و کارایی عملکرد خودش رو بالا ببره؛ مثلا سعی کنه با مفاهیم پایه شی گرایی، تحلیل شی گرا، یا طراحی شی گرا آشنا بشه، یا سعی کنه برای کدهای خودش Unit Test بنویسه تا بتونه با تغییرات مختلفی که بعدا در کد میده، به سرعت صحت اجرای بخش های مختلف کد را بررسی کنه، یا با روش های صحیح دیباگ کد آشنا بشه، یا سعی کنه برای کلاس ها و متدهایی که می نویسه، مستندات مناسبی تهیه کنه، و مواردی از این دست.


یادم رفت بگم که بهترین نرم افزار برای کار با UML چی هست (برای دلفی کار ها) ، Model Maker فکر کنم مربوط به دلفی بود این نرم افزار با Rational Rose قابل مقایسه هست ؟
دلفی خودش یک ابزار دو طرفه تولید Class Diagram و Sequence Diagram داره، ولی کیفیت، امکانات، و راحتی کار در Model Maker بیشتر هست. Model Maker یک ابزار Modeling و تولید کد از روی مدل برای دلفی و #C هست. Model Maker با Rational Rose قابل مقایسه نیست، چون محدوده فعالیت Rational Rose فراتر از رسم نمودار یا تولید کد از روی نمودار هست، و به کل چرخه تولید نرم افزار می پردازه.

sara66
سه شنبه 03 خرداد 1390, 20:10 عصر
واقعا توضیحات مفیدی بود ، مرسی
پس با این تفاسیر UML درواقع فقط یکسری شکل هست برای تفهیم بهتر پروژه (کارهایی که قراره پروژه انجام بده ) و RUP یک متدولوژی هست ...
UML را توی ویزو هم میتونم بکشم ، اما میخوام از ModelMaker استفاده کنم ، میشه توضیح جامع تری از ModelMaker ارائه کنید ؟ و اینکه به چه شکل میشه یک نمودار باهاش کشید ؟ در کل اگر آموزشی از ModelMaker هست بگید ، مرسی

vcldeveloper
چهارشنبه 04 خرداد 1390, 20:51 عصر
UML را توی ویزو هم میتونم بکشم ، اما میخوام از ModelMaker استفاده کنم ، میشه توضیح جامع تری از ModelMaker ارائه کنید ؟ و اینکه به چه شکل میشه یک نمودار باهاش کشید ؟
فرق یک ابزار مثل ModelMaker با Visio اینه که ModelMaker فقط نمودار رسم نمیکنه، بلکه یک ابزار Modeling هست که میتونه کد تولید کنه، یا یک کد رو به نمودار تبدیل کنه. ابزاری مثل Visio بیشتر به درد کشیدن نمودارهای کلی و با جزئیات کم میخوره؛ مثلا زمانی که میخواید یک ایده کلی رو با سایر اعضاء تیم تان به اشتراک بزارید، ولی هنوز خیلی از کلیاتش مشخص نشده.

شما می تونید از ModelMaker هم در نقش یک ابزار رسم نمودار استفاده کنید، کافیه در تب Diagrams، گزینه New Diagram را انتخاب کنید. ModelMaker چهارده مدل مختلف نمودار را پشتیبانی میکنه. اما کارکرد ModelMaker بیشتر از رسم نمودار هست، شما می تونید در تب Classes کلاس های مختلف خودتان را با فیلدها، خصوصیات، و متدهایشان تعریف کنید. حتی می تونید برای هر کدام از متدها کد بنویسید. می تونید این کلاس ها را به نمودارهای خودتان اضافه کنید. ModelMaker به شما این امکان رو میده که کلاس های خودتان را Visualize کنید. ModelMaker به شما امکان تعریف ماجول های مختلف و قرار دادن کلاس هایتان در ماجول های مورد نظرتان را میده. ModelMaker میتونه از روی تعریفی که برای کلاس هایتان انجام دادید، برای شما به طور خودکار کد تولید کنه. ModelMaker به شما امکان Refactoring کدتون رو میده، حتی می تونید از داخل ModelMaker کد خودتان را با دلفی یا سی شارپ کامپایل کنید. ModelMaker میتونه یک Pattern خاص را روی کلاس های شما اعمال کنه، از روی اطلاعاتی که برای هر مدل وارد کردید، برای کلاس ها و نمودارهای شما مستندات تهیه کنه، ModelMaker میتونه یک سورس کد را از شما بگیره و از روی آن کلاس ها و اینتفریس ها و سایر جزئیات موجود در کد را استخراج کنه، و در صورت لزوم، نمودارهای مورد نظر شما را برای آن کد رسم کنه، و یک سری کارهای جزئی دیگه که خودِ ModelMaker میتونه انجام بده، یا میشه از طریق Plug-in بهش اضافه کرد.


در کل اگر آموزشی از ModelMaker هست بگید
ModelMaker یک فایل PDF که 127 صفحه داره، تحت عنوان ModelMaker User Manual داره که می تونید از اون استفاده کنید. البته برای کار با کلاس ها، نمودارهای UML، ابزارهای Refactoring و غیره، باید خودتون با مفاهیم مربوط به آنها آشنا باشید.

موفق باشید