اضافه کردن اطلاعات به پایگاه داده MySQL در یک صفحه PHP

ALTER TABLE

از این دستور برای اضافه کردن ستون ( فیلد) جدید ، حذف ستون ( فیلد) موجود و ویرایش ستون ( فیلد) استفاده می شود



اضافه کردن ستون یا فیلد جدید به جدول

فرمول :



ALTER TABLE نام جدول


ADD نام فیلد جدید  datatype;

 

 

مثال 1:

برای اضافه کردن فیلد family از نوع رشته ای با طول 25 کاراکتر به جدول y1 از دستور زیر استفاده می کنیم :

alter table y1



add family varchar(25);

 و مقدار این فیلد در تمام رکوردهای موجود برابر null خواهد شد بعدا با دستور update ان مقادیر را تغییر دهید

حذف کردن ستون یا فیلد از جدول

فرمول :



ALTER TABLE table_name


drop column نام فیلد ;


مثال 1:

ستون family را از جدول y1 حذف کنید

alter table y1

drop column family;

ویرایش نوع داده ستون یا فیلد در جدول

در بانک اطلاعاتی SQL Server / MS Access از دستور زیر استفاده کنید



ALTER TABLE table_name


ALTER COLUMN column_name datatype


column-name : نام فیلد مورد نظر

datatype : نوع داده جدیدی که می خواهیم این فیلد داشته باشد

*******************************

در بانک اطلاعاتی My SQL / Oracle از دستور زیر استفاده کنید



ALTER TABLE table_name


MODIFY column_name datatype


column-name : نام فیلد مورد نظر

datatype : نوع داده جدیدی که می خواهیم این فیلد داشته باشد

چگونه فیلد موردنظر در دیتابیس را پیدا کنیم؟

گاهاً در دیتابیس های بزرگ و یا دیتابیس هایی که خود ما آن را طراحی نکرده ایم نیاز پیدا میکنیم که از وجود یک فیلد در دیتابیس مطمئن شویم . قصد داریم نحوه چک کردن موجود بودن یک فیلد در دیتابیس را بیان کنیم .

برای درک بهتر ابتدا جدولی را با فیلد های زیر ساخته و جدول را به اسم News ذخیره نمایید :

  •      [ID] [int] ,
  •     [Title] [nvarchar](max) ,
  •     [Body] [nvarchar](max) ,
  •     [Date] [date] ,
  •     [CategoryID] [int],
  •     [AuthorID] [int],

قصد داریم از موجود بودن فیلد Body در دیتابیس مطمئن شویم برای این کار قطعه کد زیر  بنویسید :

 select * from sys.columns where name='Body'

در صورتی که دیتابیس مورد انتخاب در هنگام اجرا کوئری فوق دارای فیلد Body باشد خروجی به صورت زیر خواهد بود :

Column-Name

عکس بالا نشان می دهد که فیلد مورد نظر در دیتابیس موجود می باشد حال برای اینکه اسم جدول مربوطه را هم پیدا کنیم این کار را از طریق فیلد اول که منظور Object_id می باشد انجام می دهیم به صورت زیر :

select * from sys.objects where object_id=293576084

با اجرا کوئری فوق نتیجه به صورت زیر خواهد بود که در فیلد اول اسم جدولی که دارای فیلد Body می باشد را نشان می دهد :

TabelName

سامانه ussd چیست و چه ویژگی هایی دارد؟

امروزه تلفن همراه یکی از اجزای جدایی ناپذیر زندگی همه ما شده است. کدهای ussd به معنای شماره‌هایی مثل *…# است که امروزه تبلیغات وسیعی درباره آن می‌شود. این خدمت دقیقا چیزی بین تماس تلفنی و استفاده از پیامک است (با توجه به زمان و نحوه ارتباط).

مهمترین هزینه تخصیص یکساله سرشماره به شماست که ارتباط معکوس با تعداد رقم و رند بودن شماره دارد (با کم شدن یک رقم هزینه حدوداً دو برابر می شود) و سایر هزینه ها بسته به قرارداد منعقده با اپراتور بستگی دارد از جمله TPS یا تعداد انتقال ها در ثانیه (Transfer per second)، هزینه نگهداری، پشتیبانی و ... که هر اپراتوری سلیقه خودش رو داره و ممکن هست اصلا حتی هیچکدوم این هزینه ها رو هم مطرح نکنه.

موفق باشید

خدمت "ماسک" در سامانه پیامکی چیست؟

امروزه ممکن است تبلیغات زیادی را ببینید که در آنها از عناوین "سامانه پیامک" ، "سامانه پیامکی" ، "پنل اس ام اس"  استفاده باشد. سامانه پیامکی در حقیقت محیطی است که شرکت ها و سایت های مختلف در اختیار شما قرار می دهند تا با استفاده از آن بتوانید پیامک ارسال و دریافت کنید .
شماره های ارائه شده در سامانه های پیامکی دقیقا مانند شماره موبایل شما قابلیت دریافت و ارسال را دارند ولی با این تفاوت که شماره های آن با 3000 ، 5000 و... شروع می شوند. حال اگر بخواهید شماره شما به جای عدد یک متن باشد باید از خدمت ماسک (MASK) اپراتورها استفاده کنید تا به جای شماره مثلا کلمه "HAMRAHAVVAL" یا  "IRANCELL" یا متن مورد نظرتان نمایش داده شود.

prototype چیست و چه کاربرد هایی دارد؟

Prototype یا نمونه اولیه چیست ؟

حتما ماکت های ساختمانی رو دیدید. ماکت ها نمونه ای کوچک شده از سازه اصلی هستن. پروتوتایپ هم چیزی شبیه به همین ماکت های ساختمانی هست. البته این قیاس خیلی درستی نیست چون طراحی ماکت بیشتر از اون چیزی که کاربردی باشه , جنبه تشریفاتی داره در حالی که در Prototype , قضیه کاملا عکس این هست.در این مطلب از طراحی پروتوتایپ یا نمونه اولیه محصولات نرم افزاری (برنامه موبایل, برنامه تحت وب , وب سایت و …) حرف میزنم.

 

چرا باید پروتوتایپ طراحی کرد؟

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

طراحی پروتوتایپ یعنی شبیه سازی برنامه به طوری که از لحاظ  ظاهری به محصول نهایی تا حد امکان شبیه باشه. البته به این معنی نیست که مثل برنامه حقیقی بتونه محاسبات انجام بده و داده ذخیره کنه بلکه ماکتی از برنامه است. شباهت های زیاد بصری پروتوتایپ با محصول نهایی باعث میشه ذهن حاحب ایده که فقط روی کلیات تمرکز داشت به جزئیات بپردازه و تغییراتی که در زمان پیاده سازی می خواست رخ بده رو قبل از پیاده سازی بر روی ماکت برنامه اعمال بشه.

 

طراحی پروتوتایپ سربار هزینه و زمان نخواهد داشت ؟

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

 

طراحی پروتوتایپ چه زمانی به صرفه نیست؟

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

برای همین من برای پروژه های کوچیک و پروژه هایی که توان مالی ضعیفی دارن پیشنهاد فعالیت حرفه ای و تخصصی در این زمینه رو نمیدم.

 

طراحی پروتوتایپ چه زمانی به صرفه است؟

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

 

معرفی ابزارهای طراحی prototype

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

نرم افزارها و وب سای های زیادی وجود داره اما Axure RP و  JustInMind ابزارهای قدرتمندتری در طراحی پروتوتایپ در این زمان هستند. من پروتوتایپ های تحت وبم رو با Axure RP میزنم و برنامه های موبایل رو با JustInMid . البته با هر دو میشه هم برای موبایل و هم برای وب طرح زد ولی اگر خیلی اهل جزئیات باشید پیشنهاد من کمکتون میکنه.

 

صف انتظار در مرکز تماس

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

 

یک صف تماس در نرم افزار مرکز تماس دارای قسمتهای ذیل می باشد:

پاسخ دهندگان به صف

مشخصات و ویژگهای صف

 

 

اپراتورهای مرکز تماس

 پاسخ دهندگان به صف تماسها

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

منظور از پاسخ دهندگان ثابت به طور مثال :

داخلی های شماره ۱۰۰۱ و ۱۰۰۲ و ۱۰۰۳ که برای سه نفر از کارشناسان می باشد همیشه پاسخگوی تماسهای وارده به صف خواهند بود.

منظور از پاسخ دهندگان متغییر به طور مثال:

کارشناس شماره ۱۰۰و ۲۰۰ و ۳۰۰ سه کارشناس پاسخگو به صف هستند و هر وقت هر کدام در محل بودند باید با کد خودشان به نرم افزار مرکز تماس وارد شوند تا تماسها برای آنها هدایت شود. کارشناسان پاسخگو با این روش مهم نیست که با کدام داخلی صحبت می کنند.

 

 

