جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ
جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه کامپیوتر
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات رایگان
قیمت
قیمت این مقاله: 28000 تومان (ایران ترجمه - irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ
شماره |
187 |
کد مقاله |
COM187 |
مترجم |
گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی |
جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ |
نام انگلیسی |
Research Directions for Engineering Big Data Analytics Software |
تعداد صفحه به فارسی |
33 |
تعداد صفحه به انگلیسی |
12 |
کلمات کلیدی به فارسی |
داده های بزرگ, مهندسی نرم افزار, پایایی, طراحی, آزمایش, کیفیت |
کلمات کلیدی به انگلیسی |
big data, software engineering, reliability, design, testing, quality |
مرجع به فارسی |
سیستم های هوشمندIEEE |
مرجع به انگلیسی |
IEEE Intelligent Systems |
سال |
2014 |
کشور |
ایالات متحده |
جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ
چکیده
بسیاری از شرکت های نوپای نرم افزاری و تحقیقاتی، در تعامل با فرآیندهای متعدد توسعه نرم افزار به صورت فعال در پروسه مهار توان داده های بزرگ و ایجاد نرم افزار با پتانسیل بالا جهت ارتقای تقریباً هر یک از ویژگی های زندگی انسانی مشارکت نموده اند. با توجه به آنکه چنین تلاش هایی به صورت پیوسته در حال افزایش است، لازم است تا توجه کامل به ویژگی های مهندسی نرم افزار داده های بزرگ اعمال شود. از آنجایی که این سیستم ها جهت ایجاد پیش بینی ها در ارتباط با بانک های اطلاعاتی پیچیده و گسترده ارائه شده اند، آنها ممکن است از مشکلات خاصی در طی فازهای مختلف تعیین ویژگی ها، طراحی، و تأیید نرم افزار، که می بایست به موقع و در محدوده بودجه مشخص شده تحویل شود، برخوردار باشند. اما، با توجه به طبیعت نرم افزاری داده های بزرگ، آیا قابلیت برآورده سازی این موانع و مرتفع سازی مشکلات وجود دارد؟ آیا فرآیند مهندسی نرم افزاری داده های بزرگ حقیقتاً کاربرد پذیر است؟ این مقاله جزئیات مربوط به نرم افزار داده های بزرگ را مورد بررسی قرار داده و مشکلات اصلی مواجهه شده با آن در طی مهندسی سازی نرم افزار داده های بزرگ را ارائه داشته و راهکاری را برای تحقیقات آتی عرضه می نماید.
کلمات کلیدی: داده های بزرگ، مهندسی نرم افزار، پایایی، طراحی، آزمایش، کیفیت
مقدمه
نرم افزار داده بزرگ چیست؟ چگونه می توان آن را با نرم افزارهایی که در این رسته نیستند متمایز ساخت؟ آیا قابلیت مهندسی سازی آن وجود دارد؟ پاسخ به این سئوال ها نیازمند بررسی عبارت “داده های بزرگ” برای حاصل آوردن نوعی اجماع و تحصیل یک تعریف واحد از نرم افزار داده های بزرگ می باشد. تعدادی از مباحث در این زمینه تلاش های گوناگونی را در ارتباط با تعریف داده های بزرگ اعمال داشته اند، که بر مبنای محتویات، حوزه یا چشم اندازهای مربوطه متغیر بوده اند. از نقطه نظر زیرساختاری، داده های بزرگ به عنوان داده ای تعریف می گردند که از حجم، سرعت و تنوع بالا (یعنی 3V) و ویژگی عدم قابلیت پیش بینی، برخوردار می باشند. در این مضمون می توان چنین مفهومی را به عنوان داده هایی در نظر گرفت که آن قدر بزرگ می باشند که با استفاده از روش های نوعی و کنونی قابلیت بکارگیری آنها جهت پردازش وجود ندارد [1] [2]. از نقطه نظر ویژگی های تحلیلی، داده های بزرگ به عنوان آن دسته از داده هایی اطلاق می شوند که بزرگی آنها بقدری است که غیاب آنها از روش های نمونه بردای متعارف جزء رخدادهای با احتمال پایین معنی داری تلقی خواهد شد [3]. از نقطه نظر کاربران تجاری، داده های بزرگ معرف فرصت هایی برای حاصل آوردن یک مزیت رقابتی از طریق حصول هوشمندی قابل اجرا می باشند [4]. هر یک از این تعاریف فراهم آورنده ویژگی های توصیفی و مهمی هستند که می بایست از طریق نرم افزار داده های بزرگ پشتیبانی شوند. با قرض گیری از این تعاریف، تعریف پیشنهادی نرم افزار داده های بزرگ به شرح ذیل ارائه می شود.
نرم افزار داده های بزرگ به عنوان نوعی نرم افزار تلقی می شود که با توجه به محدویت زمانی از پردازش جریان های اطلاعاتی پیوسته به منظور فراهم آوردن هوشمندی قابل اجرا پشتیبانی می کند.
عبارات نرم افزاری مورد پشتیبان جهت مشخص سازی این موضوع بکار گرفته می شوند که نرم افزار داده های بزرگ شامل دو مؤلفه زیرساختاری و نرم افزار تحلیلی است ـ که این موارد بترتیب به عنوان توان عملیاتی بزرگ و نرم افزار تحلیلی بزرگ خوانده می شوند [5]. نرم افزار زیر ساختار نیز نرم افزاری است که جهت ذخیره سازی، فراخوانی، ارسال و پردازش داده های بزرگ مورد نیاز است. در عین آنکه نرم افزار زیر ساختار جهت توسعه نرم افزار داده های بزرگ ضروری تلقی می شود، بیشتر تأکیدها بر روی بخش تحلیلی نرم افزار داده های بزرگ گذاشته شده است. با این حال، تعریف نرم افزار داده های بزرگ در بردارنده دو نوع از نرم افزار است. عبارت محدودیت ـ زمانی جهت مشخص سازی ضرورت موجود در ارتباط با فراهم آوردن بموقع راه حل ها در نرم افزار داده های بزرگ بکار گرفته می شود. بدین روش، نرم افزار داده بزرگ از خواص یکسانی همانند نرم افزار زمان واقعی بهره مند است، که در آن پاسخ های دیر هنگام به عنوان پاسخ های اشتباه تلقی می شوند. عبارت جریان های اطلاعاتی پیوسته نیز جهت مشخص سازی کلی ورودی نرم افزار داده بزرگ بکار می رود، که دارای خواص منحصر به فردی از نقطه نظر حجم، سرعت و گوناگونی می باشد. ویژگی های کلی نیز به خواص اطلاعاتی مهم دیگر ورودی های داده بزرگ رجوع دارد، نظیر پیوستگی (یعنی داده ها در حال حرکت، در مقابل داده ها در حال استراحت). داده یا اطلاعات در حال حرکت (یا استریم های اطلاعاتی) می توانند شامل جریان های بالقوه داده های نامحدود، با سرعت بالای دریافت، و یا داده هایی که چگالی آنها در خلال زمان تغییر می کنند در نظر گرفته شوند. در نهایت، هوش عملی یا عملگرا جهت تعمیم خروجی نرم افزار داده های بزرگ بکار گرفته می شود، بدان معنا که، نرم افزار داده بزرگ جهت فراهم آوردن اطلاعاتی بکار گرفته می شود که به طور مستقیم برای کاربرد فوری (استراتژیک، عملیاتی، یا تاکتیکی) بدون نیاز به رفتن به سمت یک فرآیند کامل پردازش تولید هوشمندی بکار گرفته می شود.
هوش عملی
هوش عملی به معنای بسیار بیشتر از آنچه صرفاً یک فرآیند یافتن یا خلاصه ساختن ساده اطلاعات می باشد تلقی می شود. این مؤلفه بر روی اکتشاف الگوهای مخفی (ناشناخته و مواردی که یافتن آنها سخت است) تأکید داشته و برای پیش بینی مفاهیم، رخدادها، خط مشی ها، نکته نظرات و موارد دیگر جهت پشتیبانی از تصمیم گیرندگان بکار گرفته می شود. کاربرد مورد انتظار هوش عملی از یک سیستم به سیستم دیگر متغیر می باشد، آن هم با توجه به این موضوع که هر گوناگونی ممکن است سبب افزایش پیچیدگی شامل شده به هنگام مهندسی چنین سیستم هایی شود. به همین دلیل، لازم است تا قابلیت طبقه بندی چنین مؤلفه ای را داشته باشیم تا از این طریق بتوانیم نسبت به درک هوش عملی اقدام کرده و در ارتباط با این موضوع نیز بیاندیشیم که چگونه چنین موردی بر روی پیچیدگی و توسعه نرم افزار داده های بزرگ تأثیرگذار خواهد بود. سه سطح هوش عملی ذیل پیشنهاد شده است:
سطح 1 (L1): هوش عملی نظارت شده
سطح 2 (L2): هوش عملی نیمه نظارتی
سطح 3 (L3): هوش عملی غیرنظارتی یا نظارت نشده
در L1، سیستم نقشی به عنوان پشتیبانی از تصمیم انسان را به عهده دارد، بنابراین انسان ها قابلیت مدیریت هوش ایجادی به وسیله ماشین ها قبل از انجام یک عمل یا فرآیند خاص را خواهند داشت. در L2، ماشین ها متکی به عملکردهای وابسته به هوش خود تولید شده می باشند. با این وجود، این عملکردها را می توان به وسیله انسان ها معکوس ساخت یا آنها را اصلاح نمود. به طور مثال، یک تشخیص گر اسپم L2 از نرم افزار یادگیری ماشینی جهت پیش بینی این موضوع اقدام خواهد نمود که آیا پیام های ایمیلی اسپم می باشند یا خیر. به هنگامی که فرآیند تشخیص اعمال شد، ماشین اقدام به ارسال ایمیل های ورودی به فولدرهای اسپم یا اینباکس خواهد کرد. در عین حال چنین فرآیندی کامل نبوده و به هنگام بروز طبقه بندی نادرست تداخل انسان ضروری می باشد. در L3، ماشین ها کاملاً جهت انجام عملیات و عمکلردهای خاص به خود وابسته هستند و هیچگونه نیازی به تداخل یا اصلاح انسانی وجود ندارد. البته امروزه سیستم های چندانی در ارتباط با L3 وجود ندارند. برخی از سیستم های با قابلیت ارائه پیشنهاد در L3 عمل می نمایند، اما غالب سیستم ها با توجه به دلایل آشکار صرفاً در L2 عمل می نمایند.
مهندسی نرم افزار تحلیلی داده های بزرگ
با توجه به بحث پیرامون نرم افزار داده های بزرگ، ورودی، و خروجی آن، توجه ها هم اکنون به سمت مشکلات اصلی مواجه شده به هنگام تلاش جهت مهندسی نرم افزار داده های بزرگ جلب می شود. چنین موردی نیازمند قابلیت مشخص سازی ضروریات، طراحی و ایجاد نرم افزار جهت حاصل آوردن چنین ضروریاتی می باشد و در نهایت پروسه تصدیق و تأیید کامل آزمایشات، که نرم افزار بر مبنای ضروریات خاص آن پیاده شده است نیز انجام خواهد شد. تمرکز عمدتاً بر روی بخش تحلیلی بزرگ نرم افزار داده های بزرگ اعمال خواهد شد.
مسئله ضروریات
مشخص سازی ضروریات به منظور ایجاد موفق چنین نرم افزاری حیاتی می باشد. مشکل ضروریات مربوطه بصورت بهتری با استفاده از یک مدل ساده برای مشخص سازی ضروریات کاربردی و رویه های تصدیق و تهیه آن مشخص می شود. حال با توجه به این موضوع می توان به ساده ترین شکل مشخصه و ضروریات ـ یعنی موردی که در بردارنده یک تابع واحد و قابل تصدیق است و سیستم می بایست آن را ارائه دهد ـ را مدنظر قرار داد.
مسئله طراحی
نگاه مختصری به این مبحث مشخص کننده یک سری از ویژگی های کلیدی خاص می باشد که عمدتاً برای نرم افزار داده های بزرگ ذکر شده اند، شامل کاربرد پذیری، عملکرد، پایایی، در دسترس پذیری، امنیت، تفسیرپذیری، مقیاس پذیری، قابلیت تست و موارد دیگر. بحث پیرامون کلیه این موارد نیازمند فضای بیشتری در مقایسه با مقدار تخصیص یافته برای مقاله جاری می باشد. به همین دلیل، تمرکز این مقاله صرفاً بر روی پایایی و امنیت نرم افزار داده های بزرگ می باشد.
پایایی
پایایی را می توان احتمالاً به عنوان مهمترین ویژگی کیفیتی مشکل برانگیز در ارتباط با طراحی نرم افزار داده های بزرگ خواند. مشکل عمدتاً در ارتباط با عدم قابلیت نرم افزار جهت تعیین (با قطعیت مطلق) نتایج صحیح می باشد. در این رابطه می توان به مثال تحلیل احساس رجوع نمود که قبلاً ذکر شده و در آن نرم افزار داده های بزرگ اقدام به کنترل و نظارت رسانه اجتماعی توییتر می نماید. در این مورد، ورودی به صورت استریم ها یا جریان های داده در قالب پیام های توییتری می باشد و خروجی آن هوش عملی در قالب احساسات پیش بینی شده (مثبت، خنثی یا منفی) است. در بهترین حالت، این سیستم قابلیت فراهم آوردن بهترین ویژگی های پیش بینی در ارتباط با این ویژگی را خواهد داشت. این پیش بینی ممکن است کاملاً دقیق باشد، اما هیچگونه تضمینی در خصوص پایایی این پیش بینی وجود ندارد ـ در برخی از موارد، چنین موردی حتی برای انسان ها نیز مشکل است. تحت شرایط هوش عملی تک جهشه، L1، و L2، تصدیق پایایی مشکل می باشد، اما در عین حال غیرمحتمل نیست، چرا که انسان ها می توانند از قوه قضاوت خود و اطلاعات مربوطه جهت تشخیص بصری موارد غیردقیق یا نتایج اکید استفاده نمایند. با این وجود، تحت شرایط هوش عملی چند جهشه L3، این وضعیت نوین برای تجهیز نرم افزار با چنین قابلیت کاربردی ممکن است کفایت نداشته باشد. بنابراین این سئوال پیش می آید که چگونه مهندسین نرم افزار قابلیت طراحی پایایی در نرم افزار داده های بزرگ را خواهند داشت؟ مشکل طراحی مرتبط با مسئله خاص بحث شده قبلی می باشد و این موضوع به عنوان یک رویه تحقیقاتی باز در فرآیند طراحی مهندسی نرم افزار همچنان مطرح است. راه حل های پیشنهادی شامل ارائه تاکتیک های معماری جدید (یا بکارگیری تاکتیک های قدیمی) جهت کمک به افزایش پایایی چنین سیستم هایی می باشد. به طور مثال، تاکتیک های معماری با قابلیت بررسی فرا داده های قطعی را می توان جهت کمک به بررسی پایایی پیش بینی ها بکار گرفت. جهت تعامل با تغییرات مفهومی، یک سیستم نظارتی تغییرات مفهومی یا یک جزء تشخیص تغییر [6] را می توان در طراحی نرم افزار دخیل نمود تا قابلیت تشخیص و هشدار به کاربران به هنگامی که مدل های تحلیلی بیش از این از پایایی مطلوبی برخوردار نیستند وجود داشته باشند. با این وجود، حاصل آوردن این نوع از کاربردپذیری به عنوان یک وظیفه آسان تلقی نمی شود، بنابراین “طراحی یک تشخیص گر تغییر به عنوان یک مؤلفه قابل توجه و واسطه بین فرآیندهای تشخیص تغییرات حقیقی و اجتناب از هشدارهای کاذب تلقی می شود” [8].
امنیت
در نرم افزارهای داده های بزرگ، نرم افزاری که از توابع و عملکرد کاملی برخوردار باشد، ممکن است به خودی خود به عنوان یک ویژگی آسیب پذیر امنیتی برای خود نیز به شمار آید، همانند موردی که در قضیه یادگیری ماشین تحت محیط خصمانه مشخص شده است [14]. دو نوع از حملات امنیتی که برای نرم افزار داده های بزرگ موجود هستند شامل حملات فاز اجرایی و حملات فاز آموزشی می باشند. در حملات فاز اجرایی، استریم های داده به گونه ای جریان می یابند تا قابلیت تأثیرگذاری بر روی هوش عملی ایجاد شده به وسیله نرم افزار داده های بزرگ را داشته باشند. در این رابطه می توان به مورد سازمان های مهم (همانند دولت) با استفاده از نرم افزار داده های بزرگ جهت مشخص سازی نظرات عموم مردم از رسانه های اجتماعی در ارتباط با یک موضوع خاص اشاره نمود. در چنین سیستمی، مهاجمین مخرب و بدعناد قابلیت ایجاد مولدهای داده ای را خواهند داشت که می تواند بر روی نرم افزار داده های بزرگ جهت ایجاد نتایج ناپایا یا مخربانه تأثیرگذار باشد ـ چنین موردی را می توان حتی بدون ایجاد خرابی یا از هم گسیختگی نرم افزاری و یا یافتن درب های پشتی و موارد دیگر انجام داد. در خصوص تحلیل ویژگی های حساس و مرتبط با مؤلفه های احساسی سیستم توییتر، مهاجمین می توانند به سادگی اقدام به ایجاد یک حساب عمومی نموده تا از این طریق قابلیت تزریق بانک های اطلاعاتی آلوده را داشته باشند. در حملات فاز آموزشی، مهاجمین به حساب های کاربران دسترسی یافته و اقدام به تزریق نرم افزارهای داده های بزرگ با استفاده از یک مجموعه داده ای آموزشی متخاصمانه می نمایند که برای تأثیر بر فرآیند آموزش فراگیری ماشینی طراحی شده است تا از این طریق کلاسیفایر رفتار نادرستی را از خود بروز دهد [14]. چنین موردی سبب شکست غالب سیستم های توصیه گر شده و ممکن است منجر به زیان های بزرگ مالی برای شرکت ها شود. جهت ممانعت از این حملات، تکنیک های اعتبارسنجی / فیلترینگ ورودی نقطه انتهای پیشرفته [15] را می بایست به گونه ای توسعه داد تا از جامعیت داده ها و اعتبار یا صحت اعتبار آنها اطمینان حاصل نمود و در عین حال (در برخی از موارد) قابلیت حفظ حریم خصوصی داده ها نیز وجود داشته باشد. از جمله دیگر مشکلات مهم در ارتباط با برخی از نرم افزارهای داده ای بزرگ مسئله عدم سرویس دهی می باشد. در برخی از برنامه های کاربردی سنتی، عدم دسترسی به سیستم ها ممکن است منجر به آزار کاربران شده و سبب به بار آمدن هزینه های زیادی برای سازمان ها گردد. در نرم افزار داده های بزرگ، عدم دسترسی به استریم های اطلاعاتی برای یک وهله زمانی q ممکن است سبب بروز خرابی در کل سیستم شود، به گونه ای که ممکن است طراحی آنها به گونه ای در نظر گرفته شود که صرفاً تا حد q کار نمایند.
مشکل ساخت
مشکل ساخت عمدتاً ناشی از این موضوع می باشد که نرم افزار داده های بزرگ بیش از آنچه صرفاً مهارت های برنامه نویسی خوانده می شود را نیاز خواهد داشت. امروزه، غالب الگوریتم های فراگیری از طریق علوم یادگیری ماشینی انجام می گردند، که عمدتاً به عنوان بهترین برنامه نویسان تلقی نمی شوند [18]. مسایل خاص ذکر شده در این مبحث شامل موارد ذیل هستند: در هم سازی، قابلیت حفظ و نگهداری، دیباگینگ، و قابلیت تولید مجدد [18]. غالب این مشکلات در جامعه مهندسین نرم افزار مورد خطاب قرار گرفته اند، که در آن سبک های کدنویسی، بررسی همتایان، نرم افزار مدیریت پیکربندی و دیگر ابزارها بکار گرفته شده اند. با این وجود، یک خط مشی مشترک وجود دارد که بسیاری از فرآیندهای مربوط به یادگیری ماشینی جهت ارتقای مهندسی نرم افزار از آن استفاده می کنند، اما ویژگی های قابل توجه مهندسی نرم افزار در ارتباط با ارتقای نرم افزاری فراگیری ماشینی لحاظ نشده است [13].
مشکل آزمایش
تصدیق نتایج پردازش استریم داده های گسترده انبوه برای انسان ها غیرعملی می باشد، البته در صورتی که غیرممکن فرض نشود ـ که خود دلیل این موضوع می باشد که چرا نیاز به وجود نرم افزار داده های بزرگ تا این حد احساس می شود. در این فرآیند، ممکن است نقص های زیادی بدون شناسایی باقی مانند. این مبحث تحقیقاتی اقدام به گزارش نمودن مورد ذیل می نماید: “عدم تعادل گسترده بین تعداد الگوریتم های انتشار یافته مختلف در برابر الگوریتم هایی موفق و کارآمد تحت محیط های تجاری “. دلایل این عدم تعادل را می توان در این موضوع جستجو نمود که محققین دانشگاهی محیط های تجاری را به حساب نمی آورند [21]. به عبارت دیگر، انتقال از فرآیند توسعه الگوریتم به پیاده سازی آنها پیچیده می باشد و منجر به بروز مشکلات و نقص ها خواهد شد. نگرانی های خاصی در این مبحث وجود دارند شامل عدم اعتماد به داده ها، فرضیه های بد، مؤلفه های ریاضیاتی نادرست و موارد دیگر [22]. در نهایت، مشکلات اخلاقی علوم داده ای سبب نادیده گرفتن جزئیات مهم در زمینه ارتقای روش های جدید و کمک به الگوریتم های نوین شده است و موجب بروز مشکل در اطمینان از کنترل موارد و مشخص سازی این موضوع می گردد که برخی از موارد ممکن است به خوبی در طی بکارگیری در یک روش عمل ننمایند [18]. به همین دلیل، قابلیت دانشمندانی که در عرصه داده ها فعالیت ندارند را می توان بعنوان یک مولفه حیاتی جهت تست نتایج نرم افزار داده های بزرگ به شمار آورد.
نتیجه گیری و راه های متعاقب
آیا واقعاً می توانیم نسبت به مهندسی سازی نرم افزار داده های بزرگ اقدام نماییم؟ بلی ما می توانیم. هیچکس نمی تواند شواهد یافته شده در نرم افزار داده های بزرگ جریان های اطلاعاتی امروزی، همانند Facebook، Netflix و Amazon، را نادیده انگارد. به طور مطمئن، تعداد زیادی از امورات مربوط به مهندسی نرم افزار به طور موفقی هم اکنون پیاده سازی شده اند. احتمالاً، یک سئوال معتبرتر را در این زمینه می توان به این صورت مطرح نمود که: آیا بقیه جامعه مهندسی نرم افزار از تبحر کافی در خصوص مهندسی چنین سیستم هایی برخوردار می باشند یا خیر؟ ما اینگونه فکر نمی کنیم. امروزه، مهندسی سازی اینگونه سیستم ها نیازمند جستجوی دقیقترین پیش بینی ها و در عین حال پذیرش راه حل هایی می باشد که ممکن است در آن نسبت به فداسازی دقت به جای عدم داشتن هیچگونه راه حلی اقدام شود [8]. به علاوه، ضروریات بخش های تحلیلی نرم افزار داده های بزرگ را نیز می بایست در نظر گرفت ـ به طور مثال می توان شخصیت کاپیتان باربوسا از دزدان دریای کارائیب را خاطرنشان نمود: آن هم در بازی نفرین مروارید سیاه ـ که فراتر از آنچه می باشد که ممکن است آن را تحت عنوان “رهنمودها” در مقایسه با “قواعد حقیقی” در نظر داشت. بسیاری از مسایل ارائه شده تاکنون، و مواردی که همچنان مطرح می باشند را می بایست مورد بررسی و جستجو قرار داد. تحقیقات مهندسی نرم افزار می بایست درک کاملی از نقش ضروریات، طراحی، تست در نرم افزار داده های بزرگ و ویژگی های آنها با توجه به تأثیرات متقاطع آنها ،داشته باشند. امورات تحقیقاتی می بایست به گونه ای ارائه شوند تا قابلیت ایجاد ویژگی های معماری، ابزارها و چارچوب های ضروری، نظیر مورد پیشنهادی در مرجع [23] را داشته باشند، تا از این طریق بتوان نسبت به ارتقای فرآیند بصری سازی و ارائه زیرساخت های نرم افزاری اقدام نمود و قابلیت حرکت از الگوریتم های جعبه سیاه به سمت جعبه سفید را داشت تا از این طریق توانایی افزایش کاربری در سیستم های فراگیری تطبیقی به وجود آید [6]. به علاوه درک نقش ارائه دهندگان خدمات و پروانه های حرفه ای و تعهدات مربوط به قراردادها و مقاطعه کاران در زمینه نرم افزار داده های بزرگ نیز کاملاً محسوس می باشد، مخصوصاً با توجه به آنکه چنین موضوعی راهگشایی به سمت برنامه های استریم اصلی تلقی می شود. در حقیقت، لازم است تا تحقیقات زیادی در این زمینه انجام داد تا قابلیت ایجاد نرم افزار داده های بزرگ با کیفیت ممتاز به صورت به موقع و با بودجه منطقی به وجود آید.
جهت های تحقیقاتی برای مهندسی نرم افزار تحلیلی داده های بزرگ