بنام خدا

با سلام

يكي از مباحث مهم در توسعه نرم افزار ، مديريت پروژه هاي نرم افزاري مي باشد بدين منظور لازم است قبل از شروع پروژه نسبت به برنامه ريزي اقدام نماييم (تهيه  مستند برنامه پروژه Project Plan) به منظور دقيق و شدني بودن برنامه تهيه شده لازم است موارد زيادي مد نظر قرار گيرد در طي چند مقاله ، پرسشنامه اي را با هم مرور مي نماييم كه هدف آن عبارتست از :

  • تيمهاي درگير در پروژه را از فعاليتهاي مختلف و متنوعي كه مي بايد در برنامه ريزي لحاظ گردد آگاه سازد. بديهي است اين فعاليتها در خروجي پروژه موثر مي باشد.
  • كمك به تخمين منابع مورد نياز و همچنين تشخيص ريسك ها
  • اطلاع رساني اوليه به ذينفعاني كه پروژه جديد دربرگيرنده محدوده كاري آنها مي باشد.

تذكر مهم : اين پرسشنامه هر چند از لحاظ محدوده پوشش دهي ، كامل مي باشد ولي لازم است با توجه به پروژه ، سازمان شما و درخواست كننده پروژه ، تغييرات مرتبط صورت پذيرد.

 

ادامه پرسشنامه

 

 

ادامه اطلاعات مرتبط با پروژه

 

براي هر يك از سئوالات همه موارد درست را علامت بزنيد و در مواردي كه اطلاعات خاصي خواسته شده است آن را بنويسيد.

ادامه ...

6- پروتكل ارتباطي :

NetBios(IBM)       IPX/SPX(Novell)           TCP/IP(Unix,NT)          Vines(Banyan Vines)

موارد ديگر ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

7- محيط شبكه  اي مورد نياز كه بتواند برنامه كاربردي را پشتيباني نمايد.

Enterprise                  چند سروره             تك سروره                Peer

موارد ديگر ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

8- در ذيل مثالهايي از تكنولوژيهايي سيستمهاي اطلاعاتي (نه كل آنها) آورده شده است لطفا تكنولوژي مورد استفاده خود را در صورتي كه در ليست ذيل ذكر نگرديده است را نيز بيان نمايد(همه موارد را مشخص نماييد)

Data Mining                Data Warehouse               Remote Access                 Smart Card

Distributed Application Architecture                 E-Mail/Voice-Mail              Push Desktop

Wireless Comunications                    Modular Software Components

ـــــــــــــــــــــــــــــــــ             ــــــــــــــــــــــــــــــــــــــــ               ــــــــــــــــــــــــــــــــ

 

 

9-تخمين ميزان اثر بر ساختار بك بن  محلي (Locat Backbone) (اطلاعات خواسته شده در خط اول را تكميل نموده و تمام موارد خواسته شده را معين نماييد)

 

تعداد كاربر همزمان _________________     ساعت كاركرد ــــــــــــــــــــــــــــــــــــــــــ

رمز گذاري لازم براي كليه پيغامها/بسته ها/ترانزكشن ها ــــــــــــــــــــــــــــــــــــــــــــــــــ

 

كداميك از موارد ذيل ، در تبادل اطلاعات بكار مي روند.

متن و گرافيك                            فقط گرافيك                       فقط متن

ويديو                                        صوت                               چند رسانه اي

بر مبناي فايل                             بر مبناي ترانزكشن

 

10-تخمين ميزان اثر بر ساختار بك بن  گسترده (Wide-Area Backbone) (اطلاعات خواسته شده در خط اول را تكميل نموده و تمام موارد خواسته شده را معين نماييد)

 

تعداد كاربر همزمان _________________     ساعت كاركرد ــــــــــــــــــــــــــــــــــــــــــ

رمز گذاري لازم براي كليه پيغامها/بسته ها/ترانزكشن ها ــــــــــــــــــــــــــــــــــــــــــــــــــ

 

كداميك از موارد ذيل ، در تبادل اطلاعات بكار مي روند.

متن و گرافيك                            فقط گرافيك                       فقط متن

ويديو                                        صوت                               چند رسانه اي

بر مبناي فايل                             بر مبناي ترانزكشن

 

11-محيط (هاي) عملياتي (تمامي موارد را مشخص نماييد و براي هر يك شماره نسخه و انتشار را مشخص نماييد  R=Release V=Version)

MS Windows,V.R ___              Unix/AIX,V.R ___             OS/2,V.R ___

Novell,V.R ___                        Sun,V.R ___                   

Web Browseــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ V.Rــــــ

موارد ديگر ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

11a- در محيط عملياتي مقصد چه محدوديتهايي وجود دارد‌(همه موارد را مشخص نماييد)

ظرفيت سرور                     سرعت تبادل اطلاعات                    ديواره آتش

قابليت دسترسي راه دور         ظرفيت ايستگاه كاري                     امنيت

گروه هاي كاربري پراكنده بدون امكان ارتباط مناسب با يكديگر

موارد ديگر ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

12- زبانهاي برنامه نويسي كه شما استفاده خواهيد نمود و يا مورد نظر مي باشد (همه موارد را مشخص نموده و نسخه و شماره انتشار هر يك را بيان نماييد V=Version R=Release)

Visula Basic, V.R ___       Delphi, V.R ___        JAVA, V.R ___

Visual C++, V.R ___       ASP, V.R ___          Power Builder, V.R ___

موارد ديگر ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ V.R ـــــ

 

13- حساسيت داده هاي پروژه چه مقدار مي باشد.

غير طبقه بندي – غير حساس          غير طبقه بندي                   طبقه بندي

 

13a- چه روش محافظتي مورد نياز مي باشد (همه موارد را مشخص نماييد)

امضاي الكترونيكي                رمز گذاري                     ديواره آتش

هارد قابل انتقال                   كلمه و رمز عبور كنترل شده توسط كاربر

امنيت فيزيكي                     كلمه و رمز عبور كنترل شده توسط مدير سيستم

موارد ديگر ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

14 – سيستمهاي مديريت بانك اطلاعاتي كه شما استفاده خواهيد كرد و يا مورد نظر است.

MS Sql Server            Oracle                     My Sql                 DB2

موارد ديگر ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

15- اگر اين يك سيستم شركتي مي باشد مالك عمليات و داده هاي سيستم چه كسي مي باشد.

 

عنوان ، عمليات ____________________________________________

16- آيا سيستم يا عمليات بگونه اي مي باشد كه داده مي باشد هميشه در دسترس بوده و در موارد ضروري در زمان بسيار كوتاهي بازيابي گردد.

بله                             خير

 

اگر پاسخ شما مثبت است ، شما چه مواردي را در نظر داريد (همه موارد را مشخص نماييد)

پشتيبان گيري                             بازيابي داده               Fault Tolerance

Mirroring/Imaging    (crisis Management) Disaster Recovery    System Performance

 

17- ليست كليه سيستمها ، برنامه هاي كاربردي و منابع داده اي  موجود را نوشته و اگر بين آنها ارتباطي وجود دارد قيد نماييد.

سيستم / برنامه كاربردي             سيستم /منبع داده

ــــــــــــــــــــــــــــــــــــــــ             ـــــــــــــــــــــــــــــــــ

ــــــــــــــــــــــــــــــــــــــــ             ـــــــــــــــــــــــــــــــــ

ــــــــــــــــــــــــــــــــــــــــ             ـــــــــــــــــــــــــــــــــ

 

نكته : اگر به سئوالات فوق و سئوالاتي كه در مقالات آتي خواهد آمد با دقت بنگريد درخواهيد يافت با جمع آوري اين اطلاعات بسياري از نيازمنديها شناخته شده و همچنين برآورد دقيقي از مواردي كه مي بايد در برنامه ريزي لحاظ گردد (مانند مدت ، نيروي انساني ، هزينه و ...) بدست مي آيد.

نكته مهم : همانطور كه در عنوان و موضوعات مرتبط با وبلاگ گفته ام هدف من ارائه راهكارهايي است  كه در پروژه هاي متوسط و بزرگ كارايي داشته باشد لذا ممكن است براي بعضي از دوستان اين همه ريزه كاري ضروري بنظر نرسد ولي مطمئن باشيد استفاده از اين روشها در صرفه جويي آتي در زمان و هزينه ها بسيار موثر بوده و از همه مهمتر نرم افزار توسعه يافته كمترين پشتيباني را ، لازم خواهد داشت.

 

خوب دوستان اينم از اين قسمت – ادامه پرسشنامه را در  قسمت بعد با هم مرور خواهيم نمود.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

 

بنام خدا

با سلام

يكي از مباحث مهم در توسعه نرم افزار ، مديريت پروژه هاي نرم افزاري مي باشد بدين منظور لازم است قبل از شروع پروژه نسبت به برنامه ريزي اقدام نماييم (تهيه  مستند برنامه پروژه Project Plan) به منظور دقيق و شدني بودن برنامه تهيه شده لازم است موارد زيادي مد نظر قرار گيرد در طي چند مقاله ، پرسشنامه اي را با هم مرور مي نماييم كه هدف آن عبارتست از :

  • تيمهاي درگير در پروژه را از فعاليتهاي مختلف و متنوعي كه مي بايد در برنامه ريزي لحاظ گردد آگاه سازد. بديهي است اين فعاليتها در خروجي پروژه موثر مي باشد.
  • كمك به تخمين منابع مورد نياز و همچنين تشخيص ريسك ها
  • اطلاع رساني اوليه به ذينفعاني كه پروژه جديد دربرگيرنده محدوده كاري آنها مي باشد.

تذكر مهم : اين پرسشنامه هر چند از لحاظ محدوده پوشش دهي ، كامل مي باشد ولي لازم است با توجه به پروژه ، سازمان شما و درخواست كننده پروژه ، تغييرات مرتبط صورت پذيرد.

 

پرسشنامه

مديران پروژه :

لطفا اين پاسخنامه را كامل نموده و بين كليه ذينفعان پروژه توزيع نماييد (بطور مثال ، مالكان سيستم ، كاربران ،مهندسين شبكه ).در اين مرحله تا آنجا كه ممكن است به پرسشها جواب دهيد.

اين پرسشنامه براي شناخت نيازمنديهاي با جزييات زياد نمي باشد.در نظر داشته باشيد از اين پرسشنامه به عنوان پايه جلسه شروع پروژه ، استفاده نماييد.

اگر پروژه بلافاصله بعد از توزيع پرسشنامه شروع نگرديد لازم است در هنگام شروع پروژه به منظور كسب اطلاعات بروز ، دوباره توزيع گردد.

 

گيرندگان پرسشنامه :

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

 

مشخصات پروژه

نام پروژه و نام اختصاري آن (Acronym) :

 

شماره پروژه :                                                   شماره قرارداد:

آيا بودجه مجزايي براي پروژه لحاظ گرديده است ؟ بله                      خير

سازمان استفاده كننده :                                        رابط پروژه :

آدرس پست الكترونيك :                                          تلفن :

 

مدير پروژه و سازمان متولي اجرا ()

آدرس پست الكترونيك :                                          تلفن :

 

1- آيا اهداف تجاري قابل اندازه گيري بعنوان اهداف پروژه تعيين گرديده است ؟

عنوان و  تاريخ مستند مربوطه :

شرح مختصري از آنچه قرار است پروژه انجام دهد :

 

 

2- چه ميزان تلاش براي انجام اين پروژه طبق برآورد شما مورد نياز مي باشد :

زياد                                              كم                                         متوسط

تذكر : لازم است در مستندي در خصوص اين معيارها (زياد، كم و متوسط) شرح كاملي و دقيقي وجود داشته باشد.

 

3- محل هاي كاربري سيستم كدامند :

دفتر مركزي                                     دفاتر منطقه اي                            آزمايشگاه ها

 

4- كليه فرضيات ، محدوديتها و وابستگيهاي مرتبط با پروژه را ليست نماييد.

 

 

 

5-كليه ريسك هاي شناخته شده مرتبط با پروژه را ليست نماييد.

 

 

 

اطلاعات مرتبط با پروژه

 

براي هر يك از سئوالات همه موارد درست را علامت بزنيد و در مواردي كه اطلاعات خاصي خواسته شده است آن را بنويسيد.

ا- اين پروژه در برگيرنده كدام فعاليتها مي باشد (همه موارد را تعيين نماييد)

توسعه سيستم                                              نگهداري سيستم

توسعه نرم افزار                                               نگهداري نرم افزار

هزينه يابي پروژه                                              ارتقاي ساختارهاي زير بنايي

سفارشي سازي                                             بالابردن قابليت ها

موارد ديگر ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

2- بستر نرم افزار(همه موارد را تعيين نماييد)

تحت وب                      Stand Alone                توزيع شده                   مشتري/خدمتگزار

موارد ديگر ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

3- بستر سخت افزار(همه موارد را تعيين نماييد)

سرور اختصاصي    سرور اشتراكي     كامپيوتر مستقل    كامپيوتر پردازنده مركزي(Mainframe)

موارد ديگر ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

4- زير ساختار – محيط محاسباتي مقصد (همه موارد را تعيين نماييد)

تحت وب                     شبكه محلي سازماني               محيط پردازنده مركزي (Mainframe)    شبكه گسترده سازماني (Organizational WAN)           

موارد ديگر ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

نام سرور/LAN/WAN (اگر مشخص مي باشد) : ــــــــــــــــــــــــــــــــــــــــــــــــــ

 

5-   توپولوژي شبكه :

 

Star                          ‏‏Token Ring                       ATM                Bus            

موارد ديگر ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

نكته : اگر به سئوالات فوق و سئوالاتي كه در مقالات آتي خواهد آمد با دقت بنگريد درخواهيد يافت با جمع آوري اين اطلاعات بسياري از نيازمنديها شناخته شده و همچنين برآورد دقيقي از مواردي كه مي بايد در برنامه ريزي لحاظ گردد (مانند مدت ، نيروي انساني ، هزينه و ...) بدست مي آيد.

نكته مهم : همانطور كه در عنوان و موضوعات مرتبط با وبلاگ گفته ام هدف من ارائه راهكارهايي است  كه در پروژه هاي متوسط و بزرگ كارايي داشته باشد لذا ممكن است براي بعضي از دوستان اين همه ريزه كاري ضروري بنظر نرسد ولي مطمئن باشيد استفاده از اين روشها در صرفه جويي آتي در زمان و هزينه ها بسيار موثر بوده و از همه مهمتر نرم افزار توسعه يافته كمترين پشتيباني را ، لازم خواهد داشت.

 

خوب دوستان اينم از اين قسمت – ادامه پرسشنامه را در  قسمت بعد با هم مرور خواهيم نمود.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

 

بنام خدا

با سلام

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

تكنيك هاي جمع آوري نيازمنديها :

در ذيل يك مجموعه از تكنيكهاي استخراج نيازمنديها كه توصيه شده ، معرفي گرديده است در ميان بيش از 40 تكنيك موجود ، تنها كارايي بالاي تعدادي از آنها اثبات گرديده است.اين تكنيكها مي تواند بصورت تركيبي بكار رود.مزيت اين روشها ، كارايي در استخراج نيازهاي واقعي بوده كه توسعه برنامه ريزي شده را باعث مي گردد.

معرفي يك عقيده ابتكاري : براي آشنايي با يك روش ابتكاري استخراج نيازمنديها به مقاله اي تحت عنوان "A Quick,Accurate Way to Determine Customer Needs" مراجعه نماييد. نويسندگان مقاله بر اين عقيده اند كه مشتريان در طول مدت استخراج نيازمنديها چيزهايي را مي گويند و سپس در مرحله عمل كاملا متفاوت از آنچه گفته اند عمل مي نمايند.آنها احساس مي كنند كه اين مشكل عمدتا به خاطر تكيه نمودن بر روشهاي سنتي استخراج نيازمندي ها ، نظير مصاحبه و مميزي و بازديد محيط و گروه ها مي باشد زيرا اين روشها نمي توانند با تناقضات موجود در پاسخهاي افراد ، بصورت موثر سروكار داشته باشند.

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

 

يك تذكر اخطاري :

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

 

ابزارهاي اتوماتيك سازي مديريت نيازمنديها :

من توصيه مي كنم از يك ابزار اتوماتيك سازي مديريت نيازمنديها براي پشتيباني فعاليتهاي مرتبط با توسعه سيستم با هر اندازه اي ، استفاده نماييد. پروژه هاي كوچك ممكن است بوسيله نرم افزارهاي MS Word و MS Excel پوشش داده شوند اما بيشتر پروژه ها به ابزارهاي سازماني قدرتمندي نظير DOORS ، Requisite Pro و يا Caliber RM كه قابليتهاي بيش از يك مدير نيازمنديها دارند نياز خواهند داشت.

استفاده از يك ابزار ، فرايند استخراج نيازمنديها را تسهيل مي نمايد زيرا امكان فهم بهتر نيازمنديها را براي مشتريان و توسعه دهندگان فراهم مي نمايد. همچنين ، يك ابزار كارا كمك شاياني به اين موارد مي نمايد : اولويت بندي نيازها ، قابليت رهگيري نيازها در طول مدت توسعه ، امكان تخصيص چند صفت به هر نيازمندي و تسهيل مديريت تغيير نيازمندي ها

 

نتيجه گيري و توصيه ها :

سعي نكنيد كه كليه كارها را به تنهايي انجام دهيد در عوض افراد تيم پروژه را به انتخاب و تعهد به چندين روش كه برايشان قابل قبول است تشويق نماييد.

چند معيار كه قابليت ارزيابي كارايي اجرا و همه گير بودن روش انتخاب شده را داشته باشد انتخاب نماييد به خاطر داشته باشيد كه هر چيزي كه اندازه گيري و رهگيري مي شود امكان بهبود را داراست. يك تلاش متمركز براي بهبود ارتباطات و كار تيمي را سازماندهي نماييد.يك تيم متعهد و با انگيزه توانايي انجام هر چيزي را دارد.

 

منبع : اين مقاله توسط Dr. Ralph R. Young از موسسه Northrop Grumman Information Technology نوشته شده است.

 

خوب دوستان اينم از اين مقاله – در مقالات بعدي نيز با باشيد.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

 

 

بنام خدا

با سلام

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

تكنيك هاي جمع آوري نيازمنديها :

در ذيل يك مجموعه از تكنيكهاي استخراج نيازمنديها كه توصيه شده ، معرفي گرديده است در ميان بيش از 40 تكنيك موجود ، تنها كارايي بالاي تعدادي از آنها اثبات گرديده است.اين تكنيكها مي تواند بصورت تركيبي بكار رود.مزيت اين روشها ، كارايي در استخراج نيازهاي واقعي بوده كه توسعه برنامه ريزي شده را باعث مي گردد.

 