آمار مرکز تماس و کال سنتر

مشخصات و ویژگهای صف

ویژگی های یک صف می تواند موارد ذیل باشد:

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

 

حداکثر تعداد افراد در صف: این ویژگی مشخص می کند که حداکثر چند تماس گیرنده در صف وجود داشته باشند و برای افراد بالاتر از آن چه اتفاقی بی افتد. به طور مثال اگر حداکثر افراد در صف تماس برابر با ۵ باشد و نفر ۶۶ وارد شود سامانه مرکز تماس به صورت خودکار آن را به مقصد تعریف شده هدایت می کند.

 

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

 

اعلام مدت زمان تقریبی انتظار به تماس گیرندگان : با فعال بودن این ویژگی نرم افزار مرکز تماس به صورت خودکار بر اساس آمار و اطلاعات تماسهای قبلی به تماس گیرنده اعلام می کند که مثلا نفر ۴ در صف است و حدودا ۴۴ دقیقه دیگر نوبت او می شود.

 

موزیک انتظار در صف : این ویژگی مشخص می کند که چه موزیک یا پیامهای تبلیغاتی برای تماس گیرنده در انتظار پخش شود. معمولا این قسمت بر  اساس نیاز هر مشتری قابل تغییر می باشد.

 

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

 

زمان زنگ خوردن هر اپراتور : این ویژگی مشخص می کند که تلفن هر اپراتور چقدر زنگ بخورد و اگر پاسخگو نبود نرم افزار مرکز تماس فرد را به اپراتور  دیگر هدایت کند.

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

 

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

 

نظارت بر صف و شیوه پاسخگویی اپراتورها

یک مرکز تماس پیشرفته باید حتما مجهز به نرم افزارهای دقیق داشبورد و وضعیت ارتباطات باشد. این نرم افزارها باید به صورت لحظه ای نشان بدهند که وضعیت هر کدام از اپراتورها چیست.

به تصویر زیر توجه کنید.

وضعیت آنلاین اپراتورهای مرکز تماس

در داشبورد بالا مشخص است که اپراتور شماره ۱۲ مشغول صحبت با شماره تلفن ****314000 می باشد و ۲۰ ثانیه از زمان مکالمه می گذرد. همچنین فلش به سمت بالا نشان می دهد که این تماس توسط اپراتور با فرد مورد نظر گرفته شده است.

همچنین اپراتور شماره ۱۱ در حال زنگ خوردن است و هنوز اپراتور تماس را جواب نداده است با اینکه ۳ ثانیه است که تلفن او زنگ می خورد.

 

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

لیست افراد در صف انتظار مرکز تماس

در داشبورد بالا نشان داده شده است که دو نفر در صف انتظار هستند نفر اول بیش از ۲:۳۵ ثانیه است که منتظر است و نفر دوم ۳۹ ثانیه است منتظر است.

 

انواع Role ها در RUP چیست؟

انواع Role (نقش) در RUP

System analyst

Project Manager

Integrator

Designer

Reviewer

Business system analyst

Test designer

Tool specialist

User interface Designer

Process engineer

مراحل مدیریت پروژه در مهندسی نرم افزار  

مدیریت پروژه

مدیریت پروژه نرم افزاری : هنر موازنه برقرار کردن بین اهداف ،  مخاطرات (ریسک‌ها) و محدودیت‌ ها جهت عرضه موفق محصولی که خواسته‌های مشتریان و کاربران را برآورده کند.

نتایج پروژه ها

26%  پروژه‌ها شکست خورده‌اند.

46%  پروژه‌ها با هزینه و زمان بیشتر از پیش‌بینی شده تمام شده‌اند.

 28%  پروژه‌ها موفق بوده‌اند. (در ایران تخمین زده می شود بین 5 تا 10 درصد  باشد.)

اهداف مدیریت پروژه

فراهم کردن یک چارچوب برای مدیریت پروژه

فراهم کردن رهنمود های عملی برای طرح ریزی ، تعیین نیروی انسانی ، اجرا و نظارت بر پروژه ها

فراهم کردن یک چارچوب برای مدیریت ریسک

طرح ریزی پروژه تکرار

نظارت بر پیشرفت پروژه

جریان کار

• درک پروژه جدید

•ارزیابی محدوده و ریسک های پروژه

•ایجاد طرح تولید نرم افزار

•طرح ریزی تکرار بعدی

•مدیریت تکرار

•نظارت کنترل پروژه

•اتمام پروژه

ده مورد اساسی RUP در مهندسی نرم افزار  

ده مورد اساسی RUP عبارت اند از:

1.تصویر کلی

تصویر کلی ، عصاره ای از جریان کار نیازمندی ها در rup ، بدست می دهد.

2.طرح تولید نرم افزار

طرح تولید نرم افزار ، همه اطلاعات مورد نیاز برای مدیریت پروژه را جمع آوری می کند.

3.ریسک

لیست ریسک ، به منظور در نظر گرفتن ریسک های شناخته شده در راه موفقیت پروژه است.

4.موارد مهم

شناسایی و ارزیابی موارد مهم باید در تاریخ های معین انجام شود. این گزارشات نبض مدیریت است.

5.مورد کسب وکار

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

6.معماری

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

7.محصول

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

8.ارزیابی

- ارزیابی تکرار ، نتایج یک تکرار ، میزان برآورده شدن معیار ارزیابی ، دروس آموخته شده و تغییرات فرایند که باید پیاده سازی شوند ، را در بر می گیرد.

- هرچه زودتر از کار عقب بمانید ، زمان بیشتری را باید جبران کنید.

9.درخواست تغییر

-مدیریت و کنترل محدوده پروژه در هنگامی که تغییرات در طول چرخه حیات پروژه رخ می دهد ، شناسایی اثرات تغییرات و ارایه پیشنهادات.

10.حمایت از کاربر

-عصاره جریان کارهای استقرار ، بسته بندی و تحویل محصول است بعلاوه یک راهنمای کاربر و استفاده از ابزار آموزشی است.

فازهای RUP در مهندسی نرم افزار  چیست

فاز Inception:

شناخت محدوده پروژه (Scope)

شناخت Use Case

کسب موافقت stackholder برای ادامه کار.

در این فاز اهداف چرخه حیات مشخص می شود بدین معنا که  تا وقتی که نرم افزار کار می کند چه اهدافی را داراست؟

فاز Elaboration:

تخفیف ریسک های تکنیکی

ایجاد معماری خط مبنا

شناخت آنچه برای سیتم ، مورد نیاز است.

معماری چرخه حیات در این فاز جای می گیرد.

فاز Construction:

ساخت اولین نسخه عملیاتی از محصول.

قابیلت عملیاتی اولیه در این فاز قرار می گیرد.

فاز Transition:

ساخت نسخه نهایی از محصول و تحویل آن به مشتری.

انتشار محصول (Product Release) در این فاز قرار دارد.

مهم فهم و درک ماهیت تکراری است که هم زمان انجام می شوند و پشت سر هم انجام نمی شوند.

 
 

RUP و تولید تکراری در مهندسی نرم افزار  

RUP  و تولید تکراری

  • روش تکراری با نیازمندی های متغییر سازگار است.

  • در روش تکراری ، مجتمع سازی یک اتفاق بزرگ در آخر پروژه نیست.

  • در روش تکراری ، ریسک ها معمولا در اوایل کار شناسایی می شوند.

  • مدیریت می تواند در محصول ، تغییرات تاکتیکی ایجاد کند.

  • استفاده مجدد آسانتر است.

  • نقص ها در طی چندین تکرار کشف و تصحیح می شوند.

  • از پرسنل پروژه بهتر استفاده می شود.

  • اعضا تیم در حین انجام کار ، مطالب جدیدی فرا می گیرند.

  • فرایند تولید همراه با انجام کار ، اصلاح شده و بهبود می یابد.

اصول اساسی RUP در مهندسی نرم افزار چیست؟

اصول اساسی RUP عبارت اند از:

حمله سریع و مداوم به ریسک های اصلی.

تضمین کنید که محصول با ارزشی به مشتری می دهید. (تضمین محصول با ارزش)

روی نرم افزار قابل اجرا متمرکز کنید. (می تواند نرم افزاری برای تغییر سازمان باشد ولی باید قابل تکرار باشد.)

تغییرات را هرچه زودتر در پروژه بگنجانید. (گنجاندن هر چه زودتر تغییرات در پروژه)

هرچه سریع تر معماری قابل اجرایی را مبنا قرار دهید.

سیستم را با مؤلفه ها بنا کنید. (ساختن با مولفه ها)

در قالب یک تیم با هم کار کنید. (کار تیمی)

