صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

آموزش تحلیل نرم افزار بخش دوم

بخش دوم

مشتری چه می خواهد؟

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

فرض کنید یک آژانس خدمات مسافرتی ، تورهایی را برگزار می کند ، مدیر عامل این شرکت به شما اینگونه سیستم را توصیف می کند

1-سیستمی تحت وب که در اینترنت کار کند

2-معاملات و سفارشات را بتوانیم پی گیری کنیم

3-کاربران بتوانند یصورت آنلاین تور ثبت نام کنند

4-کاربران بتوانند هتل مورد نظرشان را انتخاب کنند

 

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


در بخش عنوان شما باید سرفصل را بنویسید ودر بخش description  توضیحات مربوط به آن عمل را تا حد امکان یادداشت کنید ، دقت کنید که در هر برگه فقط و فقط یک عمل را بنویسید این نکته بسیار مهمی است ،

تمام افکار مدیر عامل را عنوان بندی به همران توضیحات یادداشت کنید و همانطور که گفتم و دوباره تاکید می کنم هر عنوان برگه فقط و فقط یک عمل را انجام می دهد

 

الان فرض کنید یکی از موارد 4 گانه بالا را در یک برگ می نویسیم فرض کنید مورد چهارم انتخاب هتل،

خوب عنوان موضوع : انتخاب هتل توسط مشتری

توضیح : کاربران باید بتوانند از لیست پیشنهادی سایت هتل مورد نظرشان را بر اساس تعداد ستاره ها انتخاب کنند

این تازه اول کار است

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

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

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

یک نکته مهم

شما الان هم با پرسنل شرکت و هم با مدیر عامل صحبت کرده اید ، باید جمع بندی اولیه از نیازها داشته باشید

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

 

شما باید از جلوه های بصری استفداده کنید مثلا اگر می توانید در این مرحله نسخه کوچک از نرم افزار بنویسید خیلی خوب است البته در این مرحله صرفا تاکید بر روی اینترفیس است همان ظاهر نرم افزار است و شاید هم شما با استفاده ار ابزارهای دیگر فرض کنید  power point  روال نرم افزار را بصورت گرافیکی برای مشتری نمایش می دهید .

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

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

 

یک نکته : همیشه زمان مصاحبه را با کاربران را غنیمت بشمرید چون مشتری بدلیل مسایل کاری حاضر نیست هر وقت بخواهید کاربران خود را برای جواب دادن به سوالهای شما در اختیارتان قراردهد

 

خلاصه ای که تا الان فهمیدیم آن است که ما ابتدا ایده ها را می گیریم و سپس بر اساس تجربه خود سعی می کنیم سوالاتی را مطرح کنیم که به واسطه این سوالات به جزییات سیستم پی می بریم

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

 

خوب اکنون شما مصاحبه هایی را انجام داده اید به شرکت خود بر می گردید ، جلسه اول با برنامه نویسان شرکت ، توجه داشته باشید که هم فرد تحلیل گر و هم تیم برنامه نویسی باید و باید در مورد موضوع پروژه اطلاعاتی داشته باشند ، فرضا اگر قرار است سیستم حسابداری بنویسید همگی سعی کنید در مورد حسابداری مطالعاتی داشته باشید و غیره

 

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

1-این پروژه چقدر زمان می برد؟

2-این پروژه چقدر هزینه دارد؟

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

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

علاوه بر آن تیم برنامه نویسی پس از اطلاع از چند وچون پروژه ، برای هر عمل نوشته شده در کارتهای بالا (شکل1 ) زمان مورد نیاز خود را مطرح می کندعلاوه بر این فرمها را تفکیک می کنید شما باید اینگونه تفکیک کنید

1-مبنای محاسبه بر اساس فرم است خوب فرم خود را مشخص کنید زمان مورد نیاز برای طراحی گرافیکی فرم چقدر است

2-زمان پیاده سازی کدهای مربوط به آن فرم چقدر است ؟

