مهندسی نرم افزار داده های بزرگ جهت تحقیقاتی
مهندسی نرم افزار داده های بزرگ جهت تحقیقاتی – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه کامپیوتر
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات
قیمت
قیمت این مقاله: 48000 تومان (ایران ترجمه - Irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
شماره | ۱۸۷ |
کد مقاله | COM187 |
مترجم | گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی | جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ |
نام انگلیسی | Research Directions for Engineering Big Data Analytics Software |
تعداد صفحه به فارسی | ۳۳ |
تعداد صفحه به انگلیسی | ۱۲ |
کلمات کلیدی به فارسی | داده های بزرگ, مهندسی نرم افزار, پایایی, طراحی, آزمایش, کیفیت |
کلمات کلیدی به انگلیسی | big data, software engineering, reliability, design, testing, quality |
مرجع به فارسی | سیستم های هوشمندIEEE |
مرجع به انگلیسی | IEEE Intelligent Systems |
کشور | ایالات متحده |
جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ
چکیده
بسیاری از شرکت های نوپای نرم افزاری و تحقیقاتی، در تعامل با فرآیندهای متعدد توسعه نرم افزار به صورت فعال در پروسه مهار توان داده های بزرگ و ایجاد نرم افزار با پتانسیل بالا جهت ارتقای تقریباً هر یک از ویژگی های زندگی انسانی مشارکت نموده اند. با توجه به آنکه چنین تلاش هایی به صورت پیوسته در حال افزایش است، لازم است تا توجه کامل به ویژگی های مهندسی نرم افزار داده های بزرگ اعمال شود. از آنجایی که این سیستم ها جهت ایجاد پیش بینی ها در ارتباط با بانک های اطلاعاتی پیچیده و گسترده ارائه شده اند، آنها ممکن است از مشکلات خاصی در طی فازهای مختلف تعیین ویژگی ها، طراحی، و تأیید نرم افزار، که می بایست به موقع و در محدوده بودجه مشخص شده تحویل شود، برخوردار باشند. اما، با توجه به طبیعت نرم افزاری داده های بزرگ، آیا قابلیت برآورده سازی این موانع و مرتفع سازی مشکلات وجود دارد؟ آیا فرآیند مهندسی نرم افزاری داده های بزرگ حقیقتاً کاربرد پذیر است؟ این مقاله جزئیات مربوط به نرم افزار داده های بزرگ را مورد بررسی قرار داده و مشکلات اصلی مواجهه شده با آن در طی مهندسی سازی نرم افزار داده های بزرگ را ارائه داشته و راهکاری را برای تحقیقات آتی عرضه می نماید.
کلمات کلیدی: داده های بزرگ، مهندسی نرم افزار، پایایی، طراحی، آزمایش، کیفیت
مقدمه
نرم افزار داده بزرگ چیست؟ چگونه می توان آن را با نرم افزارهایی که در این رسته نیستند متمایز ساخت؟ آیا قابلیت مهندسی سازی آن وجود دارد؟ پاسخ به این سئوال ها نیازمند بررسی عبارت “داده های بزرگ” برای حاصل آوردن نوعی اجماع و تحصیل یک تعریف واحد از نرم افزار داده های بزرگ می باشد. تعدادی از مباحث در این زمینه تلاش های گوناگونی را در ارتباط با تعریف داده های بزرگ اعمال داشته اند، که بر مبنای محتویات، حوزه یا چشم اندازهای مربوطه متغیر بوده اند. از نقطه نظر زیرساختاری، داده های بزرگ به عنوان داده ای تعریف می گردند که از حجم، سرعت و تنوع بالا (یعنی ۳V) و ویژگی عدم قابلیت پیش بینی، برخوردار می باشند. در این مضمون می توان چنین مفهومی را به عنوان داده هایی در نظر گرفت که آن قدر بزرگ می باشند که با استفاده از روش های نوعی و کنونی قابلیت بکارگیری آنها جهت پردازش وجود ندارد [۱] [۲]. از نقطه نظر ویژگی های تحلیلی، داده های بزرگ به عنوان آن دسته از داده هایی اطلاق می شوند که بزرگی آنها بقدری است که غیاب آنها از روش های نمونه بردای متعارف جزء رخدادهای با احتمال پایین معنی داری تلقی خواهد شد [۳]. از نقطه نظر کاربران تجاری، داده های بزرگ معرف فرصت هایی برای حاصل آوردن یک مزیت رقابتی از طریق حصول هوشمندی قابل اجرا می باشند [۴]. هر یک از این تعاریف فراهم آورنده ویژگی های توصیفی و مهمی هستند که می بایست از طریق نرم افزار داده های بزرگ پشتیبانی شوند. با قرض گیری از این تعاریف، تعریف پیشنهادی نرم افزار داده های بزرگ به شرح ذیل ارائه می شود.
نرم افزار داده های بزرگ به عنوان نوعی نرم افزار تلقی می شود که با توجه به محدویت زمانی از پردازش جریان های اطلاعاتی پیوسته به منظور فراهم آوردن هوشمندی قابل اجرا پشتیبانی می کند.
…
مهندسی نرم افزار داده های بزرگ جهت تحقیقاتی
هوش عملی
هوش عملی به معنای بسیار بیشتر از آنچه صرفاً یک فرآیند یافتن یا خلاصه ساختن ساده اطلاعات می باشد تلقی می شود. این مؤلفه بر روی اکتشاف الگوهای مخفی (ناشناخته و مواردی که یافتن آنها سخت است) تأکید داشته و برای پیش بینی مفاهیم، رخدادها، خط مشی ها، نکته نظرات و موارد دیگر جهت پشتیبانی از تصمیم گیرندگان بکار گرفته می شود. کاربرد مورد انتظار هوش عملی از یک سیستم به سیستم دیگر متغیر می باشد، آن هم با توجه به این موضوع که هر گوناگونی ممکن است سبب افزایش پیچیدگی شامل شده به هنگام مهندسی چنین سیستم هایی شود. به همین دلیل، لازم است تا قابلیت طبقه بندی چنین مؤلفه ای را داشته باشیم تا از این طریق بتوانیم نسبت به درک هوش عملی اقدام کرده و در ارتباط با این موضوع نیز بیاندیشیم که چگونه چنین موردی بر روی پیچیدگی و توسعه نرم افزار داده های بزرگ تأثیرگذار خواهد بود. سه سطح هوش عملی ذیل پیشنهاد شده است:
سطح ۱ (L1): هوش عملی نظارت شده
سطح ۲ (L2): هوش عملی نیمه نظارتی
سطح ۳ (L3): هوش عملی غیرنظارتی یا نظارت نشده
در L1، سیستم نقشی به عنوان پشتیبانی از تصمیم انسان را به عهده دارد، بنابراین انسان ها قابلیت مدیریت هوش ایجادی به وسیله ماشین ها قبل از انجام یک عمل یا فرآیند خاص را خواهند داشت. در L2، ماشین ها متکی به عملکردهای وابسته به هوش خود تولید شده می باشند. با این وجود، این عملکردها را می توان به وسیله انسان ها معکوس ساخت یا آنها را اصلاح نمود. به طور مثال، یک تشخیص گر اسپم L2 از نرم افزار یادگیری ماشینی جهت پیش بینی این موضوع اقدام خواهد نمود که آیا پیام های ایمیلی اسپم می باشند یا خیر. به هنگامی که فرآیند تشخیص اعمال شد، ماشین اقدام به ارسال ایمیل های ورودی به فولدرهای اسپم یا اینباکس خواهد کرد. در عین حال چنین فرآیندی کامل نبوده و به هنگام بروز طبقه بندی نادرست تداخل انسان ضروری می باشد. در L3، ماشین ها کاملاً جهت انجام عملیات و عمکلردهای خاص به خود وابسته هستند و هیچگونه نیازی به تداخل یا اصلاح انسانی وجود ندارد. البته امروزه سیستم های چندانی در ارتباط با L3 وجود ندارند. برخی از سیستم های با قابلیت ارائه پیشنهاد در L3 عمل می نمایند، اما غالب سیستم ها با توجه به دلایل آشکار صرفاً در L2 عمل می نمایند.
مهندسی نرم افزار داده های بزرگ جهت تحقیقاتی
مهندسی نرم افزار تحلیلی داده های بزرگ
با توجه به بحث پیرامون نرم افزار داده های بزرگ، ورودی، و خروجی آن، توجه ها هم اکنون به سمت مشکلات اصلی مواجه شده به هنگام تلاش جهت مهندسی نرم افزار داده های بزرگ جلب می شود. چنین موردی نیازمند قابلیت مشخص سازی ضروریات، طراحی و ایجاد نرم افزار جهت حاصل آوردن چنین ضروریاتی می باشد و در نهایت پروسه تصدیق و تأیید کامل آزمایشات، که نرم افزار بر مبنای ضروریات خاص آن پیاده شده است نیز انجام خواهد شد. تمرکز عمدتاً بر روی بخش تحلیلی بزرگ نرم افزار داده های بزرگ اعمال خواهد شد.
مسئله ضروریات
مشخص سازی ضروریات به منظور ایجاد موفق چنین نرم افزاری حیاتی می باشد. مشکل ضروریات مربوطه بصورت بهتری با استفاده از یک مدل ساده برای مشخص سازی ضروریات کاربردی و رویه های تصدیق و تهیه آن مشخص می شود. حال با توجه به این موضوع می توان به ساده ترین شکل مشخصه و ضروریات ـ یعنی موردی که در بردارنده یک تابع واحد و قابل تصدیق است و سیستم می بایست آن را ارائه دهد ـ را مدنظر قرار داد.
مسئله طراحی
نگاه مختصری به این مبحث مشخص کننده یک سری از ویژگی های کلیدی خاص می باشد که عمدتاً برای نرم افزار داده های بزرگ ذکر شده اند، شامل کاربرد پذیری، عملکرد، پایایی، در دسترس پذیری، امنیت، تفسیرپذیری، مقیاس پذیری، قابلیت تست و موارد دیگر. بحث پیرامون کلیه این موارد نیازمند فضای بیشتری در مقایسه با مقدار تخصیص یافته برای مقاله جاری می باشد. به همین دلیل، تمرکز این مقاله صرفاً بر روی پایایی و امنیت نرم افزار داده های بزرگ می باشد.
مهندسی نرم افزار داده های بزرگ جهت تحقیقاتی
پایایی
پایایی را می توان احتمالاً به عنوان مهمترین ویژگی کیفیتی مشکل برانگیز در ارتباط با طراحی نرم افزار داده های بزرگ خواند. مشکل عمدتاً در ارتباط با عدم قابلیت نرم افزار جهت تعیین (با قطعیت مطلق) نتایج صحیح می باشد. در این رابطه می توان به مثال تحلیل احساس رجوع نمود که قبلاً ذکر شده و در آن نرم افزار داده های بزرگ اقدام به کنترل و نظارت رسانه اجتماعی توییتر می نماید. در این مورد، ورودی به صورت استریم ها یا جریان های داده در قالب پیام های توییتری می باشد و خروجی آن هوش عملی در قالب احساسات پیش بینی شده (مثبت، خنثی یا منفی) است. در بهترین حالت، این سیستم قابلیت فراهم آوردن بهترین ویژگی های پیش بینی در ارتباط با این ویژگی را خواهد داشت. این پیش بینی ممکن است کاملاً دقیق باشد، اما هیچگونه تضمینی در خصوص پایایی این پیش بینی وجود ندارد ـ در برخی از موارد، چنین موردی حتی برای انسان ها نیز مشکل است. تحت شرایط هوش عملی تک جهشه، L1، و L2، تصدیق پایایی مشکل می باشد، اما در عین حال غیرمحتمل نیست، چرا که انسان ها می توانند از قوه قضاوت خود و اطلاعات مربوطه جهت تشخیص بصری موارد غیردقیق یا نتایج اکید استفاده نمایند. با این وجود، تحت شرایط هوش عملی چند جهشه L3،…
امنیت
در نرم افزارهای داده های بزرگ، نرم افزاری که از توابع و عملکرد کاملی برخوردار باشد، ممکن است به خودی خود به عنوان یک ویژگی آسیب پذیر امنیتی برای خود نیز به شمار آید، همانند موردی که در قضیه یادگیری ماشین تحت محیط خصمانه مشخص شده است [۱۴]. دو نوع از حملات امنیتی که برای نرم افزار داده های بزرگ موجود هستند شامل حملات فاز اجرایی و حملات فاز آموزشی می باشند. در حملات فاز اجرایی، استریم های داده به گونه ای جریان می یابند تا قابلیت تأثیرگذاری بر روی هوش عملی ایجاد شده به وسیله نرم افزار داده های بزرگ را داشته باشند. در این رابطه می توان به مورد سازمان های مهم (همانند دولت) با استفاده از نرم افزار داده های بزرگ جهت مشخص سازی نظرات عموم مردم از رسانه های اجتماعی در ارتباط با یک موضوع خاص اشاره نمود. در چنین سیستمی، مهاجمین مخرب و بدعناد قابلیت ایجاد مولدهای داده ای را خواهند داشت که می تواند بر روی نرم افزار داده های بزرگ جهت ایجاد نتایج ناپایا یا مخربانه تأثیرگذار باشد ـ…
مهندسی نرم افزار داده های بزرگ جهت تحقیقاتی
مشکل ساخت
مشکل ساخت عمدتاً ناشی از این موضوع می باشد که نرم افزار داده های بزرگ بیش از آنچه صرفاً مهارت های برنامه نویسی خوانده می شود را نیاز خواهد داشت. امروزه، غالب الگوریتم های فراگیری از طریق علوم یادگیری ماشینی انجام می گردند، که عمدتاً به عنوان بهترین برنامه نویسان تلقی نمی شوند [۱۸]. مسایل خاص ذکر شده در این مبحث شامل موارد ذیل هستند: در هم سازی، قابلیت حفظ و نگهداری، دیباگینگ، و قابلیت تولید مجدد [۱۸]. غالب این مشکلات در جامعه مهندسین نرم افزار مورد خطاب قرار گرفته اند، که در آن سبک های کدنویسی، بررسی همتایان، نرم افزار مدیریت پیکربندی و دیگر ابزارها بکار گرفته شده اند. با این وجود، یک خط مشی مشترک وجود دارد که بسیاری از فرآیندهای مربوط به یادگیری ماشینی جهت ارتقای مهندسی نرم افزار از آن استفاده می کنند، اما ویژگی های قابل توجه مهندسی نرم افزار در ارتباط با ارتقای نرم افزاری فراگیری ماشینی لحاظ نشده است [۱۳].
مشکل آزمایش
تصدیق نتایج پردازش استریم داده های گسترده انبوه برای انسان ها غیرعملی می باشد، البته در صورتی که غیرممکن فرض نشود ـ که خود دلیل این موضوع می باشد که چرا نیاز به وجود نرم افزار داده های بزرگ تا این حد احساس می شود. در این فرآیند، ممکن است نقص های زیادی بدون شناسایی باقی مانند. این مبحث تحقیقاتی اقدام به گزارش نمودن مورد ذیل می نماید: “عدم تعادل گسترده بین تعداد الگوریتم های انتشار یافته مختلف در برابر الگوریتم هایی موفق و کارآمد تحت محیط های تجاری “. دلایل این عدم تعادل را می توان در این موضوع جستجو نمود که محققین دانشگاهی محیط های تجاری را به حساب نمی آورند [۲۱]. به عبارت دیگر، انتقال از فرآیند توسعه الگوریتم به پیاده سازی آنها پیچیده می باشد و منجر به بروز مشکلات و نقص ها خواهد شد. نگرانی های خاصی در این مبحث وجود دارند شامل عدم اعتماد به داده ها، فرضیه های بد، مؤلفه های ریاضیاتی نادرست و موارد دیگر [۲۲]. در نهایت، مشکلات اخلاقی علوم داده ای سبب نادیده گرفتن جزئیات مهم در زمینه ارتقای روش های جدید و کمک به الگوریتم های نوین شده است و موجب بروز مشکل در اطمینان از کنترل موارد و مشخص سازی این موضوع می گردد که برخی از موارد ممکن است به خوبی در طی بکارگیری در یک روش عمل ننمایند [۱۸]. به همین دلیل، قابلیت دانشمندانی که در عرصه داده ها فعالیت ندارند را می توان بعنوان یک مولفه حیاتی جهت تست نتایج نرم افزار داده های بزرگ به شمار آورد.
مهندسی نرم افزار داده های بزرگ جهت تحقیقاتی
نتیجه گیری و راه های متعاقب
آیا واقعاً می توانیم نسبت به مهندسی سازی نرم افزار داده های بزرگ اقدام نماییم؟ بلی ما می توانیم. هیچکس نمی تواند شواهد یافته شده در نرم افزار داده های بزرگ جریان های اطلاعاتی امروزی، همانند Facebook، Netflix و Amazon، را نادیده انگارد. به طور مطمئن، تعداد زیادی از امورات مربوط به مهندسی نرم افزار به طور موفقی هم اکنون پیاده سازی شده اند. احتمالاً، یک سئوال معتبرتر را در این زمینه می توان به این صورت مطرح نمود که: آیا بقیه جامعه مهندسی نرم افزار از تبحر کافی در خصوص مهندسی چنین سیستم هایی برخوردار می باشند یا خیر؟ ما اینگونه فکر نمی کنیم. امروزه، مهندسی سازی اینگونه سیستم ها نیازمند جستجوی دقیقترین پیش بینی ها و در عین حال پذیرش راه حل هایی می باشد که ممکن است در آن نسبت به فداسازی دقت به جای عدم داشتن هیچگونه راه حلی اقدام شود [۸]. به علاوه، ضروریات بخش های تحلیلی نرم افزار داده های بزرگ را نیز می بایست در نظر گرفت ـ به طور مثال می توان شخصیت کاپیتان باربوسا از دزدان دریای کارائیب را خاطرنشان نمود: آن هم در بازی نفرین مروارید سیاه ـ که فراتر از آنچه می باشد که ممکن است آن را تحت عنوان “رهنمودها” در مقایسه با “قواعد حقیقی” در نظر داشت. …