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

در متد انطباقی هرچه تاریخ دورتر باشد، ابهام در بیان اینکه در آن تاریخ چه اتفاقی خواهد افتاد، بیشتر است. یک تیم انطباقی نمیتواند وظایفی را که اعضا در هفتهی آینده خواهد داشت گزارش دهد، تنها میتواند ترکیب کارهایی را که برای ماه آینده قرار است انجام شود بیان کند. وقتی در مورد انتشار شش ماه از حالا سؤال میشود، یک تیم انطباقی ممکن است فقط بتواند بیانیهی مأموریت (برای آن انتشار) یا بیانیهی ارزش موردانتظار در مقابل هزینه را گزارش دهد.
در مقابل، متدهای پیشگویانه، بر تحلیل و برنامهریزی آینده به صورت جزئی و برای ریسکهای شناختهشده تمرکز دارد. در نهایت، یک تیم پیشگویانه میتواند دقیقاً گزارش دهد که چه ترکیب کار و چه وظایفی در سرتاسر فرایند توسعه برنامهریزی شدهاست. متدهای پیشگویانه بر فاز ابتدایی و اثربخش تحلیل تکیه دارد و اگر این فاز با اشتباه زیادی پیش رود، ممکن است جهت پروژه به سختی اصلاح شود. تیمهای پیشگویانه اغلب یک هیأت کنترل تغییر ایجاد میکنند تا اطمینان یابند که تنها به تغییرات با ارزش فکر میشود.
متدهای رسمی، بر خلاف متدهای انطباقی و پیشگویانه، بر تئوری علوم کامپیوتری با طیف گستردهای از انواع مفاهیم ثابت تکیه دارد. یک متد رسمی میکوشد تا نبود خطاها را با درجهای از جبرگرایی ثابت کند. بعضی متدهای رسمی مبتنی بر بررسی مدل هستند و مثالهای متضادی برای کدهایی که نمیتوان ثابت کرد، فراهم میکنند. تیمهای چابک ممکن است متدهای رسمی بسیار منظمی به کار گیرند.
متدهای چابک که از دههی 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ها و افزایش عرض صفحه
...
سینما یک رسانه دیداری شنیداری مبتنی بر تکنولوژی است که به وسیله آن فعالیت
اقتصادی صورت می گیرد و هم چنین قابلیت استفاده هنری را داراست . یک اثر
سینمایی که فیلم سینمایی نامیده میشود، از عناصر تصویر (به صورت مجموعهای از
فریمها) و صدا (گفتگو، صدا و موسیقی) تشکیل شدهاست. یک فیلم بر اساس فیلمنامه
یا سناریو و توسط مجموعهای از بازیگرها، کارگردان، فیلمبردار و عوامل دیگر
ساخته میشود. سینما جدیدترین شاخه هنر، معروف به هنر هفتم است که امروزه یکی
از عمومیترین و محبوبترین تولیدات هنری را ارایه میکند. سینما همچنین به محل
پخش عمومی فیلم سینمایی نیز گفته میشود.
ریشه نامگذاری
واژه سینما از واژه یونانی κινῆμα, -ατος به معنای جنبش گرفته شده است.

