تبلیغات
محمد محسن مودت - Mohammad Mohsen Mavaddat

. . . . . . . . Mohammad Mohsen Mavaddat . . . . . . .

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

شنبه 16 اسفند 1393-11:39 ق.ظ


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

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

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

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

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

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

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

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

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



نوع مطلب : مهندسی نرم افزار 

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

پنجشنبه 23 بهمن 1393-02:07 ب.ظ


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


2 .  حرفه ای بودن:

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

  • انجام کارهایی را می پذیرند که صلاحیت لازم برای انجام آن را دارند
  • نسبت به انجام صحیح  و کامل کار در زمان معین، متعهد هستند
  • مسئولیت برآورد ها، زمان بندی ها، اشتباه ها و انجام کارهای خود را می پذیرند
  • عجله و سر هم بندی به امید اصلاح در آینده، در کارشان جایی ندارد
  • رعایت مسائل امنیتی و حفظ و نگهداری اطلاعات مشتری، اصل اساسی کارشان است
  • پشتیبان گیری منظم و تست مداوم محصول را همیشه در برنامه دارند
  • از ابزار کنترل سورس و سرویس های ابری به خوبی بهره می برند
  • بازیگر و عضوی از تیم هستند و هدف شخصی خود را در اولویت قرار نمی دهند
  • در کارشان پشتکار و تلاش فراوان دارند (البته خود را زیاد خسته نکنید، قاعده 6 - 6 - 12 برای کار، یادگیری، استراحت و سایر امور)
  • همواره سوابق کاری خود را با تنظیم حرفه ای رزومه، در صفحات شخصی و تخصصی خود منتشر می کنند
  • نسبت به قوانین و حقوق و تکالیف خود آگاهی کامل دارد و در همه حال به آنها پایبند است
  • با یک یا چند حوزه کسب و کار (مالی، حقوقی، بهداشتی، صنعتی و ... ) آشنایی کامل دارند

معمولا برای تبدیل شدن به یک متخصص حرفه ای، 5 تا 10 سال کار و تمرین مداوم و هدفمند مورد نیاز است. در ادامه چند توصیه:

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

تعامل با همکاران و عضویت در گروه های حرفه ای: 

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

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

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

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

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

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



نوع مطلب : مهندسی نرم افزار 

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

چهارشنبه 22 بهمن 1393-12:44 ب.ظ


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

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

مدل های شایستگی حرفه ای مرتبط با توسعه نرم افزار شامل موارد زیر می باشند:

  1. SWECOM (مدل شایستگی مهندسین نرم افزار) بر پایه SWEBOK (پیکره دانش مهندسی نرم افزار)
  2. US IT Competency Model  (مدل شایستگی کارکنان بخش فناوری اطلاعات آمریکا)
همانطور که در چکیده  SWECOM آمده، در این مدل، شایستگی هایی برای مهندسین نرم افزار توصیف شده که در توسعه و ویرایش سیستم های بر نرم افزاری مشارکت دارند. سطوح مهارتی، مهارت های زیر مجموعه و فعالیت های کاری مربوط به هر مهارت نیز تعیین شده است. فعالیت ها در پنج سطح افزایشی شایستگی تعیین شده اند. علاوه بر تشریح چگونگی استفاده مدیران، کارمندان و دیگر افراد از این مدل، کاربرگه هایی برای تشخیص فاصله موجود افراد یا سازمان تا رسیدن به وضع مطلوب در بخش الحاقات قرار داده شده است که بسیار مفید و کاربردی است.

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

  1. PMCD Framework بر پایه PMBOK و SWX
  2. ICB-IPMA Competence Baseline
علاوه بر مواردی که در مدل های بالا آمده، لازم به ذکر است یک متخصص بایستی مهارت لازم جهت استفاده عملی از دانش خود را نیز داشته باشد، لذا شناخت انواع نرم افزار ها از دید فناوری و کاربرد، در کنار توانایی پیاده سازی و بکار گیری زبان ها و ابزار های طراحی، برنامه نویسی و توسعه و پشتیبانی محصولات نرم افزاری لازمه کار یک توسعه دهنده نرم افزار متخصص می باشد. 

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

