PDA

View Full Version : تفاوت تحلیل گر ها از برنامه نویسها و چگونگی تفکیک و بی نیازی از یکدیگر



aligh.es
چهارشنبه 12 آذر 1393, 11:14 صبح
سلام
من قبلا تو یه شرکت برنامه نویسی کار میکردم به عنوان تحلیلگر
و تعدادی برنامه نویس بودن که بر اساس تحلیلهای من از نرم افزار کد نویسی می کردن
ما در حال طراحی یک نرم افزار بسیار بزرگ بودیم که حدود 25 فرایند داشت و هر فرایندی نزدیک به150 جدول بانک اطلاعاتی و 200 فرم داشت
مشکل من اونجا این بود که تحلیلهای منو که کد نویسا میخواستن پیاده سازی کنند متوجه نمیشدن
یعنی حتما خودم باید باشم و در مورد هر فرم و بانک اطلاعاتی توضیح بدم تا بتونن کد نویسی کنند تازه اخرشم یه جاهای به مشکل بر میخوردیم
حالا اگر من یه روز میرفتم مرخصی کسی نمیتونست کد نویسی کنه
شنیدم گروهایی هستند که تحلیل گرا نرم افزار رو تحلیل میکنند و به کدنویسها میدن و کد نویسها هم کد کیزنن و ارتباط چندانی با هم ندارند
میخواستم بدونم این کار امکان پذیر هست یا نه

یه مثال میزنم
فرض بگیرید داریم یه نرم افزار طراحی میکنیم که کارش نوبت دهی است
تعداد نوبتها در روز بر اساس بازه زمانی یا تعداد برای یک روز در جدول ذخیره شده
وقتی یه شخصی درخواست نوبت داره باید در سیستم جستجو انجام بشه و نوبت های خالی رو به دست بیاره(با توجه به محدوده کاری دران روز و نوبتهای که قبلا ثبت شده) و بر اساس ساعت های مختلف دسته بندی کند(مثلا نوبت های خالی در ساعت 8 و 11 وجود دارد) حالا وقتی نوبت خالی رو کاربر انتخاب کرد اولین زمان خالی که میتونه در ان نوبت ثبت بشه رو خود سیستم انتخاب کنه
فرض بگیریدبرای ساعت 8 تا 9 زمانمون خالیه و هر نوبت 11 دقیقه زمان لازمه
برنامه نویسها باید جوری کد بزنن که نوبت ها از اول ساعت شروع بشه و زمان پرتی انتهای ساعت بمونه یعنی بین ساعت 8 تا 9 بشه 5 نوبت ذخیره کرد و 5 دقیقه زمان پرتی انتهای ساعت بمون
خوب حالا چجوری میشه این موضوع رو تحلیل کرد که کد نویس نیازی به تحلیل گر نداشته باشه؟

aligh.es
پنج شنبه 20 آذر 1393, 12:47 عصر
دوستان راه حلی ندارند یا من درست مطرح نکردم
اصلا امکان داره تحلیلگر هیچ ارتباطی با برنامه نویس نداشته باشه

deragonpc
پنج شنبه 20 آذر 1393, 13:25 عصر
تاجایی که من کار کردم و دیدم و تجربه دارم کار به این شکل هست که :
اول تحلیل گر امکانات سیستم رو براورد میکنه و تمامی امکانات رو در بخش های مختلف دسته بندی میکنه .
بعد یک یا چند توسعه دهنده نرم افزار (برنامه نویسان حرفه ای که در کار تیمی و برنامه نویسی تبحر زیادی دارند) با کمک اون تحلیل هایی که تحلیل گر ارائه داده اسامی توابع کلاس ها و متغییر ها و فلوچارت ها یا دیاگرام های برنامه رو پیاده سازی میکنن و هر بخش از کلاس ها و کار ها رو به دست یک یا چند برنامه نویس میدن
و راستی همراه با توسعه دهنده ها تحلیل گران بانک اطلاعاتی نیز برنامه رو از نظر ساختار بانک اطلاعاتی تحلیل و بانک اطلاعاتی رو سامان دهی میکنن

امید وارم چیزی رو جاننداخته باشم:متفکر: آخه یکم سریع نوشتم .:لبخند:

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

