ورود

View Full Version : تحلیل و طراحی بستر نرم افزارهای بانک اطلاعاتی



mahdy.asia
جمعه 24 دی 1389, 08:21 صبح
من می خواهم بستری ایجاد نمایم که بتوان یک نرم افزار بانک اطلاعاتی را بسهولت و با امکانات بسیار طراحی نمود. این محصول برای شرکت های برنامه نویسی ، تیم های برنامه نویسی ،برنامه نویسان آزاد که نرم افزارهای بانک اطلاعاتی را بصورت حرفه ای تولید می نمایند مناسب می باشد.
مراحل کار خود را در این تاپیک شرح می دهم اگر کسی نظری داشت می تواند اعلام نماید.
برای پیاده سازی نرم افزارهای بانک اطلاعاتی پس از تجزیه و تحلیل سیستم و طراحی بانک اطلاعات رویه های ثابتی انجام می گیرد که می توان با مکانیزه کردن رویه های مذکور حجم کد نویسی را تا 90% کاهش داد و با استاندارد کردن و گروهبندی کدها پیچیدگی کدنویسی را به لحاظ خوانا شدن کد به میزان قابل توجهی کاهش داد و با ایجاد قالب های استاندارد فرم نیاز به صرف زمان جهت چیدن کامپوننت ها روی فرم نمی باشد. و سلیقه ای کار کردن برنامه نویسان روی یک پروژه مشترک باعث تعدد شمای فرم ها و ایجاد پیچیدگی برای کاربر نهایی نمی گردد و در نهایت جهت اعمال تغییرات روی فرم ها نیاز به تغییر در همه فرم ها نمی باشد و تنها لازم است در قالب ایجاد شده تغییر حاصل گردد.

mahdy.asia
یک شنبه 26 دی 1389, 22:27 عصر
من کارم را با نوشتن کامپوننت های مورد نیاز شروع کردم .

کامپوننت های من دارای خاصیت هایی می باشد که بجای کد نویسی می بایست تنها خاصیت آن ها را مقدار دهی نمود از جمله آن می توان به کامپوننت EditCoding اشاره نمود که می توان با تنظیم خاصیت سریال کامپوننت به کاربر امکان داد فرمی حاوی جدول مورد نیاز خود را باز نماید و یک رکورد از جدول مذکور را انتخاب یا بدون باز کردن جدول کد مورد نیاز خود را جستجو و در صورتی که کد وجود نداشته باشد پیغام مناسب به کاربر داده می شود در غیر اینصورت مقادیر نام و سریال ردیف مذکور را بر می گرداند.

mahdy.asia
چهارشنبه 29 دی 1389, 18:57 عصر
من ایجاد بستر ارث بری را شروع کردم
من یک فرم BaseForm ایجاد کردم کامپوننت هایی که در همه فرم های ورود اطلاعات و گزارشی وجود دارد روی فرم گذاشتم و توابعی که در همه فرم ها مورد نیاز است نوشتم
یک فرم جهت فرم های ورود اطلاعات FormDataEntery و یک فرم جهت فرم های گزارش FormReport که از BaseForm ارث می برد ایجاد کردم کامپوننت ها و توابع مورد نیاز را در فرم مذکور تکمیل کردم
چندین فرم با حالت های متفاوت ایجاد کردم که از FormReport ، FormDataEntery ارث می برد کامپوننت ها و توابع مورد نیاز را کامل نمودم.

mahdy.asia
پنج شنبه 30 دی 1389, 22:26 عصر
بعضی از توابعی که جهت استفاده override ایجاد شده است
1. درصورت False بودن نتیجه فرم به حالت اضافه وارد نمی شود

Function CheckForAdd : Boolean ; override ;
2. در صورت False بودن فرم بحالت ویرایش وارد نمی شود

Function CheckForEdit : Boolean ; override;
3. در صورت False بودن اطلاعات ذخیره نمی شود

Function CheckForSave : Boolean ; override;
4. در صورت False بودن اگر در حالت اضافه باشیم اطلاعات ذخیره نمی شود

