

روش های سنتی مهندسی نرم افزار برای کمک به توسعه دهندگان در ساختن نرم افزاری با کیفیت بالا به روشی کنترل شده و مقرون به صرفه طراحی و بهینه سازی شده است.
هنگام ساخت سیستم های نرم افزاری شامل اجزای یادگیری ماشین (ML) ، این روش مهندسی نرم افزار سنتی با سه ویژگی متمایز به چالش می کشد:
- عدم اطمینان ذاتی: اجزای ML نوع جدیدی را وارد می کنند عدم قطعیت به سیستم های نرم افزاری وارد شوید. در حالی که از توسعه دهندگان و معماران نرم افزار برای طراحی ، ساخت و آزمایش سیستم های خود استفاده می شود تا بتوانند با عوامل خارجی عدم اطمینان (تأخیر شبکه ، رفتار کاربر غیر قابل پیش بینی ، سخت افزار غیرقابل اطمینان) کنار بیایند ، اکنون باید با درونی؛ داخلی م componentsلفه هایی که به روشی غیر قطعی رفتار می کنند. م componentsلفه های ML ورودی های خروجی را در یک نقشه نشان می دهند احتمالی روش. به عنوان مثال یک م -لفه تشخیص تصویر را در نظر بگیرید ، که ورودی را به جای یک نتیجه واضح ، به عنوان یک گربه یا سگ طبقه بندی می کند.
- رفتار داده محور: رفتار اجزای ML تنها به طور جزئی توسط منطقی که یک برنامه نویس می نویسد تعیین می شود. در عوض ، رفتار است آموخته شده از داده ها. این وابستگی عظیم به (حجم زیادی از داده) که از اوایل مرحله توسعه است ، روند توسعه و استقرار را تغییر می دهد …