کیفیت را به عنوان یک اصل قرار دهید نه یک فرع. (کیفیت)

مرکز تماس چیست؟

مرکز تماس (Call Center)، به عنوان اولین و مهمترین نقطه ارتباطی بین هر سازمان و مشتریانش تعریف می شود و اکثر تماس های ورودی مرتبط با سازمان و تماس های خروجی در آنجا انجام می پذیرند. محبوبیت مراکز تماس در جامعه ی مدرن رو به افزایش است، بسیاری از شرکت ها خدمات مشتریان و بخش پشتیبانی را در این بخش متمرکز کرده اند. مراکز تماس کارکنان بسیاری را در بخش خدمات مشتریان، بخش فروش و بخش پشتیبانی به کار می گیرند. 

مراکز تماس غالبا بخش بزرگی در سازمان هستند که کارمندانی به عنوان نماینده  (اپراتور) در اختیار دارند؛ این کارمندان تماس های تلفنی را پاسخ می دهند و یا تماس برقرار می کنند. یک مرکز تماس، بسته به اندازه ی آن، می تواند کمتر از ده کارمند و یا حتی بیشتر از 100 کارمند داشته باشد.

برخی از مراکز تماس روی دریافت تماس ها (Inbound Call Center) متمرکز می شوند، مثل مرکز تماس یک بانک که به مشتریانی که کمک می خواهند خدمات ارائه می کند. در این مثال، اپراتورها خدماتی مثل مانده ی  حساب، پاسخ دهی به سوالات درباره ی معاملات و یا نحوه ی وام گرفتن ارائه می دهند. برخی از مراکز تماس نیز روی تماس های خروجی (Outbound Call Center) تمرکز می کنند، مثل سازمان هایی که کارمندانشان برای تحقیقات بازار، سوالات و نظرسنجی های مختلفی  را از مردم و مشتریان انجام می دهند. برخی دیگر از مراکز تماس نیز به صورت ترکیبی هم تماس های ورودی و هم به تماس های خروجی (Blended Call Center) را مدیریت می کنند. 

مزایا

مراکز تماس (Call Center)، مزایای زیادی برای سازمان ها دارند. با متمرکز کردن خدمات تلفنی و پشتیبانی در یک مرکز، ادارات می توانند به راحتی تعداد کارمندان را با توجه به حجم تماس ها تطبیق دهند. مراکز تماس را تقریبا در هر مکانی میتوان بنا کرد و به ادارات اجازه می دهد از زمین و نیروی کار ارزان تر در مناطق یا کشورهای مختلف بهره ببرند. آنها همچنین نیازهای تکنولوژی ادارات را نیز متمرکز می کنند، و به ادارات اجازه می دهد تکنولوژی های برقراری ارتباط را به جای نصب در چندین مرکز کوچک، در یک مرکز بزرگ نصب کنند. این کار نگهداری، ارتقا و آموزش را آسان می کند و موجب کاهش هزینه های می شود. همچنین راه اندازی یک مرکز تماس سبب افزایش میزان رضایتمندی مشتریان نیز می گردد و از سردرگمی آنها برای دریافت انواع خدمات جلوگیری می کند و از سوی دیگر باعث تقویت نام تجاری سازمان نیز می گردد. در دنیای امروز بسیاری از سازمان های بزرگ با مراکز تماس شان شناخته می شود. تکنولوژی بسیاری از مراکز تماس از تکنولوژی های متعددی برای بهبود ارائه خدمات به مشتریان بهره می گیرند. مراکز تماسی که تماس های ورودی را دریافت می کنند غالبا از تکنولوژی توزیع خودکار تماس (ACD - Automatic Call Distributer) استفاده می کنند که در آن تماس ها به اپراتورهایی وصل می شوند که در در صف انتظار هستند. در برخی مراکز تماس دیگر از  تکنولوژی های نظارت بر مکالمات استفاده می شود، به نحوی که به صورت تصادفی مکالمات اپراتورها با مشتریان نظارت می شود تا اطمینان حاصل شود که اپراتورها نیازهای مشتریان را به خوبی پاسخ می دهند. 

تکنولوژی

مراکز تماس کمک دائمی به این مراکز را تامین می کند تا بهتر و کارآمدتر به نیازهای مشتریان رسیدگی شود. یکی دیگر از مهمترین قابلیت ها در مراکز تماس ضبط کلیه مکالمات ورودی و خروجی است. همچنین اپراتورها در مراکز تماس، به نرم افزار CRM یا Help desk برای ثبت درخواستها و پیگیری آنها مجهز می باشند و معمولا این نرم افزار ها با سیستم مرکز تماس لینک می باشد و امکاناتی مانند Pop up اطلاعات تماس گیرنده برای اپراتورها و ... را فراهم می آورد. 

کار مرکز تماس چیست؟


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

تجارت هایی مثل فراهم کنندگان اینترنت و کابل، شرکت های کارت اعتباری، شرکت های هواپیمایی و بسیاری از شرکت ها به نحوه ای کار می کنند که کارمندانشان وقت زیادی برای رسیدگی گسترده به مسائل مشتریان را ندارند. مراکز تماس در همه جای دنیا وجود دارند، ولی مراکز تماس هند بسیار محبوب هستند زیرا این مراکز کیفیت بالایی را در ازای قیمت پایین ارائه می دهند. تا سال 2004 بخش IT در هند که تکنولوژی استفاده از مرکز تماس را فراهم می کرد 54% رشد داشته است.

 کار مراکز تماس در بیشتر کشورها، در یک مکان حرفه ای، با تهویه هوا و اتاق نهار خوری انجام می گیرد. برخی از مراکز تماس بسیار مدرن بوده و امکاناتی مثل کافه تریا، باشگاه، اتاق استراحت و سرویس های رفت و آمد را برای کارکنان فراهم می کنند. شیفت ها ممکن است طولانی باشند و کارکنان از صبح زود تا آخر عصر ملزم به کار باشند. کار در یک مرکز تماس که تماس های خروجی را برقرار می کند نیازمند این است که کارمندان با لیستی از مخاطبان کار کنند. این کار به نام بازاریابی تلفنی (Telemarketing)  مشهور است. کارکنان این مراکز ممکن است فروش مستقیم داشته باشند و یا درخواست کمک  کنند، و یا محصولات را معرفی نموده و مخاطب را راضی کنند که در جایی خارج از این مرکز تماس با نماینده های شرکت به جهت خرید محصول ملاقات داشته باشد.  ممکن است از کارکنان این بخش خواسته شود که مشتری را متقاعد کنند محصولات گران قیمت تری را خریداری کند و یا همراه با خدمات ارائه شده محصولات و یا خدمات دیگری را نیز تهیه کنند. کار در مراکز تماس که تماس های ورودی را دریافت می کنند نیازمند این است که کارکنان تماس های مشتریان را پاسخ دهند. این کار نسبت به کار در بخش تماس های خروجی غیر قابل پیش بینی تر است، زیرا کارمند نمی داند چه کسی و با چه مشکلی قرار است تماس بگیرد، تماس گیرنده شکایت دارد و یا اطلاعات می خواهد. اپراتورهای بخش تماس های ورودی باید اطلاعات جامع و کاملی راجع به محصول، خدمات و سیاست های شرکتی که نماینده ی آن هستند داشته باشند. برخی شغل ها در مراکز تماس نیازمند دارا بودن اطلاعات فنی بالا و ارتباطات اپراتوری فنی هستند تا بتوانند مشکلات مرتبط با محصول را برای مشتریان حل کنند. معمولا در مراکز تماس ابزاری مانند درخت دانش (Knowledge Base) وجود دارد که سعی می کند اطلاعات مورد نیاز اپراتورها را به سادترین شکل ممکن و بسیار موثر در اختیارشان قرار دهد. 

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


از طرف دیگر، شغل اپراتوری در یک مرکز تماس میتواند تجربه ی خوبی برای کسانی که علاقمند به برقراری ارتباط با مردم هستند باشد. برای ورود به این شغل در مرحله اولیه به هیچ تجربه ای نیاز نداریم و این مسئله باعث می شود کسانی که روابط عمومی بالایی دارند ولی سابقه ی کار رسمی ندارند بتوانند مشغول به کار شوند. میزان دستمزد متفاوت است ولی به طور کلی تقریبا دستمزدها پایین است و نزدیک به کمترین میزان دستمزد است. البته، این امکان برای کارمندان وجود دارد که در طی 5 سال با ارتقا گرفتن مدیر و یا سوپروایزر شدن درآمدشان را 2 یا 3 برابر کنند.

شش دلیل اصلی شکست پروژه های نرم افزاری و چگونه توسعه چابک این مشکل را حل می کند؟