Function CheckForSaveDataAdd : Boolean ; override;
5. در صورت False بودن اگر در حالت ویرایش باشیم اطلاعات ذخیره نمی شود

Function CheckForSaveDataEdit : Boolean ; override;
6. هنگام زدن كليد اضافه روي كامپوننت خاصي فوكوس شود

procedure SetFcous ; override;
7. بعضي از كامپوننت ها را بعد از زدن كليد اضافه با مقادير پيش فرض پر نماييد

procedure SetDefult ; override;
8. دستوراتي را قبل از ذخيره اطلاعات انجام دهيد

procedure PreSave ; override;
9. دستوراتي را بعد از ذخيره اطلاعات انجام دهيد

procedure NextSave ; override;
10. پارامترهاي ديگري كه با خودکار پر نمی شود براي پروسيجر Insert می توان پر نمود

procedure FillParamInsertOther ; override;
11. پارامترهاي ديگري كه با خودکار پر نمی شود براي پروسيجر Update می توان پر نمود

procedure FillParamUpdateOther ; override;
12. قبل از انجام عمليات حذف دستورات اجرا می شود

procedure PreDelete ; override;
13. بعد از انجام عمليات حذف دستورات اجرا می شود

procedure NextDelete ; override;

Modifier
جمعه 01 بهمن 1389, 11:48 صبح
سلام

اول اینکه فونتی که دارید باهاش مطلب مینویسید مناسب نیست

بیشتر جاهایی که من دیدم برای سهولت کاراشون یکسری Tools هایی رو آماده میکردند و یا از قبل آماده کرده بودند.بیشتری اون ها بصورت توابع یا متدهایی بود که کارهای مختلف مورد نیاز رو راحتتر میکرد، حالا هر شرکت یا هر شخصی با توجه به تجربیاتش و تجربیاتی که در آینده بدست میآورد اون ها رو تصحیح یا کاملتر میکرد البته باید این Tools ها بگونه ای باشه با بهتر بگم "پیاده سازی" شده باشه که تغییرات درون آنها تاثیر روی پروژه هایی که قبلا از اون استفاده کردند نذاره...
خلاصه اینکه باید مدیریت خوبی روی این ابزار ها داشت...
برای همین موقع تحلیل و طراحی کلاس های این ابزار ها باید Base کار رو خوب دید...

ولی حالا شما میخواهید کار دیگه ای که خیلی مشکل تر از ایجاد یکسری متد و توابع است رو انجام بدید...پس خوب تمرکز کنید.

Modifier
جمعه 01 بهمن 1389, 11:58 صبح
کلیات صحبت های شما مشخصه ولی یه جورایی هم گنگه...

سلیقه ای کار کردن برنامه نویسان روی یک پروژه مشترک باعث تعدد شمای فرم ها و ایجاد پیچیدگی برای کاربر نهایی نمی گردداگر در ابتدای تحلیل یک پروژه دید خوبی روی نیازمندی های یک پروژه داشته باشید و بتونید یک DataModel با ثبات ایجاد کنید و..و..
اون موقع میتونید یک Prototype User Inteface خوب برای کسانی که میخواهند پیاده سازی کنند بدست بیارید و همچنین اون شرکت یا شخصی که گروه نرم افزاری رو مدیریت میکنند باید یکسری قوانینی کلی مثلا برای نام گذاری Objectها و چگونگی پیاده سازی کلاس ها و... که میتونه قسمتیش مخصوص خودشون باشه و قسمتیش برگرفته از قوانین استاندارد داشته باشند...

آیا شما میخواهید با ایجاد این تاپیک آموزش بدید ؟ اگه اینطوره پس باید جزئی تر توضیح بدید.

در ضمن موردی که هست من نمیدونم شما چقدر تبحر و دانش دارین...ولی با اطلاعاتی که من دارم کاری که دارین به تنهایی انجام میدین خیلی سنگینه و به نظرم به این راحتی ها نیست و خیلی جوانب رو باید توش دید و لحاظ کرد

mahdy.asia
جمعه 01 بهمن 1389, 14:43 عصر
اول اینکه فونتی که دارید باهاش مطلب مینویسید مناسب نیست
من با فونت Tahoma مي نويسم و روي كامپيوتر من فونت ها خوانا مي باشد (فونت Defult Site) اما اگر فونت مناسبتري مورد نظر شما است راهنمايي فرمائيد.



