مسئولیت های تخصصی و اخلاقی یک مهندس نرم افزار

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

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

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

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

اصول اخلاقی مهندسی نرم افزار (ACM/IEEE-1999) مشاهده نسخه اصلی

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

  1. Public : مهندسین نرم افزار به نفع عموم کار می کنند.
  2. Client and Employer : مهندسین نرم افزار طوری عمل می کنند که به نفع کارکنان و مشتریان باشد و با نفع عمومی سازگاری داشته باشد.
  3. Product : مهندسین نرم افزار تضمین می کنند که محصولات و اصلاحات آن ها از بالاترین استاندارد تخصصی پیروی می کنند.
  4. Judgement : مهندسین نرم افزار جامعیت و استقلال را در قضاوت تخصصی خود حفظ می کنند.
  5. Management : مدیران و رهبران مهندسین نرم افزار، توسعه و نگهداری نرم افزار را بر اساس اصول اخلاقی انجام می دهند.
  6. Profession : مهندسین نرم افزار جامعیت و شهرت را مطابق با منافع عموم گسترش می دهند.
  7. Colleagues : مهندسین نرم افزار حامی همکاران خود هستند و با آن ها با عدالت برخورد می کنند.
  8. Self : مهندسین نرم افزار سعی در آموزش بیشتر در حرفه خود دارند و اخلاقیات را نیز رعایت می کنند.

حالا به من بگید چند تا مهندس نرم افزار با مشخصات بالا سراغ دارید؟

تحت وب یا تحت ویندوز!

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

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

تفاوت مهم دیگر در این نرم افزارها، مسئله ی توزیع یا Deployment است. معمولاً تولید کنندگان نرم افزارهای تحت ویندوز، محصولات خود را به صورت بسته های آماده ی قابل نصب (Setup) توزیع می کنند. این بسته ها به صورت یک برنامه ی کاربردی جداگانه و معمولاً به صورت قدم به قدم کاربر را در نصب و آماده کردن نرم افزار یاری می کنند. این روش هر چند ساده به نظر می آید ولی در برخی مواقع کاربران بسیار مبتدی با همین بخش نیز مشکل خواهند داشت. اما در نرم افزارهای تحت وب، یک بار برای همیشه برنامه را روی سرویس دهنده نصب می کنیم و کاربران بدون هیچ دردسری با استفاده از یک مرورگر از آن استفاده می کنند.

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

تتیجه؟

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

تاریخ شمسی قابل حمل!

نسخه ی قبلی برنامه مشکلات کوچکی داشت که با کمک دوستان (چه کسانی که لطف کردند ایمیل فرستاند و چه کسانی که در این پست نظر خودشان را ابراز کردند) حل شد و بر اساس پیشنهادات تغییرات هر چند کوچکی در برنامه اعمال شد. هر چند به نظرم آنچنان که باید به Datefa توجهی نشد. به هر حال در این نسخه یک سری از مشکلات نسخه ی قبل حل شده است. همچنان برنامه، فایل «راهنما» و آیکون اختصاصی ندارد، یک نفر قول همکاری داد ولی هنوز از ایشان خبری نشده (با تشکر از آقای مسعود میر زمانی که زحمت طراحی آیکون و فایل راهنما را قبول کردند). در قسمت «تنظیمات» یک فرمت جدید تاریخ اضافه شده که قابلیت مشاهده ی تاریخ به صورت «سه شنبه 14 اسفند 1386» را به شما می دهد، که این فرمت به پیشنهاد آقای بهمن اضافه شد.

دریافت Datefa نسخه ی به روز شده با حجم 700 کیلو بایت

دو ویرایش جدید از این برنامه را آماده کردم. یکی ویرایش «قابل حمل» (Portable)Portable Datefa و دیگری ویرایش «کنسول»(Console). همان طور که از نام ویرایش قابل حمل پیداست هیچ نیازی به نصب ندارد و حجم بسیار پایینی دارد و به زبان انگلیسی ارائه شده است تا با تمام ویندوزها همخوانی داشته باشد. از ویرایش قابل حمل می توانید در حافظه های فلش و هنگامی که نمی خواهید برنامه Datefa را نصب کنید استفاده کنید و از ویرایش کنسول برای استفاده از تاریخ شمسی در Command Line ویندور. بنده ویرایش کنسول را برای نیاز شخصی نوشته ام، امیدوارم بقیه هم از آن سود ببرند.

دریافت ویرایش «قابل حمل» با حجم 250 کیلوبایت

دریافت ویرایش «کنسول» با حجم 28 کیلو بایت

پ.ن : لینک های دانلود غیر مستقیم می باشند و همگی درسایت Box.net میزبانی می شوند.

تاریخ شمسی با طعم آزادی!

کاربران فارسی سیستم عامل ویندوز به صورت پیش فرض ار قابلیت تاریخ شمسی برخوردار نیستند، این امر باعث ایجاد برنامه های زیادی جهت جبران این کمبود شده است. چندی پیش نیز در همین وبلاگ برای رفع این نیاز نرم افزار Datefa معرفی شد.Datefa Package نسخه اول این برنامه با حجمی بسیار پایین و کارایی نسبتاً خوب انتخابی مناسب برای استفاده از تاریخ شمسی در سیستم عامل ویندوز بود. پس از گذشت دوسال، نوبت به عرضه نسخه دوم برنامه رسید. تصمیم گرفتم این بار توابع Datefa را در محیط دلفی پیاده سازی کنم (نسخه اول با استفاده از ویژوال بیسیک نوشته شده بود). حوشبختانه قبل از این کار با کلاس TFarDate که توسط آقای سالار خلیل زاده نوشته شده بود آشنا شدم. از آنجا که توابع این کلاس کامل و بی نقص بودند نیازی به تغییر یا دوباره نویسی توابع تاریخ شمسی ندیدم و نسخه ی دوم Datefa را بر پایه TFarDate توسعه دادم و برای بخش های دیگر برنامه از کامپوننت های JVCL استفاده کرده ام. نتیجه کار به نظر خودم رضایت بخش بود و چند وقتی است که از آن استفاده می کنم. تصمیم گرفتم این نسخه را تحت مجوز GPL منتشر کنم تا هر کسی بر اساس نیازهای خودش قادر به سفارشی کردن Datefa باشد. نسخه ی جدید Datefa به غیر از امکان تبدیل تاریخ میلادی سیستم شما به شمسی دارای ویژگی های زیر می باشد :

  • مبدل تاریخ میلادی به شمسی و بالعکس
  • مبدل اعداد به حروف فارسی (توسط سعید رضائی، تصحیح شده توسط سالار خلیل زاده)
  • تنظیم زنگ هشدار
  • تعیین تنظیمات نرم افزار
  • اجرای خودکار نرم افزار هنگام بالا آمدن ویندوز
  • پشتیبانی از ویندوزهای ویستا، XP و 2003 (روی ویندوزهای دیگر تست نشده است)
  • کاملاً رایگان و اوپن سورس تحت مجوز GPL
استفاده از برنامه
پس از نصب و اجرای برنامه صفحه ی اول Datefa مطابق شکل زیر به مدت چند ثانیه به نماش در خواهد آمد. شما می توانید در قسمت «تنظیمات» برنامه این زمان را تغییر دهید.
سپس آیکون جدیدی کنار ساعت ویندوز شما (System Tray) ایجاد خواهد شد. از این پس شما قادر خواهید بود تا با دابل کلیک کردن روی آیکون مورد نظر، تاریخ شمسی را مشابه شکل زیر مشاهده نمایید. برای دسترسی به منوی نرم افزار روی همین آیکون کلیک راست کنید.
Ballon tip on XP
نسخه ی جدید Datefa تا اطلاع بعدی به صورت آزمایشی ارائه شده است تا پس از رفع مشکلات و نواقص احتمالی به عنوان یک نرم افزار کامل ارائه گردد. شما می توانید با آزمایش کردن این برنامه و ارائه نظرات خودتان در پیشبرد این پروژه سهیم شوید.
کمک به این پروژه
این پروژه مانند سایر پروژه های آزاد و اوپن سورس نیاز به همکاری کاربران متخصص و غیر متخصص برای کامل تر شدن دارد. منظور از کمک، به هیچ وجه کمک مالی نیست. شما می توانید با استفاده از راه های زیر در پیشبرد این پروژه همکاری نمایید :
  • این برنامه در مرحله آزمایشی (Public Beta) به سر می برد. شما می توانید با امتحان کردن این برنامه و گزارش خطاهای احتمالی و ارائه پیشنهادات و انتقادات سازنده در جهت رفع مشکلات برنامه، کمک بزرگی به ما بکنید.
  • اگر شما برنامه نویس هستید، می توانید با گزارش خطاهای برنامه نویسی و ارائه راه حل های مناسب برای افزایش کارایی برنامه قدم بزرگی برای پیشرفت این برنامه بردارید.
  • اگر وب سایت یا وبلاگ دارید می توانید این برنامه را به مخاطبان خود معرفی کنید.
  • این نرم افزار هنوز دارای یک «راهنما»ی مناسب نیست. هرکس مایل به نوشتن یک فایل «راهنما» برای این نرم افزار است با من تماس بگیرد. (ایمیل : imnemati -at- gmail.com)
  • این نرم افزار نیاز به یک «آیکون» اختصاصی با مضمون «تاریخ شمسی» دارد. هر کس توانایی این کار را دارد با من تماس بگیرید. (ایمیل : imnemati -at- gmail.com)
  • معرفی Datefa به دیگران و دادن یک نسخه از این برنامه به دوستان و آشنیان خود
اگر مایل به همکاری در زمینه های بالا هستید، در قسمت نظرات یبان کنید و یا با من تماس بگیرید. به امید آنکه این برنامه برای کاربران ایرانی سیستم عامل ویندوز مفید واقع گردد.
تصاویر برنامه : تنظیمات | زنگ هشدار| مبدل