بهزاد علی محمدزاده
پنج شنبه 20 آذر 1393, 13:46 عصر
سلام . شما همین موضوع خودتون رو چطور دادید به برنامه نویس هاتون ؟ به نظر من این یک تحلیل خام و اولیه است , در واقع فقط نیاز اولیه شناخته شده پس تکلیف طراحی و مدلسازی چی میشه ؟ بالاخره زبان UML برای این کار به وجود اومده .
شاید الان کسی وقت نداشته باشه این و انجام بده , شما یه نمونه از همین کار و بذارید ببینم چطور انجام دادین که برنامه نویس ها باهاش مشکل دارند. یعنی همین متن رو دادید به برنامه نویس و کدش رو خواستید ؟

saeed410
پنج شنبه 20 آذر 1393, 14:33 عصر
سلام. در سطح تحلیل گر هم ما انواع تحلیل گر داریم. هر کدوم به نوبه خود به نحوی سیستم رو تحلیل میکنند. شما که این همه تجربه کافی دارید چطور تا حالا با مفهوم الگوریتم و فلوچارت و دیاگرام های uml و مفاهیم ER و DFD آشنا نیستید. اگر تمام این چارتها به همراه vision در اختیار برنامه نویس قرار بگیره ؛ برنامه نویس میتونه بدون حضور تحلیل گر ، کدنویسی کنه.

aligh.es
یک شنبه 23 آذر 1393, 13:33 عصر
سلام
من uml رو رسم کردم جداول بانک ها رو تحلیل کردم و حتی بعضی از جداول رو خودم ساختم و کلید ها رو مشخص کردم ارتباط بین جداول رو رسم کردم فرم های هر بخش رو طراحی کردم و فیلد های جداول و ارتباط بین جداول رو رسم کردم و روند کار رو بهشون ارائه دادم حتی اموزش و تست و خطا یابی و ... اون نرم افزار رو باید خودم انجام میدادم
مشکل من اینکه با چه روشی یا دیاگرامی باید به برنامه نویس بفهمونم که چگونه نوبت ها رو رزرو کنه ایا باید توضیح بدم یا با استفاده از دیاگرام یا چیز دیگه ای میشه این کار رو انجام داد
ببینید مشکل من اینه که شخصی که میخواد نوبت رزرو کنه باید بتونه در هر ساعتی که جزئی از زمان قابل رزرو هست نوبت رزرو کنه خوب برا اینکه سیستم به هم نریزه و زمان پرتی زیادی به وجود نیاد بهتره از اول هر ساعت شروع کنند به رزرو نوبت
خوب این موضوع رو چطوری باید تحویل داد؟
یعنی واقعا شما به این مشکلات بر نمیخورید؟
از اون شرکت که یک سالی است اومدم بیرون ولی الان در یک شرکت دیگه مشغولم که دوباره دارم یه تحلیل جدید انجام میدم میخوام اون مشکل دوباره پیش نیاد؟

saeed410
یک شنبه 23 آذر 1393, 22:43 عصر
در دیاگرام های USe Case مربوط به UML ما برای هر کاری که انجام میشه باید طریقه انجامشو به صورت کامل بیان کنیم. حتی شرط ها و راه های فرعی رو. برای هر use_Case : این موارد مشخص میکنیم:
pre condition,Goal,primary-----, alternate----,post Condition اونجاهایی که خط تیره کشیدم ؛ دقیقاً یادم نمیاد چیه.الان حضور ذهن ندارم. به هر حال primary مربوط میشه به کار اصلی. مثلاً واسه ورود به سیستم : روال اصلی به صورت زیره: نام کاربری و رمز عبور را دریافت کن. در صورتی که نام کاربری وجود دارد ادامه در غیر این صورت برو به alternate1 . رمز عبور کاربر را از پایگاه داده دریافت کن با رمز عبور کاربر مقایسه کن. در صورتی که رمز عبور صحیح است ادامه. در غیر این صورت برو alternate2 . پیام خوش آمد گویی به کاربر. کاربر را واردسیستم کن.
علاوه بر این از Sequence Diagram هم به همین طریق استفاده میشه.