سلیقه ای کار کردن برنامه نویسان روی یک پروژه مشترک باعث تعدد شمای فرم ها و ایجاد پیچیدگی برای کاربر نهایی نمی گردد

گفته هاي شما كاملاً‌صحيح مي باشد. به لحاظ تئوري مي توان بدون ابزارهاي كمكي پروژه هاي بزرگي كاملاً‌ استاندارد و بدون پيچيدگي طراحي و پياده سازي نمود اما ابزارها به ما كمك مي كند ...
من در تيم هاي برنامه نويسي ديده ام كه به دلايل زيادي استاندارد لازم و كافي براي پروژه تهيه نشده است و همان استانداردي هم كه تهيه شده با توجه به مشكلات اجرايي ناقص اجرا شده است.

ولی حالا شما میخواهید کار دیگه ای که خیلی مشکل تر از ایجاد یکسری متد و توابع است رو انجام بدید...پس خوب تمرکز کنید.
از راهنمايي شما متشكرم حتماً‌ از در ادامه كارم به نكته هايي كه اشاره كرديد بيشتر توجه مي كنم

آیا شما میخواهید با ایجاد این تاپیک آموزش بدید ؟ اگه اینطوره پس باید جزئی تر توضیح بدید.

اين بستگي به بازديد كننده دارد هدف من آموزش،استفاده از نظرات ديگران ،معرفي يك محصول مي باشد. در ادامه كار توضيحات را كاملتر خواهم نمود.

من نمیدونم شما چقدر تبحر و دانش دارین...ولی با اطلاعاتی که من دارم کاری که دارین به تنهایی انجام میدین خیلی سنگینه و به نظرم به این راحتی ها نیست و خیلی جوانب رو باید توش دید و لحاظ کرد
من در تحليل و پياده سازي نرم افزارهاي بانك اطلاعاتي تجربه قابل توجهي دارم (از سال 78 وارد اين كار شده ام و با تحليل و پياده سازي بيش از 50 سيستم بانك اطلاعاتي جهت شركت هاي صنعتي سر و كار داشته ام) و بخوبي با مشكلات تيم هاي برنامه نويسي و نيازمندي هاي آنها آشنا هستم

Modifier
جمعه 01 بهمن 1389, 17:15 عصر
من با فونت Tahoma مي نويسم و روي كامپيوتر من فونت ها خوانا مي باشد (فونت Defult Site) اما اگر فونت مناسبتري مورد نظر شما است راهنمايي فرمائيد.

فکر کنم مشکل از Browser من بوده ..از Firefox 3.6.13 استفاده میکردم .. حالا دارم با IE8 میبینم که خوب شده غیر از پست سوم ...بگذریم ..

من در تيم هاي برنامه نويسي ديده ام كه به دلايل زيادي استاندارد لازم و كافي براي پروژه تهيه نشده است و همان استانداردي هم كه تهيه شده با توجه به مشكلات اجرايي ناقص اجرا شده است.

منم دقیقا اینو خودم لمس کردم


من در تحليل و پياده سازي نرم افزارهاي بانك اطلاعاتي تجربه قابل توجهي دارم (از سال 78 وارد اين كار شده ام و با تحليل و پياده سازي بيش از 50 سيستم بانك اطلاعاتي جهت شركت هاي صنعتي سر و كار داشته ام) و بخوبي با مشكلات تيم هاي برنامه نويسي و نيازمندي هاي آنها آشنا هستم
خب ، خدا رو شکر ... منم هستم توی این بحث انشالله مفید باشه برای همه ...
اگه میشه یکم بیشتر و جزئی تر درمورد تحلیل هایی که کردین توضیح بدین تا اگه ماهم بلد بودیم کمکی بکنیم...
آیا شما توی فاز تحلیل و طراحی هستین یا پیاده سازی رو هم شروع کردین ؟
از متدلوژیه خاصی برای پیشبرد محصولتون استفاده میکنین ؟
آیا از UML استفاده میکنین ؟