تاریخچه
برادران لومیر در سال ۱۸۹۵ سینماتوگراف(اولین دوربین فیلم برداری) را اختراع کردند. هرچند نمیتوان این دو برادر فرانسوی را یگانه افرادی دانست که به پیدایش هنر سینما کمک کردند. پیدایش سینما و فن فیلمبرداری خود مرهون پیشرفتهای بسیار زیادی هم در عرصهُ تکامل نگاتیو بود و هم تکامل دستگاههای اولیه عکاسی. بطوریکه نمیتوان قاطعانه از یک نفر بهعنوان مخترع سینما نام برد. دستگاههایی همچون کینتوسکوپ، ویتاسکوپ و بایوسکوپ همگی در پیدایش دستگاه سینماتوگراف موثر بودهاند.
برادران لومیر خود دهها فیلم کوتاه ساختند که همهُ آنها صرفاً از یک نما تشکیل میشد و قطع و وصل و تدوین در آنها وجود نداشت. از جملهٔ این فیلمها میتوانیم به "ورود قطار به ایستگاه"(که به عنوان اولین فیلم ساخته شده به دست بشر محسوب میشود)، "خروج قایق از لنگرگاه"، "غذا خوردن کودک" و "خروج کارگران از کارخانه" اشاره کنیم.
پس از لومیرها، ژرژ مهلیس باعث تکامل فن سینما شد. دیدگاه مهلیس نسبت به سینما یک دیدگاه تئاتری بود. او پردههای گوناگونی از نمایش را فیلمبرداری میکرد و سپس این پردهها را به یکدیگر متصل میکرد. ژرژ مهلیس همچنین پدیدآورنده فن تروکاژ در سینماست.
پس از مهلیس، ادوین اس پورتر باعث تکامل بنیادین و ساختاری سینما شد. او با ساختن فیلمهای "زندگی آتشنشان آمریکایی" و "سرقت بزرگ قطار" سینما را به عنوان پدیدهای که امروزه میشناسیم معرفی کرد. سینمای پورتر دیگر ارتباطی به تئاتر نداشت، بلکه به هنری مستقل و جدید تبدیل شده بود. پورتر، پیشگام فن تدوین فیلم نیز میباشد. راهی که او در سینما آغاز کرد در نهایت به سینمای داستانگوی هالیوود منجر شد.
ساختار سینما
در آغاز سینما را بیشتر یک پدیده علمی - صنعتی میدانستند. در سالهای جنگ جهانی اول سینما، به عنوان یک وسیله نمایشی و سرگرمی، رونق تجاری یافت. سپس قابلیتهای هنری آن توسط فیلم سازان اروپایی و آمریکایی کشف شد. در همین سالها ریچیوتو کانودو منتقد و نظریه پرداز ایتالیایی، سینما را "هنر هفتم" معرفی کرد. زیرا به عقیده او سینما هنری ترکیبی است که در آن همه هنرها حضور دارند.
سینما به معنی ثبت حرکات است و همان طور که در مباحث قبل گفتیم پیدایش تصویر متحرک در نتیجه تکامل تکنولوژی ابزارهای عکاسی بودبه همین سبب شیوه ضبط تصویر (فیلمبرداری) آن، عکسبرداری پشت سر هم، البته با فواصل زمانی ثابت و متوالی است. هیچ هنری به استثنای رسانهٔ تلویزیون، نتوانسته از لحاظ محبوبیت، فراگیری و نیروی تاثیر بر عواطف و افکار مخاطب، با سینما رقابت کند، به همین دلیل و همچنین به علت آن که سینما به صنعت فن و ابزارهای فنی اتکای زیادی دارد، آن را "هنر قرن بیستم " نامیدهاند. منشا اصطلاح سینما توگرافی واژهای یونانی (کینه ما) به معنای حرکت است. سینما توگرافی به معنای "حرکت نگاری " یا فن ضبط حرکت است. تاریخ تکامل و تحول سینما رابه طور کلی میتوان به سه دوره عمده (با تاکید بر فنون و تکنیکهای سینمایی) تقسیم بندی کرد:
دوره فیلم صامت: این دوره به زمان سینمایی بدون صدا و ساخت فیلم سیاه و سفید مربوط میشود.
دوره سینمای ناطق: از اواخر دههٔ ۱۹۲۰ میلادی، یعنی سال ۱۹۲۷ عصر فیلم صدادار آغاز شد و عامل صدا عملاً، سینما را به صورت یک هنر سمعی-بصری در آورد.
دوره سینمای رنگی: از اواخر دههٔ ۱۹۳۰ میلادی با اختراع فیلم رنگی آغاز شد.
مجموعهٔ تلویزیونی یا سریال به معنی برنامهای تلویزیونی است که به صورت مجموعهای از داستانهای به هم پیوسته ساخته میشود تا هر شب یا هر هفته قسمتی از از آنها پخش شود. این مجموعهها را فصل (به انگلیسی: season) می گویند.
سریالها ذاتاً بر مبنای پنهان کردن داستان استوار هستند، تا بتوانند با این کار مخاطبین خود را که به صورت فصلی و دوره ای این مجموعه را تماشا می کنند، حفظ کنند.
برخی مجموعههای تلویزیونی، در پایان هر قسمت پخش شده خود خلاصه ای از قسمت بعد را نشان می دهند و کارگردان نیز نقاط مرموز و تاریکی را در فیلم باقی میگذارد که این خود به نوعی قابلیت تحریک بیننده را دارد و بیننده می تواند خواسته خود را در این خلاصه ببیند و با ندیدن نقاط مرموز بیننده همچنان به عنوان مخاطب اصلی فیلم باقی می ماند.
دوبله (به انگلیسی: Dubbing) در فیلم، قرار دادن صدای افرادی دیگر (به نام دوبلور) به جای صدای اصلی بازیگران است. دوبله اغلب با تغییر زبان فیلم همراه است.
اما در گذشته به علت مرسوم نبودن صداگذاری سر صحنه بسیاری از فیلمها به همان زبان اصلی خود دوبله میشدند. از جمله این فیلمها میتوان به فیلمهایی چون دستفروش و بسیاری از فیلمهای دهه شصت و پیش از آن در ایران اشاره کرد.
انواع دوبله
دوبله به دو صورت همزمان و ناهمزمان انجام میگیرد.
در دوبله همزمان صدای جایگزین باید با حرکات لب افراد داخل فیلم هماهنگ باشد. در گذشته برای انجام این نوع دوبله نواری صوتی برای صداهای جانبی فیلم تهیه میشد. اما اکنون چون در بیشتر فیلمهای روز دنیا نوار گفتار و نوار صداهای جانبی جداگانه تهیه میشوند صرفا نوار گفتار عوض میشود.
در دوبله غیر همزمان لزومی بر تطبیق صدای جایگزین با حرکات لب افراد فیلم نیست. در این نوع دوبله صدای اصلی فیلم قطع نمیشود و تنها از شدت آن کاسته میشود. دوبلهٔ فیلمهای مستند اکثرا دوبله ناهمزمان است. از این دوبله در برخی کشورها از جمله روسیه برای فیلمهای سینمایی و سریالها استفاده میشود. در دوبله ناهمزمان فیلمهای داستانی بیشتر اوقات یک نفر و یا دو نفر (یک زن و یک مرد) بجای تمامی نقشها حرف میزنند.
ریشه نامگذاری
واژه سینما از واژه یونانی κινῆμα, -ατος به معنای جنبش گرفته شده است.

تاریخچه
برادران لومیر در سال ۱۸۹۵ سینماتوگراف(اولین دوربین فیلم برداری) را اختراع کردند. هرچند نمیتوان این دو برادر فرانسوی را یگانه افرادی دانست که به پیدایش هنر سینما کمک کردند. پیدایش سینما و فن فیلمبرداری خود مرهون پیشرفتهای بسیار زیادی هم در عرصهُ تکامل نگاتیو بود و هم تکامل دستگاههای اولیه عکاسی. بطوریکه نمیتوان قاطعانه از یک نفر بهعنوان مخترع سینما نام برد. دستگاههایی همچون کینتوسکوپ، ویتاسکوپ و بایوسکوپ همگی در پیدایش دستگاه سینماتوگراف موثر بودهاند.
برادران لومیر خود دهها فیلم کوتاه ساختند که همهُ آنها صرفاً از یک نما تشکیل میشد و قطع و وصل و تدوین در آنها وجود نداشت. از جملهٔ این فیلمها میتوانیم به "ورود قطار به ایستگاه"(که به عنوان اولین فیلم ساخته شده به دست بشر محسوب میشود)، "خروج قایق از لنگرگاه"، "غذا خوردن کودک" و "خروج کارگران از کارخانه" اشاره کنیم.
پس از لومیرها، ژرژ مهلیس باعث تکامل فن سینما شد. دیدگاه مهلیس نسبت به سینما یک دیدگاه تئاتری بود. او پردههای گوناگونی از نمایش را فیلمبرداری میکرد و سپس این پردهها را به یکدیگر متصل میکرد. ژرژ مهلیس همچنین پدیدآورنده فن تروکاژ در سینماست.
پس از مهلیس، ادوین اس پورتر باعث تکامل بنیادین و ساختاری سینما شد. او با ساختن فیلمهای "زندگی آتشنشان آمریکایی" و "سرقت بزرگ قطار" سینما را به عنوان پدیدهای که امروزه میشناسیم معرفی کرد. سینمای پورتر دیگر ارتباطی به تئاتر نداشت، بلکه به هنری مستقل و جدید تبدیل شده بود. پورتر، پیشگام فن تدوین فیلم نیز میباشد. راهی که او در سینما آغاز کرد در نهایت به سینمای داستانگوی هالیوود منجر شد.
ساختار سینما
در آغاز سینما را بیشتر یک پدیده علمی - صنعتی میدانستند. در سالهای جنگ جهانی اول سینما، به عنوان یک وسیله نمایشی و سرگرمی، رونق تجاری یافت. سپس قابلیتهای هنری آن توسط فیلم سازان اروپایی و آمریکایی کشف شد. در همین سالها ریچیوتو کانودو منتقد و نظریه پرداز ایتالیایی، سینما را "هنر هفتم" معرفی کرد. زیرا به عقیده او سینما هنری ترکیبی است که در آن همه هنرها حضور دارند.
سینما به معنی ثبت حرکات است و همان طور که در مباحث قبل گفتیم پیدایش تصویر متحرک در نتیجه تکامل تکنولوژی ابزارهای عکاسی بودبه همین سبب شیوه ضبط تصویر (فیلمبرداری) آن، عکسبرداری پشت سر هم، البته با فواصل زمانی ثابت و متوالی است. هیچ هنری به استثنای رسانهٔ تلویزیون، نتوانسته از لحاظ محبوبیت، فراگیری و نیروی تاثیر بر عواطف و افکار مخاطب، با سینما رقابت کند، به همین دلیل و همچنین به علت آن که سینما به صنعت فن و ابزارهای فنی اتکای زیادی دارد، آن را "هنر قرن بیستم " نامیدهاند. منشا اصطلاح سینما توگرافی واژهای یونانی (کینه ما) به معنای حرکت است. سینما توگرافی به معنای "حرکت نگاری " یا فن ضبط حرکت است. تاریخ تکامل و تحول سینما رابه طور کلی میتوان به سه دوره عمده (با تاکید بر فنون و تکنیکهای سینمایی) تقسیم بندی کرد:
دوره فیلم صامت: این دوره به زمان سینمایی بدون صدا و ساخت فیلم سیاه و سفید مربوط میشود.
دوره سینمای ناطق: از اواخر دههٔ ۱۹۲۰ میلادی، یعنی سال ۱۹۲۷ عصر فیلم صدادار آغاز شد و عامل صدا عملاً، سینما را به صورت یک هنر سمعی-بصری در آورد.
دوره سینمای رنگی: از اواخر دههٔ ۱۹۳۰ میلادی با اختراع فیلم رنگی آغاز شد.
مجموعهٔ تلویزیونی یا سریال به معنی برنامهای تلویزیونی است که به صورت مجموعهای از داستانهای به هم پیوسته ساخته میشود تا هر شب یا هر هفته قسمتی از از آنها پخش شود. این مجموعهها را فصل (به انگلیسی: season) می گویند.
سریالها ذاتاً بر مبنای پنهان کردن داستان استوار هستند، تا بتوانند با این کار مخاطبین خود را که به صورت فصلی و دوره ای این مجموعه را تماشا می کنند، حفظ کنند.
برخی مجموعههای تلویزیونی، در پایان هر قسمت پخش شده خود خلاصه ای از قسمت بعد را نشان می دهند و کارگردان نیز نقاط مرموز و تاریکی را در فیلم باقی میگذارد که این خود به نوعی قابلیت تحریک بیننده را دارد و بیننده می تواند خواسته خود را در این خلاصه ببیند و با ندیدن نقاط مرموز بیننده همچنان به عنوان مخاطب اصلی فیلم باقی می ماند.
دوبله (به انگلیسی: Dubbing) در فیلم، قرار دادن صدای افرادی دیگر (به نام دوبلور) به جای صدای اصلی بازیگران است. دوبله اغلب با تغییر زبان فیلم همراه است.
اما در گذشته به علت مرسوم نبودن صداگذاری سر صحنه بسیاری از فیلمها به همان زبان اصلی خود دوبله میشدند. از جمله این فیلمها میتوان به فیلمهایی چون دستفروش و بسیاری از فیلمهای دهه شصت و پیش از آن در ایران اشاره کرد.
انواع دوبله
دوبله به دو صورت همزمان و ناهمزمان انجام میگیرد.
در دوبله همزمان صدای جایگزین باید با حرکات لب افراد داخل فیلم هماهنگ باشد. در گذشته برای انجام این نوع دوبله نواری صوتی برای صداهای جانبی فیلم تهیه میشد. اما اکنون چون در بیشتر فیلمهای روز دنیا نوار گفتار و نوار صداهای جانبی جداگانه تهیه میشوند صرفا نوار گفتار عوض میشود.
در دوبله غیر همزمان لزومی بر تطبیق صدای جایگزین با حرکات لب افراد فیلم نیست. در این نوع دوبله صدای اصلی فیلم قطع نمیشود و تنها از شدت آن کاسته میشود. دوبلهٔ فیلمهای مستند اکثرا دوبله ناهمزمان است. از این دوبله در برخی کشورها از جمله روسیه برای فیلمهای سینمایی و سریالها استفاده میشود. در دوبله ناهمزمان فیلمهای داستانی بیشتر اوقات یک نفر و یا دو نفر (یک زن و یک مرد) بجای تمامی نقشها حرف میزنند.
ساعت : 7:30 am | نویسنده : admin
|
مطلب بعدی