برخی دروس کاربردی دانشگاهی مرتبط با توسعه نرم افزار:

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

دروس پایه:
  • مبانی فناوری اطلاعات
  • زبان ماشین و برنامه سازی سیستم
  • ساختمان داده ها و طراحی الگو ریتم ها
  • مبانی کامپیوتر و برنامه سازی (پاسکال)
  • طراحی و پیاده سازی زبان های برنامه سازی
  • طراحی صفحات وب
  • اصول طراحی کامپایلر و سیستم های عامل
دروس اصلی:
  • مهندسی نرم افزار
  • اصول طراحی پایگاه داده ها
  • برنامه سازی پیشرفته (C++)
دروس تکمیلی:

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



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

سه شنبه 21 بهمن 1393-04:46 ب.ظ

به نام خدا


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


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


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

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

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

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

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

طراح نرم افزار باید حد اقل با موارد زیر آشنا باشد :

( تحلیل و طراحی شی گرا، الگو های طراحی، الگو های معماری نرم افزار و نمودار های پر کاربرد UML )

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

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

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

از طرف دیگر، فعالان حوزه نرم افزار در ایران با فرصت هایی نیز روبرو هستند:

  1. امکان سودآوری بالا با هزینه نسبتا کم با ارائه ایده های ناب و کاربردی
  2. گستردگی و افزایش نیاز به نرم افزار های کاربردی بومی در حوزه های مختلف
  3. تعدد و استقبال کاربران و نوپا بودن نرم افزار در ایران
  4. عدم وجود و التزام به ارائه تایید های فنی و استاندارد ها!

* منظور از مهندس نرم افزار لزوما فردی نیست که مدرک مهندسی نرم افزار از دانشگاه داشته باشد، بلکه فردی است که دانش پایه و مهارت بکارگیری موارد مطرح در پیکره دانش مهندسی نرم افزار (SWEBOK) را داشته باشد.

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




نوع مطلب : مهندسی نرم افزار 

Software Engineering Competency Model (SWECOM) Public Review

یکشنبه 28 دی 1393-04:41 ق.ظ

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



همچنین میتوانید PDF مدل شایستگی فناوری اطلاعات که در سال 2012 منتشر شده را از لینک زیر دریافت نمایید:



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


نوع مطلب : مهندسی نرم افزار 

SWEBOK V3 Final

جمعه 4 بهمن 1392-02:57 ق.ظ


SWEBOK V3.0 Now Available
Version 3.0 of the SWEBOK(R) Guide has received all necessary approvals and is now available .PDF and paperback formats.

نسخه نهایی پیکره دانش مهندسی نرم افزار ویرایش سوم 2013 .

جهت دریافت اطلاعات بیشتر به سایت زیر مراجعه فرمایید.


همچنین این نسخه را می توانید به صورت فایل PDF از آدرس زیر دریافت نمایید.



نوع مطلب : مهندسی نرم افزار 

SWEBOK V3 Beta version 2013

یکشنبه 26 آبان 1392-05:15 ب.ظ


The Beta version of the complete SWEBOK Guide V3 has been finalized and is now available. 

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

جهت دریافت اطلاعات بیشتر به سایت زیر مراجعه فرمایید.


همچنین این نسخه را می توانید به صورت فایل PDF از آدرس زیر دریافت نمایید.




بهانه بی بهانه

یکشنبه 11 فروردین 1392-03:16 ب.ظ

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



این کتاب با عنوان (بهانه بی بهانه) که برگردانی از کتاب Excuses Begone  هست نوشته دکتر وین دایر و ترجمه آقای علی علی پناهی هست و مثل همه کتاب های این نویسنده سرشار از امید و انرژی مثبت هست

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

در این بخش نویسنده به هجده بهانه معمول پرداخته و با مثال، بی معنی بودن این بهانه ها رو توضیح داده

1- کار سختی است
2- انجام این کار خطر دارد
3- خیلی طول می کشد!
4- خانواده ام مخالف هستند
5- صلاحیت لازم را ندارم
6- ذات من همین است
7- امکانات مالی ندارم
8- کسی به من کمک نمیکند
9- قبلا این کار را انجام نداده ام
10- توان و قدرت کافی برای این کار ندارم
11- هوش و استعداد کافی ندارم
12- از سن و سال من گذشته یا برای من زود است
13- مقررات اجازه نمی دهند
14- کار خیلی بزرگی است
15- حوصله ندارم
16- سابقه خانوادگی ما این است
17- خیلی گرفتارم
18- خیلی نگرانم (می ترسم)

در بخش های بعدی این کتاب راهکار ها و تمرین های عملی برای کنار گذاشتن این بهانه ها توضیح داده شده ...




نوع مطلب : مطالب خواندنی 

مشاهده ارائه های صوتی تصویری آموزشی

جمعه 8 دی 1391-01:16 ب.ظ

سلام

چند روز قبل وقتی دنبال یک سری اطلاعات در زمینه  Fault Tolerant Systems میگشتم سایت http://www.tele-task.de  را پیدا کردم که ارائه های خوبی از اساتید مطرح به صورت ویدیو در سایت قرار داده که با استفاده از دانلود منجر هم قابل دریافت هستند. هرچند خیلی از ارائه ها به زبان آلمانی de هستند اما ارائه های خوبی هم به زبان en در این سایت هست. برای دیدن موضوعات با توجه به تعداد ارائه ها میتوانید به بخش /http://www.tele-task.de/tagging از این سایت مراجعه نمایید.




پردازش ابری و تولید کنندگان نرم افزار

دوشنبه 2 مرداد 1391-07:34 ب.ظ

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

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

Pluralsight Cloud Computing Seeing the Big Picture


نوع مطلب : مهندسی نرم افزار 

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

پنجشنبه 15 تیر 1391-12:22 ب.ظ

مزایا :
  • عدم نیاز به نصب برنامه روی سیستم های کاربران و راه اندازی سریع
  • پرداخت هزینه مبتنی بر میزان استفاده
  • ریسک مالی پایین تر به دلیل امکان تست و انتخاب امکانات قبل از خرید
  • کاهش هزینه راه اندازی و نگهداری سرور ها و نیاز به کارشناس IT کمتر
  • سهولت بروز رسانی نرم افزار ها 

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

Pluralsight Cloud Computing Seeing the Big Picture


نوع مطلب : مهندسی نرم افزار 

نحوه شکل گیری کتاب Introduction to Software Testing از سایت نویسنده

سه شنبه 16 خرداد 1391-01:51 ب.ظ