mahdy.asia
جمعه 01 بهمن 1389, 20:24 عصر
اگه میشه یکم بیشتر و جزئی تر درمورد تحلیل هایی که کردین توضیح بدین تا اگه ماهم بلد بودیم کمکی بکنیم...
برای تولید یک نرم افزار بانک اطلاعاتی شما پس از تحلیل بانک ها را در SQL ایجاد می کنید.
از این پس بستری که من در حال پیاده سازی آن هستم قرار است ادامه کار را برای شما آسان کند
در تولید کدهای اسکیوال مورد نیاز به شما کمک کند
بتوانید با ارث بردن ار فرم های تهیه شده به چیدن کامپوننت ها روی فرم نیاز نداشته باشید
تنها با معرفی نام پروسیجرها به برنامه و چیدن کامپوننت های ورود اطلاعات کلیه عملیات یک فرم بانک اطلاعاتی نظیر ذخیره،ویرایش،حذف،پرینت،نم ودار،فیلتر،جستجو بدون کدنویسی انجام گیرد.
بدون کدنویسی گزارشات قابل ویرایش و ذخیره توسط کاربر نهایی باشد،در صورت نیاز با نمایش کامپوننت های کار با بانک اطلاعات و پارامترهای آن و مقدارهای پارامترها در پشتیبانی نرم افزار به برنامه نویس کمک کند.
چنانچه امکاناتی مورد نیاز باشد به فرم اضافه گردد با اضافه کردن امکانات به فرم پرنت در همه فرم های ارث برده شده اضافه گردد و ...

آیا شما توی فاز تحلیل و طراحی هستین یا پیاده سازی رو هم شروع کردین ؟
اکنون در حال پیاده سازی نرم افزار هستم و مواردی که در تاپیک آمده ایجاد شده است (طراحی کامپوننت ها ، طراحی فرم های Parent)

از متدلوژیه خاصی برای پیشبرد محصولتون استفاده میکنین ؟
آیا از UML استفاده میکنین ؟
از روش RUP استفاده کردم

Modifier
شنبه 02 بهمن 1389, 00:23 صبح
این موضوع برام خیلی جالب شده، خدا بخواد بتونم پیگیر باشم ...


از جمله آن می توان به کامپوننت EditCoding اشاره نمود که می توان با تنظیم خاصیت سریال کامپوننت به کاربر امکان داد فرمی حاوی جدول مورد نیاز خود را باز نماید
منظورتون اینه که فرمی باز میکنه و اطلاعات جدولی رو از DB واکشی میکنه و در درون یک DBGrid(دلفی) نمایش میده ؟

یا بدون باز کردن جدول کد مورد نیاز خود را جستجو و در صورتی که کد وجود نداشته باشد پیغام مناسب به کاربر داده می شود
منظورتون از "بدون باز کردن جدول" چیه ؟آیا یعنی "بدون نمایش اطلاعات" آخه جستجو بدون ایجاد Connection که ممکن نیست پس حتما جدول باز میشه ...

این سوال ها رو میپرسم شاید جوابش مشخص باشه ولی به نظرم کمی گنگ میاد برای بقیه کاربرا هم راحتر میشه که بحث رو دنبال کنند...

این فرم های Parent ی که درست کردید در آخر تبدیل میشند به یک کامپوننت ؟یا هر کدوم جدا جدا یه کامپوننت میشن ؟یا اصلا کامپوننت نمیشند؟لطفا سرنوشتشون رو توضیح بدین ؟:چشمک:

mahdy.asia
شنبه 02 بهمن 1389, 20:12 عصر
منظورتون اینه که فرمی باز میکنه و اطلاعات جدولی رو از DB واکشی میکنه و در درون یک DBGrid(دلفی) نمایش میده ؟
اگر کد مورد نظر بدونیم و وارد باکس کنیم کامپوننت می تونه کد رو جستجو و مقادیر متناظر کد که مورد نیاز می باشد بیاره
اگر کد اشتباه وارد شده باشه پیغام بده که کد وجود نداره
اگر هم کد رو ندونیم با زدن کلید اینتر لیستی از جدول مذکور با امکانات جستجو و فیلتر باز می شه که در مورد نام یا کد شروع به تایپ می کنیم همینطور که تایپ می کنیم لیست با توجه ورود اطلاعات ما فیلتر می گردد و در نهایت با زدن کلید اینتر روی هر ردیف آن ردیف از داده ها انتخاب می گردد و مقادیر آن وارد فرم اصلی می شود.
خوب قطعاً برای اینکار نیاز به اتصال به اسکیوال داریم

