رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'نرم‌افزار'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


وبلاگ‌ها

چیزی برای نمایش وجود ندارد

چیزی برای نمایش وجود ندارد

تالارهای گفتگو

  • انجمن‌های آی او استریم
    • اخبار و اعلامیه‌های سایت
    • اسناد و قوانین مرجع
    • رویداد‌ها و جلسات
    • معرفی محصولات نوشته شده‌ بومی
    • مرکز نظرسنجی جامعه‌ی برنامه‌نویسان
    • مقالات و اسناد مشاوره‌ای
    • مرکز چالش برانگیز برنامه‌نویسان
    • رمز‌های موفقیت
    • ابزار‌ها و نرم‌افزارهای کاربردی برنامه‌نویسان حرفه‌ای
  • استارتاپی و کسب‌و‌کار
    • استارتاپ‌ها
    • سرمایه گذاری
    • شتاب دهنده‌ها
    • پارک‌های علم و فناوری و مراکز رشد
    • مصاحبه با استارت‌آپ‌ها
    • قوانین حقوقی
    • داستان‌های موفقیت
    • کارآفرینان و متخصصین
    • مشاوره اجرای کسب‌وکار
    • اخبار حوزه‌ی استارتا‌پی
    • آگهی‌های استخدامی
  • زبان‌های برنامه نویسی
    • برنامه نویسی در C و ‏++C
    • برنامه نویسی با Java
    • برنامه نویسی با JavaScript
    • برنامه نویسی با Go
    • برنامه نویسی با Python
    • برنامه نویسی با Delphi
    • برنامه نویسی با Ruby
    • برنامه نویسی با VB6
  • طراحی و توسعه وب
    • برنامه نویسی در PHP
    • برنامه نویسی با Node.JS
  • طراحی و توسعه وب اپلیکیشن‌ها
    • طراحی و توسعه در Angular
    • طراحی و توسعه در React.JS
    • طراحی و توسعه در Vue.JS
  • طراحی و توسعه موبایل و اِمبِد‌ها و تلوزیون‌ها
    • برنامه نویسی تحت محصولات اپل
    • برنامه نویسی تحت محصولات گوگل
    • طراحی و توسعه تحت محصولات دیگر
  • برنامه‌نویسی سطح پایین و سیستم عامل‌ها
    • سیستم عامل‌های آزاد
    • سیستم عامل‌های تجاری
    • مباحث آموزشی مرتبط با سیستم‌عامل
  • شبکه و اینترنت
    • مباحث و منابع آموزشي
    • سوالات و مشکلات
  • بانک‌های اطلاعاتی
    • پایگاه داده MySQL
    • پایگاه داده PostgreSQL
    • پایگاه داده SQLite
    • پایگاه داده MongoDB
    • پایگاه داده SQL Server
    • دیگر پایگاه‌های داده
  • برنامه نویسی تحت محصولات اپل
    • محیط توسعه Xcode
    • برنامه نویسی با Objective-C
    • برنامه نویسی با Swift
  • برنامه نویسی تحت محصولات مایکروسافت
    • محیط توسعه Visual Studio
    • برنامه نویسی در ASP.NET MVC
    • برنامه نویسی با #C
    • برنامه نویسی با Visual Basic.Net
    • طراحی و توسعه تحت Wpf
    • طراحی و توسعه تحت Universal و Fluent
  • طراحی و توسعه تجربه کاربری (UX) و رابط کاربری (UI)
    • طراحی رابط کاربری (UI)
    • طراحی تجربه کاربری (UX)
  • درخواست انجام پروژه (ویژه)
    • پروژه‌های منبع‌باز
  • سوالات و مباحث عامیانه
    • سوالات دانشجویی
    • فناوری و سخت افزار
    • سوالات مشاوره‌ای و تخصصی مرتبط با حوزه‌ی برنامه‌نویسی
  • سطل آشغال
    • سطل آشغال

Product Groups

  • کتاب‌ها و مقالات آموزشی

دسته ها

  • علمی
  • استارتاپی
  • برنامه‌نویسی
    • زبان‌های برنامه نویسی
    • معماری‌ها
  • کامپایلر و مفسر
  • محیط‌های توسعه
  • پلتفرم‌های توسعه
  • مجوز‌های نرم‌افزاری
  • فناوری‌ها
    • پردازش تصویر
    • اینترنت اشیاء
    • پردازش ابری (Cloud Computing)
    • چند سکویی (Cross-Platform)
    • بیگ دیتا (Big Data)
    • هوش مصنوعی (AI)
    • سخت افزار
    • نرم‌افزار و اپلیکیشن
    • اینترنت و شبکه
    • رمزنگاری
    • امبد‌ها (Embedded)
  • طراحی
    • تجربه کاربری
    • رابط کاربری

دسته ها

  • عمومی
  • گرافیکی
  • شبکه و ارتباطات

دسته ها

  • کامپایلر‌ها
  • محیط‌های توسعه
  • کتابخانه‌ها
  • ماژول‌ها و پلاگین‌ها
  • محصولات بومی
  • کتاب‌ها و مقالات
  • زبان‌ها و ابزار‌ها
  • طراحی و گرافیک

جستجو در ...

نمایش نتایجی که شامل ...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد ...

تاریخ عضویت

  • شروع

    پایان


گروه


شناسه گیت‌هاب


شناسه لینکدین


شهر

