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

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

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

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

نگه داشت پذیری و تغییر پذیری (Maintainability & Updateability)

نکاتی ساده اما کاربردی

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

 

1-سعی کنید یک بانک اطلاعاتی از توابع برنامه خودتان داشته باشید . مثلا

نام تابع  --پارامترهای ورودی ---اهداف تابع ---مقادیربازگشتی ---و از همه مهمتر نحوه ارتباط این تابع با توابع دیگر ،

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

 

2-نمودار کلاسها و ارتباطات بین آنها

علاوه بر توابع ، شما باید دقت کنید که ارتباط کلاسهای شما چگونه است . اگر کلاسی دچار تغییر شد ، کدام کلاسهای دیگر نیز باید تغییر کنند.

 

3-حفظ و نگه داری نسخه های قبلی

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

 

4-مدیریت خطاها

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

نکات مهم در خرید یک نرم افزار برای سازمانها

چگونه نرم افزار  بخریم

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


-تشخیص نیازمندیها: اگر شما سازمانی با واحدهای متنوع باشد ، قبل از جستجو در مورد نرم افزار باید نیازهای خود را تشخیص دهید این نیازها مختصرا بصورت زیر است

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

*آیا شما در سازمان برای کارهای خودتان گردش کار یا فرایند کاری تعریف کرده اید خوب حتما این فرایندها را حتما یادداشت کنید و مستند کنید

*-محدوده کاری سازمان شما چگونه است ؟ از نظر جغرافیایی چگونه است ؟ آیا سازمان شما متمرکز است یا پراکنده ؟ آیا سازمان شما نیاز به تعامل با مشتری دارد ؟ آیا سازمان شما نیاز به ارایه خدمات تحت وب دارد؟ آیا نیاز به خدمات تجارت الکترونیک دارد ؟ و ....

*سطح دانش همکاران سازمانی در چه حدی است آیا سواد کامپیوتری دارند ؟ آیا به نرم افزارهای  اکسل و  word   و غیره آشنا هستند ؟

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

*سوال بسیار مهم این است ؟ که سازمان شما به چه دلیل نرم افزار می خواهد ؟ آیا برای کاهش پرسنل سازمان یا کاهش هزینه ها ؟ یا برای حذف برروکراسی و کاغذ بازی حاکم در سازمان ؟ یا برای بهبود کارها ی سازمان و سرعت بخشیدن به کارها ؟
اهداف شما از خرید نرم افزار چیست ؟

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

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

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

2-پشتیبانی
برای بحث پشتیبانی چند بخش وجود دارد که ذکر می کنم

·   شما وقتی با شرکت توافق کردید و نرم افزار آنها را خریدید باید یک قرار داد گارانتی نرم افزار و پشتیبانی داشته باشید
در اینجا مختصرا مهمترین بندها را ذکر می کنم

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

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

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

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

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

برای هر یک از عناصر موجود در نمودار، عنوان کامل و گویایی o
باید ذکر شود

واحدهای سازمانی (کمیته، گروه، واحد، ...) باید به نحو مناسبی از o
افراد (مدیر، مسئول، ...) متمایز گردند.

خطوط فرماندهی و گزارش دهی باید به طور مشخص و بدون ابهام o
ترسیم شده باشند.

ذکر اسامی افرادی که در این ساختار نقش دارند، ضروری است.

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

منابع لازم

این بخش باید حداقل شامل بندهای زیر باشد:

سخت افزار
فهرست و مشخصات کلیه تجهیزات سخت افزاری لازم برای ارائه خدمات دوره گارانتی باید ارایه گردد . در مورد هر یک از تجهیزات سخت افزاری مورد نیاز مشخص گردد که مسولیت تامبن ، راه اندازی و نگهداری به عهده کدامیک ( کارگزار یا کارفرما ) می باشد .

نرم افزار
فهرست و مشخصات کلیه نرم افزارهای لازم برای ارائه خدمات دوره گارانتی باید ارایه گردد. در مورد هر یک از نرم افزارهای مورد نیاز باید مشخص گردد که مسولیت تامین ، نصب و راه اندازی و نگهداری به عهده کدامیک ( کارگزار یا کارفرما ) می باشد .

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

فضای کاری و تجهیزات اداری
میزان و مشخصات فضای کاری و تجهیزات اداری لازم برای ارائه خدمات دوره گارانتی باید ارایه گردد . در مورد هر یک از امکانات و تجهیزات مورد نیاز باید مشخص گردد که مسئولیت تامین و نگهداری به عهده کدامیک ( کارگزار یا کارفرما ) می باشد .

سایر منابع
در صورتی که برای ارائه خدمات دوره ضمانت به منابع و امکانات دیگری
نیز نیاز باشد، مشخصات این منابع و امکانات باید ارائه گردد . در هرمورد باید مشخص گردد که مسئولیت تامین، راه اندازی و نگهداری به عهده کدامیک ( کارگزار یا کارفرما ) می باشد

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

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

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

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

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

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

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