3-زمان مورد نیاز برای طراحی بانک اطلاعاتی مورد نیاز برای آن فرم چقدر است ؟

4-زمان مورد نیاز برای نوشتن کویری   query  مناسب برای عملیات آن فرم چقدر است ؟

5-زمان مورد نیاز برای پیاده سازی هر گزارش چقدر است ؟

 

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

 

 

نوع عمل                           برنامه نویس 1                برنامه نویس 2                برنامه نویس 3

 

پی گیری معاملات                        6 روز                           7 روز                            10 روز

اضافه کردن لیست هتلها                 5 روز                            10 روز                           15 روز

 

و غیره

 

همانطور که می بیند هر کدام از برنامه نویسان تخمین متفاوتی داده است اما نباید اختلاف زمانی خیلی زیاد باشد ریشه این اختلاف برآورد زمانی در کجاست ؟

1-ممکن است تیم برنامه نویسی شما منسجم نباشد و ازنظر تجربه با هم اختلاف فاحشی دارن

2-ممکن است تحلیل شما مشکل دارد و به تبع آن برداشت و فهم برنامه نویسان متفاوت بوده است

 

دقت کنید مورد اول قابل حل است و ربطی به تحلیل و مشتری ندارد سعی کنید تیم برنامه نویس شما پا به پای هم رشد کنند

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

شما گام به گام حرکت کنید

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

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

خوب فرض کنید ما زمان را جمع کردیم نتیجه حاصل این بود که برای انجام این پروژه به 248 روز زمان نیاز است

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

ادامه این بحث و جواب این سوال را در بخش بعدی خواهم گفت

 

 

 





 

آموزش تحلیل نرم افزار بخش اول


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

بخش اول

علاقه مندیهای مشتری

فرض کنید که یک مشتری می خواهد یک سایت برای فروش وسایل کوهنوردی ایجاد کند ، در این سایت مشتریان می توانند وسایل کوهنوردی را بخرند ، خوب این مشتری به شما مراجعه می کند و از شما می خواهد که سایتی برای او طراحی و ایجاد کنید .

گام اول : 2 چیز در هر پروژه نقش حیاتی دارد.

1چقدر هزینه دارد؟

2-چقدر زمان لازم دارد؟

نکته مهم این است که مشتری هم از نظر بودجه و هم از نظر زمانی ، محدودیت دارد و ما همیشه باید این نیاز مشتری را درک کنیم ، نمی توانیم زمان را بی پایان یا خیلی زیاد بدهیم ،

 

گام اول که ما انجام می دهیم

در گام اول مشتری فقط ایده را به ما ارایه می کند ، وما برداشتی اولیه خواهیم داشت ، در مثال بالا، ما در برآورد اولیه تصور می کنیم که این سایت به تعدادی کد  html,java script ,css  نیاز دارد

برای ارایه زمان و بودجه دو راه وجود دارد

1-تکراری : اگر پروژه پیشنهادی ما از قبل انجام شده و ما نیاز به ایجاد پروژه جدیدی نداریم ، مشکل ما حل شده است ، چرا که فقط نیاز به تغییرات گرافیکی و کدهای ساده ای دارد

2-جدید : مشکل اینجاست ، اگر پروژه کاملا جدید باشد و ما از قبل انجام نداده باشیم ، سختی کار اینجاست ،

چون تا زمانی که اطلاعات کافی نداشته باشیم ، نمی توانیم زمان و هزینه را برآورد کنیم .

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

به عنوان مثال ، درمثال بالا مشتری یک سایت برای فروش محصولات کوهنوردی می خواهد ، با توجه به فهم ما از مساله فکر می کنیم که مشتری سایتی را می خواهد که مشتری به سایت مراجعه می کند و کالایی را انتخاب می کند و سپس آن کالا را خریداری می کند ، حالا براساس پیش فرضها شروع به تولید نرم افزار می کنیم و آن را فرضا بعد از 1 ماه به مشتری تحویل می دهیم ، فکر می کنید چه اتفاقی می افتد

 

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

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

 