در دو مقاله قبلي چند روش شرح داده شد در اين مقاله تكنيك هاي ديگري را معرفي مي نماييم

 

StoryBoards : عبارتست مجموعه اي از تصاوير كه بيانگر يك سري از فعاليتهاي كاربر در سيستم موجود و يا خيالي و يا يك قابليت مي باشد. اين تكنيك يك نوع نمونه سازي (prototyping) بر روي كاغذ مي باشد.

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

 

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

 

مدل سازي (Modeling) :  يك مدل عبارتست از نمايشي از واقعيتها ، به صورتي كه درك آنها را آسان باشد. ابزار Core قابليت مدل سازي رفتاري (Behavioral Modeling) را داراست براي داشتن اطلاعات مرتبط با اين ابزار به وب سايت www.vtcorp.com مراجعه نماييد شما همچنين مي توانيد نسخه آزمايشي اين ابزار را دانلود نماييد.در مطالعات اخير مربوط به 15 تيم مهندسي نيازمنديها كه در پروژه هاي نسبتا كوچك (بطور متوسط 10 نفر در سال و پروژه هايي با متوسط مدت 16.5 ماه) فعاليت داشته اند استفاده از نمونه سازي (Prototyping) و مدل سازي (Modeling) موجب رفع مشكلات ناشي از ابهام و ناسازگاري در نيازمنديها گرديده و منجر به موفقيت پروژه مي گردد.

تجزيه و تحليل كارايي و ظرفيت (Perfromance and Capacity Analysis) : Hofmann و Lehner به نتايج جالبي در مطالعات خود بر روي 15 مورد مهندسي نيازمنديها دست يافتند : ذينفعان سيستم تمركز خود را بر روي وظايف سيستم و نتايج اطلاعاتي معطوف نموده و به موارد مهمي چون نيازهاي كلي سيستم ، كارايي ناكافي ، ظرفيت و نيازهاي واسط  كاربري اهميتي نمي دهند. بنابراين ، مطمئن شويد كه فرايند استخراج و تعيين نيازمنديها را براي انواع نيازمنديها انجام دهيد.

 

منبع : اين مقاله توسط Dr. Ralph R. Young از موسسه Northrop Grumman Information Technology نوشته شده است.

 

خوب دوستان اينم از اين قسمت – در قسمت بعد ادامه تكنيك ها را با هم مرور خواهيم نمود.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

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

تكنيك هاي جمع آوري نيازمنديها :

در ذيل يك مجموعه از تكنيكهاي استخراج نيازمنديها كه توصيه شده ، معرفي گرديده است در ميان بيش از 40 تكنيك موجود ، تنها كارايي بالاي تعدادي از آنها اثبات گرديده است.اين تكنيكها مي تواند بصورت تركيبي بكار رود.مزيت اين روشها ، كارايي در استخراج نيازهاي واقعي بوده كه توسعه برنامه ريزي شده را باعث مي گردد.

 

در مقاله قبلي چند روش شرح داده شد در اين مقاله تكنيك هاي ديگري را معرفي مي نماييم

 

نمونه سازي (Prototyping) : نمونه سازي ، تكنيكي براي ساخت سريع و ايجاد  نسخه تقريبي از سيستم مورد نياز و يا قسمتهايي از آن مي باشد.نمونه سازي تصويري از قابليتهاي سيستم را به كاربران و طراحان ارائه  مي دهد.اين تكنيك بصورت يك مكانيزم ارتباطي عمل مي نمايد بطوري كه كارشناسان با كمك آن فعل و انفعالات با سيستم را درك مي نمايد.

براي داشتن اطلاعات كاملتر در خصوص ايجاد و استفاده از مدل سازي به مقاله "Sommerville software engineering" مراجعه نماييد. اين تكنيك مي تواند بصورت موثري با ساير متد ها نظير JAD و Models تركيب گردد.

 