در تابستان سال 2002، پائول به دفتر جف آمد و گفت "ما یک مشکل بزرگ داریم". 
مشکل این بود که کتابی که در مقطع کارشناسی ارشد برای درس تست نرم افزار استفاده میکردیم "Software Testing Techniques by Boris Beizer" دیگر چاپ نمیشد . از آنجا که در نیم سال تحصیلی بعد پائول این درس را ارائه می داد، پاسخ جف این بود " تو یک مشکل بزرگ داری! ". خوب، مشکل پائول به مشکل مشترک ما تبدیل شد و سر انجام ما دریافتیم که هیچ فرد دیگری قصد نوشتن کتابی را که ما به آن نیاز داشتیم ندارد . پس شروع به نوشتن کتاب کردیم.
5 سال بعد ما کتاب "Introduction to Software Testing" را که شامل 9 بخش و 362 صفحه بود به دانشگاه کمبریج ارائه کردیم. 
پائول و جف در تابستان اول چند جلسه در هفته با هم ملاقات داشتند و ساختار کلی کتاب را طراحی کردند. مهم ترین نگاه، ارائه یک ساختار نو آورانه و بدیع برای معرفی تست، بجای رویکرد مبتنی بر "چرخه حیاط نرم افزار " بود. جایی که تست واحد unit testing، تست ماژول module testing، تست جامعیت integration testing و تست سیستم System testing فعالیت های کاملا متفاوتی به شمار می روند، ما یک ادراک اساسی و پایه ای داشتیم.
تست، روندی است که یکی از معدود ساختار هایی را که نرم افزار را ایجاد می کنند، مشخص کرده و پس از آن ضوابط و معیار های پوشش تست test coverage criteria را بر روی آن ساختار اعمال می کند.
این نگاه بر اساس گفته کتاب پیشین بود که می گفت " تست کننده ها گرافی را یافته و آن را پوشش می دهند " نظر اصلی کتاب این است که معیار های پوشش کمی متفاوت وجود دارند و می توانند به چهار ساختار گراف، عبارت های منطقی، فضای خالی و ساختار نحوی اعمال شوند. این دید تنها تدریس تست را آسان نمی کند، بلکه امکان بررسی دقیق هر یک از ساختار های مذکور را فراهم می کند .
نام این کتاب در این 5 سال تغییر کرده است 
Paul and Jeff's Test Book
Coverage Criteria for Software Testing
Introduction to Software Testing




تبریک عید نوروز و آغاز سال 1391

سه شنبه 1 فروردین 1391-03:07 ب.ظ

با سلام

عید نوروز و فرا رسیدن سال 1391 را به همه دوستان تبریک عرض می کنم.
با آرزوی
سلامتی، شادکامی و سربلندی شما.

1391/1/1



جزئیات انجام پروژه تست و نگهداری نرم افزار

دوشنبه 20 تیر 1390-04:05 ب.ظ

با سلام
استاد در مورد پروژه فرمودند :
• پروژه، بخش عملی درس هست، تکمیل کننده درس هست و ارتباط مستقیم با مباحث مطرح شده نداره
• امتحان پایان ترم حداقل ۱۰ نمره
• فعلا درصد نمره تمرین و پروژه به ترتیب 60 به 40 هست، البته در صورت عدم ارسال برخی تمرین ها، با ارئه بهتر پروژه می توان این مورد را جبران کرد
• قرار است ابزاری برای مدیریت فرایند تست و پیگیری مشکلات برنامه، انتخاب و به یک شرکت توسعه دهنده نرم افزار معرفی کنید
• اگر ابزار انتخابی مستقل از تکنولوژی هست که هیچ، اما اگر وابسته هست بهتره قابل یکپارچه کردن با جاوا و محیط های توسعه جاوا باشه، البته اگر مشکل هست با دات نت هم اشکال نداره
• از طرفی بهتر هست که این ابزار با کد و فرایند ساخت نرم افزار هم در ارتباط باشد
• تیم توسعه، نرم افزار را به دپارتمان تست می دهد و در آنجا با استفاده از این نرم افزار، کلیه فعالیت های تست انجام شده و نتایج به تیم توسعه ارائه می شود، این روند ممکن است چندین بار تکرار شود
• بایستی یک Test Suit ارائه دهید و ارتباطی با گراف ها و اینطور مباحث ندارد
• ارائه Manual فارسی برای نرم افزار مورد نظر ضروری هست، بهتر است در قالب CHM یا به صورت صفحات HTML باشد
• نرم افزار مورد نظر را باید ارائه دهید، یا نسخه کد باز باشد، یا یک نسخه دمو ، که بتوان قابلیت های آن را بررسی کرد
• دلایل انتخاب این نرم افزار و مقایسه آن با سایر نرم افزار های مشابه هم باید مشخص کنید
با تشکر



تست Integration و تست System

جمعه 2 اردیبهشت 1390-03:55 ب.ظ

تست Integration و تست System :

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

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

Source : Introduction to software testing  -  Ammann & Offutt

نوع مطلب : مهندسی نرم افزار 



  • تعداد صفحات :3
  • 1  
  • 2  
  • 3