3-حالت سوم: ممکن است هم ساختار و هم گرافیک و هم سهولت ، نظر مشتری را جلب کند ، اما برخی حالتهای ویژه برای مشتری مد نظر هست که در سیستم وجود ندارد مثلا در مثال بالا اگر مشتری به سایت مراجعه کند و کالایی را انتخاب کرد ، ولی آن کالا موجودی نداشت راه کار چیست ؟

 

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

حقیقت آن است که بیشتر مشکلات تحلیل همان حدس و گمان افراد تحلیل گر است ، تحلیل کاملا با حدس و گمان متناقض است ، شما باید برای فهمیدن نیازهای مشتری ، مشتری را در یک حلقه loop   پرس و جو قرار دهید تا بتواند ، آنچه درذهن او می گذرد را به واقعیت تبدیل کنید و آنچه که در ذهن او غیر واقعی بود با ارایه استدلال منطقی به واقعیت تبدیل کنید . به قولی دیگر رابطه  face to face  با مشتر ی برای فهمیدن نیازهای آن امری حیاتی است.

 

استراتژی اولیه

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

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

 

استراتژی تکرار برای رسیدن به هدف

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

 

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


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

 

اما در استراتژی تکرار ما به تبع انجام تحلیل و تشخیص نیازها ، کار کد نویسی هم انجام می شود ، در این حالت شما در هز بار ملاقات با مشتری در واقع یک نسخه از سیستم به مشتری تحویل می دهید ، علاوه بر این مشتری در این حالت یکی از اعضای پروژه است  نمودار زیر را نگاه کنید 


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




همانطور که در شکل بالا می بینید ، نرم افزار در هر محله تکرار ، شما 4 مرحله اصلی تولید را انجام می دهید

1-تشخیص نیازها 2-طراحی 3-کد نویسی 4-تست نرم افزار

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

به عبارت دیگر هر تکرار در واقع خود یک پروژه کوچکی است.


این بحث ادامه دارد

 






بررسی و تجزیه و تحلیل سیستم حسابداری اسناد مالی

بررسی و تجزیه و تحلیل یک سیستم حسابداری مالی

برای خرید یک سیستم حسابداری و یا بعبارتی سیستم جامع باید بدانیم که هر سیستمی دارای یک قلب است
قلب سیستم یکپارچه همان سیستم حسابداری مالی است

حال این سیستم چه ویژگیهایی باید داشته باشد و ما برای خرید چنین سیستمی چکارهایی باید انجام دهیم


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

 *-درخت حسابداری: از مهمترین قسمتهای سیستم حسابداری است . شما باید طرح درخت حسابداری مورد نیازتان را داشته باشید . چرا که همین موضوع تعیین کننده بسیاری از کارهای دیگر است اگر درخت سیستم مطابق نیاز شما نباشد تمام چرخه حسابداری را بامشکل مواجه می کند حال این درخت چه ویژگیهایی باید داشته باشد
    - درخت چند سطح می تواند داشته باشد
        مثلا یک در خت می تواند به این شکل باشد
 طبقه حساب  ------> گروه حساب-----> زیرگروه حساب- ----->  حساب کل -----> حساب معین
مثال می زنم  حسابهای ترازنامه ای ---- داراییها-----داراییهای جاری---موجودی مواد و کالا---مواد اولیه

حال در این مدل حسابهای تفصیلی جداگانه طبقه بندی و تعریف می شوند

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

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

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

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

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

سند حسابداری :
شما باید حتما فرم سند حسابداری خود را داشته باشید چون فرمهای مختلفی از اسناد حسابداری وجود دارد که هر کدام روش خاص خود را دارد
مثلا فرمی می تواند  در سند حسابداری به هر کدام از حالتهای زیر باشد
1-
 معین            تفصیلی            شرح آرتیکل           بدهکار               بستانکار

2-

معین    تفصیلی 1      تفصیلی 2      تفصیلی   3      شرح        بدهکار    بستانکار