7 نتیجه پیدا شد

  1. قانون حمایت از حقوق پدیدآورندگان نرم‌افزارهای رایانه‌ای قانون دیگر قانون حمایت از حقوق پدیدآورندگان نرم‌افزارهای رایانه‌ای مصوب ۱۳۷۹ است. همان‌طور که از نام این قانون مشخص است، در این قانون حقوق مادی و معنوی پدیدآورندگان نرم‌افزارهای رایانه‌ای شرح داده می‌شود. مطابق ماده‌ی ۱ این قانون، «حق نشر، عرضه، اجرا و حق بهره‌برداری مادی و معنوی از نرم‌افزارهای رایانه‌ای متعلق به پدیدآورنده‌ی آن است. نحوه‌ی تدوین و ارائه‌ی داده‌ها در محیط قابل پردازش رایانه‌ای نیز مشمول احکام نرم‌افزار خواهد بود.» مطابق مطابق ماده‌ی ۳ این قانون، نام، عنوان و نشان ویژه‌ای که معرف نرم‌افزار است از حمایت این قانون برخوردار است و هیچ‌کس نمی‌تواند آنها را برای نرم‌افزار دیگری از همان نوع یا مانند آن به نحوی که القای شبهه نماید، استفاده کند. در ماده‌ی ۱۳ قانون به‌طور کلی ضمانت اجرای نقض حقوق مورد حمایت این قانون، علاوه بر جبران خسارت متضرر، حبس از نود و یک روز تا شش ماه و جزای نقدی از ده میلیون تا پنجاه میلیون ریال بیان شده است. همچنین مطابق ماده‌ی ۱۵ این قانون، جرایم مربوط به نقض حقوق مورد حمایت این قانون، از جرایم قابل گذشت است. ‌ماده ۱ - حق نشر، عرضه، اجرا و حق بهره برداری مادی و معنوی نرم افزار رایانه‌ای متعلق به پدید آورنده آن است. نحوه تدوین و ارائه داده‌ها در‌محیط قابل پردازشرایانه‌ای نیز مشمول احکام نرم‌افزار خواهد بود. مدت حقوق مادی سی (۳۰) سال از تاریخ پدید آوردن نرم‌افزار و مدت حقوق‌معنوی نامحدود است. ماده ۲ - در صورت وجود شرایط مقرر در قانون ثبت علایم و اختراعات، نرم‌افزار به عنوان اختراع شناخته می‌شود، آئین‌نامه مربوط به این ماده به‌تصویب هیأت وزیرا نخواهد رسید. ‌ماده ۳ - نام، عنوان و نشانه ویژه‌ای که معرف نرم افزار است از حمایت این قانونبرخوردار است و هیچ کس نمی‌تواند آنها را برای نرم افزار دیگری‌ از همان نوع یامانند آن به ترتیبی که القای شبهه کند بکار برد در غیر این صورت به مجازات مقرر در ماده (۱۳) این قانون محکوم خواهد شد. ‌ماده ۴ - حقوق ناشی از آن بخش از نرم‌افزاری که به واسطه نرم‌افزارهای دیگر پدیدمی‌آید متعلق به دارنده حقوق نرم‌افزارهای واسط نیست.‌ ماده ۵ - پدید آوردن نرم‌افزارهای مکمل و سازگار با دیگر نرم‌افزارها با رعایتحقوق مادی نرم‌افزارهای اولیه مجاز است.‌ ماده ۶ - پدید آوردن نرم‌افزارها ممکن است ناشی از استخدام و یا قرارداد باشد دراین صورت: ‌الف - باید نام پدید آورنده توسط متقاضی ثبت به مراجع یاد شده در این قانون بهمنظور صدور گواهی ثبت، اعلام شود. ب - اگر هدف از استخدام یا انعقاد قرارداد، پدید آوردن نرم‌افزار مورد نظر بوده ویا پدید آوردن آن جزء موضوع قرارداد باشد، حقوق مادی مربوط‌و حق تغییر و توسعه نرم‌افزار متعلق به استخدام کننده یا کارفرما است، مگر اینکه در قرارداد به صورتدیگری پیش بینی شده باشد. ‌ماده ۷ - تهیه نسخه‌های پشتیبان و همچنین تکثیر نرم‌افزاری که به طریق مجاز برایاستفاده شخصی تهیه شده است چنانچه به طور همزمان مورد‌استفاده قرار نگیرد، بلامانعاست.‌ ماده ۸ - ثبت نرم‌افزارهای موضوع مواد (۱) و (۲) این قانون پس از صدور تأییدیه فنی توسط شورای عالی انفورماتیک حسب مورد توسط وزارت‌فرهنگ و ارشاد اسلامی و یامرجع ثبت شرکتها انجام می‌پذیرد.‌ ماده ۹ - دعوای نقض حقوق مورد حمایت این قانون ، در صورتی در مراجع قضایی مسموعاست که پیش از اقامه دعوی ، تأییدیه فنی یاد شده در‌ماده (۸) این قانون صادر شده باشد. در مورد حق اختراع ، علاوه بر تأییدیه مزبور ، تقاضای ثبت نیز باید به مرجعذی ربط تسلیم شده باشد.‌ ماده ۱۰ - برای صدور تأییدیه فنی موضوع ماده (۸) در مورد نرم افزارهایی که پدیدآورنده آن مدعی اختراع بودن آن است، کمیته‌ای به نام "‌کمیته‌حق اختراع" زیر نظرشورای عالی انفورماتیک تشکیل می‌شود. اعضای این کمیته مرکب از سه کارشناس ارشدنرم‌افزار به عنوان نمایندگان شورای عالی‌انفورماتیک، نماینده سازمان ثبت اسناد واملاک کشور و یک کارشناس حقوقی به انتخاب شورای عالی انفورماتیک خواهد بود.‌ ماده ۱۱ - شورا مکلف است از صدور تأییدیه فنی برای نرم‌افزارهایی که به تشخیصوزارت فرهنگ و ارشاد اسلامی خلاف اخلاق اسلامی و‌عفت عمومی و سلامت شخصیت کودکان ونوجوانان باشند خودداری کند. وزارت فرهنگ و ارشاد اسلامی باید ظرف دو هفته راجع به استعلام کتبی‌شورای عالی انفورماتیک اعلام نظر کند.‌ ماده ۱۲ - به منظور حمایت عملی از حقوق یاد شده در این قانون‌، نظم بخشی وساماندهی فعالیت‌های تجاری رایانه‌ای مجاز، نظام صنفی رایانه‌ای‌توسط اعضای صنف یادشده تحت نظارت شورا به وجود خواهد آمد. مجازات‌های مربوط به تخلفات صنفی مربوط،برابر مجازات‌های جرایم یاد شده در‌ لایحه قانونی امور صنفی - مصوب 1359.4.13 واصلاحیه‌های آن - خواهد بود.‌ ماده ۱۳ - هرکس حقوق مورد حمایت این قانون را نقض نماید علاوه بر جبران خسارت بهحبس از نود و یک روز تا شش ماه و جزای نقدی از ده‌ میلیون (۱۰،۰۰۰،۰۰۰) تا پنجاه میلیون (۵۰،۰۰۰،۰۰۰) ریال محکوم می‌گردد.‌ تبصره - خسارات شاکی خصوصی از اموال شخص مرتکب جرم جبران می‌شود.‌ ماده ۱۴ - شاکی خصوصی می‌تواند تقاضا کند مفاد حکم دادگاه در یکی از روزنامه‌ها با انتخاب و هزینه او آگهی شود.‌ ماده ۱۵ - رسیدگی جرم مذکور در ماده (۱۳) با شکایت شاکی خصوصی آغاز و باگذشت او موقوف می‌شود.‌ ماده ۱۶ - حقوق مذکور در ماده (۱) در صورتی مورد حمایت این قانون خواهد بود که موضوع برای نخستین بار در ایران تولید و توزیع شده باشد.‌ ماده ۱۷ - آیین‌نامه اجرایی این قانون شامل مواردی از قبیل چگونگی صدور گواهی ثبت و تأییدیه فنی و هزینه‌های مربوط همچنین نحوه تشکیل‌ نظام صنفی رایانه‌ای، به پیشنهاد سازمان مدیریت و برنامه‌ریزی کشور و با هماهنگی وزارتخانه‌های فرهنگ وارشاد اسلامی و دادگستری به تصویب‌ هیأت وزیران خواهد رسید.‌قانون فوق مشتمل بر هفده ماده و یک تبصره در جلسه علنی روز یکشنبه مورخ چهارم دی‌ماه یک هزار و سیصد و هفتاد و نه مجلس شورای اسلامی‌تصویب و در تاریخ ۱۳۷۹/۱۰/۱۰ به تأیید شورای نگهبان رسیده است. تاریخ تصویب : ۱۳۷۹/۱۰/۰۴ مرجع تصویب : مصوبات مجلس شورا ماده ۱۷ بند ۲ منابع و اسناد رسمی مرکز پژوهش‌های مجلس شورای اسلامی ویکی‌پدیا
  2. کامبیز اسدزاده

    انواع مجوز‌های نرم‌افزاری

    در دنیای مدرن برنامه‌نویسی امروز همانند دیگر کسب‌و‌کار‌ها در حوزه‌های مختلف، برنامه‌نویسی و توسعه‌ی نرم‌افزار دارای قوانین و چهارچوب‌های تقریباً مشخصی است که توسعه‌دهندگان حقوقی و حقیقی باید در باره‌ی آن‌ها بدانند تا در میدان دردسرهای پیش‌بینی‌نشده و ناخواسته سقوط نکنند. در این مقاله به انواع مجوز‌ها و همچنین قوانین حاکم بر آن‌ها اشاره می‌شود که شما را دعوت به مطالعه‌ی آن می‌کنیم. در بسیاری از مواقع، نوشتن یک برنامه‌ی کاربردی، بدون استفاده از انوع کتابخانه‌های از قبل نوشته شده (کد‌هایی که دیگران نوشته‌اند)، تقریباً غیرممکن است. مهم‌ترین چیزی که پیش از دست زدن به کدها و تصاویر آماده‌ی گرافیکی، یا استفاده از کتابخانه‌ها باید بررسی کنید، مجوز، یا به‌ اصطلاح (لایسنسی) است که اثر را تحت آن توزیع کرده‌اند. برای اطلاع از آن، معمولاً باید به دنبال فایلی با نام license.txt بگردید یا صفحه‌ی مربوط به مجوزها (Legal/Licensing) را در سایت اصلی بیابید. برخی از تفکرات غلط که باید به آن‌ها توجه شود قرار است شما کتابخانه‌ای را بنویسید و یا محصولی را توسعه دهید، در توسعه‌ی آن شما نیاز به استفاده از کتابخانه‌ها و یا تکه‌کد‌هایی هستید که دیگران آن‌ها را توسعه داده‌اند، با توجه به اینکه محصول شما قرار نیست منبع‌باز باشد (تجاری) بنابراین نباید اینگونه فکر کنید که چون محصول من تجاری است و قرار نیست کسی کد آن را ببیند، پس نیازی به حفظ حقوق توسعه‌دهنده و یا عنوان کردن کتابخانه‌ها و توسعه‌‌دهندگان دیگر باشم! این یک تفکر غلظ است (چرا که محصول شما بدون وجود کدهای نوع سوم (Third-Party) قادر به انجام کارهایی که از آن انتظار دارید را نخواهد داشت (مگر اینکه محصول شما به صورت کامل توسط خود شما توسعه داده شده باشد) که این کار در بسیاری از مواقع تقریباً غیر‌ممکن است. برای مثال اگر نیاز است شما در رابطه با مباحث امنیتی از کتابخانه‌ای مانند OpenSSL استفاده کنید، دیگر نوشتن یک کتابخانه‌ی عظیمی مانند آن حماقتی بیش نیست چرا که چنین کتابخانه‌هایی توسط شرکت‌ها، سازمان‌ها و توسعه‌دهندگان بسیاری از قبل توسعه و مورد استفاده قرار گرفته‌اند و از لحاظ پایداری و اطمینان استفاده مورد تایید قرار گرفته‌اند. دقت کنید که استفاده از کتابخانه‌ها و حتی هدف از نوشتن یک کتابخانه باید تحت شرایط حاکم بر مجوز‌ها را در نظر داشته باشد. برای مثال، اگر شما قصد دارید کتابخانه‌ای را مورد استفاده قرار دهید و یا قرار است کتابخانه‌ای را ایجاد و توسعه دهید بهترین کار قبل از شروع توسعه آن است که بدانید هدف شما از توسعه‌ی آن کتابخانه چه چیزی است؟ آیا قرار است کتابخانه‌ی مورد نظر شما به صورت انحصاری و تجاری در اختیار کاربران قرار بگیرد و یا قرار است به صورت کاملاً رایگان به اشتراک‌ گذاشته شود؟ شاید ابتدا به این فکر کنیم که چرا باید کدی را که برای آن زحمت کشده‌ایم به صورت رایگان در اختیار دیگران قرار دهیم، چرا که ممکن است آن را بدون حفظ نام نویسنده تغییر، توسعه و بازنشر و برای استفاده در مصارف تجاری (غیر رایگان) قرار دهند؟ برای پاسخ به این سوأل‌ها پیشنهاد می‌کنیم به ویژگی‌های مجوز‌های موجود دقت کنید چرا که حتی وقتی شما یک تکه کد را به صورت رایگان در اختیار دیگران قرار می‌دهید استفاده کننده موظف است تا طبق قوانین از پیش تعریف شده‌ی مجوز‌های منبع‌باز (Open Source) آن را مورد استفاده قرار دهد که به حفظ حقوق چاپ و تکثیر، توسعه و دیگر موارد پرداخته است. انواع مجوز‌های نرم‌افزاری و ویژگی‌های آن نرم افزارهای متن باز (Open Source Software) نرم افزار متن باز را می‌توان نرم‌افزاری معرفی کرد که تحت یک مجوز (Licence) دارای موافقتنامه‌ی انتشار یافته، که اجازه‌ی به اشتراک‌گذاری کد منبع (کد‌ کامپیوتری) را جهت مشاهده و انجام تغییرات در آن توسط کاربران و سازمان‌های دیگر می‌دهد. مثال‌هایی از این نوع نرم افزارها می‌توان به مرورگر موزیلا، لینوکس، جوملا، وردپرس و غیره اشاره کرد. نرم افزارهای اختصاصی (متن بسته) (Closed Source Software) اینگونه نرم‌افزارها، نرم‌افزارهایی اختصاصی هستند که تحت یک مجوز دارای موافقتنامه‌ برای انجام تغییرات، توزیع، کپی و انتشار محدود و کنترل شده در اختیار کاربران و سازمان‌ها قرار می‌گیرند. یا به صورت ساده تر نرم‌افزارهایی که برای دریافت آنها باید پول پرداخت کنید و اجازه دسترسی به کد منبع برنامه را ندارید. مثال‌هایی از این نوع نرم‌افزارها می‌توان به محصولات مایکروسافت مانند Office یا شرکت Adobe مانند Photoshop و غیره اشاره کرد. مجوز آزاد (CopyFree) کدهایی که تحت این نوع مجوز توزیع می‌شوند، هیچ محدودیتی بر برنامه‌ی نهایی شما ایجاد نمی‌کنند. شما آزاد هستید که هر تغییری در آن‌ها ایجاد کنید و لزومی ندارد کدهای تغییریافته یا استفاده‌شده را بازنشر دهید. حتی منبعی برای استفاده‌ی تجاری از این کدها نیز وجود ندارد. انواع اصلی این لایسنس‌ها عبارتند از Apache، BSD، MIT/X11 و Academic Free Licence مجوز‌های BSD و MIT بسیار مختصر هستند و تنها به مثابه‌ی اعلامیه‌ای برای سلب مسئولیت از نویسنده به کار می‌روند و گزینه‌ی مناسبی برای کامپوننت‌ها و کدهای کوچک قلمداد می‌شوند. در حالی که Apache و AFL، متن‌های حقوقی و کاملی هستند که تکلیف مسائلی نظیر سرنوشت پتنت‌ها را نیز مشخص کرده‌اند. برنامه‌های کامل، ترجیحاً با مجوز‌های Apache عرضه می‌شوند. به عنوان مثال، برنامه‌های معروفی که از این نوع لایسنس‌ها استفاده می‌کنند، می‌توان به LLVM/Clang، X11، FreeBSD، OpenSSL، Apache Server، اپل وب‌کیت و کرومیوم، و قسمت‌های یوزرلند اندروید اشاره نمود. مجوز تجاری (Copyrighted/Proprietary) کپی‌رایت شده همه‌ی برنامه‌های تجاری با این عنوان عرضه می‌شوند. این کدها بدون تهیه‌ی مجوز لازم از توزیع‌کننده، در کدهای شما قابل استفاده نیستند. استفاده از این کدها یا لینک کردن به آن‌ها، معمولاً در ازای پرداخت پول مجاز است. پس از دریافت مجوز، ممکن است فایل‌های کامپایل‌شده (سورس‌بسته) یا کدهای اصلی (همراه سورس) را در اختیار شما قرار دهند، اما به شما اجازه‌ی توزیع آن کدها را نخواهند داد. از گروه سورس‌بسته می‌توان به ویندوز و مایکروسافت آفیس، و از گروه همراه با سورس می‌توان به vBulletin، Unix و کامپوننت‌های DevExpress اشاره کردبر خلاف مجوز‌های متن‌باز لزوماً همراه داشتن سورس به معنی متن‌باز (opensource) بودن نرم‌افزار نیست. بلکه شرایط دیگری مثل شرایط بازنشر نیز لحاظ می‌شود. عملاً فقط مجوزهای آزاد و کپی‌لفت تحت این عنوان قرار می‌گیرند، استاندارد رایجی برای مجوزهای کپی‌رایت تجاری وجود ندارد و توصیه می‌شود فایل لایسنس، به‌دقت مطالعه شود. مجوزهای کپی‌لِفت قوی (Strong Copylefted) کدهایی که تحت این عنوان توزیع می‌شوند، لایسنس خود را به برنامه‌ی شما تحمیل می‌نمایند. حتی اگر یک خط از آن‌ها را وارد برنامه‌ی خود کنید، ناچار خواهید بود کل برنامه‌تان را به صورت کپی‌لفت، در اختیار سایرین قرار دهید. این مجوزها به شما اجازه‌ی تجاری‌سازی یا فروش برنامه و کدتان را نمی‌دهند. سخت‌گیری مجوزهای کپی‌لفت تنها به استفاده از کدها ختم نمی‌شود. حتی لینک کردن به نسخه‌ی کامپایل‌شده‌ی آن‌ها نیز، چه به صورت استاتیک انجام شود و چه به صورت دینامیک، همه‌ی کدهایتان تحت این مجوزها قرار خواهد گرفت. بنابراین اگر قصد ندارید بدون انتشار همه‌ی کدهای خود برنامه‌تان را توزیع کنید و یا از فروش آن کسب درآمد نمایید. جهت اطلاع از روش‌های درآمدزایی از پروژه‌های متن-باز به این سند مراجعه کنید. البته کسب درآمد از طریق ارائه‌ی خدمات پشتیبانی و نصب و راه‌انداری قانونی‌ست و مدل تجاری شرکت‌های بزرگی همچون ردهت بر این اساس بنا نهاده شده است.انواع اصلی این لایسنس‌ها GPL و AGPL هستند که هر کدام چندین نسخه دارند. در میان برنامه‌های معروفی که با این نوع لایسنس عرضه می‌شوند، می‌توان به لینوکس (کرنل) و یوزرلند اصلی آن، GNU، و همچنین MySQL، وردپرس، جوملا، لیبرآفیس(LibreOffice)، کامپایلر GCC، فریمورک Qt و… اشاره نمود. معدودی از این برنامه‌ها و کدها، هم‌زمان با لایسنس تجاری هم عرضه شده‌اند که اگر بخواهید از برنامه‌ای که نوشته‌اید، از طریق فروش نرم‌افزار و بدون انتشار سورس کد کسب درآمد کنید، می‌بایست نسخه‌ی تجاری آن‌ها را خریداری نمایید. فریمورک Qt و بانک اطلاعاتی MySQL از این دسته برنامه‌ها هستند. مجوزهای کپی‌لفت ضعیف (Weak Copylefted) تنها تفاوت انواع ضعیف مجوزهای کپی‌لفت با انواع قوی آن،‌ در این است که اجازه‌ی لینک دینامیک به کتابخانه‌های کامپایل‌شده با این لایسنس را می‌دهد. برای مثال، Glibc، کتابخانه‌ی پوزیکس و زبان سی POSIX / Standard C Library در لینوکس، که عملاً دروازه‌ی هسته‌ی لینوکس برای همه‌ی برنامه‌های کاربردیست، با این مجوز توزیع شده است و اگر به خاطر همین مجوز کپی‌لفت ضعیف نبود، اساساً امکان عرضه‌ی برنامه‌های تجاری برای لینوکس وجود نداشت. به عنوان انواع اصلی این مجوز ها، می‌توان به LGPL و MPL (موزیلا) اشاره کرد.برنامه‌ها‌ی Firefox و VLC و کتابخانه‌ی معروف FFmpeg نیز نمونه‌ی دیگری از این گروه مجوزهاست. اگرچه برخی اجزای کتابخانه FFmpeg تحت لیسانس GPL منتشر شده‌اند. در صورت فعال شدن همان اجزا، کل کتابخانه تحت GPL قرار خواهد گرفت.در سیستم عامل اندروید، برای آن که کوچک‌ترین نگرانی برای برنامه‌سازان تجاری باقی نماند و از سرایت لایسنس هسته‌ی اصلی لینوکس به بقیه‌ی نرم‌افزارها جلوگیری شود، کتابخانه‌ی پوزیکس/سی اختصاصی آن به نام Bionic، با لایسنس BSD عرضه شده است. مجوزهای کرییتیو کامنز (Creative Commons, CC) نوعی مجوز آزاد و رایگان که برای آثار گرافیکی و نوشتاری رایج است و بر اساس ویژگی (Types) آن می‌توانند مجاز یا ممنوع برای استفاده‌ی تجاری باشند. اگر برنامه‌ی تجاری می‌نویسید، تنها از کارهای گرافیکی استفاده کنید که استفاده‌ی تجاری را آزاد گذاشته‌اند.این مجوز می‌تواند ویژگی‌های دیگری نظیر عدم اجازه‌ی تغییر در کار اصلی را همراه خود داشته باشد که باید به آن‌ها نیز توجه نمایید. آیا می‌توانم با نرم‌افزارهای کپی‌لفت، محتوای تجاری تولید کنم؟ جامعه‌ی متن‌باز، مراقب این موضوع بوده که مجوز‌ برنامه‌هایشان محتوای شما را تحت تأثیر قرار ندهند و در صورت لزوم این موضوع را به صراحت نیز قید کرده‌اند. بنابراین می‌توانید با برنامه‌ای نظیر LibreOffice که تحت GPL توزیع شده، محتوای تجاری تولید کنید، یا برنامه‌ی تجاری خود را توسط GCC کامپایل نمایید. اطلاعات سایت‌هایی که تحت نرم‌افزارهای کپی‌لفت هستند تحت تأثیر این لایسنس قرار نخواهند داشت (چرایی آن از نظر حقوقی خود یک مقاله است). در واقع، سایت‌های خبررسانی زیادی نظیر CNN از این سرویس‌ها استفاده می‌کنند. از نرم‌افزاری با مجوز GPL (مثل وردپرس) برای راه‌اندازی سایت خود استفاده کرده‌ام. تکلیف چیست؟ این گونه برنامه‌ها همراه سورس هست و آزادید آن‌ها را تغییر بدهید. خیالتان راحت باشد که محتوای سایت شما تحت این نوع مجوز قرار نخواهد گرفت و تنها کدهاست که شامل لایسنس می‌شوند. حتی اگر چیزی به سورس آن اضافه کنید یا تغییر دهید، ولی قصد توزیع آن را نداشته باشید، به این کار مجبور نمی‌شوید. ولی توجه داشته باشید که پلاگین‌ها و تم‌های وردپرسی که شما تهیه می‌کنید، یا تغییراتی که به‌اصطلاح هاردکد می‌کنید، تحت مجوز GPL قرار می‌گیرند و تنها در صورتی که بخواهید آن‌ها را به فرد دیگری بدهید، حتی یک نفر دیگر، مجبورید سورسشان را به رایگان برای همه منتشر کنید. در واقع این موضوع، یکی از بزرگ‌ترین معضلات حقوقیست که تهیه‌کنندگان پلاگین‌ها و تم‌های تجاری وردپرس با آن درگیرند. اگرچه مجوز GPL شما را مجبور نمی‌کند که تغییراتی که برای استفاده‌ی شخصی داده‌اید منتشر کنید، اما این مجوز خواهرخوانده‌ای به نام AGPL دارد که در صورتی که کد تغییر یافته را روی سرور اجرا کنید، باید منتشرش نمایید. آیا می‌توانم کدی که تحت مجوز MIT یا BSD منتشر شده را در برنامه‌ی تحت GPL استفاده کنم؟ احتمال زیادی وجود دارد که هر قسمت از یک پروژه‌ی بزرگ، تحت لایسنس جداگانه‌ای توزیع شده باشد. برای مثال در اندروید، هسته‌ی لینوکس تحت GPL، بیونیک (کتابخانه‌ی پوزیکس/سی) تحت BSD و بقیه‌ی قسمت‌ها عمدتاً بر اساس آپاچی منتشر شده‌اند. در سیستم عامل MacOSX، هسته‌ی Darwin و برخی اجزا تحت BSD و بقیه به صورت تجاری و سورس بسته هستند. بنا بر یک قاعده‌ی کلی، شما می‌توانید مجوز یک کد را از یک لایسنس بازتر نظیر MIT، به لایسنس محدودتر نظیر GPL تغییر دهید، حتی اگر صاحب آن نباشید. ولی روند معکوس آن تنها برای صاحب اصلی اثر امکان‌پذیر است[ref]برای نمونه برنامه‌ی VLC ابتدا تحت GPL قرار داشت اما در نهایت به دلیل ناسازگاری آن با استور آیتونز توسط شرکت سازنده به لایسنس بازتر MPL/LGPL منتقل شد. یا نرم‌افزار ToyBox که تحت لایسنس LPGL بود اما برای اینکه بتواند روی دستگاه‌های موبایل قرار گیرد تحت BSD قرار گرفت و اندرویید مارشملو از BusyBox به آن سوییچ کرد.به عنوان مثال، با این که مجوز آپاچی همانند MIT آزاد است، ولی از نوع محدودتر قلمداد می‌شود،‌ پس نمی‌توان کدهای تحت آپاچی را با مجوز MIT بازنشر کرد.به طور مختصر ترتیب مجوزهای متن‌باز، از بازترین به محدودترین، به شکل زیر است: Public Domain -> MIT/X11 -> BSD -> Apache -> LGPL/MPL -> GPL -> AGPL آیا برنامه‌ی تحت ویندوز، شامل لیسانس تجاری مایکروسافت خواهد شد؟ مایکروسافت به شما این اجازه را می‌دهد که در چارچوب سیستم عامل ویندوز، به dllهای سیستم‌عامل لینک دهید و از آن‌ها استفاده نمایید، اما این بدان معنا نیست که شما اجازه داشته باشید dllها را به برنامه‌ی خود اضافه نمایید. بنابراین استفاده از dllهای خود ویندوز، در سیستم‌عامل‌ها و شبیه‌سازهای غیرمایکروسافتی (نظیر ReactOS یا Wine)، غیرقانونی است و این‌ها به طور مستقل، پیاده‌سازی کدهایی را انجام داده‌اند که با اینترفیس برنامه‌نویسی ویندوز (Win32 API) سازگار هستند. در ایران که قانون کپی‌رایت وجود ندارد، باز هم ملزم به رعایت و توجه به این موارد هستیم؟ صرف نظر از مسائل اخلاقی که ما را ناگزیر از رعایت این موارد می‌کنند، باید توجه داشته باشیم که اگر بخواهیم برنامه‌ی خود را در اپ‌استورهایی همچون آیتونز یا گوگل پلی منتشر کنیم، رعایت این موارد ضروری است چرا که در صورت عدم رعایت، برنامه‌های شما را از فروشگاه حذف می‌شود. همچنین، گرچه جامعه‌ی متن‌باز اهل شکایت و دادگاه نیستند، ولی از فردای روزی که ایران به سازمان تجارت جهانی بپیوندد، مسائل حقوقی ناشی از آن، همچون شمشیر داموکلس، بر سر‌کدهای شما خواهند بود. بسیاری از توسعه‌دهندگان تازه‌کار متأسفانه بدون در نظر گرفتن قوانین و شرایط توسعه وارد نشر و تکثیر کد‌ها و محصولاتی می‌شوند که شاید به صورت ناخودآگان تمامی قوانین حقوقی و مجوز‌های مربوطه را نقض می‌کنند. همچنین اپ‌استورهای معروف ایرانی تعهدی از توسعه‌دهنده درباره‌ی عدم استفاده از کدهای بدون مجوز اخذ نمی‌کنند و رویه‌ای برای شکایت از ناقضین ندارند و علاوه بر آن، خود نیز رأساً اقدام به بازتوزیع برنامه‌های خارجی، بدون اخذ رضایت از صاحب اثر می‌نمایند و اگر این رویه‌ی خود را مورد بازبینی قرار ندهند، ممکن است در آینده‌ای نزدیک مجبور به پرداخت خسارت‌های هنگفتی شوند. باید توجه داشت که توزیع رایگان یک برنامه، به این معنا نیست که دریافت‌کننده حق توزیع مجدد آن را، حتی به صورت رایگان، داشته باشد. نمونه‌ی بارز آن یونیکس است که به همراه سورس توزیع شود و برای دانشگاه‌ها رایگان است، اما این قبیل استفاده از آن بدون پرداخت هزینه‌های مربوطه ممکن نیست. بنابراین حتی بازتوزیع نرم‌افزارهای رایگان خارجی در استورهای ایرانی نیز احتمالاً بدون عواقب نیست. منابع و مستندات Software license - Wikipedia Comparison of free and open-source software licenses - Wikipedia CI: policy > permissive CI: policy > copyleft CI: policy > copyright https://scriptics.ir
  3. بهنام صباغی

    مروی بر مهندسی نرم افزار ( قسمت اول )

    مهندسی : عبارت است از تحلیل ، طراحی ، ساخت ، بررسی و مدیریت نهادهای فنی واجتماعی . سوالاتی که یک مهندس باید پاسخ بدهد: چه چیزی باید حل شود ؟ چه ویژگی هایی باید مورد بررسی قرار بگیرد ؟ نهاد چگونه بنا شده است ؟ از چه روشی برای کشف خطا استفاده شود ؟ پشتیبانی به چه صورتی انجام شود ؟ نرم افزار : عبارت است از محصولی شامل برنامه ، مستندات و داده‌ها نیاز های مشتری به سه دسته تقسیم می‌شوند: نیازهایی که اگر پاسخ داده نشوند رضایت‌مندی مشتری به صفر می‌رسد. نیاز هایی که کاربر مطرح می‌کند و سپس انجام می‌شود و باعث بالا رفتن رضایت‌مندی مشتری می‌شود . نیازهایی که اگر پاسخ داده نشوند مشکلی ایجاد نمی‌شود ولی اگر پاسخ داده شود رضایت‌مندی مشتری را به شدت افزایش می‌دهد . یک نرم افزار فرسوده نمی‌شود به این معنی است که در بازه‌های زمانی مشخص نرم‌افزار آپدیت دریافت کرده و مشکلات قبلی را حل و قابلیت‌های جدید اضافه می‌کند . انواع نرم افزارها: سیستمی زمان حقیقی تجاری TPS : Transaction Process System OAS : Office Automation System MIS : Management Information System EIS : Executive Information SystemKWS : Knowledge Work System مهندسی و علمی نرم‌افزار‌های تعبیه شده نرم‌افزارهای کامپیوتر شخصی مبتنی بر وب هوش مصنوعی نرم‌افزارهای ساخت نرم‌افزار اسطوره‌های نرم افزاری : اسطوره‌های مدیریتی با داشتن کتابی آکنده از استعدادها و روال‌های لازم میتوان نرم‌افزار موفقی تولید کرد ( دانش ضمنی ) با داشتن ابزار نرم‌افزار‌ سازی حرفه‌ای و کامپیوتر‌های مدرن میتوان تولید نرم‌افزار را تضمین کرد. ( نیروی متخصص نادیده گرفته شده است) با عقب افتادن از برنامه می‌توان تعداد برنامه‌نویسان را افزایش داده و کار را جلو برد . ( هماهنگ کردن افراد جدید با پروژه سخت است و هزینه و زمان بیشتری می‌برد) استوره های مشتریان : با تغییر نیاز مشتری می‌توان تغییرات لازم را در نرم‌افزار اعمال کرد چون نرم‌افزار انعطاف‌پذیر است (‌هزینه افزایش می‌یابد) اسطوره‌های سازندگان نرم‌افزار هنگاهی که نرم‌افزار نوشته شده دیگر کار تمام است ( مراحل تست و پشتیبانی نادیده گرفته شده است ) تا زمانی که برنامه اجرا نشده است راهی برای ارزیابی کیفیت آن وجود ندارد ( خود برنامه نویس هنگام کد نویسی می‌تواند ارزیابی کند ) تنها چیز قابل تحویل برای یک پروژه نرم افزاری برنامه است ( مستندات و داده‌ها نادیده گرفته شده است ) مهندسی نرم‌افزار از سه گام اصلی تشکیل شده است: تعریف (? what) : چرا ساخت سیستم مهم است؟ سیستم چه تسهیلاتی دارد؟ چه اطلاعاتی مورد نیاز است ؟ چه اطلاعاتی باید پردازش شود ؟ توسعه ( ? How) : ساختار داده‌ها ، ساختار روال‌ها ، ساختار برنامه ، ساختار واسطه‌های کاربری و سیستم چگونه باید باشد ؟ پشتیبانی (! Change) : تصحیح نرم افزار ، بروز رسانی نیاز های جدید ، ساخت گزارشات بیشتر تعریف متدلوژی :در عام یک روش علامت گذاری شده و تعریف شده است. چرا متدلوژی در تحلیل و طراحی سیستم اهمیت دارد ؟ زیرا با داشتن روشی مدون می‌توان مستندسازی نرم‌افزار را با قابلیت بالاتری انجام داد و روند تولید نرم‌افزار از نظر کیفیت تضمین می‌گردد . روندی که یک درخواست در تحلیل و طراحی سیستم طی می‌کند: قسمت بعدی :
  4. بهنام صباغی

    مروی بر مهندسی نرم افزار ( قسمت پنجم )

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

    مروی بر مهندسی نرم افزار ( قسمت چهارم )

    طرح‌های راهبردی مهندسی نرم‌افزار : نمونه اولیه ( Proposal ) نقشه مدیریت پروژه ( Project Management Plan ) طرح تضمین کیفیت ( Quality Assurance Plan) یافتن واقعیت‌ها در سیستم نرم‌افزاری مصاحبه کاربران بیشتر به نتایج توجه دارند نه منشا کارها کاربران ناآگاهند نسبت به سیستم‌های کامپیوتری تناقض‌گویی کاربراان ارائه راهکار از طرف کاربر پرسش‌نامه : وقتی افراد زیاد و زمان کم است از پرسش‌نامه استفاده می‌کنیم. مطالعه مشاهده مدل خطی مهندسی نرم‌افزار سوال : چه زمانی از مدل خطی استفاده می‌شود ؟ جواب : نیازمندی‌های سیستم از ابتدا به طور کامل مشخص باشد. نکته : اگر نیازمندی‌ها از اول مشخص نباشد این مدل کارایی ندارد و همچنین این مدل زمان زیادی می‌گیرد. نمونه اولیه ( prototype ) : شنیدن صحبت‌های مشتری طرح اولیه نشان دادن ماکت به مشتری چالش‌های نمونه اولیه ( prototype ) : سادگی بیش از حد نمونه اولیه باعث منصرف شدن کاربر می‌شود. خواسته‌های غیر منطقی و خارج از چارچوب برنامه ایجاد شود. RAD ( Rapid Application Development ) توسعه سریع برنامه : تقسیم برنامه به ماژول‌های مختلف تخصصیص هر ماژول به یک تیم هر یک از مدل خطی استفاده می‌کنند. نکته 1 : نرم‌افزار باید قابلیت تقسیم به ماژول های مختلف را داشته باشد. نکته 2 : هزینه ترکیب کردن ماژول‌ها زیاد است. مدل افزایشی مهندسی نرم‌افزار ( Incremental Model ) هر بخش از نرم افزار توسط یک تیم نوشته می‌شود. ( بخش‌ها از یکدیگر مستقل‌اند) مدل پیچشی مهندسی نرم‌افزار هر بار نرم‌افزار بزرگتر می‌شود تا به نرم‌افزار اصلی برسیم. مشکل : اگر کاربر مشکلی پیدا کند باید به اول برگردیم. مدل برد برد ( Win Win Model ) همان مدل پیچشی و ساختار آن به گونه‌ای است که هر موقع کاربر درخواستی داشته‌باشد به چرخه برگشته و درخواست را عملی می‌کنیم.(یک پیچ به عقب بر می‌گردیم) متدلوژی SSADM ( Structured System Analysis & Design Method ) چرخه حیات متدلوژی SSADM هر بخش به صورت مجزا دیده می‌شود و هیچ ارتباطی باهم ندارند. امکان‌سنجی : این می‌باشد که آیا قابلیت انجام این پروژه توسط شرکت وجود دارد یا خیر ؟ فنی : سخت‌افزار یا نرم‌افزار خاصی نیاز داریم که باید بررسی شود که در اختیار داریم یا خیر ؟ مالی : به صرفه بودن پروژه و نرم‌افزار و بررسی کردن آن زمان : آیا زمان لازم برای انجام پروژه وجود دارد یا خیر ؟ هزینه : زمانی می‌تواند به عنوان هزینه در نظر گرفته شود زمان وجود دارد اما زمانی که برای پروژه در نظر گرفته می‌شود میتوان با توجه به پروژه ‌ای دیگر و زمان کمتر سود بهتری بدست آورد. مراحل امکان‌سنجی : شناخت محدوده پروژه : قسمت‌های مختلف یک پروژه را شناسایی می‌کنیم به عنوان مثال در سیستم انبارداری سیستم خرید ، سیستم فروش ، سیستم نگهداری بررسی و شناخت وضعیت موجود : بررسی وضعیت موجود در شرکتی که قرار است برای آن‌ها برنامه نوشته شود و بررسی میکنیم که آن‌ها چه وضعیتی دارند و یا از چه برنامه‌هایی قبلا کمک می‌گرفتند خروجی این بررسی گزارش تفضیلی شناخت پروژه می‌باشد. بررسی و تحلیل اهداف سیستم جدید : ویژگی‌هایی که قرار است اضافه شود تعیین موجودیت‌های خارج از سیستم تعیین محدودیت‌ها و مخاطرات سیستم : ریسک‌های سیستم و مشکلات آن را پیدا کنیم و ... به تایید کارفرما رساندن محدوده پروژه ارائه راه‌حل‌های سخت افزاری و نرم‌افزاری : پروژه به چه سخت‌افزار و نرم‌افزارهایی نیاز دارد. بررسی اقتصادی پروژه : هزینه تهیه کامپیوتر و سخت‌افزارهای مورد نیاز و بررسی به صرفه بودن هزینه تهیه سیستم‌های کامپیوتری ( سخت افزار ) هزینه منابع انسانی و آموزش افراد و استخدام برنامه‌نویس هزینه پشتیبانی از برنامه گزارش امکان‌سنجی مستنداتی قابل ارائه از امکان‌سنحی متدلوژی و راه و روشی برای شناخت سیستم راه‌حل‌های ارائه شده به کارفرما که پذیرفته شده‌است. بررسی اقتصادی هزینه‌های پروژه و مزایای پروژه برنامه‌ریزی برای پروژه ( زمان‌بندی و افرادو ... ) نتیجه‌گیری و پیشنهادات ضمایم تکمیلی ( مواردی که به پروژه ضمیمه می‌شوند ) 5 گام اساسی متدلوژی SSADM مدل آبشاری متدلوژی SSADM
  6. بهنام صباغی

    مروی بر مهندسی نرم افزار ( قسمت دوم )

    تحلیلگرهای مهندسی نرم‌افزار : تحلیل‌گر سطح 1 تحلیل سیستم 30٪ کدنویسی 70٪ تحلیل‌گر سطح 2 تحلیل سیستم 50٪ کدنویسی 50٪ تحلیل‌گر سطح 3 تحلیل سیستم 70٪ کدنویسی 30٪ تحلیل‌گر ارشد تحلیل سیستم 60٪ کدنویسی 10٪ مدیریت پروژه 30٪ تعریف سیستم : به مجموعه‌ای از عناصر گفته می‌شود که کنار هم قرار گرفنه‌اند ، دارای ورودی‌های مشخص ، پردازش‌های معین و خروجی از پیش تعیین‌شده برای یک هدف خاص هستند . سیستم : سیستم باز : تبادل داده ، ماده و انرژی با محیط اطراف . سیستم بسته : با خارج از خود ارتباط ندارد . هم‌افزایی (synergy ) : ماهیت یک سیستم بالاتر از جمع جبری تک تک عناصر آن سیستم است . طراحی سلسله مراتبی ساختار سیستم : سطح‌های مدیریتی : نکته : ساخت نرم‌افزار یک فرآیند تکراری است . Process ( فرآیند) : انجام دادن یک سری گام ، کار و یا وظیفه در یک زمان مشخص برای رسیدن به یک هدف مشخص وظیفه زمان هدف Functions (وظیفه ) : ثبت نام در دانشگاه : امور مالی امور آموزشی امور اداری تاریخچه علم طراحی و تحلیل سیستم : روش‌های نسل اول : روش‌های این نسل مبتنی بر انواع تکنیک‌های ساخت یافته برای تولید نرم‌افزار هستند . برنامه نویسی ساخت یافته : برنامه نویسی‌ای که کمترین استفاده از دستور goto در ان باشد و تمرکز بر نوشتن کر برنامه در پیمانه‌های کمتر و حدالامکان یک پیمانه است .(Madule) تحلیل ساخت یافته : برنامه به گونه ای نوشته شود که ارتباط بین پیمانه‌ها حداقل باشد ، تعداد پارامترهای رد و بدل شده کمینه باشد و اطلاعات درون پیمانه‌ها منحصر به خود پیمانه بوده و امکان دسترسی از خارج پیمانه میسر نباشد. تحلیل ساخت یافته : شناخت چگونگی گردش داده‌ها درون سیستم بر اساس فرآیندها را تحلیل ساخت‌یافته گوئیم . (Process Oriented متدولوژی SSADM) روش‌های نسل دوم : روش این نسل با تاکید بر شناخت داده‌ها و اطلاعات درون سیستم‌هاست . (Data Oriented معروف ترین متدولوژی CDM) روش‌های نسل سوم :روش های این نسل مبتنی بر روش شی‌گرا در طراحی و تحلیلی داده‌ها و پردازش‌ها با یکدیگر و هم زمان است .(Object Oriented متدولوژی RUP) مهندسی نرم‌افزار به صورت لایه‌ای : مدل فرآیندی نرم‌افزار : آزمایش یک برنامه : آزمایش : آزمایش black box : به داخل برنامه دسترسی نداریم و فقط ورودی و خروجی داریم . آزمایش white box : به داخل کد دسترسی داریم و ساختار کد را بررسی می‌کنیم . خروجی‌ها : خروجی که نرم‌افزار می‌دهد . (actual) خروجی که اتنظار داریم نرم‌افزار بدهد . (expected) آزمایش به روش black box خروجی actual و expected را مقایسه می‌کند . قسمت بعدی :
  7. کامبیز اسدزاده

    محیط یکپارچه توسعه نرم‌افزار Xcode

    نگارش 10.2.0

    7 دریافت

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

    رایگان

×