وقتی که از مدیران و کارکنان سوال می­شود که چرا پروژه های نرم افزاری با شکست مواجه می­شوند، آنها به موضوعات گسترده ای اشاره می­کنند. اما شش دلیل زیر بارها و بارها تکرار شده است که به عنوان دلایل اصلی شکست نرم افزار معرفی می­شوند:

1-      درگیر نشدن  مشتری

2-      عدم درک درست نیازمندها

3-      زمان بندی غیر واقعی

4-      عدم پذیریش و مدیریت تغییرات

5-      کمبود تست نرم افزار

6-      فرآیندهای غیر منعطف و باد دار

چگونه چابکی این مشکلات را رفع می­کند؟

 با آنکه Agile برای هر مشکلی راه حل ندارد ولی برای مسائل فوق بدین صورت کمک می­کند:

مشتری پادشاه است!

برای رفع مشکل عدم همکاری کاربر نهایی یا مشتری، Agile مشتری را عضوی از تیم توسعه می­کند. به عنوان عضوی از تیم، مشتری با تیم توسعه کار می­کند تا مطمئن شود که نیازمندها به درستی برآورده می­شوند. مشتری همکاری می­کند در شناسایی نیازمندی­ها، تایید می­کند نتیجه نهایی را و حرف آخر را در اینکه کدام ویژگی به نرم افزار اضافه شود، حذف شود و یا تغییر کند، را می­زند.

نیازمندی ها به صورت تست­های پذیرش[3] نوشته می­شوند

برای مقابله با مشکل عدم درک درست نیازمندی­ها، Agile تاکید دارد که نیازمندیهای کسب شده باید به صورت ویژگی­هایی تعریف شوند که بر اساس معیارهای مشخصی قابل پذیرش باشند. این معیارهای پذیرش برای نوشتن تست­های پذیرش به کار می­روند. به این ترتیب قبل از اینکه کدی نوشته شود، ابتدا تست پذیرش نوشته می­شود. این بدین معنی است که هر کسی باید اول فکر کند که چه می­خواهد، قبل از اینکه از کسی بخواهد آن را انجام دهد. این راهکار فرایند کسب نیازمندی­ها را از بنیاد تغییر می­دهد و به صورت چشم گیری کیفیت برآورد و زمان بندی را بهبود می­دهد.

زمانبندی با مذاکره بین تیم توسعه و سفارش دهنده تنظیم می­شود

برای حل مشکل زمان بندی غیر واقعی، Agile زمان بندی را به صورت یک فرآیند مشترک بین تیم توسعه و سفارش دهنده تعریف می­کند. در شروع هر نسخه از  نرم افزار، سفارش دهنده ویژگی های مورد انتظار را به تیم توسعه می­گوید. تیم توسعه تاریخ تحویل را بر اساس ویژگی­ها برآورد می­زد و در اختیار سفارش دهنده قرار می­دهد. این تعامل تا رسیدن به یک دیدگاه مشترک ادامه می­یابد.

هیچ چیزی روی سنگ حک نشده است، مگر تاریخ تحویل

برای رفع مشکل ضعف در مدیریت تغییرات، Agile اصرار دارد که هر کسی باید تغییرات را بپذیرد و نسبت به آنها واقع بین باشد. یک اصل مهم Agile  می­گوید که هر چیزی می­تواند تغییر کند مگر تاریخ تحویل! به عبارت دیگر همین که محصول به سمت تولید شدن حرکت می­کند، مشتری (در تیم محصول) می­تواند بر اساس اولویت­ها و ارزش­های خود ویژگی­های محصول را کم یا زیاد کرده و یا تغییر دهد. به هر حال او باید واقع بین باشد. اگر او یک ویژگی جدید اضافه کنید، باید تاریخ تحویل را تغییر دهد. به این ترتیب همیشه تاریخ تحویل رعایت می­گردد.

تست­ها قبل از کد نوشته می­شوند و کاملا خودکار هستند

برای رفع مشکل کمبود تست، Agile تاکید می­کند که ابتدا باید تست­ها نوشته شوند و همواره ارزیابی گردند. هر برنامه نویس باید اول تست­ را بنویسد، سپس کد لازم برای پاس شدن آن را. همین که کد تغییر می­کند باید تست­ها دوباره اجرا شوند. در این راهکار، هر برنامه نویس مسئول تست­های خود است تا درستی برنامه از ابتدا تضمین گردد.

مدیریت پروژه یک فعالیت جداگانه نیست

برای رفع مشکل فرآیندهای غیر منعطف و باددار، Agile مدیریت پروژه را درون فرآیند توسعه می­گنجاند. وظایف مدیریت پروژه بین اعضای تیم توسعه تقسیم می­شود. برای مثال هر 7 نفر در تیم توسعه نرم افزار (متدلوژی اسکرام) زمان تحویل را با مذاکره تعیین می­کنند. همچنین کد برنامه به صورت خودکار اطلاعات وضعیت پروژه را تولید می­کند. به عنوان مثال  نمودار burndown ، تست­های انجام نشده، پاس شده و رد شده به صورت خودکار تولید می­شوند.

 

اصول توسعه چابک چیست؟

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

2-     خوش آمدگویی به تغییرات حتی در انتهای توسعه. اعضای تیم چابک، تغییرات را چیز خوبی می بینند زیرا تغییرات به این معنی است که تیم بیشتر یاد گرفته است که چه چیزی مشتری را راضی می کند.

3-     تحویل نرم افزار قابل استفاده از چند هفته تا چند ماه با تقدم بر تحویل در دوره زمانی کوتاهتر. ما مجموعه از مستندات و طرحها را به مشتری نمی دهیم.

4-     افراد مسلط به بیزنس و توسعه دهندگان باید روزانه با یکدیگر روی پروژه کار کنند. یک پروژه نرم افزاری نیاز به هدایت مداوم دارد.

5-     ساخت پروژه را بر توان افراد با انگیزه بگذارید و به آنها محیط و ابزار را داده و اعتماد کنید.  مهمترین فاکتور موفقیت افراد هستند، هر چیز دیگر مانند فرآیند، محیط و مدیریت  فاکتورهای بعدی محسوب می­شوند که اگر تاثیر بدی روی افراد می­گذارند، باید تغییر کنند.

6-     بهترین و موثر ترین روش کسب اطلاعات در تیم توسعه، ارتباط چهره به چهره است. در تیم چابک افراد با یکدیگر صحبت می کنند. نامه نگاری و مستند سازی فقط زمانی که نیاز است باید صورت گیرد.

7-     نرم افزار کار کننده معیار اصلی پیشرفت است. پروژه های چابک با نرم افزاری که در حال حاضر نیازهای مشتری را پاسخ می دهد، سنجیده می شوند. میزان مستندات، حجم کدهای زیر ساخت و هر چیز دیگری غیره از نرم افزار کار کننده معیار پیشرفت نرم افزار نیستند.

8-     فرآیندهای چابک توسعه با آهنگ ثابت را ترویج می دهد. حامیان، توسعه دهندگان و کاربران باید یک آهنگ توسعه ثابت را حفظ کنند که بیشتر شبیه به دو  ماراتون است یا دوی 100 متر. آنها با سرعتی کار می کنند که بالاترین کیفیت را ارائه دهند.

9-     توجه مداوم به برتری تکنیکی و طراحی خوب منجر به چابکی می­گردد. کیفیت بالاتر کلیدی برای سرعت بالا است. راه سریعتر رفتن این است که نرم افزار تا جایی که ممکن است پاک و قوی نگهداریم. بنابراین همه اعضای تیم چابک تلاش می­کنند که با کیفیت­ترین کار ممکن را انجام دهند. آنها هر آشفتگی را به محض ایجاد برطرف می کنند.

10- سادگی هنر بیشینه کردن مقدار کاری که لازم نیست انجام شود، است. تیم چابک همیشه ساده ترین مسیر که با هدف آنها سازگار است را در پیش می­گیرند. آنها وقت زیادی روی مشکلاتی که ممکن است فردا رخ دهد، نمی­گذارند.  آنها کار امروز را با کیفیت انجام داده و مطمئن می­شوند که تغییر آن در صورت بروز مشکلات در فردا، آسان خواهد بود.

11- بهترین معماری و طراحی از تیم های خود سازمان ده بیرون می آید. مدیران، مسئولیت ها را به یک فردی  خاصی در تیم نمی دهند بلکه بر عکس با تیم به صورت یک نیروی واحد برخورد می­کنند. خود تیم تصمیم می­گیرد که هر مسئولیت را چه کسی انجام دهد. تیم چابک با هم روی کل جنبه های پروژه کار می­کنند. یعنی یک فرد خاص مسئول معماری، برنامه نویسی، تست و غیره نیستند. تیم، مسئولیتها را به اشتراک گذاشته و هر فرد بر کل کار تاثیر دارد.

12- در بازهای زمانی مناسب تیم در می­یابد که چگونه می­تواند کاراتر باشد و رفتار خود را متناسب با آن تغییر دهد. تیم می­داند که محیط دائما در حال تغییر است، بنابراین خود را با محیط تغییر می­دهد تا چابک  بماند.

آزمون پذیرش کاربر(User Acceptance Test) چیست؟

مرحله ای از تست سیستم مورد توسعه بوده که بطور معمول پس از گذراندن تست های "واحد" و تست "تجمیع و سیستم"توسط کاربر سیستم به انجام می رسد.به همین منظور لازم است روال مدونی ارایه گردد که بر اساس موارد تست( Test Case)  انجام شده این اطمینان برای کاربر نهایی سیستم ایجاد گردد که کلیه قابلیت های سیستم مطابق با نیازمندی های خریدار توسعه یافته است. 
روش انجام تست:
روش آزمون پذیرش را می توان ازنوع ازمون های جعبه سیاه به شمار اورد. در واقع رویکرد انتخاب شده در اینگونه از ازمون ها ارزیابی عملکرد سیستم بوده و چندان توجهی به روش های فنی در پیاده سازی قابلیت ها نمی گردد. نکته مهم در اینگونه از ازمون ها این بوده که ازمون در محیط بسیار نزدیک به محیط واقعی و اجرایی سیستم و با داده های مشابه اطلاعات واقعی انجام می پذیرد.  مراحل روال در دسته بندی زیر قرار می گیرد:
1-برنامه ریزی ازمون پذیرش کاربر
2-طراحی  موارد  تستی Test Case 
3-انتخاب تیم تست کننده از کاربران 
4-اجرای موارد تستی 
5-مستند سازی از مراحل و نتایج تست 
6-رفع اشکالات و نواقص 
7-صورتجلسه 

سیستمهای مدیریتی TPS-OAS- MIS- DSS- EIS چیست؟

TPS(Transaction Processing System) یا سیستمهای پردازش رخداد:

به طور کلی در هر سازمانی یک سری رخداد وجود دارد که برای سازمان حیاتی است، لذا باید از این اطلاعات به نحو احسند استفاده شود. از نظر تنوع، این نوع سیستم­ها بیشترین تنوع را دارند. TPSها سیستم­های ساده­ای هستند و پیچیدگی خاصی ندارند و ترکیب بیشتر آنها در جمع­آوری اطلاعات می­باشد. سیستم­های پردازش رخداد معمولاً در سازمان­ها برای انجام کارهای ساده و تکراری و اموری که بصورت روزانه انجام می­گیرند، مورد استفاده قرار می­گیرد. کار با این سیستم­ها ساده و روتین است و این سیستم­ها بیشتر، رخدادهایی را ثبت می­کنند که ارتباط سازمان با بیرون از سازمان مطرح می­باشد. TPSها معمولاً سیستم­های کامپیوتری هستند. این سیستم­ها کاملاً ساخت­یافته بوده و اهداف و منابع آنها از قبل تعیین شده می­باشد. از کار افتادن TPS، گاهی مساوی با ورشکستگی سیستم است. به طور کلی TPS بستری فراهم می­کند که سایر سیستم­ها بر آن بنا می­شوند.

عملیات روزانه سازمان­ها بوسیله­ی این سیستم­ها انجام می­پذیرد. از خصوصیات اصلی این سیستم­ها داشتن ماهیت روتین، داشتن داده و اطلاعات حجیم و دارای جزئیات و عدم نیاز به تصمیم­گیری­های مدیریتی در حین كار با سیستم می­باشد.

     نمونه: سیستم دریافت و پرداخت بانك­ها

2. OAS(Office Automation System) یا سیستم­های اتوماسیون اداری:

کار اصلی این سیستم­ها مدیریت اسناد و ایجاد تسهیل در نامه نگاری و اطلاعات درون سازمان می­باشد. در این سیستمها به كمك تكنولوژی ارتباطی و با استفاده از واژه­پردازها‏‏، فایل­های الكترونیكی، نامه­های الكترونیكی، كنفرانس الكترونیكی و ... در جهت اتوماسیون اداری استفاده می­گردد. از سیستم­های اتوماسیون اداری برای برقراری مكاتبات بدون كاغذ در سازمان استفاده می­گردد. سیستم اتوماسیون اداری وظیفه­ی برقراری ارتباطات داخلی سازمان و همچنین افراد سازمان با خارج از سازمان را عهده­دار است. این ارتباط به بهبود هماهنگی فعالیت­ها و كیفی كردن كار كمك می­كند. پردازشگر­های متن، پست الكترونیك، ارسال صدا، ارسال فكس، ویدئو كنفرانس و كنفرانس صوتی از ابزارهایی هستند كه می­تواند در این مجموعه بكار رود.

 

4. MIS(Management Information System) یا سیستم­های اطلاعات مدیریت:

این سیستم­ها وظیفه­ی پشتیبانی از مدیریت میانی و بعضاً مدیریت عملیاتی را بوسیله­ی اطلاعاتی که به آن می­دهند، انجام می­دهند تا مدیر وظایفش را بهتر انجام دهد. توجه MIS به گذشته و حال است و به صورت مشخص به عملیات داخلی سازمان توجه دارد و به بیرون سازمان ارتباطی ندارد و عملیات وسیع سازمان را خلاصه می­کند. این سیستم­ها ساخت­یافته و نیمه ساخت­یافته می­باشند. با این حالMIS دارای انعطاف­پذیری بالایی نیست و توان تحلیل و پردازش وسیع و پیچیده را ندارد. همچنین این سیستم در مقابل اطلاعاتی که به مدیر ارائه می­دهد بی­تفاوت است. مدل­هایی که در MIS مورد استفاده هستند، مدل­های ساده­ای بوده و جهت گذارش­گیری استفاده می­شوند.

 

سیستم‌های اطلاعات مدیریت((MIS در سازمان‌ها از طریق مكانیزه كردن كامپیوتری تحقق می‌یابد كه ایجاد سیستم اطلاعات كامپیوتری دارای مراحل مختلفی به شرح زیر است (مدل مرحله ای نولان)

1. آشنا سازی: در این مرحله سازمان با دستگاهی به نام كامپیوتر آشنا می­شود. كاهش هزینه­ها و كاهش حجم اطلاعات روی كاغذ هدف استفاده از این دستگاه است.

2. سرایت: تعریف كاربردهای جدید برای كامپیوتر انجام می­شود و تقاضا برای استفاده از كامپیوتر افزایش می­یابد.

3. كنترل: در این مرحله مدیریت احساس می‌كند كه هزینه‌های استفاده از كامپیوتر افزایش پیدا كرده است و سعی در كنترل آن می‌كند كه شروع به استفاده از سیستمی با عنوان DSS(Decision Support System) می­كند.

([DSS]سیستم پشتیبانی تصمیم): موقعی عمل می­كند كه مسئله بروز شده باشد. این نوع سیستم ادامه یا مكمل سیستم گزارشهای مدیریت است كه از مدلهای تصمیم­گیری و پایگاه داده­هایی خاص در جهت پشتیبانی از تصمیمات نیمه ساخت­یافته یا ساخت­نیافته استفاده می كند.

4. جامعیت: سیستم‌هایی كه در دومین مرحله بطور مجزا پیاده شده بودند با هم جمع شده به این نحو كه داده­ها از یك محدوده به محدوده‌ی دیگر جریان می­یابند. سیستم‌های فرعی پردازش داده با هم جمع شده و بین سیستم‌های فرعی اطلاعات، ارتباط برقرار می­گردد.

5. اداره­ی داده: مدیریت داده از اهمیت پایگاه داده برای پردازش داده آگاه می­شود و نرم­افزاری با وظیفه­ی اداره­ی داده مطرح می­گردد.

6. بلوغ: تمام اجزای سیستم‌های اطلاعات مدیریت در جای خود قرار می­گیرند.

 

5. DSS(Decision Support System) یا سیستم پشتیبانی از تصمیم:

این سیستم­ها جهت اجرای مدل­های پیچیده­ی آماری و ریاضی، تحلیل داده­ها و پشتیبانی از تصمیم مورد استفاده قرار می­گیرند. ورودی این سیستم­ها حجم داده­های کم، پردازش همراه با تعامل با کاربر، خروجی تحلیل تصمیم  و کاربران آن پرسنل حرفه­ای سازمان می­باشند.DSSها جهت تصمیم­گیری در مواقعی که سابقه وجود ندارد، استفاده می­شوند و نتایج بدست آمده از آنها بهینه است که مدیران را در اخذ تصمیمات منحصر به فرد که غیر ساخت­یافته یا نیمه ساخت­یافته هستند، یاری می­دهد و هوشمندی مدیران یا کارکنان حرفه­ای را با قابلیت­های کامپیوتری ادغام کرده تا کیفیت تصمیمات را بهبود بخشد.

 

خصوصیات عمده­ی DSSها:

1.پیوند داده­های اطلاعاتی و مدل­ها 2.یاری دادن مدیران که با مسائل غیر ساخت­یافته روبه­رو هستند 3.پشتیبانی قضاوتهای مدیریتی به جای جایگزینی 4.هدف، بهبود اثربخشی تصمیمات بوده و ملاک کار این نیست 5.اطلاعات مورد نیاز حتی پس از شناسایی توسط مدیر باید از طریق منابع خاص تفکیک گردد 6.از ابتدا مشخص نیست که بهترین اقدام در خصوص بهترین تصمیم چیست 7.برخی از داده­های DSS از طریق TPS و برخی از طریق MIS تامین می­شود و بعضی EIS و خارج سازمان بدست می­آیند 8.از انعطاف پذیری بیشتری نسبت به MISبرخوردارند

 

برخی از منافع DSSها:

1.توانایی پشتیبانی و حل مسائل پیچیده 2.پاسخ صحیح به شرایط غیر منتظره 3.توانایی آزمایش استراتژی­های گوناگون تحت شرایط مختلف بصورت سریع و بی­طرفانه 4.درک جدید و یادگیری کاربر می­تواند به ترکیب مدل­ها تحلیل بهتر منجر شود 5.ایجاد ارتباط آسان 6.کنترل و عملکرد بهتر مدیریت 7.صرفه­جویی در منابع یا هزینه­ها 8.تصمیمات بی­طرفانه 9.افزایش بهبود 10.حمایت و پشتیبانی از گروه­ها

 

۶. EIS(Executive Information System) یا سیستم­های اطلاعاتی اجرایی:

سیستم EIS به مدیر ارشد سازمان کمک می­کند تا یک تصویر کلی از سازمان را در اختیار داشته باشد. از آنجایی که مدیر ارشد باید با استفاده از کمترین وسایل و اطلاعات، کاملترین و جامع­ترین برداشت را از وضع سازمان داشته باشد و از طرف دیگر مدیر ارشد باید معیارهایی برای ارزیابی داشته باشد و ریشه­یابی مسائل ممکن است برای مدیر ارشد با اهمیت باشد، این سیستم می­تواند بهترین کمک را به او برساند. توجه مدیر ارشد بیشتر به خارج سازمان می­باشد، از این رو باید بتواند فرصتها و تهدیدها را شناسایی کند. سیستم­هایEIS بمنظور کمک به دستیابی مدیران به عوامل کلیدی موفقیت طراحی شده و با معرفی موقعیت­ها و فرصت­ها، امکان تحلیل آن را فراهم می­سازند.

مروری بر متدولوژی SSADM

متدولوژی SSADM ( Structured System Analysis Development Method )

این متدولوژی یک متدولوژی ساخت یافته است که محصول کشور انگلستان می باشد . این متدولوژی دارای محدودیتهایی ( حداکثر موجودیتهای خارجی ، 12 موجودیت ) می باشد و به همین دلیل برای تحلیل سیستمهای بزرگ از این نوع متدولوژی استفاده نمی شود . قابل ذکر است که مستندات این متدولوژی بسیار زیاد می باشد .

این متدولوژی به طور خلاصه شامل مراحل زیر است :

  1. جمع آوری فرمهای پروژه
  2. تهیه سناریو
  3. تقاضای سیستم میکانیزه
  4. زمانبندی
  5. دیاگرام متن ( Context Diagram )
  6. شرح موجودیتهای خارجی
  7. شرح خطوط جریان داده
  8. دیاگرام گردش مستندات
  9. دیاگرام گردش داده ها ( DFD )
  10. خلاصه عملکرد سیستم
  11. مشکلات و نیازمندیها
  12. دیاگرام متن منطقی
  13. دیاگرام منطقی گردش داده ها
  14. طراحی پایگاه داده
  15. طراحی منوی برنامه
  16. طراحی فرم ورود داده ها
  17. شرح پردازه های جزئی

انواع رابطه ها در کلاس دیاگرام و راههای تشخیص

انواع رابطه ها در کلاس دیاگرام 

در کلاس دیاگرام چهار نوع رابطه وجود دارد که می توانید آنها را بین کلاسها برقرار کنید . association , dependency, aggregation , generalization

Association رابطه های معنایی بین کلاسها هستند که در نمودار کلاس بوسیله یک خط ساده به هم متصل می شوند .  وقتی یک association دو  کلاس را به هم وصل می کند ، هر کلاس می تواند از طریق یک نمودار توالی یا همکاری به کلاس دیگر پیغام بفرستد . association می توانند دو طرفه یا یک طرفه باشند . با یک association ، رز(Rose) صفتها را در کلاسها قرار می دهد . برای مثال اگر یک رابطه association بین یک کلاس خانه و یک کلاس شخص وجود دارد ، Rose یک صفت شخص (Person) را درون خانه (House) قرار می دهد تا به خانه بگوید که چه کسی صاحب آن است و یک صفت خانه را درون شخص قرار می دهد تا به شخص بگوید صاحب چه خانه ای هستند .

 

   

Dependency شبیه به association ها هستند با یک تفاوت که همیشه یک طرفه هستند . Rose در یک رابطه Dependency صفتها را برای کلاسها تولید نمی کند . Dependency ها با فلش خط چین نشان داده  می شوند . 

   

Aggregation ها یک فرم قویتر از association  ها هستند . یکAggregation  یک رابطه بین یک واحد کل و بخشهای آن می باشد . برای مثال رابطه بین یک کلاس ماشین را در نظر بگیرید با یک کلاس موتور یا یک کلاس بدنه . aggregation  ها مانند یک خط با یک لوزی در کنار کلاسی که واحد کل را نمایش می دهد نشان داده می شوند . 

    

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

    

پیدا کردن رابطه ها

1)     1) کار را با بررسی نمودارهای توالی و همکاری آغاز کنید . اگر کلاس A از طریق یک نمودار توالی یا همکاری پیامی را به کلاس  بفرستد ، یک رابطه باید بین آنها وجود داشته باشد . معمولاً رابطه های که با این روش پیدا می کنید ، association یا dependency هستند .

2)    2) کلاسهایتان را بررسی کنید و به دنبال رابطه های کل به جزء بگردید . هر کلاسی که از سایر کلاسها تشکیل شده ، ممکن است در یک aggregation  شرکت کند .

3)    3) کلاس هایتان را بررسی کنید و به دنبال رابطه هایgeneralization  بگردید . سعی کنید کلاسهایی را پیدا کنید که انواع مختلف داشته باشند . مثلاً در یک شرکت ممکن است کارمند به دوصورت ساعتی و حقوقی باشد ، در این صورت ما یک کلاس کارمند ساعتی و یک کلاس کارمند حقوقی داریم که هر کدام از یک کلاس کارمند ارث بری دارند .

4)    4) کلاسها یتان را برای یافتن رابطه های بیشتر generalization  بررسی کنید . سعی کنید کلاسهایی را پیدا کنید که مشترکات بسیار زیادی باهم دارند . مثلاً در یک دانشگاه هم دانشجو و هم استاد و هم کارمند از کلاس انسان ارث بری دارند .

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

ORM چیست؟ چرا بهتر است که از آنها استفاده نماییم؟

زمان به ما ثابت کرده که پایگاه داده‌های رابطه‌ای ساختار مناسبی برای ذخیره‌سازی داده‌ای هستند، همچنین به این نتیجه رسیده‌ایم که برنامه‌نویسی شیءگرا یک رویکرد بسیار خوب و قوی برای پیاده‌سازی سیستم‌های بسیار پیچیده می‌باشد.
ORM عملا یک لایه مترجم بین زبان برنامه‌نویسی و پایگاه داده رابطه‌ای است که این دو را به هم تبدیل می‌کند و در عمل باعث می‌شود که این دو حیطه کاملا متفاوت زبان یکدیگر را به خوبی بشناسند و با هم تبادل اطلاعات داشته باشند. این مفهوم که مانند یک پل بین این دو حیطه می‌ماند قابلیت‌های زیادی را برای ما تهیه می‌نماید.
به طور اختصار می‌توان گفت که وظیفه ORM پایدار کردن خودکار آبجکت‌های موجود در یک برنامه روی جداول در پایگاه داده رابطه‌ای می‌باشد که برای این کار از متادیتاهایی برای نگاشت بین آبجکت‌ها و پایگاه داده استفاده می‌نماید.
در این زمینه به نکات زیر توجه نمایید که شاید برای روشن شدن اینکه چرا ORMها بسیار برای کار مناسب هستند، به شما کمک نمایند:

۱- تجارب نشان می‌دهند که تا حدود ۳۰ درصد از کدهایی که برای نوشتن برنامه در NET. لازم است مربوط به ثبت داده و کار با داده‌ها می‌باشد.

۲- برای نوشتن کدهای SQL در NET. باید آن‌ها را به صورت رشته متنی یا به صورت stored procedure در خود پایگاه داده می‌نوشتیم که این کار باعث بروز خطا در زمان اجرا می‌شد و ما هیچ کنترلی برای بررسی خطا در زمان کامپایل برنامه نداشتیم.

۳- یکی از پرهزینه‌ترین بخش‌های هر پروژه‌ای، مدل‌سازی آن است. مدل‌سازی در زبان شیءگرا کاملا با مدل‌سازی در پایگاه داده‌های رابطه‌ای متفاوت است. ما می‌توانیم این مدل‌سازی را که بین هر دو حیطه مشترک باشد به صورت یک به یک انجام دهیم یعنی هر جدول در پایگاه داده با یک موجودیت (entity) در کلاس‌هایمان معادل شود و هر ستون از جدول با مشخصه (property) آن کلاس و کاملا به صورت معادل پیاده‌سازی شود ولی این کار باعث می‌شود که ما قابلیت‌های زیادی را که در زبان‌های شیء‌گرا داریم مانند ارث‌بری و چندریختی را از دست بدهیم.

۴- با ORM دیگر نیاز ندارد که خودمان را درگیر بخش‌های سطح پایین و خسته‌کننده هر سیستم کنیم و این باعث تمرکز بهتر و بیشتر ما روی مشکلات کاری می‌شود، در نتیجه به بهره‌وری بالاتری دست میابیم.
۵- ساده‌سازی سیستم باعث خوانا شدن آن و جلوگیری از اتلاف زمان می‌شود. ما به جای آنکه کدهای زیادی را برای کارهای کوچک بنویسیم، با مقدار کم کد می‌توانیم همان کار را انجام دهیم. از همه مهمتر اینکه سیستمی با مقدار کد کمتر، بهتر بازسازی می‌شود.

۶- خیلی‌ها از ORM استفاده نمی‌کنند به دلیل اینکه فکر می‌کنند باعث افت کارایی (performance) می‌شوند. این گفته تا حدودی صحیح است ولی این یک گفته کامل نیست. اولا ما باید ببینیم که ارجحیت ما چیست. باید بیان کرد که ORM ها اگر درست استفاده شوند تاثیر منفی بسیار کمی روی کارایی خواهند داشت، در عوض در کنار آن‌ها ما چیزهایی بدست می‌آوریم که بسیار ارزشمندتر است. لازم به ذکر است که ORMهای قوی مانند NHibernate حتی می‌توانند از ADO .NET کلاسیک هم کارایی بهتری داشته باشند. اگر از cache و عملیات دسته‌ای (batching) استفاده نماییم، می‌توانیم به کارایی حتی بالاتر از ADO .NET کلاسیک دست یابیم.

۷- یک ORM قوی مانند NHibernate ، برنامه شما را از نوع پایگاه داده و SQL Dialect استفاده شده، جدا می‌کند. این کار باعث می‌شود که استقلال شما نسبت به نوع پایگاه داده حفظ شود.

SQL Server Replication

معرفي 
Replication راه حلي براي انتقال اطلاعات از يك بانك اطلاعاتي SQL sever به يك بانك اطلاعاتي ديگر از همان نوع و البته مستقر در يك محل و كامپيو تر ديگر است . اين فرآيند توسط ايجاد يك كپي از اطلاعات موجود در مبدا و انتقال به مقصد صورت مي گيرد . در اين ارتباط اطلاعاتي اصطلاحا به كامپيو تر وبانك اطلاعاتي مبدا ، ناشر(publisher) و به كامپيو تر وبانك اطلاعاتي مقصد ، مشترك يا متعهد (subscriber) مي گويند البته اين نوع رابطه ، با وجود تنها يك ناشر اما يك يا چند مشترك امكان پذير است . بدين معني كه اطلاعات يك بانك اطلاعاتي در مبدا قابل انتقال به چند مقصد مختلف است . از نسخه 7 به بعد SQL severامكان تغيير اطلاعات در مقصد و انتقال آن به مبدا نيز وجود دارد . با اين وصف ، اين رابطه داده اي بين ناشر و مشترك ممكن است گاهي اوقات بر عكس شود و جاي مبدا و مقصد در يك مقطع زماني عوض شود . بدين ترتيب يك كامپيوتر مشترك يا مقصد مي تواند گاهي اوقات نقش ناشر يا مبدا در همان رابطه بازي كند . اين قابليت جديدMulti site update مي گويند .



در SQL sever ، سه نوع انتقال اطلاعات از طريق Replication وجود دارد . هر كدام از اين سه راه ، سناريو ي خاصي براي انتقال اطلاعات از مبدا به مقصد و يا برعكس را مديريت مي كنند كه در ادامه به بررسي آن ها مي پردازيم .

انتقال اطلاعات به روش ادغام (Merge) 
اينوع انتقال اطلاعات كه از قابليت Multi site هم پشتيباني مي كند ، زماني مورد استفاده قرار مي گيرد كه استقلال داخلي هر بانك اطلاعاتي طرف يك رابطه ، به رسميت شناخته مي شود . بدين معني كه در يك رابطه انتقال اطلاعات ، هر كامپيو تر ضمن حف ظ ساختار بانك اطلاعاتي خود ، هم مي تواند نقش ناشر را داشته باشد و نقش مشترك را ايفا نمايد . در اين حالت هر تغييري در جداول مشترك هر طرف ديگر اعمال مي شود . نكته مهمي كه در اينجا مطرح است اين است كه چطور طرفين اين ارتباط متقابل بايد با هم هماهنگ باشند و اولويت يكديگر را به رسميت بشناسند . به عنوان مثال فرض كنيد در يك زمان واحد ، هر دو طرف بخواهند اطلاعاتي را در مورد يك جدول بانك اطلاعاتي به يكديگر ارسال كنند . (يعني بروز حالت تداخل) اين مشكل با استفاده از روش خاصي كه هر نوع Replication مخصوص خودش دارد قابل حل است . به طور كلي در حالت ادغام ، يك پايگاه داده حايل ميان ناشر و مشترك به عنوان توزيع گر ( Distributor) ساخته مي شود . اين پايگاه داده به نام Distributor در ليست پايگاه هاي داده اي ناشر قرار مي گيرد و وظيفه ايجاد همزماني (synchronization ) بين ناشر و مشتركين را ايفا مي كند . 
پايگاه داده توزيع گر هم مي تواند در سمت ناشر و هم در يك كامپيوتر مياني ديگر (غير از كامپيو تر هاي سمت مشترك) قرار داشته باشد . اين پايگاه داده ضمن ايجاد همزماني در ردو بدل اطلاعات بين ناشر و مشترك ، اين امكان را نيز فراهم مي سازد تا مدير سيستم بتواند اولويت و در واقع ارجحيت جهت انتقال اطلاعات در زمينه بروز تداخل را مشخص كند . اين اولويت priority در زمان تعريف طرف هاي ناشر و مشترك يك Replication از نوع ادغام توسط مدير سيستم تنظيم مي شود .

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

انتقال بر اساس فرآيند (Transactional) 
اين روش يكي از بهترين و قابل كنترل ترين روش هاي انتقال است. در اين روش هر تغييري كه در جداول ناشر صورت مي گيرد ، به صورت يك دستور SQL درآمده كه تحت يك فرآيند واحد هم در سمت كليه مشتركين اجرا مي شود . در اين صورت اگر به طور مثال يكي از مشتركين به دليلي با اشكال مواجه شده و تغيير مورد نظر در آن انجام نشود ، اين تغيير نه در خود ناشر و نه در هيچ كدام از مشتركين ديگر نيز انجام نخواهد شد ، بدين معني كه يا يك تغيير در اطلاعات براي تمام كامپيوتر ها اعم از ناشر و كليه مشتركين انجام مي شود و يا اين كه براي هيچ كدام انجام نخواهد شد در اين حالت هم يك پايگاه داده به واسطه به نام Distribution نقش دريافت وارسال فرآيند را به طرف مشترك ايفا مي كند . در واقع روش فرآيند ، در مقايسه با دو روش قبل از حالت به هنگام (online) بودن بيشتري برخورداراست . يعني اين كه هر فرآيند و هر دستور در همان لحظه كه مي خواهد در ناشر اجرا شود ، به واسط فرستاده شده و سپس در يك زمان واحد در كليه مشتركين نيز انجام مي شود و در واقع زمان تغيير اطلاعات در ناشر و در مشتركين تقريبا يكسان است . همچنين در اين روش تداخلي هم پيش نمي آيد . چون هر تغييري ابتدا بايد به واسط فرستاده شود و از آن جا به جاهاي ديگر ارسال شود و واسط هم آن ها را در يك صف اولويت (priority queue) قرار داده و به ترتيب انجام مي دهد . نتيجه اين نوع انتقال اطلاعات ، داشتن چند پايگاه داده كاملا يكسان و به هنگام در مكان هاي مختلف است كه همگي از يك ناشر ، اطلاعات مورد نظر را دريافت مي كنند .