مورد كاربري ((Use Cases : يك Use Case تصويري از عملياتي كه سيستم (با تقابل با ايفا كننده آن عمل) انجام مي دهد را ارائه مي دهد. اين تصوير مي بايد با توضيحات كامل متني همراه باشد. همچنين اين تكنيك نبايد به تنهايي بكار رود. بسياري از توسعه دهندگان بر اين باورند كه Use Case ها و سناريو ها (Scenaries) (شرح توالي وقايع مربوط به Use Case) ارتباط بين افراد تيم را تسهيل مي نمايد. آنها با بيان توالي وقايع و عمليات مرتبط با يك نيازمندي ، فهم روشني از حالات مختلف را فراهم نموده و همچنين بصورت يك زبان مشترك بين كاربران و تيم فني ، عمل مي نمايد.

توجه داشته باشيد كه Use Case ها به تنهايي دربرگيرنده اطلاعات كافي براي كليه فعاليتهاي توسعه سيستم نمي باشد بنابراين لازم است از تكنيك هاي ديگر نيز در امتداد Use Case ها استفاده نماييد.

 

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

 

 Ivy Hooks مشاور استخراج نيازمنديها توصيه كرده تا از مستند مفاهيم عملياتي (Operational Concepts) بعنوان روشي ساده و مقرون به صرفه براي ايجاد اجماع بين كليه ذينفعان سيستم استفاده نموده و همچنين با اين روش دو طبقه عمده خطاهاي استخراج نيازمنديها يعني نيازهاي از قلم افتاده و نيازمنديهاي متناقض را مديريت نماييد. مفاهيم عملياتي (Operational Concepts) شانس اعتبار سنجي را در همان مراحل اوليه فراهم نموده و شالوده لازم براي سناريو هاي تست محصول را ، بنا مي نمايد.

 

توجه : براي فهم بهتر Operational Concepts به تعريف ارائه شده ذيل توجه نماييد :

 

Operational Concept Description :

The Operational Concept Description (OCD) describes a proposed system in terms of the user needs it will fulfill, its relationship to existing systems or procedures and the ways it will be used
The OCD is used to obtain consensus among the acquirer, developer, support, and user agencies on the operational concept of a proposed system.

 

 

 

منبع : اين مقاله توسط Dr. Ralph R. Young از موسسه Northrop Grumman Information Technology نوشته شده است.

 

خوب دوستان اينم از اين قسمت – در قسمت بعد ادامه تكنيك ها را با هم مرور خواهيم نمود.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

 

بنام خدا

با سلام

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

تكنيك هاي جمع آوري نيازمنديها :

در ذيل يك مجموعه از تكنيكهاي استخراج نيازمنديها كه توصيه شده ، معرفي گرديده است در ميان بيش از 40 تكنيك موجود ، تنها كارايي بالاي تعدادي از آنها اثبات گرديده است.اين تكنيكها مي تواند بصورت تركيبي بكار رود.مزيت اين روشها ، كارايي در استخراج نيازهاي واقعي بوده كه توسعه برنامه ريزي شده را باعث مي گردد.

Kotonua و Sommerville بحث خوبي در زمينه استخراج و آناليز نيازمنديها مطرح نمودند.مقالات با توضيحات جزيي تر در خصوص اين تكنيكها نيز ارائه گرديده است.

 

مصاحبه : مصاحبه همواره براي جمع آوري نيازمنديها استفاده گرديده است.اما تفكرات قبلي ، تجربه ، هوش و همچنين تمايلات جانبدارانه شخصي كه مصاحبه مي شود بر روي اطلاعات بدست آمده موثر است.استفاده از سئوالات مستقل توسط مصاحبه گر ، به جلوگيري از پاسخهاي از پيش تعيين شده ، كمك مي نمايد. يك سئوال مستقل عبارتست از پرسشي كه يك پاسخ خاص را تلقين نمي كند. براي مثال : مشتري اين سيستم چه كسي است؟ يك سئوال مناسب مي باشد اما به اين سئوال توجه كنيد : مشتري اين سيستم واحد آموزش شركت مي باشد؟

و يا ، علت واقعي كه اين مشكل مي بايد حل شود چيست؟ تا چه ميزان دقت در ساخت محصول لازم است؟ سئوالات مستقل مي باشند.

 

تجزيه و‌ تحليل مستندات : در استخراج نيازمنديها بطور موثر ، درجاتي از آناليز مستندات بكار مي رود.اين مستندات مي تواند برنامه استراتژيك  ، مطالعات بازاريابي ، قراردادها ، شرح وظايف ، راهنماهاي موجود ، آناليز سيستم هاي موجود و رويه ها باشد.يك مستند نيازمنديهاي با كيفيت ، دربرگيرند نتايج استخراج شده از كليه منابع محتمل و همچنين همفكري و مشورت با سايرين مي باشد.

 

طوفان فكري (Brainstorming) : طوفان فكري مشتمل بر ايجاد عقايد و اهداف جديد و هم كاهش آنهاست. هدف تشكيل دهنده جلسات طوفان فكري ، شناخت نظرات و نيازها به هر تعداد ممكن مي باشد در آخر سر با كمك گروه نيازهاي مطرح شده با نظر كل گروه ، بترتيب مفيدتر بودن مرتب شده تا موارد سودمند شناسايي گردد.طوفان فكري يك تكنيك بسيار قدرتمند مي باشد زيرا در غالب اوقات ، بيشتر عقايد خلاقانه و موثر ، نتيجه تركيب عقايد به ظاهر نامرتبط مي باشند.همچنين اين تكنيك ، مشوق تفكر ناب و غير معمول مي باشد.

 

كارگاههاي نيازمنديها (Requirements Workshops): اين تكنيك يك روش قدرتمند براي استخراج نيازمنديها مي باشد زيرا آنها مي توانند موجب توافق جمعي بر روي قابليتها و نيازمنديها گردند. اين روش بهترين ابزار براي كارشناسان خارج سازمان بوده و بطور معمول كوتا مدت  مي باشند(يك يا چند روز)

فوايد اين تكنيك بشرح ذيل مي باشد :

  • هزينه برپايي اين كارگاهها كمتر از مصاحبه هاي جداگانه مي باشد.
  • اين كارگاهها موجب ساختار دادن به فرايند تشخيص و تحليل نيازمنديها مي گردد.
  • كارگاهها پويا ، دوجانبه و فعل و انفعالي و مشاركتي مي باشد.
  • كارگاهها موجب درگير شدن كاربران گرديده و خطوط سازماني را ناديده مي گيرد.
  • به فرايند شناسايي ، اولويت دهي و رفع منازعات كمك شاياني مي نمايند.
  • در صورتي كه به شايستگي برگزار گردند انتظارات و توقعات كاربران را مديريت نموده و گرايش و تمايل به تغييرات را موجب مي شود.

يك طبقه خاص از كارگاه نيازمنديها ، كارگاه JAD(Join Application Development) مي باشد JAD عبارتست از توسعه نيازمنديها از طريق مشاركت كاري بين مشتريان ، نمايندگان كاربران و توسعه دهندگان سيستم كه با هدايت يك هماهنگ كننده ، مشخصات نيازمنديها را بگونه اي استخراج مي نمايد كه از حمايت دو طرف برخوردار باشد. اين روش موثري در تعيين سريع نيازهاي كاربر مي باشد.Wood و Silver در كتاب Joint Application Development مدعي هستند كه با استفاده از JAD زمان توسعه سيستم 40 درصد كاهش مي يابد.آنها روش ‌‌JAD را توضيح داده و دياگرامها و فرمهاي مربوطه را معرفي و يك مثال با تكنيك JAD را توضيح داده اند.

 

 

منبع : اين مقاله توسط Dr. Ralph R. Young از موسسه Northrop Grumman Information Technology نوشته شده است.

 

خوب دوستان اينم از اين قسمت – در قسمت بعد ادامه تكنيك ها را با هم مرور خواهيم نمود.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

بنام خدا

با سلام

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

قسمتي از فرايند جمع آوري نيازمنديها ، اولويت بندي آنها مي باشد. اين موضوع از آنرو حائز اهميت است كه بندرت زمان و بودجه كافي براي انجام تمام آنچه درخواست شده ، وجود دارد.

بهتر است بر روي فوايد سيستم تمركز نموده ، نه به شكل ظاهري و خصوصيات غير ضرور . فوايد به نيازمنديهاي ضروري اطلاق مي شود.اضافه نمودن خواص غير ضروري منجر به افزايش مشكلات در زمان طراحي و افزايش هزينه ها مي شود.

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

خطاهاي متداول در اين فاز عبارتند از فرضيات غلط (49%) ، نيازهاي از قلم افتاده (29%) ، نيازهاي متناقض (13%) ، نيازهاي مبهم (5%)

از روشهايي نظير مرور دو جانبه (Peer Reviews) (هر كس كار نفر ديگر را ارزيابي نمايد) و بازبيني مجدد در راستاي كاهش عيوب استفاده نماييد. اين روشها بهترين روش در كاهش عيوب مي باشند. توصيه من ، استفاده از مرور دوجانبه در كليه مستندات پروژه مي باشد. ميزان بكارگيري مرور به ميزان بحراني بودن مستند وابسته مي باشد.مرورهاي دوجانبه روش بسيار موثري در كاهش هزينه هاي پروژه مي باشند زيرا آنها منجر به كشف سريعتر عيوب مي گردند.طبق ارزيابي ها ، 45% هزينه پروژه ها به خاطر دوباره كاري ها مي باشد.با استفاده از مرور دوجانبه ، نوشتن سناريوي كارها و تهيه نمونه هايي اوليه از محصولات به ارزيابي صحت نيازها كمك نموده كه نهايتا منجر به مشخصات نيازمنديهاي دقيقتر و رضايت بيشتري مشتري خواهد گرديد.

بازرسي (Inspection) ،نوع پيشرفته تري از مرور دو جانبه مي باشد كه بايد از جانب ارائه كنندگان نيازمنديها مورد توجه قرار گيرد.يك راهنماي بسيار عالي در زمينه بازرسي هر نوع مستند ، توسط دو نفر به نامهاي Gilb و Graham تهيه گرديده است. توانايي انجام بازرسي به روش Gilb نيازمند پنج روز آموزش رسمي و همچنين دقت زياد مي باشد. يك مزيت روش Gilb استفاده از نمونه از محصول نهايي به جاي ارزيابي كل محصول مي باشد. در اين روش عقيده بر اين است كه با مشخص شدن عيوب در نمونه اوليه و يا چند صفحه اول مستند ، نگارنده قادر است بازخورهاي دريافتي را بكاربرده و بتواند مشكلات مشابه را در كل مستند و يا محصول عملياتي رفع نمايد.

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

يكي از بزرگترين موضوعات مشكل ساز ، تمركز بر كار بيش از حد ، در راستاي افزايش هر چه بيشتر نيازمنديها به جاي آدرس دهي حداقل نيازمنديهاي كافي (پوشش دهنده نيازهاي واقعي) ، مي باشد.بنابراين ، حداقل نيازمنديهايي كه به نحو شايسته شناسايي شده باشند در نهايت به نفع مشتري مي باشد آنها كمك مي نماند تا از مشكلاتي نظير تاخير در تحويل ، كسري بودجه ، كاهش انگيزه كاربران و كيفيت نازل ، جلوگيري گردد.

 

روشهاي توصيه شده در جمع آوري نيازمنديها :

در ذيل يك ليست از روشهايي كه در جمع آوري نيازمنديها توصيه گرديده ، آمده است.آنها بر اساس مطالعات گسترده اي كه نويسنده داشته و تركيب آنها با تجارب عملي تحليل گراني كه در چندين پروژه مشاركت داشته اند تهيه گرديده است.

  1. يك مستند محدوده و چشم انداز سيستم (Vision and Scope Document) تهيه نماييد.
  2. يك واژه نامه براي پروژه خود ايجاد نموده و در آن تعريف و معناي كليه لغات بكار رفته را بياوريد اين تعريف مي بايست مورد قبول و استفاده مشتريان ، كاربران و توسعه دهندگان نرم افزار باشد.همچنين يك ليست از كلمات اختصاري (Acronyms) كه مي تواند موجب راحت تر نمودن ارتباطات گردد تهيه نماييد.
  3. نيازها را طي يك  كار تيمي با مشاركت مشتريان/كاربران و توسعه دهندگان شناسايي نماييد.بر روي نيازهاي ضروري تمركز نماييد نه فرم ظاهري و نيازهاي غير ضروري . بر روي نيازهاي با اولويت بالا و حداقل نيازهاي كافي سرمايه گذاري نماييد تا نيازهاي واقعي مشتريان و كاربران برآورده شود.
  4. منشا و علت هر نيازمندي را نيز مستند نمايد.
  5. آموزشي براي تحليل گران نيازمنديها و مشتريان و كاربراني كه بيشتر درگير خواهند بود ترتيب داده به نحوي كه موارد ذيل را پوشش دهد :
    1. نقش و مسئوليت هاي تحليل گر نيازمنديها ، بطور مثال جمع آوري نيازمنديها با كمك مشتريان و كاربران صورت پذيرد نه اينكه بصورت انفرادي و مستقل ، نيازها را اختراع نماييد.
    2. چگونگي نوشتن و مستند نمودن نيازمنديها
    3. انواع خطاهاي متداول در تهيه نيازمنديها و روشهاي كاهش آنها
    4. تاكيد بر اهميت سرمايه گذاري بيشتر براي فرايند شناخت نيازمنديها
    5. تشريح چگونگي فرايند شناخت نيازمنديها كه در پروژه جاري بكار گرفته خواهد شد.
    6. توضيح روشها و تكنيك هايي كه بكار خواهيم برد.
    7. روش استفاده از ابزارهايي كه به خودكار سازي فرايند مستندسازي نيازمنديها كمك خواهند نمود.
    8. عمليات معتبر سازي (Validation) و رسيدگي و بازبيني (Verification) در حين شناخت و تعيين نيازمنديها
  6. ايجاد مكانيزمي جهت كنترل تغييرات در نيازمنديها و يا نيازمنديهاي جديد
  7. اولويت بندي نيازمنديها در راستاي تعيين مواردي كه مي بايست در اولين نسخه نرم افزار وجود داشته و آن دسته از نيازها كه مي توانند در آينده ايجاد شوند.
  8. در مواردي كه نيازمنديها مدام در حال تغييرند (و حتي در مواردي  كه نيستند) ، از يك روش توسعه افزايشي (مانند RUP) استفاده نماييد.اين رويكرد بخاطر آنست كه تعدادي از نيازمنديها تا هنگامي كه مشتريان و كاربران شروع به كار با سيستم نمايند ناشناخته مي باشد.
  9. در روال تهيه كليه مستند مرتبط با نيازمنديها از مرور دو جانبه و بازرسي استفاده نماييد.
  10. از يك ابزار قوي خودكار سازي مستند نمودن نيازمنديها ، استفاده نماييد.
    1. به هر نيازمنديها خواص آن را نسبت دهيد.
    2. امكان رهگيري نيازها را فراهم نماييد.
    3. تاريخچه هر نيازمندي را نگهداري نماييد.
  11. از روشهايي در جمع آوري نيازمنديها استفاده نماييد كه در سازمان شناخته شده بوده و قبلا صحت آنها اثبات شده است نظير تشكيل كارگاه ها (Workshops)، نمونه سازي (prototypingStoryBoards
  12. نفرات تيم را مشخص نماييد (از جمله تحليل گر نيازها) بنحوي كه در موضوع و محدوده پروژه خبره باشند.
  13. پروژه و روش سازماني پروژه را بر اساس كاربرد مناسب سياست ها ،‌فرايندها ، متدها ، تكنيك ها و ابزار ، پايه گذاري نماييد.مكانيزمي را جهت كار تيمي ترتيب دهيد بنحوي كه اطلاعات پروژه اشتراكي بوده و همواره از روشها و تجربيات برتر (Best Practices) در كار استفاده شود.
  14. فرهنگ كار را بنحوي پايه گذاري نماييد كه بهبود مستمر ، روش كار گروهي و كيفيت ، خصوصيات آن باشد.
  15. در طول مدت توسعه ، شتريان و كاربران را درگير نماييد.
  16. فعاليتهاي ارزيابي و اعتبار سنجي را به منظور اطمينان از اينكه هر نيازمندي قابل تست مي باشد صورت دهيد.(در حين فرايند جمع آوري نيازمنديها)

 

منبع : اين مقاله توسط Dr. Ralph R. Young از موسسه Northrop Grumman Information Technology نوشته شده است.

 

خوب دوستان اينم از اين قسمت – در قسمت هاي بعد ادامه مطلب را با هم مرور خواهيم نمود.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

 

بنام خدا

با سلام

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

دخيل نمودن مشتريان و كاربران سيستم در كل مدت زمان توسعه سيستم ، منجر به شناسايي و فهم بهتر نيازهاي واقعي مي گردد. توجه نماييد كه فعاليت هاي مرتبط با نيازمنديها مي بايست در كل مدت توسعه سيستم صورت پذيرفته و تنها مختص به شروع پروژه نباشد.

مستند نيازمنديها يكي از اجزاي ضروري در يك سيستم بوده و مستندي مي باشد كه بيانگر قابليت ها ، مشخصات و فاكتورهاي كيفي يك سيستم مي باشد كه براي كاربران ارزشمند و كاربردي مي باشد. به گفته Steve McConnell در مقاله اي با عنوان راهنماي بقاي پروژه نرم افزاري "مشكل ترين قسمت در جمع آوري نيازمنديها ، مستند سازي نياز كاربران نمي باشد. بلكه سخت ترين قسمت عبارتست از كمك كردن به كاربران براي تعيين نيازمنديها به نحوي كه بتوان آنرا بصورت موفقيت آميز با توجه به هزينه و زمان در دسترس تيم توسعه ، عملياتي نمود."

هر نياز مي بايست ضروري ، قابل بازبيني ، امكان پذير و شدني ، واضح ، صريح و بدون هر گونه ابهام ، كامل (جامع باشد) ، سازگار ، قابل پيگيري ، مختصر (مانع باشد) ، مستقل از روش پياده سازي و داراي يك شناسه منحصر به فرد باشد.

 لازم به ذكر است معني دقيق اين عبارات در مقالات قبلي در خصوص نيازمنديها آمده است

مقالات مرتبط :

کاهش ریسک پروژه ها با استخراج صحیح نیازمندیها بوسیله مثال - قسمت اول

 

کاهش ریسک پروژه ها با استخراج صحیح نیازمندیها بوسیله مثال - قسمت دوم

 

کاهش ریسک پروژه ها با استخراج صحیح نیازمندیها بوسیله مثال - قسمت دوم

 

علت اينكه نيازمنديها مي بايد  مستقل از پياده سازي باشد آنست كه نيازمندي بيانگري چيزي است كه بايد وجود داشته باشد و نه چگونگي پياده سازي آن – چگونگي يكي از جنبه هاي طراحي مي باشد.

مستند نمودن منشا و علت هر نيازمندي يك روش خوب براي كاهش تعداد نيازمندي ها مي باشد با استفاده از اين تكنيك شما مي توانيد تا 50% ليست نيازمنديها را كم نماييد (منبع Ivy Hook's experience)

 

اولين مرحله، درك و شناخت نيازهاي تجاري و كاري سازمان مي باشد .اين فعاليت ، منجر به ايجاد مستند Vision and Scope (در خصوص اين مستند نيز در مقاله اول و دوم همراه با مثال صحبت شده است) مي گردد كه شامل شرح پس زمينه ها و دلايلي كه منجر به تصميم گيري در خصوص توسعه يك سيستم جديد و يا اصلاح سيستم موجود گرديده ، بوده و همچنين شامل قابليت هاي مورد نظر و شرحي از سيستمي كه مي بايد توسعه يابد ، مي باشد.

مقالات مرتبط با مستند محدوده سيستم (Vision and Scope Document) :

 

پیش نیازها ، انتظارات ، اهداف و محدوده پروژه هاي نرم افزاري - قسمت اول

پیش نیازها ، انتظارات ، اهداف و محدوده پروژه هاي نرم افزاري - قسمت دوم

 پیش نیازها ، انتظارات ، اهداف و محدوده پروژه هاي نرم افزاري - قسمت سوم(آخر)

 

اطمينان از فهم و شناخت قابليت ها يك موضوع بحراني در موفقيت پروژه مي باشد.در اين راستا جلسات مربوط به محدوده و اهداف سيستم را بصورت مستمر با حضور مشتريان و كاربران سيستم برگزار نماييد. فرايند استخراج نيازمنديها منجر به تفكر خلاقانه و جزيي تر در خصوص موضوعات مطرح ، شده و نهايتا مي تواند محدوده پروژه را تحت تاثير قرار دهد. همينطور كه راه حل هايي جديد از لحاظ امكان پذيري بررسي مي شوند نقاط تصميم گيري مختلفي وجود دارند كه مي بايست در خصوص گنجاندن يا عدم گنجانيدن آنها در محدوده سيستم تصميم گيري نمود.

 

مرحله بعد جمع آوري نيازهاي جديدي است كه توسط مشتريان و كاربران سيستم بيان گرديده است. در يك روش كاراي جمع آوري نيازمنديها ، بايد به روش مناسبي اينگونه نيازها (كه  هنوز صحت آنها مشخص نشده است ) از نيازهاي واقعي قابل تشخيص باشد. تجارب نشانداده كه اينگونه نيازها بايستي بصورت مشاركتي توسط مشتريان و توسعه دهندگان سيستم ارزيابي گرديده تا از صحت آن اطمينان حاصل گردد.

 

منبع : اين مقاله توسط Dr. Ralph R. Young از موسسه Northrop Grumman Information Technology نوشته شده است.

 

خوب دوستان اينم از اين قسمت – در قسمت هاي بعد ادامه مطلب را باهم مرور خواهيم نمود.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالهاي متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

 

در اين بخش به مرحله آخر طراحي بانك يعني ارزيابي و تصحيح طراحي صورت گرفته مي پردازيم

 

پالايش طراحي صورت گرفته :

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

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

در حين آزمايش بانك اطلاعاتي طراحي شده ، احتمالا به مواردي بر مي خوريد كه نياز به بهبود دارند.در اينجا يكسري موارد براي بررسي آورده شده است :

  • آيا فيلد هايي را از قلم انداخته ايد ؟ آيا اطلاعاتي وجود دارد كه شما به آن نيازمنديد ولي در حال حاضر وجود ندارد ؟ اگر اينطور است آيا آن متعلق به جداول موجود مي باشد؟ اگر اين اطلاعات مرتبط با چيز ديگري است ممكن است نياز باشد تا جدول جديدي ايجاد نماييد.
  • آيا براي كليه جداول كليد اصلي انتخاب نموده ايد؟در صورتي كه از اين كليد اصلي براي جستجوي ركوردها استفاده مي شود آيا نوع آن صحيح بوده و همچنين از بر نمودن آن راحت مي باشد؟مطمئن شويد شما تحت هيچ شرايطي نياز به وارد نمودن داده تكراري در آن نخواهيد شد.
  • آيا شما بطور مكرر در يكي از جداولتان داده هاي تكراري وارد مي نماييد؟اگر اينطور است احتمالا شما نياز داريد تا آن جدول را به دو جدول كه با هم رابطه يك به چند دارند تقسيم نماييد.
  • آيا شما جداولي با تعداد فيلدهاي زياد ، تعداد ركورد(اطلاعات) كم و تعداد زيادي فيلد كه در ركوردهاي مختلف خالي مي مانند داريد ؟ اگر اينطور است در خصوص طراحي مجدد جدول مذكور اقدام نماييد بطوريكه تعداد كمتري فيلد داشته و ركورد هاي بيشتري داشته باشد.

مثال : بهبود جدول محصولات (Products)

هر محصول در شركت Northwind در قالب يك طبقه بندي كلي نظير نوشيدني ها ، ادويه ها و غذاهاي دريايي و ... قرار دارد. جدول محصولات شامل فيلدي است كه بيانگر طبقه هر كدام از محصولات مي باشد.

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

اگر شما يك فيلد با عنوان توضيح طبقه (Category Description) به جدول محصولات (Products) اضافه نماييد شما مجبور خواهيد شد فيلد توضيح طبقه را بصورت تكراري براي هر محصولي  كه در آن طبقه قرار مي گيرد وارد نماييد كه به هيچ وجه روش مناسبي نمي باشد.

روش مناسبتر آن است كه به طبقه بندي بصورت يك موضوع قابل پيگيري در بانك اطلاعاتي نگريسته و نسبت به ايجاد يك جدول جديد اقدام نماييد كه بالطبع داراي كليد اصلي مخصوص به خود مي باشد سپس شما مي توانيد اين كليد اصلي را به جدول محصولات (Products) تحت عنوان كليد خارجي اضافه نماييد.

 

 

جدول طبقه بندي ها (Categories) و محصولات (‍Products) يك ارتباط يك به چند دارند : هر طبقه مي تواند شامل محصولاتي مختلفي باشد اما هر محصول خاص تنها متعلق به يك طبقه خاص مي باشد. مثلا همانطور كه در شكل فوق مي بينيد در طبقه Beverages دو محصول Chai و Chang قرار دارند ولي هر محصول مثلا Chai فقط متعلق به طبقه Beverages مي باشد.

 

خوب دوستان اينم از اين مطلب

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالهاي متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

 

در اين بخش به ادامه مرحله پنجم (تعيين و تشخيص ارتباطات مورد نياز) خواهيم پرداخت.

در اين جا نحوه تعيين و تشخيص ارتباطات بين جداول و همچنين چگونگي تشخيص فيلدهايي كه اين ارتباطات را پشتيباني مي نمايد شرح داده شده است.براي ايجاد و برقراري ارتباط بين جداول در MS SQL Server از قسمت Diagrams در بانك اطلاعاتي مورد نظر خود مي  توانيد استفاده نماييد.

ايجاد يك ارتباط يك به چند (One-to-Many or 1:N) : ارتباط يك به چند متداولترين نوع ارتباط در بانك هاي رابطه اي مي باشد.در اين ارتباط ، يك ركورد در جدول A مي تواند چند ركورد متناظر و مرتبط در جدول B داشته ولي يك ركورد در جدول B فقط و فقط يك ركورد متناظر در جدول A دارد.

بطور مثال ، جداول تامين كنندگان (Suppliers) و محصولات (Products) در بانك اطلاعاتي Northwind يك ارتباط يك به چند دارند.

به منظور برپايي اين ارتباط ، شما بايد فيلد يا فيلدهايي كه در جدول طرف اول ارتباط (one side) كليد اصلي مي باشند را به جدول طرف چندتايي ارتباط (many side) ، اضافه نماييد.در اين مثال شما بايد فيلد Supplier ID از جدول Supplier را به جدول Products اضافه نماييد زيرا يك تامين كننده ، تامين كننده چند محصول مي تواند باشد.بانك اطلاعاتي با توجه به فيلد Supplier ID در جدول Products توانايي يافتن محصولاتي كه توسط يك تامين كننده خاص ، تامين مي شود را دارا مي باشد.

 

 

همانطور كه در شكل فوق مشاهده مي نماييد تامين كننده شماره 1 يعني شركت Exotic Liquids تامين كننده سه محصول 1 : Chai و 2:Chang و 3 : Aniseed syrup مي باشد زيرا فيلد Supplier ID اين سه محصول در جدول Products برابر 1 مي باشد كه اين كد در جدول Suppliers

شركت Exotic Liquids را نشان مي دهد بديهي است فيلد Supplier ID در جدول Suppliers ، كليد اصلي (Primary Key) و در جدول Products ، كليد خارجي (Foreign Key) مي باشد.

 

ايجاد يك ارتباط چند به چند (Many-to-Many Or N:M) : در ارتباط چند به چند ، يك ركورد در جدول A بيش از يك ركورد متناظر در جدول B داشته و همچنين يك ركورد در جدول B مي تواند بيش از يك ركورد متناظر در جدول A داشته باشد. در اين نوع از ارتباط ، لازم است ابتدا طراحي بانك اطلاعاتي خود را تغييراتي داده تا بتوانيد بصورت صحيح اين نوع ارتباط را پوشش دهيد.براي يافتن ارتباط چند به چند بين جداول ، لازم است به دقت به هر دو سوي ارتباط بنگريد.

بطور مثال در شركت تجاري Northwind ، يك سفارش مي تواند شامل چندين محصول باشد لذا براي هر ركورد در جدول سفارشات (Orders) ، چندين ركورد در جدول محصولات (Products) مي تواند وجود داشته باشد. اما اين كل مطلب نيست زيرا هر محصول نيز مي تواند در سفارشات مختلف ظاهر شود لذا براي هر ركورد در جدول محصولات (Products) ، چندين ركورد در جدول سفارشات مي تواند وجود داشته باشد

در خصوص اين مثال بين دو جدول Orders و Products يك ارتباط چند به چند داريم و اين نشاندهنده يك مشكل در طراحي بانك اطلاعاتي مي باشد. براي فهم مشكل ، تصور كنيد براي برپايي اين ارتباط شما فيلد Product ID را به جدول سفارشات (Orders) اضافه نماييد در اينصورت چه اتفاقي خواهد افتاد‌ ؟

براي داشتن بيش از يك محصول در هر سفارش ، شما به بيش از يك ركورد براي هر سفارش در جدول سفارشات (Orders) نيازمنديد بنابراين براي هر سطر از سفارش كه متعلق به يك كالاست شما مي بايد كليه اطلاعات كلي سفارش –مانند شماره سفارش ، تاريخ سفارش ، خريدار و ...- را تكرار نماييد اين راه حل نمونه يك طراحي ضعيف مي باشد كه ما را به سمت داشتن داده هاي نادرست رهنمون مي سازد. حالت قرينه اين طراحي حالتي است كه شما فيلد Order ID را به جدول Products اضافه نماييد در اينحالت نيز مشكل وجود دارد زيرا شما مي بايست اطلاعات كلي محصول را به ازاي هر سطر سفارش در جدول محصولات (Products) تكرار نماييد.

روش صحيح حل اين مشكل چيست ؟

پاسخ ايجاد يك جدول جديد مي باشد كه ارتباط چند به چند موجود با واسطه جدول جديد به دو ارتباط يك به چند تبديل گردد در اينحالت شما كليد اصلي هر دو جدول را مي بايست به  جدول سوم ايجاد شده اضافه نماييد.

براي مثال فوق يك جدول با عنوان جزييات سفارش (Orde rDetails) به بانك اطلاعاتي افزوده مي گردد.هر ركورد در جدول جزييات سفارش (Order Details) نشاندهنده يك آيتم موجود در فرم سفارش مي باشد.كليد اصلي جدول جديد (Order Details) شامل دو فيلد مي باشد – كليد خارجي از جدول سفارشات (Orders) و محصولات (Products) – يعني فيلدهاي Order ID , Product ID

 

 

 

فيلد Order ID به تنهايي نمي تواند كليد اصلي اين جدول باشد زيرا هر سفارش مي تواند شامل چند آيتم باشد. فيلد Product ID نيز نمي تواند اين نقش را عهده دار گردد زيرا يك محصول مي تواند در سفارشات مختلف وجود داشته باشد ولي اجتماع اين دو فيلد هميشه يك مقدار منحصر به فرد را براي هر آيتم سفارش تشكيل مي دهند.

در بانك اطلاعاتي Northwind جداول سفارشات (Orders) و محصولات (Products) بصورت مستقيم با هم ارتباط نداشته بلكه از طريق جدول جزييات سفارش (Order Details) بصورت غير مستقيم با هم مرتبط مي باشند. همواره در بانك اطلاعاتي يك ارتباط چند به چند ، توسط دو ارتباط يك به چند پياده سازي مي گردد :

  • جداول سفارشات (Orders) و جزييات سفارش (Orde rDetails) يك ارتباط يك به چند دارند زيرا هر سفارش مي تواند بيش از يك آيتم داشته باشد ولي هر آيتم موجود در يك سفارش تنها به همان سفارش مرتبط مي باشد.
  • جداول محصولات (‍Products) و جزييات سفارش (Order Details) يك ارتباط يك به چند دارند زيرا هر محصول مي تواند در آيتمهايي از سفارشات مختلف وجود داشته باشد ولي هر آيتم سفارش تنها با يك محصول ارتباط دارد.

 

ايجاد يك ارتباط يك به يك (One-to-One or 1:1) :

در ارتباط يك به يك ، يك ركورد از جدول A نمي تواند بيش از يك ركورد متناظر در جدول B داشته باشد و همچنين يك ركورد در جدول B نمي تواند بيش از يك ركورد متناظر در جدول A داشته باشد. اين نوع از ارتباط غير معمول بوده و ممكن است منجر به تغييراتي در طراحي بانك اطلاعاتي شما گردد.

علت غير معمول بودن اين نوع ارتباط در اين است كه در بيشتر حالات ، اطلاعات اين دو جدول بسادگي قابل ادغام در يك جدول مي باشد. بطور مثال ، فرض كنيد شما يك جدول با عنوان PingPong در بانك اطلاعاتي Northwind اضافه نماييد كه شامل اطلاعات پرسنلي مي باشد كه در مسابقات پينگ پنك داخل شركت ، حضور مي يابند و در اين جدول اطلاعاتي نظير نام مستعار ، سطح بازي شخص ، زمان مناسب بازي و ... براي هر شخص ذخيره مي گردد يك راه اضافه كردن كليه فيلدهاي مورد نياز به جدول كارمندان مي باشد (Employees) ولي به دو دليل اين روش مناسب نمي باشد اول اينكه اطلاعات اين مسابقات مقطعي و موقت بوده و در آينده نيز كاربردي نخواهد داشت و دوم اينكه فيلدهاي اضافه شده براي بسياري از كارمندان خالي مي ماند زيرا تنها عده محدودي از كارمندان در مسابقات پينگ پنگ شركت خواهند كرد لذا ترجيح داده شده است كه جدول جديد اضافه گردد بديهي است ارتباط اين جدول با  جدول كارمندان يك ارتباط يك به يك مي باشد.

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

  • اگر دو جدول موضوع مشتركي دارند به احتمال زياد با استفاده از  كليد اصلي دو جدول كه يكسان مي باشند مي توانيد رابطه مذكور را ايجاد نماييد.
  • اگر دو جدول موضوعات متفاوت با كليدهاي اصلي مختلفي دارند شما مي توانيد يكي از جداول را انتخاب كرده و كليد اصلي آنرا به جدول ديگر اضافه نماييد (كه در جدول ديگر كليد خارجي مي شود)

 

خوب دوستان اينم از اين قسمت – در قسمت بعد مطالب مرتبط با بازبيني و اصلاح طراحي بانك اطلاعاتي را با هم مرور مي كنيم.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالهاي متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

در اين بخش به مرحله پنجم (تعيين و تشخيص ارتباطات مورد نياز) خواهيم پرداخت.

تعيين و تشخيص ارتباطات (Relationships) : تا مراحل قبل شما اطلاعات را به طبقات مختلف تقسيم بندي نموديد ( در قالب تعدادي جدول) حال لازم داريد بنحوي به بانك اطلاعاتي ، اطلاعات لازم را داده تا توانايي بازيابي اطلاعات مرتبط با هم را داشته باشد به اين عمل ايجاد و تعيين ارتباط گفته مي شود.

بطور مثال در فرم سفارش خريد شما اطلاعاتي از جدول مختلف مشاهده مي نماييد :

  • فيلد آدرس مشتري ، نام مشتري و ... از جدول مشتري (Customer Table)
  • نام فروشنده از جدول كارمندان (Employee Table)
  • شماره سفارش ، تاريخ سفارش ، تعداد كالا ، قيمت واحد و ... از جدول سفارش و جزييات سفاش (Order Table,OrderDetail Table)
  • نام كالا و .... از جدول كالاها (Products Table)

همانطور كه مي بينيد اين اطلاعات كه از لحاظ منطقي كاملا مرتبط مي باشند ولي با توجه به قوانين مديريت بانك هاي اطلاعاتي رابطه اي (Relational Database Management System-RDBMS)در قالب چندين جدول نگهداري مي گردند. اكنون لازم است شما ارتباطات بين اين جداول را تعريف نموده تا موتور بانك اطلاعاتي رابطه اي ، توانايي تشخيص اطلاعات مرتبط با هم را داشته باشد.

مثال : فرض كنيد شما مي خواهيد بصورت تلفني از يكي از كارمندان فروش ، سئوالاتي در خصوص يك سفارش نماييد. شماره تلفن كارمندان در جدول كارمندان (Employees) و اطلاعات فروش صورت گرفته در جدول  سفارشات (Orders Table) ثبت شده است هنگامي كه شما به بانك اطلاعاتي مي گوييد كه هدف شما كدام فروش مي باشد بانك اطلاعاتي قادر است شماره تلفن فروشنده را با توجه به ارتباط بين دو جدول بيابد و به شما نمايش دهد. امكان پذيري اين قضيه به اين خاطر است كه فيلد EmployeeID كه كليد اصلي در جدول كارمندان(Employees Table) مي باشد در جدول سفارش فروش(Table Orders) نيز تكرار گرديده است. در اصطلاحات بانك اطلاعاتي ، به فيلد EmployeeID در جدول سفارشات فروش (Orders Table) كليد خارجي (Foreign Key) گفته مي شود زيرا اين فيلد در جدول ديگري بعنوان كليد اصلي مي باشد.

شكل ذيل نشاندهنده اين رابطه مي باشد.

 

 

 

براي ايجاد يك ارتباط بين دو جدول – جدول A و جدول B- شما كليد اصلي يك جدول را به جدول ديگر نيز اضافه  مي نماييد لذا اين فيلد در هر دو جدول طاهر مي شود. اما در پاسخ به اين سئوال كه از كليد اصلي كدام جدول استفاد نماييد؟ براي تعيين ارتباط صحيح ، شما مي بايد ابتدا طبيعت ارتباط را تشخيص دهيد.اينجا ما سه نوع ارتباط بين جداول داريم :

  • ارتباط يك به چند (One-to-many relationships)
  • ارتباط چند به چند (Many-to-many relationships)
  • ارتباط يك به يك (One-to-one relationships)

خوب دوستان اينم از اين قسمت – در قسمت بعد در خصوص روش تشخيص نوع و ماهيت ارتباط به تفصيل صحبت خواهيم كرد و مثالهاي مورد نياز را خواهيم آورد.

 

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالهاي متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

در اين بخش به ادامه مبحث مرحله چهارم (تعيين و تشخيص فيلدهاي مورد نياز) خواهيم پرداخت.

مثال : اضافه كردن فيلدها به جدول محصولات : شركت بازرگاني  Northwind فروش محصولات غذايي وارداتي را در كشورهاي مختلف انجام مي دهد. كارمندان شركت از يك گزارش با عنوان "محصولات يك سفارش" (Products On Order) براي پيگيري محصولاتي كه سفارش داده شده است استفاده مي نمايند.

 

 

گزارش فوق بيانگر آن است كه جدول محصولات كه شامل حقايقي درباره محصولات فروخته شده مي باشد مي بايست شامل فيلدهايي براي نام  محصول (Product Name) ، موجودي انبار ، ميزان سفارش و موارد ديگر باشد. اما نظر شما در مورد فيلدهايي نظير نام تامين كننده (Supplier Name) و شماره تلفن تامين كننده (Phone Number) چيست ؟ براي ايجاد گزارش شما نياز داريد تا تامين كننده هر محصول را بدانيد.

يك راه گنجانيدن فيلدهاي Supplier Name و Phone Number به جدول Products مي باشد اما اين اقدام دردسرهاي زيادي ايجاد مي نمايد تا بخواهد مشكل را حل نمايد. از آنجاييكه شركت Northwind ممكن است از يك تامين كننده محصولات مختلفي خريداري نمايد نام و شماره تلفن تامين كننده مي بايست چندين بار در جدول Products تكرار گردد و به فرض اگر شماره تلفن تامين كننده تغيير نمايد تغيير مربوطه مي بايست بر روي كليه محصولاتي كه از او تامين شده است صورت پذيرد.

تا حال جداول به شكل ذيل مي باشند و در ادامه باز هم بهينه خواهند شد.

Products:

  • Product Name
  • Unit Price
  • Units In Stock
  • Units On Order

Supplier:

  • Company Name
  • Address
  • Contact
  • Phone

در عوض ، يك جدول با عنوان تامين كننده (Supplier) ايجاد نماييد كه دو فيلد جداگانه براي نام و شماره تلفن تامين كننده دارد.در مرحله بعد ، شما فيلدي به جدول محصولات اضافه خواهيد نمود كه به وسيله آن بتوان مشخصات تامين كننده مربوطه را تشخيص داد.

فيلدهاي كليد اصلي (Primary Key Fields) :

قدرت بانكهاي اطلاعاتي رابطه اي (Relational Database Management System - RDBMS) نظير MS SQL Server ، Oracle و ... ناشي از توانايي آنها در قابليت هايي نظير جستجوي سريع و بازيابي اطلاعات ذخيره شده در جداول مختلف با هم مي باشد. براي كارايي حداكثري بانك هاي اطلاعاتي ، هر جدول مي بايست شامل يك فيلد و يا يك مجموعه از فيلدها (بصورت تركيبي) باشد كه بصورت منحصر به فرد ، معرف هر ركورد مجزاي ذخيره شده در جدول باشد.در اكثر موارد يك عدد منحصر به فرد نظير شماره پرسنلي‌ (Employee ID) و يا شماره سريال (Serial Number) اين نقش را عهده دار مي باشند. در اصصلاحات بانك هاي اطلاعاتي به اين اطلاعات كليد اصلي (Primary Key) جدول گفته مي شود. بانك اطلاعاتي از كليد اصلي در راستاي سريعتر شدن ارتباط اطلاعات بين جداول مختلف و بازيابي اطلاعات از چند جدول مختلف استفاده مي نمايد.

اگر شما در حال حاضر اطلاعاتي نظير كد محصول(Product Number) طراحي نموده ايد كه بصورت منحصر به فرد معرف محصولات شما مي باشد شما مي توانيد از آن به عنوان كليد اصلي جدول مربوطه استفاده نماييد. اما ابتدا مطمئن شويد كه مقادير فيلد كليد براي ركورد هاي مختلف ، متفاوت خواهد بود.بانك هاي اطلاعاتي اجازه ورود اطلاعات تكراري را در فيلد كليد اصلي نخواهند داد. بطور مثال از فيلد نام پرسنل به عنوان كليد اصلي استفاده ننماييد. شما به آساني مي توانيد دو شخص با يك نام پيدا نماييد.

اگر شما در حال حاضر هيچ ذهنيتي در خصوص مشخصه منحصر به فرد يك جدول نداريد، شما مي توانيد يك فيلد عددي به جدول اضافه نماييد و نوع آن را طوري انتخاب نمايد كه بصورت اتوماتيك با شماره هاي متناوب پر شود. براي انجام اينكار در بانك SQL Server يك فيلد مثلا با عنوان Code ايجاد و نوع آن را Int يا Numeric قرارداد و در قسمت مشخصات فيلد مقدار Identity را برابر Yes قرار دهيد تا خود SQL Server عمليات شماره گذاري اتوماتيك ركوردهاي جديد را انجام دهيد. در بانك اكسس نيز مي توانيد نوع فيلد را Auto Number قرار دهيد.

هنگام انتخاب فيلدهاي كليد اصلي موارد ذيل را در نظر داشته باشيد :

  • بانك هاي اطلاعاتي اجازه ورود مقادير تكراري و همچنين عدم ورود مقدار(Null Value) را در فيلد كليد اصلي نمي دهند. يعني فيلد يا فيلدهايي كه به عنوان كليد اصلي معرفي مي شوند مي بايد حتما مقدار داشته و علاوه بر آن مقدار آن منحصر به فرد باشد.
  • شما ممكن است از كليد اصلي جهت جستجوي اطلاعات استفاده مايد لذا نبايد به گونه اي باشد كه طولاني بوده و يا آن را فراموش نماييد.گاهي لازم است آن را به تعداد مشخصي از حروف يا اعداد و يا به محدوده مشخصي محدود نماييد.
  • اندازه كليد اصلي بر سرعت عمليات در بانك اطلاعاتي شما تاثير خواهد داشت.در هنگام ايجاد فيلدهاي كليد اصلي ، شما مي توانيد مشخصاتي را جهت محدوديت اندازه آن تنظيم نماييد. براي حداكثر كارايي ، كوچكترين اندازه ممكن كه مقادير مورد نظر شما را پوشش مي دهد را انتخاب نماييد.

مثال : تعيين كليد اصلي جدول محصولات : كليد اصلي جدول محصولات شماره شناسايي محصول مي باشد زيرا هر شماره محصول بيانگر يك محصول متفاوت بوده و شما هيچ دو محصولي با شماره يكسان نداريد.

در بعضي از موارد شما ممكن است نياز به تعيين بيش از يك فيلد به عنوان كليد اصلي داشته باشيد زيرا هيچ فيلدي به تنهايي منحصر به فرد نمي باشد براي مثال در جدول جزييات سفارش (Order Details) از دو فيلد به عنوان كليد اصلي استفاده شده است : شماره سفارش (Order ID) و شمار محصول‌ (Product ID)

در مرحله بعد شما علت اين انتخاب را خواهيد فهميد.

 

 

 

خوب دوستان اينم از اين قسمت – در قسمت بعد مطالب مرتبط با تشخيص و تعيين ارتباطات بين جدول را با هم مرور مي كنيم.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالها متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

در اين بخش به مرحله چهارم ، تعيين و تشخيص فيلدهاي مورد نياز خواهيم پرداخت.

تعيين و تشخيص فيلدهايي كه نياز داريد :

براي تعيين فيلدهاي يك جدول ، بايد تشخيص دهيد كه چه چيزهايي را درباره اشخاص ، چيزها ، وقايع و رويدادها مي خواهيد بدانيد(در جدول ذخيره نماييد). شما مي توانيد فيلدها را به مثابه مشخصات يك جدول فرض نماييد.هر ركورد-Record- (يا سطر-Row) در جدول شامل همان مجموعه از فيلدها يا مشخصات مي باشد بطور مثال ، يك فيلد آدرس در جدول مشتري شامل آدرس كليه مشتريان خواهد بود. هر ركورد در جدول شامل داده هايي درباره يك مشتري و فيلد آدرس شامل آدرس براي آن  مشتري خواهد بود.

نكاتي در خصوص تشخيص فيلدها : در اينجا نكاتي مفيد ، جهت تشخيص فيلدهاي مورد نياز آمده است :

  • ارتباط هر فيلد را با موضوع جدول بررسي نماييد : هر فيلدي كه توصيف كننده موضوع جدول ديگري باشد به آن جدول تعلق دارد. بعدا ، هنگامي كه شما ارتباط بين جداول را تعريف نماييد خواهيد ديد كه شما قادريد اطلاعاتي كه شامل فيلدهايي از جداول مختلف مي باشد را از طريق تركيب بدست آوريد. اگر شما دريافتيد كه اطلاعاتي در چند جدول تكرار شده است اين موضوع نشانه آن است كه شما در تعدادي از جداول فيلدهايي غير ضروري داريد.

 

  • داده هاي محاسباتي يا مشتق را لحاظ ننماييد : در بيشتر حالات ، شما نبايد نتايج محاسبات را در جداول ذخيره نماييد.در عوض ، شما مي توانيد رويه هايي را به بانك اطلاعاتي يا برنامه خود بيفزاييد كه در موارد نياز نتايج را براي شما محاسبه نمايند.براي مثال ، در فرم گزارش محصولات در سفارش(Products On Order) (در قسمت دوم آمده است) ، جمع جزيي (Subtotal)  هر طبقه از محصولات (نظير طبقه نوشيدني ها Beverages) كه در بانك Northwind وارد شده ، چاپ گرديده است. در يك طراحي صحيح فيلدي جهت نگهداري اين گونه داده هاي محاسباتي لازم نبوده و كافيست رويه اي در بانك اطلاعاتي (مثلا يك رويه ذخيره شده(Stored Procedure) در بانك اطلاعاتي Sql Server) بنويسيد تا اين محاسبه را انجام دهد و يا اگر از يك گزارش ساز استفاده مي نماييد مي توانيد يك متغير محاسباتي در قسمت Footer مربوط به طبقه محصولات ايجاد و نوع آن را Sum بر روي فيلد قيمت كل قرار دهيد.

 

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

 

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

 

خوب دوستان اينم از اين قسمت – در قسمت بعد مثالي از معرفي فيلدها و همچنين توضيحات مرتبط با فيلدهاي كليد(Primary Keys) و مثال مربوطه را با هم مرور مي كنيم.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالها متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

از اين قسمت به بعد مراحل پنجگانه گفته شده در مقاله دوم را به صورت مفصل توضيح داده و مثالها و تصاوير مرتبط با هر كدام را خواهيم آورد.

در اين بخش به مرحله دوم تعيين و تشخيص هدف و مرحله سوم تعيين جداول مورد نياز خواهيم پرداخت.

تعيين و تشخيص هدف (Determining the Purpose) :

اولين مرحله در طراحي يك بانك اطلاعاتي تعيين كردن هدف اصلي بانك اطلاعاتي و اينكه براي چه كاري قرار است استفاده شود. اين هدف نماياننده اطلاعاتي است  كه شما مي خواهيد از بانك اطلاعاتي استخراج نماييد و با توجه به اين هدف شما امكان شناسايي موضوعاتي كه شما مي بايست در خصوص آن حقايقي را ذخيره نموده (جداول – Tables) و همچنين حقايقي كه نياز به نگهداري در خصوص هر يك از اين موضوعات (فيلدهاي جدول - Fields) مي باشد را داريد.

براي تعيين اين هدف مي بايست كارهاي مختلفي انجام دهيد بطور مثال با افرادي كه قرار است از بانك اطلاعاتي استفاده نمايند مصاحبه نماييد. برگزاري جلسات طوفان فكري(Brainstorm) با موضوع "مسائلي كه مي خواهيد بانك اطلاعاتي توانايي پاسخگويي به آن را داشته باشد" يكي ديگر از انتخاب ها مي باشد. به علاوه مي توانيد با تهيه طرحهاي اوليه از گزارشاتي كه قرار است ايجاد شود به شناخت بهتر هدف كمك نماييد.نسبت به جمع آوري فرمهايي كه در حال حاضر جهت ثبت اطلاعات استفاده مي شود اقدام نماييد.

كليه اطلاعاتي كه با طرق بالا جمع آوري گرديده اند در مراحل مختلف طراحي قابل استفاده خواهند بود.

مثال : پيگيري فروش و انبارداري

فرض كنيد كه شركت Northwind ، يك شركت واردات و صادرات مي باشد كه در زمينه مواد غذايي خاص در سراسر جهان فعاليت نموده و خواهان يك بانك اطلاعاتي است كه به شركت توانايي پيگيري فروشها و همچنين اطلاعات انبارداري (موجودي) را بدهد.

ابتدا با نوشتن ليستي از پرسشهايي كه مي بايست بانك اطلاعاتي توانايي پاسخگويي به آنها را داشته باشد آغاز مي نماييم :

  • فروش هر يك از محصولات در ماه قبل چه مقدار بوده است؟
  • بهترين مشتريان ما از  كدام مناطق هستند؟
  • تامين كننده محصولات با بالاترين فروش كيست؟

سپس ، نسبت به جمع آوري كليه فرمها و  گزارشاتي كه شامل اطلاعات مورد نياز در بانك مي باشد اقدام نماييد. مثلا در حال حاضر شركت Northwind از يك گزارش چاپي حاوي ليست  محصولاتي كه سفارش داده شده اند استفاده مي نمايد و همچنين فرمي جهت ثبت اطلاعات يك سفارش جديد دارد بنابراين شما مي بايست اين دو را تهيه و براي مراحل بعد بررسي نماييد.

 

 

در حين مصاحبه ها متوجه مي شويد كه شركت همچنين به يك ليست چاپي حاوي اطلاعات پستي مشتريان ، پرسنل و تامين كنندگان مي باشد.

بعد از جمع آوري اين اطلاعات شما آماده رفتن به مرحله بعد مي باشيد.

 

تعيين جداولي كه شما نياز داريد  (Determining the Tables You Need) :

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

تعيين جداول لزوما اطلاعاتي در خصوص ساختار جداول به شما نمي دهد. آنها به شما آنچه كه مي خواهيد بدانيد را گفته ولي شامل چگونگي طبقه بندي اطلاعات در داخل جداول نمي باشد.

 

فرم سفارش (Order Form) كه بالا آمد را نگاه كنيد اين فرم شامل حقايقي در خصوص مشتري – آدرس مشتري (Customer Order) و شماره تلفن (Phone Number) – و همچنين حقايق در خصوص سفارش – نام محصول (Product Name) ، قيمت واحد (Unit Price) و ... – مي باشد. اين فرم تعدادي از حقايقي كه نياز است در بانك ذخيره نماييد را مشخص مي نمايد اما شما اگر حقايق مرتبط با مشتري و حقايق مرتبط با سفارش را در يك جدول ذخيره نماييد مطمئنا دچار  مشكلات ذيل خواهيد شد :

·    خطاپذيري به سبب داده هاي تكراري : فرض نماييد كه يك مشتري تا كنون سه سفارش داشته است. در اين حالت شما مي توانيد براي هر سفارش يكبار آدرس و شماره تلفن مشتري را به بانك اطلاعاتي خود اضافه نماييد. اما اين چندباري احتمال خطا در ورود اطلاعات را زياد مي نمايد.

از طرفي ، اگر محل سكونت يك مشتري تغيير نمايد شما يا بايد تناقض در اطلاعات را بپذيريد و يا اينكه كليه اطلاعات فروش به مشتري را پيدا كرده و نسبت به تغيير آدرس هر كدام اقدام نماييد.بنابراين بسيار بهتر است يك جدول با عنوان Customer ايجاد و اطلاعاتي نظير آدرس و شماره تلفن را تنها يكبار براي هر مشتري وارد نماييد و سپس در صورت نياز به تغيير ، تنها احتياج به يك تغيير خواهيد داشت.

 

·    حذف اطلاعات ارزشمند : فرض نماييد يك مشتري جديد كه تا كنون تنها يك سفارش داشته است سفارش خود را لغو نمايد هنگامي كه شما سفارش را از جدولي كه شامل اطلاعات مشتري و سفارش بصورت همزمان مي باشد حذف نماييد شما همچنين آدرس و تلفن مشتري را نيز حذف نموده ايد اما شما نياز داريد اين اطلاعات را نگهداري نموده تا بتوانيد كاتالوگ محصولات خود را براي او ارسال نماييد. دوباره همان نتيجه حالت قبل بدست آمد يعني بهتر است اطلاعات مشتري در جدول جداگانه اي ذخيره شود در اين صورت شما مي توانيد بدون حذف اطلاعات مشتري تنها اطلاعات مربوط به سفارش لغو شده را حذف نماييد.

 

با دقت در اطلاعاتي كه مي خواهيد از بانك اطلاعاتي استخراج نماييد نگريسته و آن را به موضوعات اساسي  كه مي خواهيد قابل پيگيري باشد تقسيم نماييد بطور مثال مشتريان ، كارمندان ، محصولات ، خدمات قابل ارائه و ... ، هر كدام از اين موضوعات يك كانديد براي يك جدول جداگانه مي باشد.

نكته : يك استراتژي براي تقسيم اطلاعات در قالب جداول دقت در حقايق مختلف و تعيين اينكه آن حقيقت مرتبط با چه موضوعيست مي باشد.براي مثال ، در فرم سفارش بالا ، آدرس مشتري مرتبط با فروش نيست آن مرتبط با مشتري مي باشد كه اين شما را به ايجاد يك جدول جداگانه براي مشتريان رهنمون مي سازد. در محصولات در گزارش سفارش بالا ، شماره تلفن تامين كننده مرتبط با محصولات در انبار نبوده و مرتبط با تامين كننده مي باشد و بالطبع شما را به ايجاد جدولي جهت تامين كنندگان رهنمون مي سازد.

 

مثال : تعيين جداول بانك اطلاعاتي Northwind  :

فرم سفارش و همچنين محصولات موجود در گزارش سفارش شامل اطلاعاتي با موضوعات ذيل مي باشد :

·        مشتريان

·        تامين كنندگان

·        محصولات

·        سفارشات

      با كمك اين ليست شما مي توانيد طرح اوليه از جداول بانك اطلاعاتي و همچنين تعدادي از فيلدهاي هر كدام به دست آوريد بانك نهايي Northwind شامل تعداد بيشتري جدول خواهد بود و در ادامه خواهيد ديد كه چگونه جداول ديگري را براي بهبود طراحي اضافه خواهيم نمود.

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالها متعددي آورده شده است.

 

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

مراحل طراحي يك بانك اطلاعاتي :

فرايند طراحي يك بانك اطلاعاتي شامل مراحل مختلفي مي باشد كه در اين مقاله و مقاله هاي آتي به جزييات هر مرحله پرداخته خواهد شد.

مرحله اول : تعيين و تشخيص هدف اصلي بانك اطلاعاتي : اين موضوع كمك مي كند تا بتوانيد حقايقي كه قرار است در بانك ذخيره شوند را تشخيص دهيد.

مرحله دوم : تعيين و تشخيص جداولي كه شما نياز داريد : هنگامي كه شما هدف بانك اطلاعاتي را بصورت واضح بدانيد قادر خواهيد بود تا اطلاعات مورد نياز را به موضوعات جداگانه نظير Employees و Orders تقسيم نماييد كه هر يك از اين موضوعات معادل يك جدول در بانك اطلاعاتي مي باشد.

مرحله سوم : تعيين و تشخيص فيلدهايي كه شما نياز داريد : تصميم گيري در خصوص اينكه چه اطلاعاتي را در هر جدول مي خواهيد نگهداري نماييد . هر طبقه از اطلاعات در يك جدول به عنوان فيلد (field) ناميده شده و به صورت يك ستون در جدول نمايش مي يابد. بطور مثال ، يك فيلد در جدول Employees مي تواند نام خانوادگي (Last Name) و فيلد ديگر مي تواند تاريخ استخدام (Hire Date) باشد.

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

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

 

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

 

خطاهاي رايج در طراحي :

در طراحي بانك هاي اطلاعاتي چند دام رايج وجود دارد كه ممكن شما نيز در آن گرفتار شويد. اين مشكلات و خطاها ممكن است باعث شود تا استفاده از داده ها و نگهداري آنها با مشكلاتي همراه گردد.در ذيل نشانه هايي آمده است كه لازم است در صورت مشاهده آنها لازم است نسبت به ارزيابي مجدد بانك طراحي شده اقدام نماييد :

·    شما يك جدول با تعداد زيادي فيلد داريد ولي همه آنها در مورد يك موضوع نيستند. براي مثال ، يك جدول ممكن است هم شامل فيلدهاي مرتبط با مشتريان(Customers) و هم فيلدهاي مرتبط با اطلاعات فروش (Sales) باشد.اطمينان حاصل نماييد كه هر جدول تنها شامل اطلاعات مرتبط با يك موضوع باشد.

·    فيلدهايي وجود دارند كه در بصورت عمدي در اكثر ركورد ها اطلاعاتي ندارد در اين صورت ممكن است فيلد متعلق به جدول ديگري باشد و براي ركورد هاي جدول موجود كاربرد ندارد بنابراين كاربران همواره آن را خالي مي گذارند.

·    شما تعداد زيادي جدول داريد كه داراي فيلدهاي مشترك مي باشند. براي مثال ، شما جداولي براي فروش فروردين (FarSales) ، فروش ارديبهشت(OrdSales) و ... داريد و يا دو جدول جداگانه براي ثبت اطلاعات مشتريان محلي (Local Customers) و مشتريان دوردست (Remote Customers) ايجاد كرده ايد كه دقيقا شامل اطلاعات يكساني مي باشند.در اين حالت كليه جدول مشابه (مرتبط با يك موضوع) را يكي نموده و اگر نياز بود فيلدهاي جديدي را براي تشخيص تفاوتها ايجاد نماييد بطور مثال كليه اطلاعات با موضوع فروش را در يك جدول با عنوان فروش (Sales) ذخيره نموده و يك فيلد تحت عنوان ماه فروش (Month) نيز به جدول اضافه نماييد تا فروش ماههاي مختلف قابل تشخيص باشد.

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالها متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

در قسمت هاي مختلف موارد ذيل را خواهيد ديد :

  • مقدمه
  • فرايند طراحي بانك اطلاعاتي
    • مراحل طراحي بانك اطلاعاتي
    • مسائل و مشكلات رايج در طراحي
  • تعيين اهداف پروژه
  • تعيين جداول مورد نياز
  • تعيين فيلدهاي مورد نياز
    • نكاتي در خصوص چگونگي تعيين فيلدها
    • فيلدهاي كليد اصلي
  • تعيين ارتباطات مورد نياز
  • تصحيح و بهينه سازي(مرور) طراحي صورت گرفته

 

مقدمه : بعضي از بانك هاي اطلاعاتي رايج كه جنبه كاربرد عمومي دارند (نظير MS Access) ابزاري را جهت طراحي بانكهاي اطلاعاتي رابطه اي در اختيار مي گذارند كه حتي براي كساني  كه تبحر كافي در طراحي بانك ندارند نيز قابل استفاده مي باشد.

در صورتي كه شما از امكانات اين ابزارهاي رضايت نداشته و يا مي خواهيد مطالب بيشتري در خصوص چگونگي طراحي بانك هاي اطلاعاتي رابطه اي بدانيد اين مقاله براي شما مفيد مي باشد اين مقاله به شما چگونگي برنامه ريزي و طراحي يك بانك اطلاعاتي را از صفر به شما نشان مي دهد. در مثالهاي عملي از بانك اطلاعاتي Northwind كه در بانك هاي اطلاعاتي MS SQL Server و همچنين MS Access بصورت پيش فرض قرار دارد استفاده شده است.

 

 

فرايند طراحي بانك اطلاعاتي :

كليد فهم فرايند طراحي بانك اطلاعاتي رابطه اي در فهم نحوه ذخيره سازي داده ها در يك بانك اطلاعاتي رابطه اي نهفته مي باشد بانك اطلاعاتي رابطه اي براي اينكه با حداكثر كارايي (زمان كم/استفاده كم از منابع و ...) و بصورت دقيق (اطلاعات صحيح و قابل اطمينان) اطلاعات را براي شما فراهم نمايد لازم است اطلاعات كاملي از موضوعات مختلفي كه در جداول جداگانه ذخيره مي شود داشته باشد. بطور مثال شما ممكن است جدولي را داشته باشيد كه تنها حاوي حقايقي در مورد كارمندان (Employees)بوده و جدول ديگري كه تنها حاوي حقايقي در خصوص فروش هاي(Sales) صورت گرفته باشد.

 

 

در هنگامي كه شما نياز به اطلاعاتي داريد ممكن است نياز داشته باشيد اين حقايق را با روشهاي مختلفي تركيب  نموده و سپس بصورت گزارش نمايش دهيد بطور مثال شما ممكن است جهت تهيه گزارشي در خصوص ميزان فروش هر كارمند(Employee) نسبت به تركيب حقايق موجود در جدول Employees با حقايق موجود در جدول فروش (Sales) اقدام نماييد.

اولين كاري كه شما در خصوص طراحي بانك اطلاعاتي مي بايست انجام دهيد تشخيص و طبقه بندي حقايق و اطلاعاتي است كه لازم است در قالب موضوعات جداگانه ذخيره گردند و  در مرحله بعد بايستي به نحوي به بانك اطلاعاتي ارتباط بين اين موضوعات را معرفي نماييد تا بانك اطلاعاتي قادر باشد اطلاعات صحيح و مرتبط را در مواقع نياز فراهم نمايد.

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

در اين مقاله چند رويه مفيد كه در برنامه نويسي با كمك SQL Server مي تونه مفيد باشه براتون توضيح مي دم لازم به ذكر است منبع اكثر رويه ها سايت www.SqlSeverCentral.com مي باشد و نويسنده رويه نيز در متن رويه هاي آمده است و من طي  كارهايي كه كردم اين رويه ها رو مفيد تشخيص دادم اميدوارم براي شما هم مفيد باشه.

  1. با كمك اين رويه مي تونيد يك پيغام را به كليه كاربراني كه در حال حاضر به SQL Server متصل هستند ارسال كنيد بطور مثال اگر بخواهيد SQL Server را Stop نماييد مي توانيد ابتدا يك پيغام به كليه كاربران ارسال و ساعت مشخصي را اعلام نماييد تا  كاربران در مدت باقيمانده از نرم افزارها خارج شوند.

 

CREATE PROC notify_users(@notification VARCHAR(100) = 'SQL Server shutting down') AS

 

BEGIN

 

/*******************************************************************************************************

Written by: Narayana Vyas Kondreddi

Date written: November 26th 2000

Purpose: To send NET SEND messages to all the connected SQL Server users in an NT Local Area Network

Input parameters:

Message to be sent

Tested on: SQL Server Version 7.0, SQL Server 2000

Email: answer_me@hotmail.com

*******************************************************************************************************/

SET NOCOUNT ON

 

DECLARE @msg VARCHAR(250)

DECLARE @hostname sysname

 

SELECT @hostname= min(RTRIM(hostname))

FROM

  master.dbo.sysprocesses (NOLOCK)

WHERE

  hostname <> ''

 

WHILE @hostname is not null

BEGIN

 set @msg='exec master.dbo.xp_cmdshell "net send ' + RTRIM(@hostname) + ' ' + RTRIM(@notification) + ' "'

EXEC (@msg)

    

SELECT @hostname= min(RTRIM(hostname))

FROM

              master.dbo.sysprocesses (NOLOCK)

WHERE

              hostname <> ''

              and hostname > @hostname

 END

SET NOCOUNT OFF

END

 

  1. با كمك اين رويه مي توانيد از داخل Stored Procedure ها ، Trigger ها و ... پيغام هايي دلخواه ايجاد شده را در داخل فايل متني ذخيره نماييد از اين رويه براي ايجاد يك مدير ثبت وقايع (Log Manager)   مي توانيد استفاده نماييد بطور مثال جهت ثبت ورود و خروج كاربران ، ويرايش اطلاعات(ايجاد ، اصلاح و حذف) و ... اين رويه كاربرد دارد.

 

CREATE PROC write_to_file

@msg VARCHAR(100),

@file VARCHAR(100),

@overwrite BIT = 0

AS

 

/*

  Written by: Narayana Vyas Kondreddi

  Date written: January 12th 2001

  Purpose: To log messages to text files from stored procedures/triggers/sql scripts

  Input parameters: message, file name, overwrite flag (1 to overwrite, 0 to append to file, 0 is the default)

  Example: EXEC write_to_file 'Duplicates found','C:\logfile.txt',0

  Tested on: SQL Server Version 7.0, 2000

  Remarks: You should have permissions required through access file system through xp_cmdshell

           See SQL Server Books Online for xp_cmdshell if you are having problems with this procedure

  Email: answer_me@hotmail.com

  Homepage: http://vyaskn.tripod.com

*/

 

BEGIN

          SET NOCOUNT ON

          DECLARE @execstr VARCHAR(255)

          SET @execstr = RTRIM('echo ' + COALESCE(LTRIM(@msg),'-') + CASE WHEN (@overwrite = 1) THEN ' > ' ELSE ' >> ' END + RTRIM(@file))

          EXEC master..xp_cmdshell @execstr

          SET NOCOUNT OFF

END

خوب دوستان اينم از اين مطلب – در قسمت هاي بعد رويه هاي مفيد ديگري رو باهم مرور مي كنيم.

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

 

بنام خدا

با سلام

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

براي اينكار دو روش متداول وجود دارد:

  1. پشتيبان گيري و بازيابي Backup & Restore
  2. تهيه اسكريپت از ساختار بانك اطلاعاتي مبدا و اجراي آن بر روي كامپيوتر مقصد(SQL Script)

روش 1 : پشتيبان گيري و بازيابي اطلاعات : در اين روش شما لازم است از بانك اطلاعاتي مبدا يك پشتيبان كامل (Complete Backup) (البته هر تركيبي از پشتيبان ها كه قابل بازيابي باشد نيز قابل استفاده است و مي بايست عمل بازيابي نيز تناسب با آن صورت پذيرد) تهيه نموده و بر روي دستگاه جديد عمليات بازيابي را انجام دهيد ولي از آنجا در مقالات قبلي بصورت مفصل در خصوص پشتيبان گيري و بازيابي اطلاعات در MS SQL Server صحبت شد جهت اطلاعات بيشتر به مقالات مرتبط مراجعه نماييد.

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

روش دوم : تهيه اسكريپت از ساختار بانك اطلاعاتي مبدا و اجراي آن بر روي كامپيوتر مقصد :

همانطور كه ذكر شد در اين روش تنها ساختار بانك اطلاعاتي منتقل شده (بانك اطلاعاتي بدون داده) كه با انتخاب گزينه هاي مناسب مي توان جداول ، ويوها.رويه هاي ذخيره شده ، ارتباطات.ايندكسها و ... را در بانك جديد ايجاد نمود.در اين روش با توجه به تنظيماتي كه شما در فرم مربوطه انجام مي دهيد دستورات T_SQL بصورت اتوماتيك تهيه مي شود.

نكته : از اين روش براي انتقال جزيي از ساختار بانك نيز مي توان استفاده نمود كه اين مورد به خصوص در خصوص بروزرساني و اضافه نمودن اشياء جديد بسيار مفيد مي باشد بطور مثال اگر شما چند جدول ، ويو و ... به بانك اطلاعاتي اضافه كرده باشيد و بخواهيد براي يكي از مشتريان ارسال نماييد اسكريپت را تنها براي اشياء جديد تهيه و ارسال مي نماييد.

 

جهت ايجاد يك اسكريپت از ساختار بانك اطلاعاتي مراحل ذيل را انجام دهيد :

ابتدا بر روي بانك اطلاعاتي مورد نظر كليك راست را فشرده و گزينه All TasksàGeneral sql script… را انتخاب نماييد تا فرم مربوط به ايجاد اسكريپت باز شود .شكل ذيل :

 

 

در فرم نمايش يافته سه Tab وجود دارد كه در General Tab اشياء مورد نظر را جهت ايجاد اسكريپت انتخاب مي نماييد ابتدا دكمه Show All را فشار دهيد تا ليست كليه اشياء موجود در بانك اطلاعاتي جاري در سمت چپ (Objects on Manufact) نمايش يابد حال مي توانيد از ليست مذكور اشياء مورد نظر خود را انتخاب (انتقال به سمت راست (Object to be scripted) ( نماييد در صورتي  كه هدف تهيه اسكريپت كامل باشد تنها لازم است گزينه script all obejcts را انتخاب نموده و يا بطور مثال اگر مي خواهيد تنها ويوها را منتقل نمايد تنها گزينه All Views را تيك بزنيد.

 

 

 

در تب دوم يا Formatting شما گزينه هاي ديگري را مي توانيد انتخاب نماييد كه مهمترين آنها عبارتند از :

دو گزينه اول كه بصورت پيش فرض نيز تيك خورده اند مرتبط با ايجاد دستورات ايجاد و حذف اشياء مي باشد ( بطور مثال اگر جدولي با عنوان Product داشته باشيد در اين حالت دستورات T- SQL مورد نياز جهت حذف Drop Table Product …  و سپس ايجاد با ساختار جديد Create Table Product … بصورت اتوماتيك ايجاد مي شود) طبيعي است در صورتي كه بخواهيد اسكريپت جهت بروز رساني ساختار يك بانك تهيه نماييد انتخاب اين گزينه هاي اجباري است زيرا لازم است ابتدا هر شي حذف و مجددا با ساختار جديد ايجاد شود.

 

 

گزينه مهم ديگر Generate scripts for all dependent objects مي باشد كه در صورتي كه تعدادي از اشيا را جهت تهيه اسكريپت انتخاب كرده باشيد با انتخاب اين گزينه تهيه اسكريپت هم براي خود اشيا انتخاب شده و هم براي اشيا مرتبط با آن صورت مي پذيرد لذا مي بايست در انتخاب اين گزينه در مواردي كه بانك اطلاعاتي داراي اطلاعات مي باشد دقت نماييد.

 

در تب سوم يا Options تنظيمات ديگري قابل انجام مي باشد كه مهمترين آنها در ذيل توضيح داده مي شود :

Script database : در اين صورت براي ايجاد بانك اطلاعاتي نيز دستورات T_SQL تهيه مي شود(Create Database Manufact ….)  كه جز در اولين سري نبايد اين گزينه را انتخاب نماييد وگرنه كل داده هاي شما از بين خواهد رفت.

 

 

Script index,scrip trigres,script Primary keys,… : از روي معناي اين سه گزينه مي توان فهميد كه چه عملي صورت مي پذيرد پس در بسياري از موارد لازم است اين سه گزينه را انتخاب نماييد تا ايندكس ها . كليد ها و ... و كلا اشيا مرتبط با جداول نيز در اسكريپت تهيه شده لحاظ گردد.

ايجاد ساختار بر روي دستگاه جديد : بعد از انجام مراحل فوق يك يا چند فايل با پسوند sql ساخته مي شود كه لازم است بر روي sql server دستگاه مقصد اجرا گردد جهت انجام اينكار در Enterprise Manager گزينه ToolsàSQL Query Analyzer را انتخاب نماييد تا محيط مربوطه نمايش يابد حال در قسمت بالا بانك اطلاعاتي مقصد را انتخاب نماييد (بصورت پيش فرض Master مي باشد) و سپس آيكن Open (در اينجا Load SQL Script) را كليك نموده و فايل sql كه مرحله قبل تهيه كرده ايد را انتخاب و باز نماييد در اينصورت دستورات T_SQL تهيه شده مشاهده مي گردد در اين حالت دكمه RUN (فلش سبز رنگ) را فشرده تا دستورات اجرا و ساختار مورد نظر ايجاد و يا بروزرساني گردد.لازم به ذكر است در صورت لزوم و تسط بر دستورات T_SQL مي توانيد تغييرات دلخواه را بر روي دستورات داده و يا آنها را اضافه و كم نماييد و سپس اجرا نماييد.

 

 

خوب دوستان اينم از اين مطلب

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بازیابی و پشتیبان گیری اطلاعات - قسمت آخر

بنام خدا

با سلام

خوب در اين سري مقالات سعي شده تا مفاهيم و روش پشتيبان گيري و بازيابي اطلاعات در بانك اطلاعاتي Microsoft Sql Server2000 رو براتون شرح بدم هر چند اين مطلب بروز نيست ولي افراد زيادي با اون مشكل دارن و هنوز هم مشاهده مي شه اين مسئله رو جدي نمي گيرن و وقتي جدي مي گيرن كه دير شده و بايد كلي هزينه كنن تا شايد بتونن اطلاعات از دست رفته رو برگردونن

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

 

بازيابي بانك اطلاعاتي از طريق SQL Server Enterprise Manager :

در اين قسمت روش بازيابي يك بانك اطلاعاتي با استفاده از ابزار مربوطه در محيط SQL Server Enterprise Manager شرح داده شده است و در موارد ضروري تصاوير فرمهاي مرتبط جهت فهم بهتر آورده شده است.

قدم اول : اگر قرار است اطلاعات را بر روي يك بانك اطلاعاتي موجود بازيابي نماييد ابتدا بانك اطلاعاتي مورد نظر را انتخاب نموده و با استفاده از منوي سريع (Righ Click) روي گزينه All TasksàRestore Database… كليك نماييد.(يا با انتخاب Databases و انجام عمليات فوق)

 

قدم دوم : با انتخاب گزينه Restore Database… فرم مربوطه نمايش داده مي شود و شما مي توانيد نتظيمات مورد نظر را انجام دهيد.

تذكر : در خصوص انواع بازيابي مقاله قسمت دوم در خصوص بازيابي و پشتيبان گيري را مطالعه نماييد.

در ذيل فرم مربوطه نمايش يافته است در اين مثال قرار است بازيابي اطلاعات بر روي بانك اطلاعاتي Manufact صورت پذيرد.

 

 

 

 

توضيحات قسمت هاي مختلف فرم:

  • Restore as database : عنوان بانك اطلاعاتي كه قرار است بازيابي بر روي آن صورت پذيرد كه اگر يكي از بانك اطلاعاتي موجود باشد بازيابي بر روي آن صورت پذيرفته و اگر نامي را وارد نماييد كه در حال حاضر وجود ندارد ابتدا بانك اطلاعاتي مورد نظر ايجاد شده و سپس بازيابي بر روي آن صورت مي پذيرد.
  • Restore : در اين قسمت با انتخاب Database (مانند شكل فوق) شما مي توانيد نام يكي از بانك هاي اطلاعاتي موجود را به عنوان منبع بازيابي انتخاب نماييد كه در اينصورت ليست آخرين تركيب پشتيبان هاي موجود مجاز(در صورت وجود) كه قابل بازيابي مي باشد نمايش مي يابد (كه در شكل بالا آخرين پشتيبان كامل كه از بانك Manufact تهيه شده آمده است) ولي شما در صورتي كه قصد داريد از نسخه هاي قديمي تر جهت بازيابي استفاده نماييد در ليست First backup to restore يكي از پشتيبان هاي قبلي را انتخاب نماييد. در اينجا اگر بخواهيد از پشتيبان هاي بانك اطلاعاتي ديگري جهت بازيابي استفاده نماييد از ليست Show backups of database بانك اطلاعاتي مورد نظر را انتخاب نماييد كه در اينصورت در قسمت ذيل آن ليست پشتيبان هاي مجاز بانك اطلاعاتي انتخاب شده نمايش مي يابد.

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

 قدم سوم : در Tab بعدي يعني Options نيز لازم است تنظيمات مورد نياز را انجام دهيد كه به اهم آنها در ذيل اشاره شده است :

 

 

Force restore over existing database : در صورتي كه بازيابي بر روي يك بانك اطلاعاتي موجود صورت پذيرد مي بايست اين گرينه را تيك بزنيد در غير اينصورت پيغام خطا نمايش خواهد يافت.

Restore as : در Grid دو ستونه موجود ستون دوم با عنوان Restore as نشاندهنده مسير و عنوان فايل داده و لاگ بانك اطلاعاتي است كه قرار است بازيابي بر روي آن صورت گيرد بنابراين حتما مسير و عنوان فايل را قبل از بازيابي چك و در صورت نياز اصلاح نماييد.

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

 

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

 

خوب دوستان اينم از اين قسمت

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

پشتیبان و بازیابی اطلاعات - قسمت  چهارم

بنام خدا

با سلام

خوب در اين سري مقالات سعي شده تا مفاهيم و روش پشتيبان گيري و بازيابي اطلاعات در بانك اطلاعاتي Microsoft Sql Server2000 رو براتون شرح بدم هر چند اين مطلب بروز نيست ولي افراد زيادي با اون مشكل دارن و هنوز هم مشاهده مي شه اين مسئله رو جدي نمي گيرن و وقتي جدي مي گيرن كه دير شده و بايد كلي هزينه كنن تا شايد بتونن اطلاعات از دست رفته رو برگردونن

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

 

پشتيبان گيري از بانك اطلاعاتي از طريق SQL Server Enterprise Manager :

در اين قسمت روش پشتيبان گيري از يك بانك اطلاعاتي با استفاده از ابزار مربوطه در محيط SQL Server Enterprise Manager شرح داده شده است و در موارد ضروري تصاوير فرمهاي مرتبط جهت فهم بهتر آورده شده است.

قدم اول : ابتدا بانك اطلاعاتي كه مي خواهيد از آن پشتيبان (Backup) تهيه نماييد را انتخاب نموده و با استفاده از منوي سريع (Righ Click) روي گزينه All TasksàBackup Database… كليك نماييد.

در شكل ذيل بانك اطلاعاتي با نام Manufact جهت پشتيبان گيري انتخاب شده است :

 

 

قدم دوم : با انتخاب گزينه Backup Database… فرم مربوطه نمايش داده مي شود و شما مي توانيد نوع Backup مورد نظر خود را انتخاب نماييد

تذكر : در خصوص انواع Backup مقاله قسمت سوم در خصوص بازيابي و پشتيبان گيري را مطالعه نماييد.

در ذيل فرم مربوطه نمايش يافته است:

 

 

توضيحات قسمت هاي مختلف فرم:

  • Backup : انتخاب نوع Backup مورد نظر
  • Destination : در اين قسمت مقصد(محل) پشتيبان مشخص مي شود كه مي تواند ديسك محلي كامپيوتر (Disk) و يا نوار مغناطيسي (Tape) باشد كه چون در شكل فوق Tape بر روي دستگاه نصب نبوده تنها پشتيبان گيري بر روي ديسك امكان پذير بوده است بعد از تعيين نوع مسير با زدن دكمه Add… مي توان يا يك فايل و يا يك Backup Device را به عنوان مقصد تعيين نمود كه تعيين يك فايل متداولتر بوده و در اين حالت مسير و يك نام براي پشتيبان انتخاب مي نماييد.
  • Overwrite : شما مي توانيد پشتيبان جديد را در ادامه يك فايل و يا Backup Device نوشته (در صورتي كه فايل قبلا ايجاد شده باشد و يك يا چند پشتيبان قبلا به آن اضافه شده باشد) كه در اين صورت مي بايست گزينه Append to media را انتخاب نماييد و يا اينكه با انتخاب گزينه overwrite existing media اطلاعات قبلي فايل يا Device تعيين شده را حذف و تنها اطلاعات پشتيبان فعلي در آن قرار گيرد.
  • Schedule : در صورتي كه بخواهيد در همان لحظه از بانك پشتيبان تهيه نماييد دكمه Ok را فشار داده تا عمليات مورد نظر صورت پذيرد ولي در صورتي كه بخواهيد اين پشتيبان بصورت اتوماتيك و در زمان يا زمانهاي مقرر تهيه شود با تيك زدن گزينه Schedule و فشردن دكمه ... اين كار امكان پذير مي باشد.

تذكر : در Tab بعدي يعني Options از فرم بالا گزينه هاي ديگري را نيز مي توانيد تعيين نماييد كه با توجه به اهميت كمتر از توضيح آنها صرف نظر شده است.

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

 

 

 

همانطور كه مشاهده مي نماييد در صورتي كه بخواهيد تنها يك بار در زمان مقرر پشتيبان تهيه شود One Time را انتخاب و تاريخ (On Date) و ساعت انجام عمليات (On Time) را مشخص مي نماييد ولي در صورتي كه بخواهيد در زمانهاي مقرر و منظم اين عمليات صورت پذيرد با انتخاب  Recurringو فشردن Change… مي توانيد برنامه مورد نظر خود را تنظیم نماييد.

 

 

در اين صفحه شما با تعيين گزينه هاي مختلف برنامه مورد نظر خود را مي توانيد تعيين نماييد كه در شكل فوق كاربر با انتخاب پشتيبان گيري بر مبناب هفته(Weekly) و تعيين روزهاي جمعه هر هفته (Fri) و با تعيين ساعت 12:00:00 قبل از ظهر مشخص كرده است كه اين پشتيبان هفته اي يكبار اولين دقيقه روزهاي جمعه تكرار مي گردد.

 

تذکر مهم : در صورتی که هر JOB ي را در SQL Server تعريف نماييد كه قرار است طبق زمانبندي مشخص انجام شود (مانند Job پشتيبان گيري فوق) مي بايست سرويس  SQL Server Agent در زمان مورد نظر در حال اجرا باشد(Start) بهتر است بعد از نصب SQL Server هر دو سرويس SQL Server و SQL Server Agent را Start كرده و تيك مربوط به Auto Start Service When OS Starts را بزنيد تا در صورت Restart كردن دستگاه بصورت اتوماتيك هر دو سرويس Start شوند.

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

برنامه ریزی منابع سازمان - قسمت هفتم

بنام خدا

با سلام

خوب با توجه به يكسري مباحثي كه من اين اواخر در  مورد مفهوم ERP داشتم متوجه شدم كه متاسفانه درك كامل و روشني از اين مفهوم وجود نداره و همين موجب سردرگمي خيلي ها شده است

در اين سري مقالات سعي شده تا مفهوم ERP و نرم افزارهاي پشتيبان ERP با نگاهي علمي شرح داده بشه تا در شناخت و انتخاب نرم افزار مناسب بتونه كمك كنه

يك اپيدمي كه جديدا در شركتهاي نرم افزاري پيش اومده اينه كه يك كلمه ERP به عنوان نرم افزاراشون اضافه مي كنن و ظرف چند ثانيه رقيب نرم افزارهاي مثل SAP يا ORACLE مي شن اينطور پيشرفتم بد نيستا J

خوب حال ادامه مطلب :

دامنه كاربرد برنامه ريزي منابع سازمان :

برنامه ريزي منابع سازمان –ERP- و نسل قبل از آن يعني برنامه ريزي منابع توليد –MRP2- در شركتهايي با مشخصات مختلف عملياتي گرديده است كه مي توان به نمونه هاي ذيل اشاره نمود:

ساخت براي موجودي (Make To Stock)

ساخت طبق سفارش(Make To Order)

طراحي طبق سفارش(Design To Order)

محصول تركيبي(Complex Product)

محصول ساده(Simple Product)

چند كارخانه اي(Multiple Plants)

تك كارخانه اي(Single Plants)

توليد پيمانكاري(Contrac Manufacturers)

توليد كنندگان داراي شبكه هاي توزيع

توليدكنندگان با عرضه مستقيم به مشتري

توليد كنندگان با عرضه به توزيع كنندگان

تجارت هايي كه تحت كنترل دولت مي باشند

توليد كنندگان اسمبل كار و كپي كار

توليد فرايندي(Process Manufacturing)

توليد تكراري (Repetitive Manufacturing)

توليد كارگاهي(Job Shop)

توليد روندي (Flow Shop)

توليد با سرعت زياد

توليد با سرعت كم

 

در گستره شركتهايي كه مبادرت به توليد مي نمايند (سازمانهاي توليدي) ، برنامه ريزي منابع سازمان-ERP- بعنوان يك سيستم كاربردي فراگير مي باشد. همانطور كه در فوق ملاحضه مي نماييد در شركتهايي كه ERP استقرار يافته مشخصه هاي مختلفي وجود دارد كه مطمئنا هر شركت توليدي ديگري در يك يا چند دسته از مشخصه هاي صدق مي نمايد و نمي تواند خارج از اين نوعها باشد بنابراين امكان پياده سازي برنامه ريزي منابع سازمان در هر سازمان توليد وجود دارد.

ما بسيار مي بينيم افرادي مدام صحبتهايي نظير اين جمله را مي گويند "ما با ساير شركتها تفاوت داريم ، ما منحصر به فرد هستيم و آن براي ما كار نمي كند" و اما چيزي كه هيچ يك از اين افراد نمي گويند آنست كه " ما با ساير شركتها تفاوت داريم ، ما منحصر به فرد هستيم  مديريت حسابداري عمومي براي شركت ما كار نمي كند" در صورتي كه ERP از لحاظ منطقي مانند مديريت حسابداري عمومي(GAAM-General Accepted Accounting Management) مي باشد.

ERP مجموعه اي از بهترين تجارب استاندارد(Best Practices) در خصوص اين قسمت از يك تجارت مي باشد.

تفاوت اصلي بين اين دو در اينست كه ERP و نسل هاي قبل از آن تنها در حدود 40 سال به وجود آمده اند در صورتي كه دفتر داري دوبل و مسائل مرتبط با آن در حدود 400 سال قدمت و كاربرد دارند

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

  

 

 

 

 

 

بازیابی و پشتیبان گیری در MS SQL Server

بنام خدا

با سلام

خوب در اين سري مقالات سعي شده تا مفاهيم و روش پشتيبان گيري و بازيابي اطلاعات در بانك اطلاعاتي Microsoft Sql Server2000 رو براتون شرح بدم هر چند اين مطلب بروز نيست ولي افراد زيادي با اون مشكل دارن و هنوز هم مشاهده مي شه اين مسئله رو جدي نمي گيرن و وقتي جدي مي گيرن كه دير شده و بايد كلي هزينه كنن تا شايد بتونن اطلاعات از دست رفته رو برگردونن

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

 

انواع پشتيبان گيري (Backup Types) در بانك اطلاعاتي MS SQL Server :

چندين روش مختلف براي پشتيبان گيري از بانك اطلاعاتي در SQL Server وجود دارد كه مي توان با استفاده تركيبي از آنها ، امكان بازيابي اطلاعات را در موارد غير مترقبه ، فراهم نمود.

 

نوع Backup

توضيحات

Complete

پشتيبان گيري از كل بانك اطلاعاتي

Differential

پشتيبان گيري فقط از قسمتي كه نسبت به آخرين پشتيبان گيري كامل(Complete) تغيير نموده است صورت مي پذيرد.

Transaction Log

پشتيبان  گيري از بخشي از فايل Log  كه فعال بوده و آزاد نمودن قسمتي از Log كه غير فعال مي باشد.

File/Filegroup

پشتيبان گيري از فايلهاي مختلف و يا گروههاي فايل مختلف بصورت جداگانه

File Differential

تركيب نمودن پشتيبان  گيري Differential و File/Filegroup

 

توضيح : در خصوص نوع پشتيبان گيري File/Filegroup بايد گفت در صورتي كه تعداد فايلهاي داده اي كه بانك اطلاعاتي شما دارد بيش از يك عدد باشد از اين روش و بالطبع نوع آخر (File Differential) استفاده مي توان نمود.لازم به ذكر است در هنگام ايجاد هر بانك اطلاعاتي بصورت پيش فرض دو فايل كه يكي مخصوص داده ها و يكي مخصوص Log نمودن ترانزكشن هاي صورت گرفته مي باشد ايجاد مي گردد ولي شما مي توانيد بيش از يك فايل براي داده و همچنين بيش از يك فايل براي Log داشته باشيد كه در همان صفحه ايجاد بانك مي توان آنها را تعريف نمود و يا بعد از ايجاد بانك با رجوع به فرم Properties بانك اطلاعاتي مربوطه فايلهايي را به آن اضافه نمود استفاده از بيش از يك فايل در مواردي كه چندين هارد وجود دارد در  كنار يك طراحي مناسب مي تواند سرعت پردازشهاي شما را تا حد بسيار زيادي افزايش دهد. ان شاء ا... در يك مقاله مستقل در اين خصوص بتفصيل صحبت خواهم كرد.

 

مقصد كليه پشتيبان هاي تهيه شده مي تواند ديسك محلي كامپيوتر و يا نوار مغناطيسي (Tape) باشد و عمليات پشتيبان گيري هم از طريق Enterprise Manager و هم با استفاده از دستورات Transact-SQL امكان پذير مي باشد.

جهت پشتيبان گيري از طريق Enterprise Manager مي بايست ابتدا بانك اطلاعاتي مورد نظر را انتخاب نموده ، سپس از طريق منوي سريع(Right Click) گزينه All TasksàBackup Database… فرم پشتيبان گيري قابل دسترس خواهد بود.

 

مثال : در دستور ذيل ابتدا يك Backup Device مجازي به نام MyNwind1 ايجاد و سپس يك پشتيبان كامل بر روي Device تعريف شده گرفته شده است:

USE master
EXEC sp_addumpdevice 'disk', 'MyNwind_1', 
   DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_1.dat'
 
-- Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_1

 

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

معرفی  Stored Procedure و User Defined Function

بنام خدا

با سلام

در اين مقاله به معرفي ، مشتركات و تفاوتهاي Stored Procedure و User Defined Function ها در بانك اطلاعاتي MS SQL Server مي پردازيم تا در مواقع لزوم گزينه مناسب را انتخاب نماييم.

از لحاظ كاركرد Stored Procedure ها و User Defined Function ها كاركرد مشابهي دارند بنحوي كه هر دو امكان ايجاد يك دسته دستورات SQL را جهت كاربردهاي آتي فراهم مي نمايند.اين قابليت ذخيره سازي ، كارايي زيادي داشته چون از طرق ذيل موجب صرفه جويي زمان برنامه نويسي مي گردد:

  • امكان استفاده مجدد كد نوشته شده در ساير برنامه ها كه موجب كاهش زمان توسعه سيستمها مي گردد.
  • مخفي نمودن جزييات زبان SQL بنحوي كه تنها توسعه دهندگان بانك اطلاعات با آن سر و كار داشته و توسعه دهندگان نرم افزار تنها با زبان هاي سطح بالاي برنامه نويسي درگير مي شوند.
  • امكان نگهداري متمركز را فراهم نموده بطوري كه قوانين تجاري (Business Logic) تنها لازم است در يك محل (سطح بانك اطلاعاتي) تغيير نمايد و پس از تغيير ، كليه برنامه هاي كاربردي مختلف ، متاثر مي گردند.

در نگاه اول Stored Procedure ها و User Defined Function ها كاملا شبيه به هم مي باشند ولي تفاوتهاي ظريفي بين آنها وجود داشته كه در ذيل مهمترين آنها آمده است :

  • Strored Procedure ها بصورت مستقل با استفاده از دستور Exec قابل فراخواني مي باشند در صورتي كه فراخواني Function ها تنها از طريق يك عبارت SQL امكان پذير است بطور مثال شما در ليست فيلدهاي يك دستور Select و يا در شروط Where مي توانيد از توابع استفاده نماييد.
  • استفاده از Stored Procedure ها امكان اعمال سطح دسترسي پيشرفته تري را فراهم مي نمايد و مي توان از تعريف دسترسي كاربران و برنامه هاي كاربردي به Stored Procedure بجاي تعريف دسترسي به جداول استفاده نمود.در مقايسه با دسترسي هاي معمول ، اين روش امكان اعمال محدوديت بيشتر با تعيين دسترسي تا سطوح ريزتر را فراهم مي نمايد. بطور مثال در حالتي كه قرار است يك كاربر با فروش هر كالا ، يك عدد از موجودي انبار كم نمايد شما مي توانيد با ايجاد يك Stored Procedure كه عمليات كسر موجودي را انجام مي دهد و تخصيص اجراي اين Stored Procedure به كاربر مربوطه ، تنها دسترسي لازم را كاربر داده و مانع از امكان تغيير ساير اطلاعات توسط كاربر شد.
  • توابع (Function) همواره بايد يك مقدار برگرداند (مقدار اسكالر و يا يك جدول) ولي يك Stored Procedure مي تواند هر مقدار ممكن را برگردانده و يا هيچ مقدار بر نگرداند(يكسري عمليات انجام دهد مانند رويه هايي كه براي Insert,Update,Delete نوشته مي شود و يا رويه هايي كه بدون بازگرداندن مقداري ، بروزرساني هاي ديگري انجام مي دهد.)

با همه اين مطالب Stored Procedure ها يكي از مفيد ترين و گرانبهاترين اشيا در بانكهاي اطلاعاتي بوده و شما مي توانيد با سرمايه گذاري بر روي استفاده صحيح از آنها ، بهره بسيار زيادي ببريد.

 

مقاله از Mike Chapple سايت About.Com J

 

بنام خدا

با سلام

خوب در اين سري مقالات سعي شده تا مفاهيم و روش پشتيبان گيري و بازيابي اطلاعات در بانك اطلاعاتي Microsoft Sql Server2000 رو براتون شرح بدم هر چند اين مطلب بروز نيست ولي افراد زيادي با اون مشكل دارن و هنوز هم مشاهده مي شه اين مسئله رو جدي نمي گيرن و وقتي جدي مي گيرن كه دير شده و بايد كلي هزينه كنن تا شايد بتونن اطلاعات از دست رفته رو برگردونن

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

 

مدلهاي بازيابي (Recovery Models) :

در MS Sql Server 2000 ما سه مدل بازيابي داريم كه عبارتند از :

  1. Full
  2. Bulk-Logged
  3. Simple

نكته : مدل بازيابي كليه بانك هاي سيستمي يعني Master,MSDB,TempDB ، مدل Simple مي باشد.

نكته : مدل بازيابي كليه بانك هاي اطلاعاتي كه كاربران ايجاد مي نمايند بصورت پيش فرض Full در نظر گرفته مي شود كه بعد از ايجاد بانك مي توان در صفحه Properties و در تب Options آنرا تغيير داد.

مدل Full : در صورتي كه مدل بانك اطلاعاتي شما Full باشد Sql Server كليه ترانزكشن ها حتي ترانزكشن هاي دسته اي را نيز Log مي نمايد در اينجا حداكثر بازيابي ممكن مد نظر بوده و بالطبع امن ترين حالت ممكن براي سيستمهاي كاربردي مي باشد.

مدل Bulk-Logged : در اين مدل براي عمليات دسته اي ورود اطلاعات ، كمترين Log صورت مي پذيرد(تنها تخصيص و آزادسازي حافظه در Log ثبت مي شود) و بالطبع در مواردي كه داده هاي زيادي از طريق اين نوع عمليات وارد شده باشد امكان بازيابي وجود ندارد لازم به توضيح است دستور Select Into و BulkCopy از اين نوع عمليات دسته اي بوده و اگر مدل بازيابي شما Bulk-Logged باشد داده هايي كه از اين طريق وارد شده قابل بازيابي نيست.

مدل Simple : در اين مدل Log صورت نمي پذيرد و روش مناسبي براي بانك هاي عملياتي نمي باشد.

در ذيل بصورت خلاصه انواع روشهاي Backup ممكن مرتبط با هر يك از مدل هاي بازيابي آمده است:

توضيح : در سطر عنوان انواع روشهاي تهيه پشتيبان Backup Types)) و در ستون اول مدلهاي بازيابي آمده است.

 

File/Filegroup

Transaction Log

Differential

Complete

Recovery Model/Backup

غير فعال

غير فعال

قابل انجام

ضروري

Simple

قابل انجام

ضروري

قابل انجام

ضروري

Bulk-Logged

قابل انجام

ضروري

قابل انجام

ضروري

Full

 

مثال : با توجه به جدول بطور مثال اگر قرار باشد حداكثر اطلاعات ممكن بازيابي گردد و مدل بازيابي Full باشد لازم است هم آخرين فايل پشتيبان كه با روش Complete و هم آخرين فايل پشتيبان كه با روش Transaction Log تهيه شده در دسترس باشد بنابراين هر دو نوع ضروري تشخيص داده شده است توجه كنيد وضعيت براي Bulk-Logged نيز همين گونه است ولي اطلاعات موجود در Log براي اين حالت شامل اطلاعات دسته اي نمي باشد.

مثال : در هر سه مدل بازيابي روش پشتيبان گيري Differential قابل انجام مي باشد و اين بدان معني است كه در صورت دسترس بودن فايل پشتيبان Complete مربوط به يك بانك و فايل پشتيبان Differential همان بانك(كه بعد از آن تهيه شده باشد) بازيابي بيشتري صورت مي گيرد (تا زمان Differential) و در دو مدل آخر   با در دسترس بودن فايل پشتيبان )Transaction Logكه بعد از دو نوع ديگر تهيه شده باشد) تا تاريخ تهيه آن ، امكان بازيابي وجود خواهد داشت.

 

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

بنام خدا

با سلام

خوب با توجه به يكسري مباحثي كه من اين اواخر در  مورد مفهوم ERP داشتم متوجه شدم كه متاسفانه درك كامل و روشني از اين مفهوم وجود نداره و همين موجب سردرگمي خيلي ها شده است

در اين سري مقالات سعي شده تا مفهوم ERP و نرم افزارهاي پشتيبان ERP با نگاهي علمي شرح داده بشه تا در شناخت و انتخاب نرم افزار مناسب بتونه كمك كنه

يك اپيدمي كه جديدا در شركتهاي نرم افزاري پيش اومده اينه كه يك كلمه ERP به عنوان نرم افزاراشون اضافه مي كنن و ظرف چند ثانيه رقيب نرم افزارهاي مثل SAP يا ORACLE مي شن اينطور پيشرفتم بد نيستا J

خوب حال ادامه مطلب :

سير پيشرفت تدريجي برنامه ريزي منابع سازمان :

سري قبل در خصوص مرحله سوم توسعه برنامه ريزي منابع سازمان صحبت شد در اين بخش چهارمين مرحله توسعه ERP را با هم مرور مي كنيم.

مرحله چهارم : برنامه ريزي منابع سازمان – Enterprise Resource Planning (ERP) :

آخرين مرحله پيشرفت در اين روند توسعه اي ، برنامه ريزي منابع سازمان يا به اختصار ERP نام گرفت.شالوده و اساس برنامه ريزي منابع سازمان همان MRP2 بوده اما در ERP قابليتهاي بيشتري به فرايندهاي موجود افزوده شده و همچنين در فرايندهايي كه چندين واحد سازماني با آن سروكار دارند موثرتر گرديده است از طرف ديگر يكپارچگي با حوز مالي و ابزارهاي مرتبط با زنجيره تامين قدرتمندتر گرديده است و كليه فرايندهاي مرتبط در سازمان را پوشش مي دهد.

در اينجا يك تعريف كامل از برنامه ريزي منابع سازمان (ERP) را مي آوريم :

برنامه ريزي منابع سازمان – ERP – فرايند پيش بيني و ايجاد تعادل بين عرضه و تقاضا (Demand and Supply) (نياز/تامين) را انجام مي دهد.

ERP  عبارتست از مجموعه اي از ابزارهاي پيش بيني ، برنامه ريزي و زمانبندي كه در گستره سازمان فعاليت نموده و در نهايت موارد ذيل را پوشش مي دهد :

  • ارتباط بين مشتريان و تامين كنندگان را با يك چرخه تامين كامل ، فراهم مي نمايد.
  • رويه هاي معتبر و موثقي را جهت تصميم سازي بكار مي گيرد.
  • هماهنگي مناسبي را بين فرايندهاي فروش ، بازاريابي ، اجرا ، لجستيك ، خريد ، مالي ، توسعه محصول و منابع انساني ايجاد مي نمايد.

اهداف ERP عبارتست از پشتيباني مشتريان با كيفيت بالا ، بهره وري ، كاهش هزينه ، كاهش انبارداري  و همچنين امكان مديريت موثر زنجيره تامين و تجارت الكترونيك را فراهم مي نمايد كه تحقق اين اهداف با بكارگيري ابزارهاي برنامه ريزي و زمانبندي ميسر مي گردد كه  در نهايت منجر به آن مي شود تا منابع – اعم از نيروي انساني ، مواد ، ماشين آلات و پول – به مقدار كافي در هنگام نياز در دسترس باشد.

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

علل قدرتمندتر بودن ERP نسبت به MRP2 عبارتست از :

  • بكارگيري يك ابزار برنامه ريزي منابع سازماني يكسان در سراسر سازمان
  • فراهم سازي ارتباط بلادرنگ بين داده هاي فروش ، اجرا و مالي
  • ارتباط دادن روشهاي برنامه ريزي منابع به محدوده گسترده تري از زنجيزه تامين كه شامل مشتريان و تامين كنندگان نيز مي گردد.

هدف اصلي از راه اندازي برنامه ريزي منابع سازمان يا ERP عبارتست از پيشبرد بهتر تجارت نسبت به گذشته ، در محيط بسرعت در حال تغيير و رقابتي امروز

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

پشتیبان گیری و بازیابی اطلاعات - MS SQL Server 2000 Backup & Restore

بنام خدا

با سلام

خوب در اين سري مقالات سعي شده تا مفاهيم و روش پشتيبان گيري و بازيابي اطلاعات در بانك اطلاعاتي Microsoft Sql Server2000 رو براتون شرح بدم هر چند اين مطلب بروز نيست ولي افراد زيادي با اون مشكل دارن و هنوز هم مشاهده مي شه اين مسئله رو جدي نمي گيرن و وقتي جدي مي گيرن كه دير شده و بايد كلي هزينه كنن تا شايد بتونن اطلاعات از دست رفته رو برگردونن

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

بطور مثال اگر شما يك شركت توليدي بوده و بر روي SQL Server خودتون 4 بانك با مشخصات ذيل داشته باشيد :

  1. بانك ISA Log كه كليه اطلاعات مربوط به كاركرد كاربران با اينترنت شركت در آن ذخيره مي شود. كه فرايندهايي وجود دارد كه بصورت اتوماتيك ميزان كاركرد هر شخص محاسبه مي نمايد.
  2. بانك TotalSystem85 كه شامل كليه اطلاعات سيستم جامع شركت (مالي/اداري/بازرگاني/توليد و ...) مي باشد و مربوط به سال گذشته است.
  3. بانك TotalSystemCurrent كه شامل كليه اطلاعات سيستم جامع شركت (مالي/اداري/بازرگاني/توليد و ...) مي باشد و مربوط به سال جاري است.
  4. بانك اطلاعات TaxiServices كه شامل اطلاعات استفاده پرسنل از تاكسي سرويس جهت ماموريتهاي اداري مي باشد.

بنظر شما برنامه پشتيبان گيري از اين 4 بانك اطلاعاتي مي بايد يكسان باشد بديهي است جواب منفي است يك برنامه احتمالي مي تواند به صورت ذيل باشد.

  1. اطلاعات Log مربوط به كاركرد اينترنت كه با سرعت زيادي رشد مي كند و احتمالا ظرف مدت كوتاهي به چندين گيگابايت خواهد رسيد از طريق مديريت فايلهاي Sql Server و يا از طريق جداسازي بانك اطلاعات مربوط به Log كاركرد اينترنت از بانك محاسبات كاركرد پرسنل با اينترنت جدا شده و سپس بصورت 3 روز يكبار از اطلاعات بانك محاسبات كاركرد پرسنل پشتيبان گيري شود

علاوه به آن بهتر است روالي تهيه شود تا محتويات اطلاعات Log كاركرد اينترنت مربوط به يكماه آخر نگهداري شده و ساير اطلاعات پاك شود زيرا از لحاظ يك شركت توليدي نگهداري Log مربوطه اهميت آنچناني ندارد البته دقت كنيد اين مسئله در مورد شركت ديگر كه مثلا سرويس اينترنت ارائه مي دهد مي تواند كاملا متفاوت باشد.

  1. در خصوص بانك اطلاعاتي TotalSystem85 با توجه به اينكه مربوط به سال قبل مي باشد شما مي توانيد از ماه 4 به بعد كه كليه سيستمهاي سال قبل بصورت خواندني در مي آيند پشتيبان گيري را با فواصل زيادي مثلا 15 روز يكبار تنظيم نماييد زيرا امكان تغيير اطلاعات و يا كم و زياد شدن داده هاي سال قبل بسيار كم و در مواردي صفر است.
  2. از آنجاييكه بانك اطلاعاتي TotalSystemCurrent حاوي اطلاعات جاري شركت بوده و بصورت لحظه اي به اطلاعات آن افزوده مي شود بايد برنامه فشرده تر و دقيقتري براي پشتيبان گيري از آن وجود داشته باشد يك برنامه مي تواند بصورت  ذيل باشد.

·        هر شب از بانك بصورت كامل پشتيبان تهيه شود.

·        نسخ كامل يكماه نگهداري شود و نسخه پشتيبان آخر ماه در گاوصندوق به مدت يكسال نگهداري شود.

·    در طول روز در دونوبت با فاصله زماني 6 ساعت پشتيبان Differential گرفته شود يكي ساعت 12 ظهر و يكي ساعت 6 بعد از ظهر(تقريبا وسط و پايان ساعت كاري)

·        در فواصل يكساعت به يكساعت Log Backup در ساعات كاري تهيه شود.

در خصوص انواع backup در مباحث بعد توضيح خواهم داد.

  1. با فرض اينكه ما بصورت هفته اي با تاكسي سرويس طرف قرارداد تسويه حساب مي نماييم مي توان هر شب يك پشتيبان كامل از بانك اطلاعاتي TaxiService تهيه و پشتيبان آخر هر هفته را براي مدت يكماه نگهداري نمود.

همانطور كه در مثالها مشهود است سناريوي پشتيبان گيري وابسته به پارامترهاي مختلفي است كه مي بايست با دقت آنها را لحاظ نموده تا در مواقع بحراني كه اطلاعات مفقود مي شود با اطمينان وسرعت قابل قبولي سيستمها را مجددا برپا نمود.

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

برنامه ریزی منابع سازمان ERP- قسمت پنجم

بنام خدا

با سلام

خوب با توجه به يكسري مباحثي كه من اين اواخر در  مورد مفهوم ERP داشتم متوجه شدم كه متاسفانه درك كامل و روشني از اين مفهوم وجود نداره و همين موجب سردرگمي خيلي ها شده است

در اين سري مقالات سعي شده تا مفهوم ERP و نرم افزارهاي پشتيبان ERP با نگاهي علمي شرح داده بشه تا در شناخت و انتخاب نرم افزار مناسب بتونه كمك كنه

يك اپيدمي كه جديدا در شركتهاي نرم افزاري پيش اومده اينه كه يك كلمه ERP به عنوان نرم افزاراشون اضافه مي كنن و ظرف چند ثانيه رقيب نرم افزارهاي مثل SAP يا ORACLE مي شن اينطور پيشرفتم بد نيستا J

خوب حال ادامه مطلب :

سير پيشرفت تدريجي برنامه ريزي منابع سازمان :

سري قبل در خصوص مرحله دوم توسعه برنامه ريزي منابع سازمان صحبت شد در اين بخش سومين مرحله توسعه ERP را با هم مرور مي كنيم.

مرحله سوم : برنامه ريزي منابع توليد – Manufacturing Resource Planning (MRP2) :

مرحله بعدي تكامل تحت عنوان برنامه ريزي منابع تولیدو يا به اختصار MRP2 شناخته شد(بخاطر تشخيص از برنامه ريزي نيازمندي مواد – MRP) . در اين مرحله شاهد پيشرفتهايي نسبت به Close-Loop MRP هستيم كه در برگيرنده سه آيتم جديد ذيل مي باشد :

  1. برنامه ريزي اجرا و فروش (Sales & Operations Planning) : يك پردازش قدرتمند كه موجب مي شود عرضه و تقاضا از لحاظ مقداري با هم متناسب باشند كه نهايتا به مديريت ارشد سازمان اجاز كنترل بيشتر بر فرايند اجراي سياست هاي تجاري را مي دهد.
  2. رابط مالي (Financial Interfaces) :قابليت تبديل و نگاشت برنامه اجرايي (در قالب تعداد ، كيلو گرم ، گالن و يا واحد هاي ديگر) به زبان مالي (ريال ، دلار و ...)
  3. شبيه سازي (Simulation) : قابليت پاسخگويي به سئوالات (چه مي شود – اگر) هم از لحاظ واحد هاي اندازه گيري و هم از جنبه هاي مالي ، شبيه سازي ناميده مي شود. در ابتدا از شبيه سازي تنها در موارد تجمعي و بصورت تقريبي (Rough-Cut) استفاده مي گرديد ولي امروزه ماژولهاي برنامه ريزي پيشرفته (Advanced Planning System-APS) امكان شبيه سازي هاي موثري را تا سطوح پايين ، فراهم مي نمايند.

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

برنامه ريزي منابع توليد – MRP2 :

متدي جهت برنامه ريزي موثر كليه منابع يك سازمان توليد مي باشد.در حالت ايده آل ، اين متد برنامه هاي اجرايي را در قالب واحدهاي اندازه گيری ، برنامه هاي مالي را در قالب دلار بيان نموده و علاوه بر آن با استفاده از شبيه سازي به سئوالات چه مي شود-اگر پاسخهاي لازم را مي دهد. MRP2 متشكل از توابع مرتبط مختلفي مي باشد : برنامه ريزي استراتژيك ، برنامه ريزي اجرا و فروش ، برنامه ريزي توليد ، زمانبندي اصلي ، برنامه نيازمندي مواد ، برنامه نيازمندي ظرفيت بهمراه سيستمهاي پشتيبان مرتبط با مواد و ظرفيت ها

خروجي حاصل از اين سيستمها با گزارشات مالي بصورت يكپارچه و پيوسته مي باشد و گزارشات مالي مختلفي مانند گزارش تعهدات خريد ، بودجه حمل و ... را نتيجه مي دهد.

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

برنامه ریزی منابع سازمان (Enterprise Resource Planning-ERP)-قسمت چهارم

بنام خدا

با سلام

خوب با توجه به يكسري مباحثي كه من اين اواخر در  مورد مفهوم ERP داشتم متوجه شدم كه متاسفانه درك كامل و روشني از اين مفهوم وجود نداره و همين موجب سردرگمي خيلي ها شده است

در اين سري مقالات سعي شده تا مفهوم ERP و نرم افزارهاي پشتيبان ERP با نگاهي علمي شرح داده بشه تا در شناخت و انتخاب نرم افزار مناسب بتونه كمك كنه

يك اپيدمي كه جديدا در شركتهاي نرم افزاري پيش اومده اينه كه يك كلمه ERP به عنوان نرم افزاراشون اضافه مي كنن و ظرف چند ثانيه رقيب نرم افزارهاي مثل SAP يا ORACLE مي شن اينطور پيشرفتم بد نيستا J

خوب حال ادامه مطلب :

سير پيشرفت تدريجي برنامه ريزي منابع سازمان :

سري قبل در خصوص مرحله اول توسعه برنامه ريزي منابع سازمان صحبت شد در اين بخش دومين مرحله توسعه ERP را با هم مرور مي كنيم.

مرحله دوم : Closed-Loop Material Requirement Planning :

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

اين موضوع يك پيشرفت بود. براي اولين با در روالهاي توليد يك مكانيزم قانونمند وجود داشت تا بتوان سفارشات را در يك محيط پويا (دائما در حال تغيير) جوابگو بود.اين موضوع بسيار مهم است زيرا در يك سازمان توليدي ، تغيير يك امكان و يا احتمال نيست بلكه يك واقعيت ، تنها حقيقت ثابت و تنها چيزي است كه از آن مطمئنيم. به رويه اي كه موجب جوابگويي به موقع به سفارشات شده و با تغييرات محيط هماهنگي ايجاد مي نمايد برنامه ريزي اولويت (Priority Planning) گفته مي شود.

اولويت ها در تقابل با ظرفيت ها

Capacity

Priority

Enough?

Which Ones?

Volume

Sequence

Loading

Scheduling

 

آيا اين پيشرفت كه بر پايه اولويت ها متمركز بود كليه مشكلات را مرتفع مي نمود؟آيا اين تمام چيزي را كه ما نياز داشتيم را پوشش مي داد؟ موضوع اولويت ها تنها نيمه ليوان است فاكتور مهم ديگر – ظرفيت – بهمان انداز چالش برانگيز مي باشد.

تكنيكهايي كه در برنامه ريزي ظرفيت هاي دخيل مي باشند به MRP گره زده شده است. بنابراين ابزارهايي براي پشتيباني موارد ذيل توسعه يافت :

  • Sales & Operations Planning : فرايند ايجاد هماهنگي بين خروجي توليد (Production Plan) و ساير فعاليتها بنحوي كه به بهترين نحو جوابگوي كليه فروش ها (Sales Plan and/or Forecasts) بوده در حاليكه كه كليه شاخصه هاي اصلي تجارت يعني سود آوري ، بهره وري و مزاياي رقابتي ناشي از زمان تحويل و ... را در نظر مي گيرد.( اين شاخصه ها در برنامه استراتژيك جامع شركت تعيين شده اند)
  • بسط و توسعه تعيين برنامه زماني ساخت (Master Scheduling) : پيش بيني زمان ساخت آيتمهاي تخصيص يافته به Master Scheduler بوده و به عنوان محركه فرايند Material Requirement Planning مي باشد اين برنامه نشاندهنده چيزهايي است كه شركت قصد توليد آن را داشته و در قالب مشخصي كه شامل مقدار و تاريخ هر كدامست بيان مي گردد

براي اينكه MPS بتواند اهداف مديريت را برآورده سازد ، ايد بطور كامل و دقيق با برنامه توليد (Production Plan) مطابقت داشته و برنامه فروش (Sales Plan) را پوشش دهد.

  • پيش بيني (Forecasting)، برنامه ريزي فروش (Sales Planning)و مديريت سفارشات مشتريان (Customer-Order Management) كه كلا تحت عنوان مديريت تقاضا (Demand Management) شناخته مي شود.
  • آناليز ظرفيت منابع (Rough-Cut Capacity Planning) : فرايند تبديل برنامه توليد و يا زمانبندي توليد  اصلي (‍Production Plan and/Or Master Production Schedule) به نيازمندي منابع كليدي نظير ماشين آلات ، نيروي انساني ، فضاي انبار ،توانايي فروشندگان و در بعضي موارد ارزش پولي

سيستمها در راستاي اجراي اين فعاليتها از تكنيكهاي مختلف برنامه ريزي كار جهت داخل كارخانه و تكنيكهاي برنامه ريزي تامين جهت كارهاي پيمانكاري واگذار شده به خارج از شركت ، استفاده نمودند.نتيجه اقدامات صورت گرفته منجر به ايجاد مرحله دوم توسعه گرديد كه با عنوان Close-Loop MRP نامگذاري گرديد.

اين مرحله از توسعه داراي چند مشخصه بارز مي باشد:

اين مرحله شامل چندين رويه بوده و منحصر به برنامه نيازمندي مواد نمي باشد.

شامل ابزارهايي است كه همزمان اولويت (Priority) و ظرفيت (Capacity) را مد نظر قرار داده و علاوه بر آن هم از توليد (Production) و هم از اجرا (Execution) پشتيباني مي نمايد.

اين مرحله اطلاعات لازم را جهت بازخور از مرحله اجرا به برنامه ريزي ، فراهم مي نمايد و امكان اصلاح برنامه ها در مواقع ضروري فراهم شده و بنابراين با تغيير شرايط ، اولويت ها همچنان معتبر مي باشند.

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

 

بنام خدا

با سلام

خوب با توجه به يكسري مباحثي كه من اين اواخر در  مورد مفهوم ERP داشتم متوجه شدم كه متاسفانه درك كامل و روشني از اين مفهوم وجود نداره و همين موجب سردرگمي خيلي ها شده است

در اين سري مقالات سعي شده تا مفهوم ERP و نرم افزارهاي پشتيبان ERP با نگاهي علمي شرح داده بشه تا در شناخت و انتخاب نرم افزار مناسب بتونه كمك كنه

يك اپيدمي كه جديدا در شركتهاي نرم افزاري پيش اومده اينه كه يك كلمه ERP به عنوان نرم افزاراشون اضافه مي كنن و ظرف چند ثانيه رقيب نرم افزارهاي مثل SAP يا ORACLE مي شن اينطور پيشرفتم بد نيستا J

خوب حال ادامه مطلب :

سير پيشرفت تدريجي برنامه ريزي منابع سازمان :

سير پيشرفت برنامه ريزي منابع سازماني داراي چهار مرحله مي باشد كه عبارتند از :

  1. برنامه نيازمندي مواد (Material Requirement Planning - MRP)
  2. برنامه نيازمندي مواد حلقه محصور (Closed-Loop Material Requirement Planning)
  3. برنامه ريزي منابع توليد ( MRP2- Manufacturing Resource Planning)
  4. برنامه ريزي منابع سازمان (Enterprise Resource Planning - ERP)

حال در ذيل سعي مي كنيم مراحل مختلف سير تكاملي برنامه ريزي منابع سازمان را با تفصيل بيشتر بيان نماييم :

مرحله اول : برنامه ريزي نيازمندي مواد (MRP-Material Requirement Planning) :

تولد ERP از دهه 60 ميلادي با MRP و تلاشهاي صورت گرفته در پردازش اطلاعات درخت محصول(Bill Of Material) صورت پذيرفت مبدعان MRP بدنبال روش بهتري جهت سفارش مواد و تجهيزات مورد نياز خود ، اين تكنيك را ايجاد نمودند.

منطق برنامه نيازمندي مواد نياز به اطلاعات ذيل دارد :

  • قصد توليد چه مقدار محصول داريم ؟
  • براي توليد به چه چيزهايي (مقداري) نياز داريم ؟
  • در حال حاضر چه چيزهايي (مقداري)داريم ؟
  • چه چيزهايي(مقداري) بايد تهيه شود ؟

به اين رويه معادله توليد جامع گفته مي شود.

اين منطق در حالتي كه قرار است چيزي را توليد نماييم كاربرد دارد خواه اين چيز ، توليد جت . قوطي آلومينيومي ، ابزار ماشين آلات ، صنايع شيميايي و ... و يا حتي تهيه يك شام باشد.

برنامه نيازمندي مواد ، معادله توليد جامع را اجرا مي نمايد و در اين فرايند از اين موارد استفاده مي نمايد

·        برنامه توليد اصلي (Master Schedule) (آيتم اول : قصد توليد چه مقدار محصول داريم ؟  )

·        درخت محصول (Bill Of Material)(آيتم دوم : براي توليد به چه چيزهايي (مقداري) نياز داريم ؟)

·        اطلاعات انبارداري (Inventory Records)(آيتم سوم : در حال حاضر چه چيزهايي (مقداري)داريم ؟)

و نهايتا ميزان نيازمندي آتي را (آيتم چهارم : چه چيزهايي(مقداري) بايد تهيه شود ؟) محاسبه مي نمايد.

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت

بنام خدا

با سلام

خوب با توجه به يكسري مباحثي كه من اين اواخر در  مورد مفهوم ERP داشتم متوجه شدم كه متاسفانه درك كامل و روشني از اين مفهوم وجود نداره و همين موجب سردرگمي خيلي ها شده است

در اين سري مقالات سعي شده تا مفهوم ERP و نرم افزارهاي پشتيبان ERP با نگاهي علمي شرح داده بشه تا در شناخت و انتخاب نرم افزار مناسب بتونه كمك كنه

يك اپيدمي كه جديدا در شركتهاي نرم افزاري پيش اومده اينه كه يك كلمه ERP به عنوان نرم افزاراشون اضافه مي كنن و ظرف چند ثانيه رقيب نرم افزارهاي مثل SAP يا ORACLE مي شن اينطور پيشرفتم بد نيستا J

خوب حال ادامه مطلب :

برنامه ريزي منابع سازماني چيست و چه كار انجام مي دهد :

برنامه ريزي منابع سازماني (ERP) و سلف آن برنامه ريزي منابع توليد(Manufacturing Resource Planning –MRP2)) كمك مي كنند تا چشم انداز تجارت ما را دگرگون نمايند آنها اين امكان را فراهم مي نمايند تا بهبود قابل توجه اي در روش مديريت شركتهاي توليدي ايجاد گردد. انها تاثير زيادي در بهره وري اقتصاد آمريكا در دهه 90 ميلادي داشتند.

اجاز بديد يك تعريف كامل از برنامه ريزي منابع سازمان در اينجا داشته باشيم :

·    يك مجموعه از ابزارهاي مديريتي در قسمتهاي مختلف سازمان كه موجب تعادل بين مقدار مورد نياز و موجودي (مقداري كه تامين مي شود) مي گردد.

·        دارا بودن قابليت ايجاد ارتباط بين مشتريان و تامين كنندگان در داخل يك زنجير تامين كامل

·    بكارگيري فرايندهاي تجاري مطمئن در راستاي تصميم سازي و فراهم نمودن درجه بالايي از ارتباط چند به چند بين فرايندهاي مختلف در حوزه هاي فروش ، بازاريابي ، توليد ، بهره برداري ، لجستيك ، خريد ، مالي ، توسعه محصولات جديد ، و منابع انساني كه نهايتا مردم قادر مي شوند تا فعاليتهاي تجاريشان از يك طرف با سطوح بالايي از خدمات مشتريان و بهره وري و از طرف ديگر با هزينه كم و انبارش كم ميسر گردد كه نهايتا شالوده اصلي تجارت الكترونيك موثر را مهيا مي سازد.

در ذيل چند مثال از برنامه ريزي منابع سازماني آمده است :

 

يك شركت موفق به افزايش فروش خود به ميزان 20% گرديده و اين در حالي اتفاق افتاده است كه كل صنعت در حالت ركود بوده است علت اين امر چه چيز مي تواند باشد؟ در اين خصوص مدير فروش شركت مي گويد:

" ما توانستيم مقدار زيادي از بازار رقبا را بدست آوريم ما از ERP متشكريم در حال حاضر ما توانايي حمل سريعتري نسبت به رقبا را دارا هستيم و ما كليه سفارشات را در زمان مقرر حمل مي كنيم"

 

يك شركت موفق به كاهش قابل توجهي در هزينه ها گرديد كه امتياز رقابتي بالايي براي آن محسوب مي شود مدير دايره لجستيك در اين خصوص مي گويد :

" ERP كليد جهاني شدن شركت ما به معناي واقعي گرديد . تصميم سازي با اطلاعات دقيق و از طريق فرايندي كه ارتباط بين نياز و موجودي(تامين) را فراتر از مرزها واقيانوسها ، فراهم مي نمايد صورت مي پذيرد.اين تغيير براي ما ارزشي معادل بيليون دلار در فروش جهاني را داراست "

 

واحد خريد يك شركت موفق شد كاهش زيادي در هزينه ها ايجاد نمايد و اين در حالي بود كه توانايي شركت در افزايش اعتماد تامين كنندگان نيز افزايش يافت مدير خريد در اين خصوص گفت :

" براي اولين بار ما توانستيم بخوبي نيازمنديهاي تجهيزات و مواد مورد نياز آينده خود را مديريت نماييم. موقعي كه تقاضاي يك مشتري تغيير مي كند ما و تامين كنندگان ما قادر به اعمال تغييرات مورد نياز بصورت هماهنگ و كنترل شده مي باشيم من نمي دانم يك شركت چطور مي تواند بدون ERP ، مديريت زنجيره تامين را بصورت موثر انجام دهد "

 

خوب دوستان اينم از اين قسمت – سري بعد ادامه اين مطلب رو با هم مرور مي كنيم

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت