متد های دیگر
مقایسه با متدهای دیگر
متدهایی در زنجیرهی بین انطباقی تا پیشگویانه وجود دارند. متدهای چابک در بخش انطباقی این زنجیره قرار دارند. متدهای انطباقی بر انطباق سریع با واقعیات تغییریافته متمرکز است. وقتی نیازهای یک پروژه تغییر میکند، یک تیم انطباقی نیز تغییر میکند. یک تیم انطباقی به سختی توضیح میدهد که در آینده دقیقاً چه اتفاقی خواهد افتاد.
در متد انطباقی هرچه تاریخ دورتر باشد، ابهام در بیان اینکه در آن تاریخ چه اتفاقی خواهد افتاد، بیشتر است. یک تیم انطباقی نمیتواند وظایفی را که اعضا در هفتهی آینده خواهد داشت گزارش دهد، تنها میتواند ترکیب کارهایی را که برای ماه آینده قرار است انجام شود بیان کند. وقتی در مورد انتشار شش ماه از حالا سؤال میشود، یک تیم انطباقی ممکن است فقط بتواند بیانیهی مأموریت (برای آن انتشار) یا بیانیهی ارزش موردانتظار در مقابل هزینه را گزارش دهد.
در مقابل، متدهای پیشگویانه، بر تحلیل و برنامهریزی آینده به صورت جزئی و برای ریسکهای شناختهشده تمرکز دارد. در نهایت، یک تیم پیشگویانه میتواند دقیقاً گزارش دهد که چه ترکیب کار و چه وظایفی در سرتاسر فرایند توسعه برنامهریزی شدهاست. متدهای پیشگویانه بر فاز ابتدایی و اثربخش تحلیل تکیه دارد و اگر این فاز با اشتباه زیادی پیش رود، ممکن است جهت پروژه به سختی اصلاح شود. تیمهای پیشگویانه اغلب یک هیأت کنترل تغییر ایجاد میکنند تا اطمینان یابند که تنها به تغییرات با ارزش فکر میشود.
متدهای رسمی، بر خلاف متدهای انطباقی و پیشگویانه، بر تئوری علوم کامپیوتری با طیف گستردهای از انواع مفاهیم ثابت تکیه دارد. یک متد رسمی میکوشد تا نبود خطاها را با درجهای از جبرگرایی ثابت کند. بعضی متدهای رسمی مبتنی بر بررسی مدل هستند و مثالهای متضادی برای کدهایی که نمیتوان ثابت کرد، فراهم میکنند. تیمهای چابک ممکن است متدهای رسمی بسیار منظمی به کار گیرند.
متدهای چابک که از دههی 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ها و افزایش عرض صفحه
...
متدهایی در زنجیرهی بین انطباقی تا پیشگویانه وجود دارند. متدهای چابک در بخش انطباقی این زنجیره قرار دارند. متدهای انطباقی بر انطباق سریع با واقعیات تغییریافته متمرکز است. وقتی نیازهای یک پروژه تغییر میکند، یک تیم انطباقی نیز تغییر میکند. یک تیم انطباقی به سختی توضیح میدهد که در آینده دقیقاً چه اتفاقی خواهد افتاد.
در متد انطباقی هرچه تاریخ دورتر باشد، ابهام در بیان اینکه در آن تاریخ چه اتفاقی خواهد افتاد، بیشتر است. یک تیم انطباقی نمیتواند وظایفی را که اعضا در هفتهی آینده خواهد داشت گزارش دهد، تنها میتواند ترکیب کارهایی را که برای ماه آینده قرار است انجام شود بیان کند. وقتی در مورد انتشار شش ماه از حالا سؤال میشود، یک تیم انطباقی ممکن است فقط بتواند بیانیهی مأموریت (برای آن انتشار) یا بیانیهی ارزش موردانتظار در مقابل هزینه را گزارش دهد.
در مقابل، متدهای پیشگویانه، بر تحلیل و برنامهریزی آینده به صورت جزئی و برای ریسکهای شناختهشده تمرکز دارد. در نهایت، یک تیم پیشگویانه میتواند دقیقاً گزارش دهد که چه ترکیب کار و چه وظایفی در سرتاسر فرایند توسعه برنامهریزی شدهاست. متدهای پیشگویانه بر فاز ابتدایی و اثربخش تحلیل تکیه دارد و اگر این فاز با اشتباه زیادی پیش رود، ممکن است جهت پروژه به سختی اصلاح شود. تیمهای پیشگویانه اغلب یک هیأت کنترل تغییر ایجاد میکنند تا اطمینان یابند که تنها به تغییرات با ارزش فکر میشود.
متدهای رسمی، بر خلاف متدهای انطباقی و پیشگویانه، بر تئوری علوم کامپیوتری با طیف گستردهای از انواع مفاهیم ثابت تکیه دارد. یک متد رسمی میکوشد تا نبود خطاها را با درجهای از جبرگرایی ثابت کند. بعضی متدهای رسمی مبتنی بر بررسی مدل هستند و مثالهای متضادی برای کدهایی که نمیتوان ثابت کرد، فراهم میکنند. تیمهای چابک ممکن است متدهای رسمی بسیار منظمی به کار گیرند.
متدهای چابک که از دههی 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ها و افزایش عرض صفحه
...
سرلوحه کارهای خود قراردهیم
+ احادیث غیبت +
امام صادق عليه السلام فرمود: غيبت كردن بر هر مسلمانى حرام است. غيبت كننده هميشه گنهكار است، غيبت آن است كه كسى را با آنچه پيش خدا عيب نيست ياد كنى و مذّمت كنى آنچه را كه اهل علم و دانش ستايش مى كنند.
-------------
حضرت على عليه السلام فرمود: منفورترين مخلوقات نزد خدا غيبت كننده است.
-------------
على عليه السلام فرمود: دردناكترين مردم (در قيام) غيبت كننده است.
-------------
قالَ عَلِىٌّ عليه السلام: ألغَيبَةُ قُوتُ كِلابِ النّارِ.
على عليه السلام فرمود: غيبت، خورشت سگان جهنم است
-------------
عَنِ النَّبِىِّ عليه السلام قالَ: تَركُ الغَيبَةِ أَحَبُّ إلَى اللّه ِ عَزَّ وَجَلَّ مِن عَشرَةِ آلاف رَكعَةٍ تَطَوُّعاً.
پيامبر اكرم صلي الله عليه و آله فرمود: ترك غيبت از ده هزار ركعت نماز مستحبى پيش خدا محبوبتر است.
-------------
اميرالمؤمنين عليه السلام به نوف بكّالى فرمود: دروغ مى گويد كسى كه فكر مى كند حلال زاده است، درحالى كه گوشت مردم را با غيبت كردن مى خورد.
-------------
پيامبر اكرم صلي الله عليه و آله فرمود: بهشت بر سه گروه حرام است، بر منّت گذار، غيبت كننده و دائم الخمر، (اين سه گروه از بهشت محروم هستند).
-------------
امام على عليه السلام فرمود: شنونده غيبت شريك غيبت كننده است.
------------- + -------------
بزرگترین لذت در زندگی،
انجام دادن کاری است که مردم می گویند از عهده آن بر نمی آیی ...
-------------
زندگی ، ده درصدش آن چیزی ست که برای شما اتفاق می افتد ؛
و نود درصدش نحوه پاسخ و واکنش شما نسبت به آن اتفاق ...
-------------
آدم های موفق ، همیشه به دنبال فرصت هایی برای کمک به دیگران هستند.
افراد ناموفق همیشه می پرسند : " این کار، چه سودی برای من دارد؟ "
-------------
موفقیت ؛ مجموعه ای از تلاش های کوچک روزانه است ...
-------------
امروز توانی و ندانی ؛
فردا که بدانی، نتوانی ...
-------------
همیشه که باشی، خسته می شوند؛
مردمانی که اگر نباشی، می گویند: بی معرفتی ...!
-------------
ذهن جایگاهی است که می تواند از بهشت، جهنم
و از جهنم، بهشت بسازد.
-------------
تمام محبت خود را به یکباره برای دوستت ظاهر مکن،
زیرا هر وقت اندک تغییری مشاهده کرد؛
تو را دشمن میپندارد.
-------------
خداوندا
کاش ، به همان اندازه ای که از حرف مردم میترسیم،
از تو می ترسیدیم ...
که اگر اینگونه بود دنیای ما دنیای دیگری بود ،
و آخرت ما آخرت دیگری ...
-------------
قرض کمتر از صفر ، دارایی است و دارایی کمتر از صفر ، قرض است .
-------------
اسمش را دخترانه بنام : دنیا ...
اسمش را مردانه بنام : جهان ...
افسوس که این سیاره ی آبی ، نه حیای زنانه سرش میشود نه وفای مردانه ...
فکر نان عقبا باش؛ این سیاره بیشترش آب است ...
-------------
دو چیز شما را تعریف میکند:
بردباری تان ، وقتی هیچ چیز ندارید ؛
و نحوه رفتارتان، وقتی همه چیز دارید .
-------------
ای کـــــــاش همه به جایی برسیـم که هر روز بگوئیــــــــم :
ای فردا ، هر چه می توانی کن که امروز را به تمامی زیسته ام ...
-------------
یا رب ...
فهمیده ام که ؛
به اندازه ی همه ی نگرانی هایم ، تو را نشناخته ام ...
-------------
مردی از حضرت امام صادق علیه السلام خواست که به او چیزی بیآموزد که به وسیلۀ آن خیر دنیا و آخرت را به دست آورد و مُفصّل و طولانی هم نباشد.
حضرت فرمود: دروغ مگو .
-------------
دو مشکل بزرگ در جامعه ما وجود دارد :
نخست اینکه همه من هستیم و ما را به رسمیت نمیشناسیم ،
و دوم اینکه کتاب نمیخوانیم .
-------------
وقتی انسان بدنیا می یاد دستاش پر از نیازه ، و عجیبه که هر چه جلوتر میره نیازش هم بیشتر و متنوع تر میشه ؛ ولی آیا هیچ از خودمون پرسیدیم که اینهمه نیاز و نیازمندی برای چیه ؟
خداوند بزرگ صمد و بی نیازه و با رحمان و رحیم بودنش نیاز بنده هاش رو به بالاترین قیمت خریداره ، کافیه نیازمون رو درگاهش ببریم و فقط از او بخوایم.
همتی کن و بسوی دوست دستی بلند کن...
التماس دعا
-------------
قانون کاشت و برداشت، اصل اساسی زندگی بشر است ؛
شما امروز محصولی را برداشت می کنید که در گذشته بذر آنرا کاشته اید .
-------------
بزرگواری می گفت : من بسیار به شانس و اقبال عقیده دارم ؛
و متوجه شده ام هرچه بیشتر پشتکار و تلاش کنم ،
بیشتر شانس می آورم .
-------------
اگر صادقانه و با محبتی قلبی و دلسوزانه انجام نشه ؛
اگر مودبانه و از راه درستش و از طریق اهلش انجام نشه ...
حتی اگر همه ی اینها باشه ولی با ظرافت خاص خودش انجام نشه،
درست برعکسش نتیجه میده و میشه :
نهی از معروف و امر به منکر ...
بقول بزرگی که میگفت : امر به معروف و نهی از منکر اینقدر مهم و ظریفه که گاهی دو امام دست در دست هم میدن تا وضوی پیرمردی رو اصلاح کنند ...
رفعت و عظمت مقام حضرت موسی علیه السلام بر همه آشکاره ؛ ولی آیا کسی هست که " داستان موسی و شبان " اش رو نشنیده باشه ...
-------------
مسئولیت زاده ی توانایی نیست،
زاده ی آگاهی است و زاده ی انسان بودن .
-------------
هنر انسانهای بزرگ این است که
به دشواری کار نمی اندیشند،
بلکه به عظمت آنچه خواهند یافت فکر میکنند .
-------------
میگویند نوشته ها از گفته ها معتبر ترند ...
دوازده هزار نامه ی دعوت نوشتند،
ولی با بیش از سی هزار نیزه و شمشیر به استقبال رفتند !
آقای من ، راز بی نشانی بودن ات را اکنون میفهمم ؛
کاش نامه هایی که تمبر صداقت نداشتند هیچگاه به نشانی نمی رسیدند ...
-------------
-------------
گر پرده ز رخ باز نماید مهدی (عج)
از خلق جهان دل برباید مهــــــدی(عج)
ای شیعه چنان منتظر مولی باش
گویی که همین جمعه میاید مهدی(عج)
-------------
می دانی چه موقع از روی دوچرخه می افتی؟
زمانی که رکاب زدن را فراموش کنی ،
زندگی نیز اینگونه است ...
-------------
فاصله از بهشت تا به خشت، خوردن یک سیب بود ؛
و از اینجا تا بهشت؛ نخوردن صدها سیب ...
-------------
خودبینی، دیدن خود نیست ؛
خودبینی، ندیدن دیگران است ...
-------------
خدایا مرا ببخش ،
که همواره در گرفتاری هایم ؛ دنیا را از تو خواسته ام ؛
الهی ... دستانی عطا کن که تو را برایم از تو بخواهد ...
با آرزوی استجابت دعای همه در این وقت عزیز
-------------
هیچکس قفل بدون کلید نمیسازد
بنابراین خدا مشکلات را بدون راه حل قرار نداده
پس با مشکلات خود ، با اعتماد به نفس بالا برخورد کنید . . .
-------------
شخصیت مانند درخت و شهرت مانند سایه است،
سایه چیزی است که ما فکر میکنیم ، درخت چیزی است که واقعی است . . .
-------------
پشت چراغ قرمز ایستاده بودم
ناگهان کودکی آمد و گفت:
چسب زخم میخواهید؟ پنج تا صد تومن؟
با خود گفتم اگرتمام چسب زخمهایت را هم بخرم
نه زخم های من خوب می شود و نه زخم های تو...
-------------
کسانی هستند که از خودمان می رنجانیم؛
مثل ساعت هایی که صبح، دلسوزانه زنگ می زنند؛
و در میانِ خواب و بیداری، بر سرشان می کوبیم؛
بعد می فهمیم که خیلی دیر شده ...!
-------------
وقتی با مشکلات روبرو میشویم به خدا میگوییم : خدایا چرا من؟
اما زمانی که خوشحالی به ما روی میآورد ، صحبتی از خدا نیست ...
کاش یاد بگیریم که در هر وضعیتی خدا را یاد کنیم
-------------
بزرگواری می گفت : من به پیشرفت علم پزشکی شک دارم؛
وقتی هنوز هیچ چشم پزشک و دانشمندی ؛ عینکی نساخته که نیمه پر لیوان را ببینیم
و هنوز که هنوزه والدین نیم نمره ای که نیست رو می بینند ؛ ولی 19.5 نمره ای که هست رو نمی بینند ...
بله هنوز که هنوزه ؛ من به مردمک چشمها ؛ به چشمها و به پیشرفت علم پزشکی شک دارم ...
-------------
درصد کمی از انسانها نود سال زندگی می کنند ؛
مابقی یک سال را ، نود بار تکرار می کنند ...
-------------
خواندن بی اندیشه بیهوده است ؛
و اندیشه بدون خواندن خطرناک ...
-------------
گفت من شخصی را می شناسم که هرشب قبل از خواب به خدا میگوید :
خدایا ؛ تمام کسانی که در حق من ظلم کردند را حلال میکنم ؛ نکند فردای قیامت کسی به خاطر من حساب پس دهد ...
آری دوستان خدا ؛ همان هایی هستن که کار خدایی میکنند .
-------------
مرحوم آیت الله بهجت(ره) یکی عارفان بزرگ زمان بودند.
روزی به ایشان گفتند : کتابی در زمینه اخلاق معرفی کنید .
فرمودند:
لازم نیست یک کتاب باشد یک کلمه کافیست که بدانی : "خدا می بیند" .
-------------
سه یادآوری کوتاه:
هر شب ما به رختخواب میرویم، ما هیچ اطمینانی نداریم که فردا صبح زنده بر می خزیزیم، با این حال ساعت را برای فردا کوک می کنیم.« این یعنی اُمید»
ـ کودکی یکساله ای را تصور کنید، زمانی که شما او را به هوا پرتاب می کنید، او می خندد، چرا که او می داند که شما او را خواهید گرفت.«این یعنی اعتماد»
ـ روزی، تمام روستایی ها تصمیم گرفتند، تا برای بارش باران دعا کنند، در روزی که برای دعا همگی دور هم جمع شدند،تنها یک پسر بچه با خود چتری داشت.«این یعنی ایمان»
آنها را برایتان خواستارم ...
+ احادیث غیبت +
امام صادق عليه السلام فرمود: غيبت كردن بر هر مسلمانى حرام است. غيبت كننده هميشه گنهكار است، غيبت آن است كه كسى را با آنچه پيش خدا عيب نيست ياد كنى و مذّمت كنى آنچه را كه اهل علم و دانش ستايش مى كنند.
-------------
حضرت على عليه السلام فرمود: منفورترين مخلوقات نزد خدا غيبت كننده است.
-------------
على عليه السلام فرمود: دردناكترين مردم (در قيام) غيبت كننده است.
-------------
قالَ عَلِىٌّ عليه السلام: ألغَيبَةُ قُوتُ كِلابِ النّارِ.
على عليه السلام فرمود: غيبت، خورشت سگان جهنم است
-------------
عَنِ النَّبِىِّ عليه السلام قالَ: تَركُ الغَيبَةِ أَحَبُّ إلَى اللّه ِ عَزَّ وَجَلَّ مِن عَشرَةِ آلاف رَكعَةٍ تَطَوُّعاً.
پيامبر اكرم صلي الله عليه و آله فرمود: ترك غيبت از ده هزار ركعت نماز مستحبى پيش خدا محبوبتر است.
-------------
اميرالمؤمنين عليه السلام به نوف بكّالى فرمود: دروغ مى گويد كسى كه فكر مى كند حلال زاده است، درحالى كه گوشت مردم را با غيبت كردن مى خورد.
-------------
پيامبر اكرم صلي الله عليه و آله فرمود: بهشت بر سه گروه حرام است، بر منّت گذار، غيبت كننده و دائم الخمر، (اين سه گروه از بهشت محروم هستند).
-------------
امام على عليه السلام فرمود: شنونده غيبت شريك غيبت كننده است.
------------- + -------------
بزرگترین لذت در زندگی،
انجام دادن کاری است که مردم می گویند از عهده آن بر نمی آیی ...
-------------
زندگی ، ده درصدش آن چیزی ست که برای شما اتفاق می افتد ؛
و نود درصدش نحوه پاسخ و واکنش شما نسبت به آن اتفاق ...
-------------
آدم های موفق ، همیشه به دنبال فرصت هایی برای کمک به دیگران هستند.
افراد ناموفق همیشه می پرسند : " این کار، چه سودی برای من دارد؟ "
-------------
موفقیت ؛ مجموعه ای از تلاش های کوچک روزانه است ...
-------------
امروز توانی و ندانی ؛
فردا که بدانی، نتوانی ...
-------------
همیشه که باشی، خسته می شوند؛
مردمانی که اگر نباشی، می گویند: بی معرفتی ...!
-------------
ذهن جایگاهی است که می تواند از بهشت، جهنم
و از جهنم، بهشت بسازد.
-------------
تمام محبت خود را به یکباره برای دوستت ظاهر مکن،
زیرا هر وقت اندک تغییری مشاهده کرد؛
تو را دشمن میپندارد.
-------------
خداوندا
کاش ، به همان اندازه ای که از حرف مردم میترسیم،
از تو می ترسیدیم ...
که اگر اینگونه بود دنیای ما دنیای دیگری بود ،
و آخرت ما آخرت دیگری ...
-------------
قرض کمتر از صفر ، دارایی است و دارایی کمتر از صفر ، قرض است .
-------------
اسمش را دخترانه بنام : دنیا ...
اسمش را مردانه بنام : جهان ...
افسوس که این سیاره ی آبی ، نه حیای زنانه سرش میشود نه وفای مردانه ...
فکر نان عقبا باش؛ این سیاره بیشترش آب است ...
-------------
دو چیز شما را تعریف میکند:
بردباری تان ، وقتی هیچ چیز ندارید ؛
و نحوه رفتارتان، وقتی همه چیز دارید .
-------------
ای کـــــــاش همه به جایی برسیـم که هر روز بگوئیــــــــم :
ای فردا ، هر چه می توانی کن که امروز را به تمامی زیسته ام ...
-------------
یا رب ...
فهمیده ام که ؛
به اندازه ی همه ی نگرانی هایم ، تو را نشناخته ام ...
-------------
مردی از حضرت امام صادق علیه السلام خواست که به او چیزی بیآموزد که به وسیلۀ آن خیر دنیا و آخرت را به دست آورد و مُفصّل و طولانی هم نباشد.
حضرت فرمود: دروغ مگو .
-------------
دو مشکل بزرگ در جامعه ما وجود دارد :
نخست اینکه همه من هستیم و ما را به رسمیت نمیشناسیم ،
و دوم اینکه کتاب نمیخوانیم .
-------------
وقتی انسان بدنیا می یاد دستاش پر از نیازه ، و عجیبه که هر چه جلوتر میره نیازش هم بیشتر و متنوع تر میشه ؛ ولی آیا هیچ از خودمون پرسیدیم که اینهمه نیاز و نیازمندی برای چیه ؟
خداوند بزرگ صمد و بی نیازه و با رحمان و رحیم بودنش نیاز بنده هاش رو به بالاترین قیمت خریداره ، کافیه نیازمون رو درگاهش ببریم و فقط از او بخوایم.
همتی کن و بسوی دوست دستی بلند کن...
التماس دعا
-------------
قانون کاشت و برداشت، اصل اساسی زندگی بشر است ؛
شما امروز محصولی را برداشت می کنید که در گذشته بذر آنرا کاشته اید .
-------------
بزرگواری می گفت : من بسیار به شانس و اقبال عقیده دارم ؛
و متوجه شده ام هرچه بیشتر پشتکار و تلاش کنم ،
بیشتر شانس می آورم .
-------------
اگر صادقانه و با محبتی قلبی و دلسوزانه انجام نشه ؛
اگر مودبانه و از راه درستش و از طریق اهلش انجام نشه ...
حتی اگر همه ی اینها باشه ولی با ظرافت خاص خودش انجام نشه،
درست برعکسش نتیجه میده و میشه :
نهی از معروف و امر به منکر ...
بقول بزرگی که میگفت : امر به معروف و نهی از منکر اینقدر مهم و ظریفه که گاهی دو امام دست در دست هم میدن تا وضوی پیرمردی رو اصلاح کنند ...
رفعت و عظمت مقام حضرت موسی علیه السلام بر همه آشکاره ؛ ولی آیا کسی هست که " داستان موسی و شبان " اش رو نشنیده باشه ...
-------------
مسئولیت زاده ی توانایی نیست،
زاده ی آگاهی است و زاده ی انسان بودن .
-------------
هنر انسانهای بزرگ این است که
به دشواری کار نمی اندیشند،
بلکه به عظمت آنچه خواهند یافت فکر میکنند .
-------------
میگویند نوشته ها از گفته ها معتبر ترند ...
دوازده هزار نامه ی دعوت نوشتند،
ولی با بیش از سی هزار نیزه و شمشیر به استقبال رفتند !
آقای من ، راز بی نشانی بودن ات را اکنون میفهمم ؛
کاش نامه هایی که تمبر صداقت نداشتند هیچگاه به نشانی نمی رسیدند ...
-------------
-------------
گر پرده ز رخ باز نماید مهدی (عج)
از خلق جهان دل برباید مهــــــدی(عج)
ای شیعه چنان منتظر مولی باش
گویی که همین جمعه میاید مهدی(عج)
-------------
می دانی چه موقع از روی دوچرخه می افتی؟
زمانی که رکاب زدن را فراموش کنی ،
زندگی نیز اینگونه است ...
-------------
فاصله از بهشت تا به خشت، خوردن یک سیب بود ؛
و از اینجا تا بهشت؛ نخوردن صدها سیب ...
-------------
خودبینی، دیدن خود نیست ؛
خودبینی، ندیدن دیگران است ...
-------------
خدایا مرا ببخش ،
که همواره در گرفتاری هایم ؛ دنیا را از تو خواسته ام ؛
الهی ... دستانی عطا کن که تو را برایم از تو بخواهد ...
با آرزوی استجابت دعای همه در این وقت عزیز
-------------
هیچکس قفل بدون کلید نمیسازد
بنابراین خدا مشکلات را بدون راه حل قرار نداده
پس با مشکلات خود ، با اعتماد به نفس بالا برخورد کنید . . .
-------------
شخصیت مانند درخت و شهرت مانند سایه است،
سایه چیزی است که ما فکر میکنیم ، درخت چیزی است که واقعی است . . .
-------------
پشت چراغ قرمز ایستاده بودم
ناگهان کودکی آمد و گفت:
چسب زخم میخواهید؟ پنج تا صد تومن؟
با خود گفتم اگرتمام چسب زخمهایت را هم بخرم
نه زخم های من خوب می شود و نه زخم های تو...
-------------
کسانی هستند که از خودمان می رنجانیم؛
مثل ساعت هایی که صبح، دلسوزانه زنگ می زنند؛
و در میانِ خواب و بیداری، بر سرشان می کوبیم؛
بعد می فهمیم که خیلی دیر شده ...!
-------------
وقتی با مشکلات روبرو میشویم به خدا میگوییم : خدایا چرا من؟
اما زمانی که خوشحالی به ما روی میآورد ، صحبتی از خدا نیست ...
کاش یاد بگیریم که در هر وضعیتی خدا را یاد کنیم
-------------
بزرگواری می گفت : من به پیشرفت علم پزشکی شک دارم؛
وقتی هنوز هیچ چشم پزشک و دانشمندی ؛ عینکی نساخته که نیمه پر لیوان را ببینیم
و هنوز که هنوزه والدین نیم نمره ای که نیست رو می بینند ؛ ولی 19.5 نمره ای که هست رو نمی بینند ...
بله هنوز که هنوزه ؛ من به مردمک چشمها ؛ به چشمها و به پیشرفت علم پزشکی شک دارم ...
-------------
درصد کمی از انسانها نود سال زندگی می کنند ؛
مابقی یک سال را ، نود بار تکرار می کنند ...
-------------
خواندن بی اندیشه بیهوده است ؛
و اندیشه بدون خواندن خطرناک ...
-------------
گفت من شخصی را می شناسم که هرشب قبل از خواب به خدا میگوید :
خدایا ؛ تمام کسانی که در حق من ظلم کردند را حلال میکنم ؛ نکند فردای قیامت کسی به خاطر من حساب پس دهد ...
آری دوستان خدا ؛ همان هایی هستن که کار خدایی میکنند .
-------------
مرحوم آیت الله بهجت(ره) یکی عارفان بزرگ زمان بودند.
روزی به ایشان گفتند : کتابی در زمینه اخلاق معرفی کنید .
فرمودند:
لازم نیست یک کتاب باشد یک کلمه کافیست که بدانی : "خدا می بیند" .
-------------
سه یادآوری کوتاه:
هر شب ما به رختخواب میرویم، ما هیچ اطمینانی نداریم که فردا صبح زنده بر می خزیزیم، با این حال ساعت را برای فردا کوک می کنیم.« این یعنی اُمید»
ـ کودکی یکساله ای را تصور کنید، زمانی که شما او را به هوا پرتاب می کنید، او می خندد، چرا که او می داند که شما او را خواهید گرفت.«این یعنی اعتماد»
ـ روزی، تمام روستایی ها تصمیم گرفتند، تا برای بارش باران دعا کنند، در روزی که برای دعا همگی دور هم جمع شدند،تنها یک پسر بچه با خود چتری داشت.«این یعنی ایمان»
آنها را برایتان خواستارم ...
ساعت : 6:03 pm | نویسنده : admin
|
مطلب بعدی