تعريف ناشر و مشتركين 
براي تعيين يك  SQL Serverوان ناشر ، كافي است يك رابطه Replication براي آن تعريف كرده و پس از انجام تنظيمات مربوطه و طي يك مراحل خاص هر يك از سه نوع انتقال اطلاعات ، آن كامپيوتر را به عنوان مبدا يا ناشر يك فرآيند انتقال معرفي كنيم . در همين حين و براي ايجاد پايگاه داده واسط يا همان توزيع گر (Distributor) هم مي توان وارد عمل شده و خود ناشر را به عنوان توزيع گر آن فرآيند انتقال معرفي كنيم . پس از اين كار نوبت به تعريف مشتركين مي رسد . براي تعريف يك مشترك از دو راه مي توان اقدام كرد ، كه هر يك كاربرد مخصوص به خودرادارند . در روش اول كه فرستادن اطلاعات به طرف يك مشترك است و در اصطلاح push ناميده مي شود . بدين معني كه مدير سيستم مي تواند بلا فاصله پس از تعريف يك ارتباط و ناشر آن از همان لحظه و در همان محل استقرارناشر ، مشتركين را يك به يك به اين نوع ارتباط دعوت و اضافه كند و اطلاعات را به سمت آنها بفرستد . اين ارتباط به دليل اين كه كامكلا از طرف ناشر، كنترل مي شود، از حالت به هنگام بيشتري (online) برخوردار است و اطلاعات بلا فاصله به سمت مشترك فرستاده مي شود . در روش دوم كه pull نام دارد ، تعريف مشترك از سمت خودش انجام مي شود و در واقع اين مشترك است كه اطلاعات را از ناشر طلب مي كند . اين حالت بيشتر در مواقعي است كه اطلاعات را از ناشر طلب مي كند . اين حالت بيشتر در مواقعي كاربرد دارد كه اولا تعداد مشتركين از قبل براي ناشر مشخص نيست و ثانيا بروز بودن اطلاعات در آن واحد از اهميت حياتي براي سيستم برخوردار نيست و انتقال اطلاعات درآن واحد از اهميت حياتي براي سيستم برخوردار نيست و انتقال اطلاعات مي تواند با تاخير و با درنگ زماني و در زمان دلخواه مشترك انجام شود

طرح يك مسئله 
فرض كنيد مي خواهيم با استفاده از مكانيسم Replication ، اطلاعات موجود در بانك اطلاعاتي Northwind را از يك پايگاه داده SQL server به نام server به يك بانك اطلاعاتي به همان نام و بر روي يك پايگاه داده ديگر مستقر در يك سرور راه دور به نام Home server منتقل كنيم . براي اين كار مي توانيم از هر كدام از سه روش انتقال اطلاعات ، استفاده نماييم .

مراحل ايجاد ناشر 
براي اين كار ، در پنجره Enterprise Manager بر روي گزينه Publication از آيتم Replication كليك سمت راست نموده فرمان New را انتخاب مي نماييم . با آغاز ويزارد مخصوص ، كليد Next را كليك كرده و در صفحه بعد در پاسخ به اين سوال كه آيا مي خواهيد پايگاه داده توزيع گر (Distributor) درهمين كامپيوتر ساخته شود يا خير ، گزينه اول يعني خود كامپيوتر server را انتخاب مي كنيم و به مرحله بعد مي رويم . 
در پنجره بعدي از كاربر خواسته مي شود تا فولدري را جهت قرار دادن فايل هاي مربوط به عمليات انتقال مشخص كند . وجود اين فولدر براي انجام عمل Distributeضروري است و بايد طوري انتخاب شود كه در شبكه اي كه قرار است مشتركين به آن بپيوندند قابل دسترسي باشد . پس از انتخاب اين فولدر و كليك بر روي كليد Next ، در مرحله بعد نام بانك اطلاعاتي مورد نظر يعني Northwind را از داخل ليست انتخاب كرده و به مرحله اصلي يعني انتخاب نوع Replication مي رسيم كه در اين جا همان گزينه اول يعني snapshotرا انتخاب مي كنيم . 
سپس در مرحله بعد بايد هر موجوديتي اعم از جداول و روال هايي، را كه مي خواهيم در اين عمليات انتقال وجود داشته باشند ، معرفي كنيم براي مثال جدول مشتريان (customers)را از داخل ليست جداول علامت زده و به مرحله بعد مي رويم . در مرحله بعد يك نام براي عمليات انتقال انتخاب كرده و كليد Next را مي زنيم و در نهايت با كليك بر روي عبارتFinish عمليات را پايان مي دهيم .

مراحل ايجاد مشتركين 
روش Pull (از طريق مشترك) 
براي ايجاد يك مشترك با روش pull ، به كامپيوتر مشترك مراجعه كرده و بر روي گزينه subscription كليك سمت راست كرده و فرمان New pull را انتخاب مي كنيم . سپس از داخل پنجره بعدي گزينه دوم يعني Look in the Active Directory را انتخاب مي نماييم . در مرحله بعد نام ناشر و سپس بانك اطلاعاتي مورد نظر ، نام عمل نشر كه در ناشر تعريف كرديم و سپس رمز عبور مربوط به يك كاربر معتبر در ناشر مثلا كاربر sa را وارد نماييم . 
در قسمت بهد هم نام بانك اطلاعاتي مقصد را كه همان Northwind است انتخاب مي ناميم . پس از طي چند مرحله ديگر كه نياز به تغييري در آن ها نيست و صرفا با كليك بر روي كليد Next ، مقادير پيش فرض را تاييد مي كنيم به مرحله انتخاب توالي زماني به روز شدن مشترك مي رسيم . در اين جا هم بايد بين سه روش مختلف يعني حالت هاي بلا درنگ ، زمان دار ، بر اساس در خواست ، يكي را انتخاب كنيم كه در اين جا همان نوع اول يعني بلادرنگ را انتخاب مي نماييم . 
با اين كار مراحل تعريف يك مشترك از طريق Pull پايان مي پذيرد . اما نكته مهمي كه در اين جا بايد به آن اشاره كنيم اين است كه براي فراهم ساختن امكان تعريف مشتركين از طريق Pull حتما بايد اين اجازه را قبلا و از طريق ناشر به كاربران مشترك داده باشيم . براي اين كار ، قبل از تعريف مشترك ، بايد در كامپيوترناشر ، بر روي نام عمليات انتقال ايجاد شده كليك سمت راست كرده و گزينه خصوصيات (properties)را انتخاب نماييم . سپس زبانه subscription را باز كرده و مطمئن شويم كه گزينه هاي Allow anonymousو همچنين Allow Pull در حالت تاييد شده باشند .
روش push (از طريق ناشر) 
براي تعريف يك مشترك با استفاده از روش Push ، به كامپيو تر ناشر مراجعه كرده و بر روي نام عمليات نشر كه قبلا ايجاد كرده ايم كليك سمت راست مي كنيم . با شروع مراحل ويزارد ، نام كامپيوتر مشترك را از ليست انتخاب مي كنيم . در مراحل بعدي با معرفي بانك اطلاعاتي Northwind به عنوان مقصد به پنجره ويژه تعريف زمان به روز شدن مشترك مي رسيم كه از بين دو نوع بلادرنگ و زماندار قابل انتخاب است . كه باز هم نوع اول را انتخاب مي كنيم . در مرحله بعد هم مطمئن مي شويم كه گزينه start snapshot agentدرحالت تاييد قراردارد و سپس با چند كليك بر روي كليد Nextعمليات را پايان مي دهيم . نكته بسيار مهمي كه براي تعريف مشترك از طريق روش push بايد در نظر داشته باشيم اين است كه براي ظاهر شدن نام هر مشترك درليست انتخاب كه در شكل 8 ملاحظه كرديد ، بايد قبلا اين مشترك با استفاده از عمليات Registration در كامپيوتر ناشر تعريف شده باشد . در غير اين صورت نام آن در داخل ليست مشتركين ظاهر نمي شود . عمل مذكور هم در يك محيط شبكه اي بسيار آسان است . كافي است بر روي SQL server Group در كامپيوتر ناشر كليك راست كرده و با انتخاب New Registration و وارد كردن نام مشترك اين كار را انجام دهيم .