این فرم های Parent ی که درست کردید در آخر تبدیل میشند به یک کامپوننت ؟یا هر کدوم جدا جدا یه کامپوننت میشن ؟یا اصلا کامپوننت نمیشند؟لطفا سرنوشتشون رو توضیح بدین ؟
فرم های پرنت بحالت فرم باقی خواهند ماند و برنامه نویس می تواند بجای ارث بردن از TForm از TParentFormSimple ارث ببرد که قسمتی عمده ایی از کار مربوط به یک فرم ساده بانک اطلاعاتی در آن انجام شده است

mahdy.asia
شنبه 09 بهمن 1389, 19:38 عصر
امكانات ايجاد شده بدون نياز به كدنويسي(با ارث بری کلیه امکانات در فرم های پرنت کدنویسی شده است)
با قالب فرم های ساده،مستر دیتیل،مستر2 دیتیل


باز كردن فرم هاي كدينگ
رفتن فرم به حالت اضافه(دراین حالت در فرم با زدن کلید اضافه فلیلدهایی که خصوصیت empty آن True شده باشد خالی و در صورت داشتن مقدار پیش فرض پر می گردد و در غیر اینصورت کاربر می تواند اطلاعات مورد نیاز را وارد فرم نماید که در پایان با زدن کلید ثبت اطلاعات ذخیره و فرم وارد حالت نمایش می گردد)،ویرایش(دراین حالت فرم آماده تغییر اطلاعات و پس از تغییرات مورد نیاز با زدن کلید ثبت اطلاعات تغییر و فرم وارد حالت نمایش می گردد ،نمایش(در این حالت کاربر امکان تغییر اطلاعات را ندارد و می تواند گزارشات مورد نیاز خود را با فیلتر،جستجو،نمودار،پرینت تهیه نماید)
كنسل در حالت هاي اضافه و ويرايش و رفتن به حالت نمايش
حذف ركورد
مرتب کردن اطلاعات با کلیک کردن روی هر یک از ستون های اطلاعات و آماده جهت جستجو در ستون انتخاب شده
فيلتر اطلاعات در دو حالت فیلتر سریع فیلتر روی یک ستون فیلتر روی کیله ستون ها با انواع شرط ها مساوی،نا مساوی،شبیه،بین،بزگتر،کوچک تر،خالی بودن)
كنسل حالت فيلتر
نمايش نمودار بر روي اطلاعات
دو نمونه پرينت 1- پرينت از روي جدول 2- پرينت خاص
خروج از فرم و لاگ کردن مشخصات کاربر
امكان منويي كركره ايي جهت مواردی که برنامه نویس می خواهد برای فرم ایجاد نمای (تعدادی از امکانات در این منو وجود دارد)
امكان دادن پيام های فارسی اسكيوال در صورت رويداد خطا
امكان كنترل فيلدهاي اجباري،صحت اطلاعات

و ...

علی ارجمندی
دوشنبه 25 بهمن 1389, 14:26 عصر
با سلام
دوست عزیز این محصولی که تولید کردی ، نسخه آزمایشی نداره . یا حداقل یک ویدئو از طریقه کار با اون

ممنون

mahdy.asia
دوشنبه 25 بهمن 1389, 15:05 عصر
هنوز نسخه DemoVersun براي بستر مذكور تهيه نكردم اما اگر جايي نياز به شرح بيشتر دارد اعلام نماييد.

mahdy.asia
دوشنبه 25 بهمن 1389, 15:07 عصر
هنوز نسخه Demo Versionبراي بستر مذكور تهيه نكردم اما اگر جايي نياز به شرح بيشتر دارد اعلام نماييد.