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

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

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

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

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

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

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

درنهایت نیز مفاهیم نظری حسابداری ونیز چهارچوب مفهومی گزارشگری مالی طبق استاندارد های ایران به همراه جزئیات مورد بحث قرار خواهد گرفت .

سیستم عامل
سيستم رايانه اي از قسمت هاي مختلفي تشكيل شده است.
۱-سخت افزار
۲-سيستم عامل
۳-برنامه هاي كاربردي
عناصر اصلي كامپيوتر

 

Instructions
Instructions
Instructions

Data

Data
Data
-پردازنده
*كنترل اعمال كامپيوتر
*انجام اعمال پردازشي

عناصر اصلي كامپيوتر
-حافظه اصلي
*ذخيره داده ها و برنامه ها
*ناپايدار
عناصر اصلي كامپيوتر

-مولفه هاي ورودي/ خروجي
*انتقال داده ها بين كامپيوتر و محيط خارجي
*محيط خارجي شامل: حافظه ثانويه، تجهيزات مخابراتي و …
عناصر اصلي كامپيوتر

-اتصالات داخلي سيستم
*ساختارهايي براي ارتباط بين پردازنده ها، حافظه اصلي، مولفه هاي ورودي و خروجي
-ثبات هاي پردازنده
*ثبات داده

*ثبات آدرس
*ثبات كد وضعيت(براي تعين وضعيت هاي مثبت، منفي، صفر بودن و با وقوع سرريز)
*شمارنده برنامه(PC): حاوي آدرس دستورالعمل كه بايد واكشي شود.
*ثبات دستورالعمل(IR): حاوي آخرين دستورالعمل واكشي شده
*كلمه وضعيت برنامه(PSW)
*شامل كدهاي وضعيت

*فعال/ غير فعال كردن وقفه ها
تعريف سيستم عامل:
-برنامه اي كه اجراي برنامه هاي كاربردي را برعهده دارد.
-واسطي است بين برنامه هاي كاربردي و سخت افزار

-برنامه اي كه وظيفه راه اندازي كامپيوتر را برعهده دارد
-مديريت منابع كامپيوتر را برعهده دارد
*منابع كامپيوتر:
زمانCPU، فضاي حافظه، دستگاه هاي I/O
برخي تعاريف سيستم عامل:

-سيستم عامل يك نرم افزار سيستمي است كه به منظور راندن و هدايت كردن صحيح منابع سيستم از جملهCPU و I/O و غيره مورد استفاده قرار مي گيرد.
-سيستم عامل، استفاده از سخت افزار را در بين برنامه هاي كاربردي مختلف براي كاربران متفاوت هماهنگ و كنترل مي نمايد. گاهي اوقات نام مدير منابع نيز به آن اطلاق مي شود.
-مجموعه اي از برنامه هايي كه توسط برنامه نويسان مجرب جهت نحوه استفاده ي منابع سيستمي توسط كاربر به نحو احسن و بهينه نوشته شده و در سيستم، در بخشي كه به آن هسته مي گويند بطور دائم در زمان اجراي برنامه قرار مي گيرند.
O.S.

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

وظايف سيستم عامل:
-توالي كار
-زمانبندي
-راه اندازي سيستم

-كنترل عمليات I/O
-حفاظت خود از كاربر و كاربران در برابر يكديگر
-مديريت حافظه
-مديريت فابلهاي كامپيوتري و نقل و انتقال داده ها
-ارتباط با دستگاه هاي جانبي مختلف

 

اهداف سيستم عامل
-استفاده آسان كاربر از كامپيوتر
-استفاده بهينه از منابع كامپيوتر

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

*برنامه هاي كاربردي:
توصيف كننده نحوه استفاده از منابع سيستمي جهت حل و فصل درخواست هاي كاربران
*كاربران:
كاربران انساني، كامپيوترهاي ديگر
انواع سيستم عامل
۱-تك كاربره/ يك كاره

۲-تك كاربره/ چند كاره
۳-چند كاربره/ چند كاره
۴-بلادرنگ
تک کاربره/یک کاره:
يك سيستم عامل تک کاربر/یک کاره از نوعي است كه فقط اجازه استفاده يك كاربر از سيستم عامل انجام يك وظيفه ي خاص را در زمان واحد مي دهد.

