متدهایی در زنجیرهی بین انطباقی تا پیشگویانه وجود دارند. متدهای چابک در بخش انطباقی این زنجیره قرار دارند. متدهای انطباقی بر انطباق سریع با واقعیات تغییریافته متمرکز است. وقتی نیازهای یک پروژه تغییر میکند، یک تیم انطباقی نیز تغییر میکند. یک تیم انطباقی به سختی توضیح میدهد که در آینده دقیقاً چه اتفاقی خواهد افتاد.
در متد انطباقی هرچه تاریخ دورتر باشد، ابهام در بیان اینکه در آن تاریخ چه اتفاقی خواهد افتاد، بیشتر است. یک تیم انطباقی نمیتواند وظایفی را که اعضا در هفتهی آینده خواهد داشت گزارش دهد، تنها میتواند ترکیب کارهایی را که برای ماه آینده قرار است انجام شود بیان کند. وقتی در مورد انتشار شش ماه از حالا سؤال میشود، یک تیم انطباقی ممکن است فقط بتواند بیانیهی مأموریت (برای آن انتشار) یا بیانیهی ارزش موردانتظار در مقابل هزینه را گزارش دهد.
در مقابل، متدهای پیشگویانه، بر تحلیل و برنامهریزی آینده به صورت جزئی و برای ریسکهای شناختهشده تمرکز دارد. در نهایت، یک تیم پیشگویانه میتواند دقیقاً گزارش دهد که چه ترکیب کار و چه وظایفی در سرتاسر فرایند توسعه برنامهریزی شدهاست. متدهای پیشگویانه بر فاز ابتدایی و اثربخش تحلیل تکیه دارد و اگر این فاز با اشتباه زیادی پیش رود، ممکن است جهت پروژه به سختی اصلاح شود. تیمهای پیشگویانه اغلب یک هیأت کنترل تغییر ایجاد میکنند تا اطمینان یابند که تنها به تغییرات با ارزش فکر میشود.
متدهای رسمی، بر خلاف متدهای انطباقی و پیشگویانه، بر تئوری علوم کامپیوتری با طیف گستردهای از انواع مفاهیم ثابت تکیه دارد. یک متد رسمی میکوشد تا نبود خطاها را با درجهای از جبرگرایی ثابت کند. بعضی متدهای رسمی مبتنی بر بررسی مدل هستند و مثالهای متضادی برای کدهایی که نمیتوان ثابت کرد، فراهم میکنند. تیمهای چابک ممکن است متدهای رسمی بسیار منظمی به کار گیرند.
متدهای چابک که از دههی 90-1980 توسط James Martin و دیگران حمایت شدند، اشتراکات زیادی با «توسعهی سریع اپلیکیشنها» دارند. علاوه بر متدهای مبتنی بر تکنولوژی، متدهای مشتریمحور و طراحیمحور (مانند نمونهسازی سریع تجسممحور که توسط Brian Willison توسعه یافت)، مشتریان و کاربران نهایی را به تسهیل توسعهی چابک نرمافزار تشویق میکنند.
در سال 2008 مؤسسهی مهندسی نرمافزار (SEI) گزارش فنی «CMMI یا چابک: چرا هر دو نه؟» را برای روشن کردن اینکه مدل یکپارچهی قابلیت بلوغ (CMMI) و مدل چابک هر دو میتوانند وجود داشته باشند، منتشر کرد. CMMI ورژن 1.3 شامل تیپهایی برای پیادهسازی چابک و CMMI است.
یکی از تفاوتهای بین چابک و آبشاری، این است که تست نرمافزار در نقاط مختلفی در چرخهی عمر توسعهی نرمافزار انجام میشود. در مدل آبشاری، یک فاز تست به صورت جداگانه بعد از پیادهسازی وجود دارد. در چابک XP، به طور همزمان با پیادهسازی انجام میشود. به طور کلی اگر بیشتر ناشناختهها شناخته شوند (مانند نیازمندیهای خوبی که تا آن زمان تحلیل شدهاند)، رویکرد پیشگویانه ممکن است مناسبتر باشد. اما اگر ناشناختههای شناختهنشدهی زیادی وجود داشته باشد (مانند نیازمندیهایی که ضعیف شناختهشدهاند و هنوز بهبود نیافتهاند)، رویکرد چابک اجازهی بلوغ تدریجی و پیادهسازی را میدهد.
متدهای چابک
متدهای معروف توسعهی چابک نرمافزار عبارتند از:
مدلسازی چابک
فرایند یکپارچهی چابک (AUP)
Crystal Clear
متدهای Crystal
متدهای توسعهی سیستمهای دینامیک (DSDM)
برنامهنویسی اکستریم (XP)
توسعهی ویژگیمحور (FDD)
طراحی گرافیکی سیستم (GSD)
توسعه Kanban
توسعه Lean
Scrum
ردیابی سرعت
سازماندهی متد
در ، اصطلاحات متفاوتی به مفهوم متد انطباقی برمیگردد، شامل «سازماندهی متد»، «تطابق قطعات متد» و «مهندسی موقعیتی متد». مناسبسازی متد به صورت زیر تعریف میشود:
فرایند یا قابلیتی که در آن عوامل انسانی یک رویکرد توسعهی سیستم را برای موقعیت پروژهای خاص از طریق تغییرات پاسخگو در، و اثرات متقابل دینامیک بین زمینهها، مفاهیم و قطعات متد تعریف میکنند.
به طور بالقوه، تقریباً تمام متدهای چابک برای سازماندهی متد مناسب هستند. حتی متد DSDM نیز با این هدف به کار گرفته شده و با موفقیت در یک زمینهی CMM سازماندهی میشود. اقتضای وضعیت، به عنوان یک مشخصهی متمایز بین متدهای چابک و متدهای توسعهی سنتی نرمافزار مطرح است، دومی نسبتاً جدیتر و تجویزی است.
پیادهسازی کاربردی این است که متدهای چابک به تیمهای پروژه اجازهی تطبیق روشهای کاری را با نیازهای پروژههای منحصربهفرد بدهند. روشها فعالیتها و محصولات به هم پیوستهای هستند که بخشی از یک چارچوب متد را تشکیل میدهند. در یک سطح خیلی بالاتر، فلسفهی پشت متد، شامل تعدادی اصول است که میتوانند منطبق باشند (Aydin، 2004).
برنامهنویسی Extreme (XP) نیاز به انطباق متد را شفاف میکند. یکی از ایدههای بنیادین XP این است که هیچ فرایندی برای تمام پروژهها مناسب نیست، اما ترجیحاً روشها باید برای هر پروژهی منحصربهفرد سازماندهی مناسبسازی شوند. انطباق جزئی روشهای XP، که توسط Beck طرح شد، در موارد مختلفی گزارش شده است.
یک روش سازماندهی پیشنهاد میکند که یک نقشهی راه و راهنماهای مناسب برای انطباق با تمام روشها ارائه میدهد. روش RDP برای سفارشیسازی XP طراحی شده است. این روش، برای اولین بار در کارگاه APSO در کنفرانس ICSE 2008، به عنوان یک مقالهی تحقیقاتی طولانی طرح شد، و اکنون نیز تنها متد طراحیشده و قابلاجرا برای سفارشیسازی XP است. اگرچه این روش به طور خاص راهحلی برای XP است، اما قابلیت توسعه برای سایر متدولوژیها را دارد.
در نگاه اول، این روش در گروه متدهای استاتیک انطباق به نظر میرسد، اما آزمایشها با روش RDP میگوید این روش میتواند مانند یک متد دینامیک انطباق عمل کند. تفاوت ظریفی بین متدهای استاتیک انطباق و متدهای دینامیک انطباق وجود دارد. فرض کلیدی در مورد متد استاتیک انطباق این است که زمینهی پروژه در ابتدای یک پروژه داده میشود و در طول اجرای پروژه نیز ثابت میماند. نتیجه یک تعریف استاتیک از زمینهی پروژه است. با دادن چنین تعریفی و با استفاده از مسیر نقشهها میتوان تعیین کرد کدام قسمت متد ساختیافته، بر اساس مجموعهای از معیارهای از پیشتعیینشده، باید برای آن پروژهی خاص به کار رود. در مقابل، متد دینامیک انطباق، فرض میکند پروژه در یک زمینهی نوظهور واقع شده است. یک زمینهی نوظهور به این موضوع اشاره میکند که یک پروژه با فاکتورهای نوظهوری سر و کار خواهد داشت که بر شرایط مربوطه اثر میگذارند، اما قابلپیشبینی نیستند. همچنین به این معناست که زمینهی پروژه ثابت نیست و در طول اجرا تغییر میکند. در چنین موردی نقشههای مسیر تجویزی مناسب نیستند. مفهوم کاربردی متد دینامیک انطباق این است که مدیران پروژه اغلب ناچارند در طول اجرای یک پروژه، قسمتهای ساختیافته را تغییر دهند یا حتی قسمتهای جدیدی ابداع کنند (Aydin و همکاران، 2005).
چرخهی عمر توسعهی نرمافزار
متدهای چابک بر جنبههای متفاوتی از چرخهی عمر توسعهی نرمافزار تمرکز دارند. بعضی از آنها بر روشها (برنامهنویسی extreme، برنامهنویسی فعال مدلسازی چابک) تمرکز دارند، در حالی که بعضی دیگر بر مدیریت پروژههای نرمافزاری تأکید دارند (مانند رویکرد scrum). هنوز، رویکردهایی وجود دارند که تمام چرخهی عمر توسعه را پوشش میدهند (متدهای توسعهی سیستم دینامیک (DSDM) و Rational Unified Process (RUP))، در حالی که بیشتر آنها از فاز تعیین نیازمندیها مناسب هستند (مثلاً ویژگیمحور در توسعه یا FDD). بنابراین، یک تفاوت آشکار بین متدهای گوناگون توسعهی چابک نرمافزار در این مورد است. اگرچه DSDM و RUP نیازی به رویکردهای مکمل برای پشتیبانی از توسعهی نرمافزار ندارند، بقیهی آنها با درجات متفاوت این نیاز را دارند. DSDM میتواند توسط هر کسی به کار رود (علیرغم اینکه فقط اعضای DSDM میتوانند محصولات یا خدمات DSDM را عرضه کنند). RUP یک محیط توسعه تجاری فروشی است (Abrahamsson، Salo، Rankainen & Warsta، 2002).
اندازهگیری میزان چابکی
اگرچه چابکی به عنوان ابزاری برای پایان دیده میشود، تعدادی رویکرد پیشنهاد شدهاند که کیفیت چابکی را تعیین میکنند. اندازهگیری شاخصهای چابکی (AIM) پروژهها را برای کسب یک امتیاز کل، در مقابل تعدادی از فاکتورهای چابکی امتیازدهی میکنند. نام مشابه «شاخص اندازهگیری چابکی»، توسعهها را در برابر 5 بعد یک پروژهی نرمافزاری (مدتزمان، ریسک، تازگی، تلاش و تعامل) امتیازدهی میکند. تکنیکهای دیگر مبتنی بر اهداف قابلاندازهگیری هستند.
مطالعهی دیگری با استفاده از ریاضیات فازی (fuzzy)، میگوید سرعت پروژه میتواند یکی از استانداردهای چابکی باشد. خودارزیابیهایی در چابکی وجود دارد که تعیین میکند آیا یک تیم از روشهای چابک استفاده میکند یا خیر (آزمون Nokia، آزمون Karlskrona، 42 آزمون نکتهای).
اگرچه چنین رویکردهایی برای اندازهگیری چابکی پیشنهاد شدهاند، کاربرد عملی چنین معیارهایی هنوز دیده میشود. از لحاظ تاریخی، در پروژههای چابکی که نتوانستهاند نتایج مطلوبی تولید کنند، کمبود داده وجود دارد. میتوان مطالعاتی را یافت که پروژهها را با پیادهسازی ناکارآمد یک (یا چند) متد چابک، ضعیف گزارش کردهاند، اما هیچجا احساس نشد که به درستی اجرا شدهاند و در تحویل تعهدات خود شکست خوردهاند.
«این ممکن است یک دلیل بیمیلی برای انشتار مقالات در مورد پروژههای ناموفق باشد، یا ممکن است نشاندهندهی آن باشد که وقتی متدهای چابک کار میکنند که پیادهسازی درست انجام شود.». اگرچه، دادههایی از ROI توسعهی چابک نرمافزار از CSIAC ROI Dashboard در دسترس است.).
آزمودگی و پذیرش
یکی از مطالعات اخیر که دستاوردهای کیفیت، بهرهوری و رضایت کسبوکار با استفاده از متدهای چابک را گزارش میدهد، یک بررسی بود که توسط Shine Technologies از نوامبر 2002 تا ژانویهی 2003 انجام شد.
یک بررسی مشابه در سال 2006 توسط Scott Ambler (رهبر تمرین توسعهی چابک با گروه متدهای عقلانی IBM) انجام شد که همین فواید را بیان کرد. در بررسی انجامشده توسط VersionOne (یک تهیهکنندهی نرمافزار برای برنامهریزی و پیگیری پروژههای توسعهی چابک نرمافزار) در سال 2008، 55 درصد پاسخدهندگان گفتند متدهای چابک در 90 تا 100 درصد موارد موفق بودهاند.
برخی دیگر ادعا میکنند متدهای توسعهی چابک بسیار جوانتر از آن هستند که نیاز به اثبات گسترده و علمی موفقیتشان داشته باشند.
سازگاری
بخش وسیعی از توسعهی چابک نرمافزار به صورت یک زمینهی تحقیقاتی پرکار باقیمانده است. به طور گسترده توسعهی چابک برای انواع مشخصی از محیطها، شامل تیمهای کوچک متخصصان، مناسبتر به نظر میرسد. در سالهای اخیر برخورد مثبت با متدهای چابک در دامنهی Embedded در اروپا مشاهده شده است. بعضی مواردی که ممکن است بر موفقیت یک پروژهی چابک، تأثیر منفی بگذارد، عبارتند از:
تلاشهای توسعه در مقیاس وسیع (>20 توسعهگر)، اگرچه استراتژیهای مقیاسگذاری و مدارک بعضی پروژههای بزرگ توضیح داده شده است؛
تلاشهای توسعهی توزیعشده (تیمهای غیرهممکان). استراتژیها در «پلبندی و فاصله» و «استفاده از فرایند چابک نرمافزار با توسعهی دور دورکاری» توضیح داده شده است؛
تحمیل یک فرایند چابک به یک تیم توسعه؛ سیستمهای مأموریت بحرانی که در آنها شکست، به هر قیمتی یک گزینه نیست (مثل نرمافزار کنترل ترافیک هوایی).
اخیراً موفقیتها، چالشها و محدودیتهایی که در انطباق با متدهای چابک در یک سازمان بزرگ مشاهده میشوند، مستندسازی شدهاند. در شرایط برونسپاری توسعهی چابک، Michael Hckett، معاون رئیس شرکت LogiGear گفتهاست «یک تیم دورکار... باید این موارد را داشته باشد: تخصص، تجربه، مهارتهای ارتباطی خوب، تفاهم بین فرهنگها، اعتماد و تفاهم بین اعضا، گروهها و با یکدیگر.». متدهای چابک به طور گسترده برای توسعهی محصولات نرمافزاری به کار رفتهاند، بعضی از آنها نیز از خصوصیات مشخصی از نرمافزار، مانند فناوریهای موضوع استفاده میکنند. اگرچه این فناوریها میتوانند برای محصولات غیر نرمافزاری (مانند کامپیوترها، وسایل نقلیهی موتوری، وسایل پزشکی، خوراک و پوشاک) نیز به کار گرفته شوند. همچنین تحلیل ریسک میتواند برای انتخاب بین متدهای انطباقی (چابک یا ارزشمحور) و پیشگویانه (برنامهمحور) استفاده شود. Barry Boehm و Richard Turner میگویند که هر سوی این زنجیره پایهی اصلی (home ground) خاص خود را دارد
نقد
ممکن است متدولوژیهای چابک در سازمانهای بزرگ و انواع خاصی از پروژهها ناکارآمد باشند.
متدهای چابک برای پروژههای توسعهای و غیردائمی بهتر به نظر میرسد. بسیاری از سازمانها باور دارند متدولوژیهای چابک بسیار قوی هستند و با یک رویکرد مخلوط که ترکیبی از المانهای رویکردهای چابک و برنامهمحور است، سازگار میشوند.
بسته نرمافزاری
یک بستهٔ نرمافزاری یا بستهٔ کاربردی مجموعهای از برنامههای رایانهای است که معمولاً شامل نرمافزارهای کاربردی و ابزارهای برنامهنویسی با قابلیتهای مرتبط است که معمولاً دارای تواناییهایی در مبادله اطلاعات و به اشتراک گذاشتن واسط کاربر است.
گاهی سازندگان نرمافزارها بستههایی را که چیزی بیش از جمعآوری نسخههای برنامه قبلی است را با هزینهای کمتر معرفی میکنند.
افزونه نرمافزاری
افزونه (به انگلیسی: Extension)، برنامهای در یک پرونده است که برای افزایش قابلیتها یا دادههای موجود در یک برنامهٔ پایهایتر استفاده میشود. در واقع نوعی فهرست دستورهایی است که به صورت مستقیم در برنامه شامل میشود. هنگام نصب آن احتمالاً خواسته میشود که یک یا چند مرحله برای تکمیل نصب پیموده شود که گاه نیز به صورت خودکار این مراحل انجام میشود.
گاه این عبارت اغلب به غلط با افزایه اشتباه گرفته میشود. افزونه و افزایه هر دو نوعی از برافزا هستند.
افزونه و افزایه
افزونهها کمی با افزایهها (به انگلیسی: Plug-in) متفاوتند. بر خلاف افزایهها که معمولاً از واسط کاربری برنامه کاربردی استفاده میکنند و چارچوبی معین برای عملکردهایشان دارند، اما افزونهها معمولاً محدودیت کمتری داشته و بعضاً واسط کاربری مربوط به خود را دارند. و همینطور افزایهها دارای قابلیتهای محدودتری هستند.
ماشین مجازی
در علم کامپیوتر ماشین مجازی (به انگلیسی: Virtual machine) نرمافزاری است که بر روی یک کامپیوتر پیادهسازی میشود. این پیادهسازی بهگونهای است که تصور میشود یک کامپیوتر واقعی در حال اجرای برنامههای ماست.
تعاریف
یک ماشین مجازی، در ابتدا توسط Popek and Goldberg به صورت "یک نسخه کپی شده از روی یک ماشین واقعی، به صورت کارا و ایزوله شده" تعریف شد. استفادههای کنونی، ماشینهای مجازیای را شامل میشود که هیچ ارتباط با سختافزار واقعی ندارند.
ماشینهای مجازی، بر اساس استفاده و درجه ارتباط به ماشین واقعی، به دو دسته اصلی تقسیم میشوند. یک ماشین مجازی سیستمی یک زیرساخت محاسباتی کامل را فراهم میکند که از اجرای یک سیستمعامل کامل پشتیبانی میکند. در مقابل، یک ماشین مجازی فرایند، برای اجرای یک برنامه واحد طراحی شده، که این به این معناست که صرفاً یک از یک فرایند خاص پشتیبانی میکند. یک ویژگی مهم یک ماشین مجازی، این است که نرمافزاری که درون آن در حال اجراست، با منابع و سطوح انتزاعی که توسط ماشین مجازی اعمال میشود، محدود شدهاست – یعنی نمیتواند از دنیای مجازی خود خارج شود.
مثال: یک برنامه که به زبان جاوا نوشته شدهاست، با ارسال فرامین و دریافت نتایج مورد نظرش، خدماتی از نرمافزار ماشین مجازی جاوا (JVM) میگیرد. با ارائه این خدمات به برنامه، نرمافزار جاوا، به عنوان یک ماشین مجازی عمل میکند.
نرمافزار آزاد و متنباز
نرمافزار آزاد و متنباز (به انگلیسی: Free and open source software یا FLOSS، F/OSS، FOSS)، نرمافزاری است که بهمنظور تامین حق کاربران برای مطالعه، تغییر، و بهبود طراحی آن، با دردسترسبودن کد مبدأ نرمافزار، بهشکل آزاد پروانهدار گشته است.
نرمافزار قابل حمل
نرمافزار قابل حمل (Portable application) به نرمافزاری گفته میشود که بدون نیاز به نصب بر روی سیستمعامل از روی لوح فشرده, یواسبی فلش درایو، حافظه فلش یا فلاپیدیسک قابل اجرا باشد.
نرمافزار کاربردی
نرمافزار کاربردی (به انگلیسی: Application software) عبارت است از نرمافزاری که با استفادهٔ مستقیم از منابع و قابلیتهای رایانه کاری را مستقیماً برای کاربر انجام میدهد. باید توجه داشت که این عبارت در مقابل عبارت نرمافزار سیستمی معنی پیدا میکند.
نرمافزار سیستمی در مقابل در پسزمینه عمل میکند و خدماتی را فراهم میکند که دیگر نرمافزارها و یا سیستمعامل میتوانند برای انجام کارهای خود از آن استفاده کنند. اما در عوض معمولاً مستقیماً با کاربر عادی در تماس نیست و خدماتی را به او ارایه نمیدهد.
در عمل بیشتر نرمافزارهایی که کاربران با آنها سر و کار دارند از این دسته محسوب میشوند. برای مثال میتوان به نرمافزارهای رومیزی یعنی واژهپردازها، صفحه گستردهها، نرمافزارهای طراحی گرافیکی، بازیهای رایانهای و امثال آنها اشاره کرد.
بسیاری نرمافزارهای کاربردی، برای توسعهدهندگان ابزار رابط برنامهنویسی کاربردی هم فراهم میکنند تا بتوان از قابلیتهای نرمافزار در نرمافزارهای جدید استفاده کرد. برای مثال نرمافزار ادوبی آکروبات هنگام نصب ایپیآی فراهم میکند که برنامهنویس میتواند با استفاده از آن تواناییهای آکروبات را در برنامهٔ خود به کار گیرد.
برای عنوان نمونههای دیگر میتوان به نرمافزارهای پردازش متن، برگههای گسترده (صفحات گسترده) و نرمافزارهای پخش نوا و نما اشاره کرد.
نرمافزار متنباز
نرمافزار متنباز (به انگلیسی: Open Source Software) به نرمافزارهایی میگویند که افراد میتوانند در کد منبع آنها تغییر ایجاد کرده و یا اشکالات (باگ) احتمالی آنها را رفع کنند. این یک شیوه توسعه نرمافزار است که میتواند هم برای نرمافزارهای آزاد و هم برای نرمافزارهای با مالکیت انحصاری و تجاری به کار رود.
مشخصات متنباز
مقدمه
متنباز فقط دسترسی به کد نرمافزار نیست..
نرمافزارهای متنباز باید دارای ۱۰ تعریف زیر باشند:
۱. توزیع مجدد آزاد
نرمافزار باید بدون نیاز به حق امتیاز یا هر گونه پرداختی برای فروش، امکان توزیع به صورت آزاد را داشته باشد.
۲. کد منبع
کد نرمافزار باید شامل نرمافزار باشد و اجازه توزیع کد نرمافزار داده بشود (برای مثال از یک صفحه وب قابل دانلود باشد).
۳. کار مشتقشده
اعمال تغییرات و کارهای بعدی روی نرمافزار امکانپذیر باشد و این نرمافزار جدید را بتوان تحت همان شرایط نرمافزار اولیه و اصلی تکثیر کرد.
۴. نگهداری تمامیت کد منبع نویسنده اصلی نرمافزار مجوز نرمافزار ممکن است اجازه تغییر در اصل متن برنامه را به کاربران ندهد و تنها اجازهٔ افزودن وصلههای نرمافزاری و کامپایل مجدد برنامه را بدهد. در این شرایط توسعه دهندگان تنها میتوانند توزیعهایی به کمک وصلههای نرمافزاری خود ایجاد نمایند. مجوز نرمافزاری میباید صراحتاً ایجاد توزیع تازه با تغییر مجدد در کد اصلی را محدود نماید. نرمافزار توزیع شده تحت این مجوز میباید حتمن نام نسخهای تازه را داشته باشد.
۵. بین افراد و گروهها تبعیضی گذاشته نشود
اجازهنامه نباید بین افراد یا گروهها تبعیضی بگذارد.
۶. هیچ تبعیضی در نوع استفاده از نرمافزار وجود نداشته باشد
هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرمافزار انجام میگیرد، وجود نداشته باشد. برای مثال نرمافزاری نباید بین استفادهٔ تجاری یا تحقیقاتی تبعیض قائل شود.
۷. توزیع اجازهنامه
مجوز باید به هرکسی که یک کپی از نرمافزار را دریافت میکند نیز اختصاص یابد، بدون اینکه آنها نیاز به توافق و هماهنگی با اجازهنامهٔ دیگری داشته باشند.
۸. اجازهنامه نباید مخصوص یک محصول باشد
حقوق داده شده در مجوز یک نرمافزار نباید وابسته به این باشد که بخشی از بسته بزرگتری است. در صورتی که نرمافزار از محصول دریافت شده نیز جدا شود، باید همان حقوق را در استفاده، توزیع و ویرایش، به دریافت کننده نرمافزار را اعطا کند. تمام کسانی که آن نرمافزار را، که قبلاً به عنوان بخشی از محصول بزرگتری بوده است، دریافت و یا توزیع مجدد میکنند باید تمامی حقوق را مانند محصول اصلی داشته باشند.
۹. اجازهنامه نباید نرمافزارهای دیگر را محدود کند
شرایط تعریف شده در مجوز نباید توزیع نرمافزار را درکنار نرمافزارها با مجوزهای دیگر محدود کند. برای نمونه نمیتواند تعیین کند که تمامی نرمافزارهای ارائه شده در لوح فشرده ارائه شده باید متن باز باشند.
۱۰. اجازهنامه باید از نظر تکنولوژی بیطرف باشد
اجازهنامه نباید مختص یک تکنولوژی خاص باشد.
در ایران
مرکز ملی توسعه و بکارگیری نرمافزارهای بومی و آزاد /متن باز ایران (متنام) روز چهارشنبه مورخ ۲۲ خرداد ۱۳۹۲ در ساختمان دوم سازمان فناوری اطلاعات ایران افتتاح شد.
مایاسکیوال
مایاسکیوال (به انگلیسی: MySQL) یک سامانه مدیریت پایگاه دادهها متنباز است، که توسط شرکت اوراکل توسعه، توزیع، و پشتیبانی میشود.
سرور مایاسکیوال به چندین کاربر اجازه استفاده همزمان از دادهها را میدهد.
مزیتها
مایاسکیوال از مزیتهای زیر بهرهمند است:
مقیاسپذیری و قابلیت انعطاف
عملکرد بالا
در دسترسبودن بالا
پشتیبانی از تراکنشها
محافظت از داده
آسان بودن مدیریت
آزاد بودن برنامه
پشتیبانی شبانهروزی
تاریخچه
توسعه مایاسکیوال در سال ۱۹۹۴ توسط مایکل وایدنیوس و دیوید آکسمارک آغاز شد. اولین نسخه داخلی در ۲۳ می ۱۹۹۵ عرضه شد. در سال ۲۰۰۸ سان میکروسیستمز مایاسکیوال ایبی را خریداری کرد. شرکت اوراکل سان میکروسیستمز را در ۲۷ ژانویه ۲۰۱۰ خریداری کرد.
قابلیتها
انواع داده
انواع دادههای پشتیبانی شده در مایاسکیوال شامل موارد زیر است:
عددی
کاراکتری
دودویی
شمارشی (Enum)
زمان و تاریخ
نوعهای دادههای فضایی (به انگلیسی: Spatial)
موتورهای ذخیرهسازی
مایاسکیوال از چندین موتور ذخیرهسازی پشتیبانی میکند که به عنوان نوعهای جدول مختلف عمل میکنند. برخی انواع موتورهای ذخیرهسازی در برابر تراکنشها امن، و برخی دیگر در برابر تراکنشها ناامن هستند.
لیست موتورهای ذخیرهسازی مایاسکیوال شامل موارد زیر است:
اینودیبی (به انگلیسی: InnoDB): امن در برابر تراکنشها است. از قواعد جامعیت کلید خارجی پشتیبانی میکند. از مایاسکیوال ۵.۵.۵ موتور ذخیرهسازی پیشفرض مایاسکیوال است.
مایآیسم (به انگلیسی: MyISAM): قبل از نسخه ۵.۵.۵ موتور ذخیرهسازی پیشفرض مایاسکیوال بود.
حافظه (به انگلیسی: Memory): تمام داده را به منظور دسترسی سریع در حافظه نگهداری میکند.
ادغام (به انگلیسی: Merge): قابلیت گروهبندی کردن چندین جدول مایآیسم مشابه و ارجاع به آنها به عنوان یک جدول را میدهد.
آرشیو (به انگلیسی: Archive): برای نگهداری دادههای آرشیوی که به ندرت به آنها ارجاع میشود.
متحد (به انگلیسی: Federated): برای پیوند زدن چندین سرور مایاسکیوال مجزا برای ایجاد یک پایگاهداده منطقی از چندین سرور فیزیکی.
سیاسوی (به انگلیسی: CSV): داده را در فایلهای متنی با قالب مقادیر جداشده با کاما ذخیرهسازی میکند.
سیاهچاله (به انگلیسی: Blackhole): ورودی داده را قبول میکند، ولی آن را ذخیره نمیکند.
برنامههای ذخیرهشده
در مایاسکیوال هر برنامه ذخیرهشده شامل یک بدنه است که از عبارات اسکیوال تشکیل شده است. برنامههای ذخیرهشده میتوانند مقادیر خروجی داشته باشند (ایجاد شده توسط CREATE PROCEDURE) یا نداشته باشند (ایجاد شده توسط CREATE FUNCTION). اگر یک برنامه خروجی داشته باشد، از آن میتوان در پرسوجوی SELECT استفاده کرد.
مایا
مایا نام نرمافزاری برای طراحی سه بعدی است. این نرمافزار نخست توسط شرکت آلیاس. ویو فرانت عرضه شدهاست که در سال ۲۰۰۵ شرکت اتودسک (شرکت سازنده نرمافزارهای سه بعدی و انیمیشن سازی از جمله تریدیاسمکس و اتوکد) آن را خریداری کرد و نسخههای جدید مایا با نام اتودسک مایا (Autodesk MAYA) به بازار عرضه شدند.
مایا یکی از پیشرفتهترین نرمافزار انیمیشن و مدل سازی سه بعدی است که به طور گسترده در استودیوهای فیلم سازی، انیمیشن و همینطور صنعت بازیهای رایانهای استفاده میشود. البته نقطه قوت مایا در ابزارهای مدل سازی آن است و در شرکتهای بزرگ نیز بیشتر از این خصیصه اش استفاده میکنند. تکنولوژی NURBS بکار رفته در این استودیو انیمیشن سازی، باعث کمک به طراحی بهینه اشیاء طبیعی از جمله چمن، گیاهان، مو و... میشود. توانایی بالا در Rendering که با استفاده از موتور قدرتمند mentalray و وجود Materialهای متنوع در این نرمافزار از جمله موارد کلیدی آن است. از جمله ویژگیهای این نرمافزار، انعطاف پذیری و قابلیتهای شخصی سازی (customization) آن است که به کاربران حرفهای اجازه میدهد به سادگی محیط آن را به دلخواه خود تغییر دهند. مایا یک نرمافزار جامع است که به بخش های مختلفی تقسیم شده که هر بخش ویرایش و ایجاد یکی از مراحل ساخت انیمیشن رابر عهده دارد و نیاز کاربر را به نرمافزار های جانبی به حد اقل میرساند . به علاوه، یکی دیگر از قابلیتهای منحصربهفرد آن امکان توسعه این نرمافزار برای استفاده کنندگان آن است. کاربران میتوانند از طریق زبانهای برنامه نویسی سی پلاس پلاس، MEL یا (maya embedded language) و همینطور پایتون آن را توسعه دهند و ابزارها و امکاناتی که پیشتر در نرمافزار وجود نداشتهاند را به آن اضافه کنند. به همین دلیل بسیار مورد توجه استودیوهای بزرگ سازنده فیلم و انیمیشن قرار گرفتهاست.
تا سال ۲۰۰۹ مایا در دو گونهٔ maya complete و maya unlimited عرضه میشد که گونهٔ دوم امکانت گسترده تر همینطور قیمت بالا تری داشت، اما از نسخه ۲۰۱۰ به بعد فقط در یک گونه و با تمام امکانات عرضه میشود. آخرین نسخه مایا maya 2014 است. البته لازم به ذکر است که در سالهای اخیر، این نرمافزار در قالب ۳۲ بیت و ۶۴ بیت عرضه میشود.
در سال ۲۰۰۳ نرمافزار مایا برنده جایزه Academy Award برای "موفقیتهای علمی و فنی" شد.
هسته اصلی مایا در زبان سیپلاسپلاس نوشته شدهاست.
نرمافزار مایا بر روی سیستمعاملهای ویندوز، لینوکس و مکینتاش قابل استفادهاست.
مامبو
مامبو (Mambo Open Source یا MOS) یک سیستم مدیریت محتوا (CMS) به صورت متن باز و نرمافزار آزاد میباشد که امکانات زیادی برای ایجاد و مدیریت یک وبگاه چندمنظوره با یک رابط ساده فراهم میکند.
مامبو به زبان PHP نوشته شده و به صورت پیش فرض از پایگاه داده MySQL استفاده میکند. این سیستم مدیریت محتوا مانند سایر پروژههای PHP/MySQL به اغلب محیطهای کاری کامپیوتری (سیستمعاملها و معماریهای مختلف) قابل انتقال (portable) است.
مامبو تحت مجوز گنو (GPL) منتشر میگردد و حقوق آن متعلق به بنیاد مامبو (Mambo Foundation) میباشد.
ویژگیهای مامبو
ویژگیها و امکانات مامبو مشابه با دیگر سیستمهای مدیریت محتوا بوده و برخی از آنها در فهرست زیر آمدهاست:
اطلاعات کاملاً در دیتا بیس قرار دارد
رابط کاربری و مدیریتی ساده
پشتیبانی از XML و RSS
امکان تهیه صفحات نهانی (cache) برای بالا بردن سرعت مرور وبگاه
ایجاد فروم، نظر سنجی و وبلاگ
چندزبانه بودن و قابلیت محلی سازی
آخرین نسخه
در حال حاضر (دسامبر ۲۰۰8) آخرین نسخه منتشر شده مامبو ۴٫۶.۵ میباشد. وبژگیهای این نسخه عبارتاند از:
قسمت مدیریت کاملا دو زبانهاست . با تغییر زبان قالب هم متناسب با دایرکشن مربوطه تغییر میکند
تاریخهای بخش کاربری و مدیریت با تغییر زبان، تغییر میکنند یعنی با تغییر زبان به انگلیسی تاریخها میلادی و با تغییر به زبان فارسی تاریخها شمسی میشوند . این قابلیت برای سایتهای چند زبانه بسیار کاربرد دارد. ( این قابلیت در مدیریت محتواهای مشابه وجود ندارد )
حل چند مشکل امنیتی که با روشن بودن Register Global ممکن بود سایتها را دچار آسیب کند
حل مشکل Vote & SEF
حل مشکل حالت نمایش ساده و پیشرفته قسمت مدیریت
اضافه شدن قسمتهای بیشتر برای ترجمه از قسمت مدیریت
ارتقا پاپ آپ تاریخ در قسمت مدیریت
حل مشکل Tooltipها و افزایش عرض صفحه
...
اسماعیل نواب صفا
اسمعیل نواب صفا (زاده ی: ۲۹ اسفند ۱۳۰۳ خورشیدی - درگذشت: ۱۹ فروردین ۱۳۸۴)،
نویسنده، محقق، شاعر و ترانه سرای معروف و برجستهٔ ایرانی
زندگی
خانواده
استاد سیّد اسماعیل نوّاب صفا در بیست و نهم اسفند ماه سال ۱۳۰۳ خورشیدی در شهر
کرمانشاه دیده به جهان گشود. خاندان پدری او همگی از جملهٔ نوابهای اصفهان، که
از خانوادههای مشهور اصفهانی به شمار میآید، بودند (بطور کلّی در اصفهان به
خانوادههای منسوب به صفویّه «نوّاب» میگفتند.)و دایی پدرش «میرزا عبدالوهاب
خان معتمدالدوله» ملقب به نشاط اصفهانی از شاعران مشهور دورهٔ قاجار محسوب
میشد.
پدرش سیّد مرتضی نواب صفوی از سرسپردگان به سلسلهٔ صفائی نعمت اللهی بود که در
طی دیداری که در جعفرآباد شمیران با مرحوم ظهیرالدوله صفا داشت، از سوی وی که
قطب سلسلهٔ صفائی نعمت اللهی محسوب میشد، به لقب «نوابعلی» ملقّب گردید.
سید مرتضی یعنی پدر نوّاب صفاً بعدها، بواسطهٔ مشاغل دولتی خویش به اتفاق
خانواده به کرمانشاه عزیمت کرده و در همان شهر اقامت گزیده و ساکن شده بودند.
همچنین مادر ِاسمعیل نواب صفاً دختر میرزا حسن خان بصیری بود که به اتفاق یکی
از خالههایش، یعنی فاطمه خانم بصیری مؤسس و گردانندهٔ نخستین مدرسه ملّی
دخترانه بنام «بصیرت» در سال ۱۳۰۸ در شهر کرمانشاه بودند.
تحصیلات و فعالیتها
اسماعیل نوّاب صفا تحصیلات ابتدائی خود را در شهر کرمانشاه سپری میکند و پس از
چندی به همراه خانوادهٔ خود به گرگان عزیمت کرده و بعد از آن به تهران میآیند.
وی اوّلین شعرش را در سال ۱۳۲۳ در بیست سالگی در روزنامه توفیق به چاپ
میرساند. در آن موقع محمّد علی توفیق صاحب امتیاز و ابوالقاسم حالت سر دبیر
این روزنامه به شمار میآمدند. از آن پس به دعوت «ابوالقاسم حالت» به عضویت
هیئت تحریریه روزنامه «توفیق» در آمده و پس از چندی ستون مخصوصی با امضاء
مستعار«مرشد صفا» برای خود بازمی کند.
در تابستان ۱۳۲۵ به عضویّت نخستین کنگره شعرا و نویسندگان که در خانه فرهنگی
ایران و شوروی تشکیل شده بود انتخاب میشود. ریاست کنگره با ملک الشعرای بهار
بود و صادق هدایت نیز عضو هیئت رئیسهٔ آن محسوب میشد. اسماعیل نوّاب صفا
اوّلین تصنیف یا ترانه خود را بر روی یک آهنگ محلی کرمانشاهی ساخت که به نام
«وعده گلرخان» شهرت یافت. وی در سال ۱۳۲۶ با استاد اسماعیل مهرتاش آشنا شد که
در آن روزها جامعه باربد را تأسیس کرده بود. این آشنائی سبب شد که وی با
حسینعلی مستعان که در آن روزها ریاست رادیو را بر عهده داشت، آشنا شود. آشنائی
که کار او را به رادیو میکشاند واین آغاز کار هنری «نوّاب صفا» میباشد چرا که
در آنجا با نام آورترین هنرمندان عصر خویش آشنا شده و زمینهٔ فعّالیت هنری وی
در آنجا فراهم میآید.
«نوّاب صفا» در شهریور ۱۳۲۶ همکاری خود را با رادیو تهران آغاز میکند و به
عضویّت و دبیری شورای نویسندگان رادیو در آمده و همچنین بر برنامه-های رادیو
نظارت مینماید. وی همچنین از همان آغاز برای تماشا خانههای تهران، پیش پرده
میسازد و گاهی نیز در مجلّه هائی مثل تهران مصوّر اشعاری سیاسی به چاپ
میرساند که این اشعار با امضاء «مولانا صفا» به چاپ میرسید. همکاری وی با
مجید وفادار از همین زمان ادامه مییابد و برای آهنگهای او حدود ۱۲ ترانه
میسازد که برخی از آنها عبارتند از: دنیای من، آه بی اثر، خاکستر من، رویای
شیرین، دلنواز، و...
آشنائی «نوّاب صفا» با مهدی خالدی (یکی دیگر از برجستهترین آهنگسازان و
نوازندگان ایرانی) نیز در منزل «مجید وفادار» صورت میگیرد و نخستین اثر مشترک
با «مهدی خالدی» بنام «رفتی» در دستگاه شور با صدای خانم دلکش در سال ۱۳۲۶ به
اجراء در میاید. حدود ۱۶ ترانه از همکاری «نوّاب صفا»و «مهدی خالدی» بجا مانده
که از برخی از مشهورترین این ترانهها عبارتند از: آمد نو بهار، بگریم(در سوگ
صبا)، آهنگی در نوا، آئین وفاو... و بدین سان آفرینش ترانههای جاودانه «نوّاب
صفا» در کنار یارانش در رادیو با موفقیّت آغاز میشود.
«نوّاب صفا» مدّتی را نیز در مشاغل دولتی گوناگون از قبیل نمایندگی مجلس شورای
ملّی، رئیس دبیرخانه بنگاه بنادر و کشتیرانی، مدیریّت روابط عمومی شهرداری
تهران و... سپری میکند. امّا آنچه خود میپسندد و روح تشنه او را سیراب میکند
تغّزل است وترانه.
وی تا سالهای قبل از انقلاب ایران و همینطور در چند مورد طی سالهای پس از
انقلاب به فعالیت ترانه سرایی خویش ادامه میدهد، اما در عین حال طی سالهای پس
از انقلاب و تا پایان عمر پر برکتش، به تحقیق و نویسندگی نیز مشغول میگردد. از
جملهٔ این موارد میتوان به چاپ کتابهای قصهٔ شمع که شرح خاطرات هنری استاد
میباشد، تفسیر پنج قصیده از اسدی طوسی، نغمهٔ مهر که شرح حال پنج شاعر و عارف
مشهور از جمله مولانا، سعدی، حافظ، بابا طاهر و خواجه عبدالله انصاری میباشد،
اشاره کرد.
همچنین مجموعهٔ اشعار ایشان به نام از یاد رفته و مجموعهٔ ترانه هایشان با نام
تکدرخت در همین سالها به چاپ رسیدهاست. ایشان همچنین «سفرنامهٔ فرهاد میرزای
معتمدالدوله» را با تجزیه و تحلیل کامل شرح حال فرهاد میرزا تصحیح و تحشیه
کردهاند و نیز «منشأت فرهاد میرزا» نیز از جمله آثار نوشتاری شاخص استاد
اسماعیل نوّاب صفا میباشد که در آخرین سالهای عمرشان تحریر شدهاست.
درگذشت
سرانجام چراغ عمر پر فروغ و پر افتخار استاد اسماعیل نوّاب صفا در ساعت ۱۱ صبح
روز جمعه ۱۹ فروردین ماه سال ۱۳۸۴ به خاموشی گرائید و پیکر ایشان در قطعه
هنرمندان واقع در بهشت زهرای تهران به خاک سپرده شد.
سالشمار زندگی هنری
۱۳۱۳- اوّلین دیدار قمرالملوک وزیری در سن ۱۰ سالگی در کرمانشاه.
۱۳۲۴- آغاز همکاری با مجید وفادار که به آفرینش حدود ۱۲ ترانه با آهنگهای او
انجامید.
۱۳۲۶- آشنائی با مرتضی محجوبی که به آفرینش ۴ ترانه به همراهی او انجامید.
۱۳۲۶- آشنائی با علی تجویدی که به آفرینش۷ ترانه به اتفاق او منجر شد.
۱۳۲۷-۱۳۲۶- آشنائی با حسین یاحقّی و خلق تصنیفهای «جوانی» و «بی خبر».
۱۳۲۸- ۱۳۲۶- آشنائی وهمکاری با هنرمندانی همچون عبدالعلی وزیری، حسین قوامی،
ابوالحسن ورزی، منوچهر همایون پور، ابوالحسن صبا، جلال تاج اصفهانی، حسین
تهرانی، جلیل شهناز، حسن کسائی، جواد بدیع زاده، محمّد میرنقیبی، احمد عبادی،
لطف الله مجد، داریوش رفیعی، حسینعلی ملّاح، غلامحسین بنان، ادیب خوانساری،
حسین صبا و...
۱۳۲۷- ترانه سرایی برای آهنگ روح الله خالقی، جهت تصنیف «مستی عاشقان»در
چهارگاه.
۱۳۲۷- اجراء برنامهٔ اشعار برگزیده در رادیو.
۱۳۲۸- آشنائی با حسینعلی ملّاح آهنگساز تصنیف «رویای هستی» با صدای غلامحسین
بنان.
۱۳۳۴-۱۳۲۹ – رفتن به خرمشهر در سمت رئیس دبیر خانه بنگاه بنادر و کشتیرانی.
۱۳۳۴- آشنائی با فرهنگ شریف
۱۳۳۵- بازگشت به تهران و آشنائی باداود پیرنیا مسئول موسیقی رادیو و آغاز
برنامه گلها.
۱۳۳۵- بازگشت به رادیو با مدیریّت نصرت الله معینیان و عضویّت مجدّد در شورای
نویسندگان.
۱۳۳۹-۱۳۳۵-همکاری با پرویز یاحقی و آفرینش حدود ۲۰ ترانه با آهنگهای او.
۱۳۴۲-۱۳۳۵- همکاری با حبیب الله بدیعی و آفرینش حدود ۱۳ ترانه با آهنگهای او.
۱۳۳۸- آخرین دیدار با قمرالملوک وزیری.
۱۳۴۲-۱۳۳۸- همکاری با انوشیروان روحانی و آفرینش حدود ۱۰ ترانه با آهنگهای وی.
۱۳۴۲-۱۳۳۸- همکاری با عباس شاپوری و آفرینش حدود ۶ ترانه با آهنگهای او.
۱۳۳۸- به بعد- همکاری با هنرمندان همایون خرّم، جواد لشکری، زرّین پنجه، اکبر
محسنی، محمّد میر نقیبی، حسین صمدی، امین الله رشیدی، فخری ملکپور و... و
آفرینش بیش از ۲۰ ترانه با همراهی آهنگهای این هنرمندان. آخرین این ترانهها،
ترانهٔ «باغبانِ خسته» با آهنگی از علی نجویدی بود که در سال ۱۳۷۴ ساخته شد.
۱۳۳۹- عضویّت شورای شعر رادیو و اجرای برنامهٔ «قصّهٔ شمع».
۱۳۴۲- نشر کتاب کاروان شعر از سوی بنگاه مطبوعاتی صفی علیشاه.
۱۳۴۲- انتقال به سیستان و بلوچستان در سمت سرپرستی و اطلاعات رادیو.
۱۳۴۳-۱۳۳۹- مسئولیّت رادیوی استان گیلان با برنامهٔ کاروانی از شعر و موسیقی
۱۳۴۶-۱۳۴۴- بازگشت از گیلان به تهران و اشتغال در سمت مدیریّت روابط عمومی
شهرداری تهران.
۱۳۴۷- مدیریّت ادارهٔ کلّ اطلاعات و رادیو استان آذربایجان شرقی.
۱۳۴۸- انتقال به اصفهان در سمت مدیر کلّ و سرپرستی و اطلاعات رادیو.
۱۳۵۰- سرپرستی رادیو و تلویزیون اصفهان.
۱۳۵۷-۱۳۵۴- نماینده مردم اصفهان در مجلس شورای ملّی و نایل شدن به مقام باز
نشستگی.
۱۳۸۳-۱۳۵۷- انزوا و خانه نشینی و روی آوردن به تحقیق و پژوهش و نویسندگی و
همکاری گهگاه و جسته گریخته با برخی آهنگسازان ایرانی همچون اسدالله ملک در
زمینه ترانه سرایی.
۱۳۸۴ - درگذشت و به خاک سپرده شدن در قطعهٔ هنرمندان بهشت زهرای تهران.
آثار
عمدهٔ شهرتش به خاطر ترانههای بسیار زیبائیست که برای مشهورترین خوانندگان
ایرانی همچون: غلامحسین بنان، داریوش رفیعی، دلکش، پوران، ناهید سرفراز، عهدیه،
مرضیه، الهه، ناهید، شهناز خیام، عبدالعلی وزیری، حسین قوامی، آذر عظیما،
منوچهر همایون پور، غزال، شمس، پروین، هما، مهین صیادی، مهستی، هایده، یاسمین،
زهره، حسین خواجه امیری (ایرج)، اندیشه، اکبر گلپایگانی، سیمین آرین، منتشری،
عباس حکمت شعار، فیروزه، رشیدی، روحبخش و... سرودهاست.