3-
طرف حساب   شرح    بدهکار     بستانکار      مرکز هزینه 1         مرکز هزینه 2

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

نحوه ورود اطلاعات :
دقت کنید که سیستم برای ورود اطلاعات چه امکاناتی دارد؟
آیا می توانید برای ورود اطلاعات فقط از کیبورد استفاده کنید یا فقط ماوس یا هر دو
این نکته مهمی است
علاوه براین اگر قابلیت کار با کیبورد را داشته باشد برای جابجایی بین قسمتهای نرم افزاری چه راه حلی دارد مثلا از کلیدهای میانبر واضح و آسان استفاده کرده یا نه؟

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

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

طبقه بندی اسناد:
شما لیست انواع اسنادی که لازم دارید را در سیستم داشته باشید مثلا آیا سیستم این اجازه را به شما می دهد که سند را بصورت پیش نویس وارد کنید  یا آیا به شما این اجازه را می دهد که اسناد را طبقه بندی کنید مانند سند تایید شده ، تایید نشده و غیره

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


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

جستجو :
بسیار بسیار مهم است . اگر شما سندی را تعریف کرده باشید بعد از مدت زمانی بخواهید سند را بازیابی کنید سیستم باید پارامترهای جستجوی لازم را داشته باشد مهمترین آنها
جستجو سند برحسب 1-تاریخ صدور  2- صادر کننده سند 3-سیستم صادر کننده سند 4- برحسب حساب خاص  5- برحسب شرح اسناد و غیره
البته پارامترهای فوق پیش فرض هستند و ممکن است برخی سیستمها امکانات بیشتری داشته باشند ولی مسله مهم این است که شما حتما روشهای مورد نیاز جستجو خود را در سیستم ببینید و تطبیق دهید.

عملیات سیستم :
شما باید لیست کاملی از عملیاتی که می خواهید با این سیستم انجام دهید را آماده کنید عمومی ترین عملیات
1-صدور سند حسابداری
2-گزارش دفاتر حسابداری
3-گزارش ترازهای چند ستونی
4-گزارش سود و زیان و ترازنامه
5-تعریف سال مالی
6-صدور اسناد دایمی  و بستن حسابها
7-صدور سند سود و زیانی در آخر دوره مالی
8-صدور سند افتتاحیه و اختتامیه
9-گزارش حسابهای تغییر ماهیت داده
و غیره
عملیات فوق معمولا بصورت پیش فرض در هر سیستمی موجود است و نکته مهم آن است که شما باید بتوانید تمام عملیات فوق را براحتی انجام دهید

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

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


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

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

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

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

نکته 1 : رمز کجا ذخیره می شود و چگونه ؟
دقت کنید که سیستمها باید از روش های رمز نگاری استفاده کنند . معمولا رمزها و یوزرهای کاربران در بانک اطلاعاتی ذخیره می شوند . اگر از سیستم رمز نگاری استفاده نشود براحتی قابل افشا است .
مثلا اگر کاربری رمز ورودش 123 است نباید همان عدد 123 در بانک اطلاعاتی ثبت شود بلکه از الگوریتم رمز نگاری استفاده شده باشد.

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


سیستم حسابداری ارزی معمولا بصورت زیر سیستم هست یعنی بعنوان یک زیر سیستم به سیستم حسابداری شما متصل می شود
ویژگیهای این سیستم باید بصورت زیر باشد
1-امکان تعریف نرخ ارزها بصورت روزانه با حفظ مبلغ نرخهای گذشته ، چون اسناد قبلی بر اساس نرخهای قبلی صادر شده است
2-امکان تعریف چند نرخ برای یک ارز ، چون در بعضی مواقع شما نیاز به گزینه چند نرخی برای یک ارز دارید
3-امکان تبدیل ارزها به یکدیگر در سیستم و ارایه گزارش بر اساس ارز انتخابی
4-امکان ورود اطلاعات بصورت ارز و یا ریالی و همچنین امکان تبدیل به یکدیگر