مزيت
اين نوع سيستم ها از نظر برنامه نويسي ساده هستند
معايب
از منابع سيستم به نحو احسن استفاده نمي شود.
Cpu در بيشتر مواقع بجاي اينكه كار مفيدي انجام دهد، منتظر دريافت اطلاعات از كاربر است؛ در نتيجه از كارايي cpu كاسته مي شود.
تک کاربره /چند کاره:
-سيستم عاملي است كه اجازه مي دهد يك كاربر بيش از يك يا چند عمل را در آن واحد انجام دهد.
سيستم عامل هاي Mackintosh , Ms –Windowsاز اين نوع مي باشند.
چند کاربره /چند کاره:
-اين نوع سيستم عامل اجازه مي دهد كه كاربران زيادي، برنامه هاي متعددي را به طور همزمان برروي سرور شبكه كه به آن ترمينال سرور نيز مي گويند؛ اجرا نمايند.
چند نمونه از اين نوع سيستم عامل
یونیکس :
MVS(Multiple Virtual System)مربوط به شركت IBM
چند کاربره /چند کاره:
-مزيت:
در اين نوع سيستم عامل تعدد برنامه هاي كاربردي كه برروي آن انجام مي گردد باعث مي شود كاربران، كارهاي بيشتري را در زمان كوتاهتري انجام دهند؛ و در نتيجه كارايي سيستم بالا مي رود

-عيب:
در اين سيستم كدها افزايش يافته و براي به خدمت گرفتن ويژگي هايچند کاره]نظير(GUI) [Graphical User Interfaceنياز به يك سيستم پيچيده خاص داريم.
پورت سیستم:
پورت ويژه اي است كه به آن مي توان يك صفحه كليد و صفحه نمايش وصل شود كه مربوط به اپراتور
می باشد.
سير تكاملي سيستم عامل
-در زمان فقدان سيستم عامل برنامه ها مي بايست به صورت رشته هايي از صفر و يك درآمد(ترجمه) و توسط كاربر از طريق كنسولي وارد كامپيوتر مي شدند.

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

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

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

۲-انواع نرم افزار
نرم افزارها به طور كلي به دو دسته سيستمي و كاربردي تقسيم مي شوند.
الف) نرم افزارهاي سيستمي:
برنامه هايي هستند كه براي بهره برداري ازسخت افزار، ساير نرم افزارها و مديريت و پشتيباني سيستم هاي رايانه اي و شبكه به كار گرفته مي شوند. اين نرم افزارها خود به دو دسته سيستم عامل و سيستم هاي مديريت پايگاه داده ها.
ب)نرم افزارهاي كاربردي:

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

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

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

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

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

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

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

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

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

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

با پيشرفت حرفه مهندسي نرم افزار، مهندسي نرم افزار به كمك رايانه مورد توجه قرار گرفت. به مجموعهاي از ابزارها كه جهت خودكار كردن مراحل طرحي و توليد پروژه هاي نرم افزاري بزرگ و پيچيده به كار مي رود، ابزارهای کیس گفته مي شود. اين ابزارها، اغلب يك محيط كامل براي تمام مراحل توليد نرم افزار فراهم مي كنند.
۸-برنامه نويسي ساخت يافته

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

علي رغم تمامي رديابي هاي رايانه اي، دفاتر ثبت توازن مالي كه دربرگيرنده توازن هاي آزمايشي، گزارش ها و صورت حساب هاي كنترلي و دفاتر حساب فرعي مي باشند، اغلب اوقات بسيار نامتوازن هستند.
چگونه اين اتفاق افتاده است؟
تا دهه ۱۹۸۰ هنگامي كه رايانه به ندرت مشاهده مي شد، لااقل در بيشتر مراكز كسب و كار كه به لحاظ وسعت كاري در حد متوسطي قرار داشتند، دفتر داران ماهر داراي دفاتر بسيار دقيقي بودند و به صورت ماهانه و منظم، توازن مالي را انجام مي دادند حتي هنگامي كه از نرم افزار رايانه اي استفاده مي شد، همان سطح از نظارت و انضباط كاري وجود داشت و خطاها در انتهاي هر ماه و در آخرين لحظات استخراج و برطرف مي گرديد.

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

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

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

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

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

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

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

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