66097972 – 66097985

info@asta.ir

سخن بزرگان

پیامبر اکرم (ص) :

به حساب خود برسید ، پیش از آن که به حسابتان رسیدگی شود و اعمال خود را بسنجید پیش از آن که سنجیده شوید.

خط تولید نرم افزار

خط-تولید-نرم-افزار_SPL-

خط تولید نرم افزار (SPL) چیست؟

خط تولید نرم افزار (Software Product Line) تکنیکها، ابزارها و امکاناتی که تولید خانواده خاصی از محصولات نرم افزاری را تسریع و تسهیل می کنند.

مثالی از این مفهوم در سایر صنایع

  • شرکتهای خودروسازی مدلهای مختلف ماشین را با یک خط تولید، میسازند.
  • قطعات با معماری و استانداردهای خاصی طراحی می شود.
  • برای تولید هر مدل قطعات به شکل خاصی در کنار هم قرار میگیرند.

 

ضرورت خط تولید نرم افزار 

ﺑﺤﺚ اﺳﺘﻔﺎده ﻣﺠﺪد از ﻓﺮآورده ﻫﺎي ﻣﺸﺎﺑﻪ ﭘﯿﺸﯿﻦ، ﯾﮑﯽ از ﻣﺒﺎﺣﺚ ﻣﻬﻢ در ﺣﻮزه ﻣﻬﻨﺪﺳﯽ ﻧﺮ ماﻓﺰار اﺳﺖ. ﺑﺎ ﮔﺴﺘﺮده ﺷﺪن ﺗﻮﻟﯿﺪات ﻫﺮ ﺷﺮﮐﺖ ﻧﺮم اﻓﺰاري، ﯾﮑﯽ از ﻧﮑﺎﺗﯽ ﮐﻪ ﺑﺮاي ﻣﺪﯾﺮان ﺗﯿﻢﻫﺎي ﻧﺮم اﻓﺰاري و ﯾﺎ ﺣﺘﯽ ﺗﻮﺳﻌﻪ دﻫﻨﺪﮔﺎن ﻋﺎدي ﻧﺮم اﻓﺰار ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪه اﺳﺖ، وﺟﻮد ﺑﺨﺶ ﻫﺎي ﺗﮑﺮارﭘﺬﯾﺮ و ﻣﺸﺎﺑﻪ در ﭘﺮوژهﻫﺎي ﻣﺨﺘﻠﻒ اﺳﺖ. ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ در ﺳﺎده ﺗﺮﯾﻦ ﺣﺎﻟﺖ، وﺟﻮد ﯾﮏ اﻧﺒﺎره ﻣﺸﺘﺮك از ﻣﺼﻨﻮﻋﺎت ﺗﻮﻟﯿﺪ ﺷﺪه اﻣﺮي ﺿﺮوري ﺑﻪ ﻧﻈﺮ ﻣﯽرﺳﺪ. اﻣﺎ اﯾﻦ ﻧﮑﺘﻪ ﺗﻨﻬﺎ دﻟﯿﻞ ﺑﺮاي اﺳﺘﻔﺎده از ﺧﻂ ﺗﻮﻟﯿﺪ ﻧﯿﺴﺖ؛ ﺑﻠﮑﻪ ﺧﻂ ﺗﻮﻟﯿﺪ ﻣﻔﻬﻮﻣﯽ ﻋﺎمﺗﺮ از اﯾﻦ ﻧﮑﺘﻪ در ﺧﻮد دارد. در ﺧﻂ ﺗﻮﻟﯿﺪ ﻣﺤﺼﻮل ﺗﻼش ﻣﯽ ﺷﻮد ﮐﻪ ﺑﺨﺶﻫﺎي ﻣﺸﺘﺮك از ﻓﺮآﯾﻨﺪ ﺗﻮﺳﻌﻪ ﻣﺤﺼﻮﻻت ﻣﺨﺘﻠﻒ ﻧﯿﺰ ﺗﺎ ﺣﺪ اﻣﮑﺎن ﯾﮑﭙﺎرﭼﻪ ﺷﻮد. در واﻗﻊ ﺧﻂ ﺗﻮﻟﯿﺪ ﺑﺮ اﺳﺎس دو ﻣﻔﻬﻮم ﮐﻠﯿﺪي ﺑﻨﺎ ﻧﻬﺎده ﻣﯽﺷﻮد: ﯾﮑﭙﺎرﭼﻪ ﮐﺮدن داد هﻫﺎ، ﻓﺮآﯾﻨﺪﻫﺎ و ﺗﻤﺎﻣﯽ ﻣﺼﻨﻮﻋﺎت ﻣﺸﺘﺮك و ﻣﺸﺎﺑﻪ در ﯾﮏ ﺑﺨﺶ ﻣﺮﮐﺰي و ﻧﯿﺰ ﺗﻌﺮﯾﻒ ﻧﻘﺎط ﺗﻐﯿﯿﺮ ﻣﺸﺨﺼﯽ ﮐﻪ ﻫﺮ ﮐﺪام از ﻣﺤﺼﻮﻻت ﻣﺨﺘﻠﻒ در اﯾﻦ ﻧﻘﺎط ﻣﯽ ﺗﻮاﻧﻨﺪ ﻣﺸﺨﺼﻪ اي ﻣﺨﺘﺺ ﺑﻪ ﺧﻮد داﺷﺘﻪ ﺑﺎﺷﻨﺪ. ﯾﻌﻨﯽ ﺗﻮﺟﻪ ﺧﺎص ﺑﻪ دو  ﻣﻔﻬﻮم تفاوت ها ﺷﺒﺎﻫﺖ ها.

 

مزایای استفاده از خط تولید چیست؟

کاهش هزینه ها

  • کاهش کمی نیروی انسانی
  • کاهش کیفی نیروی انسانی
  • حذف کارهای تکراری

کاهش زمان توسعه

افزایش کیفیت

  • استاندارد سازی خودکار
  • فاکتورگیری از کارهای مشترک

خط-تولید-نرم-افزار_دشواریهای-اساسی-سیستمهای-اطلاعاتی-بزرگ-1

 

 

 

 

 

 

 

 

چه خانواده ای از نرم افزارها مد نظرند؟

مشتریان هدف:

  •  سازمانهای متوسط و بزرگ

محصولات هدف:

  • سیستمهای اطلاعاتی مبتنی بر وب با اهمیت و پر کاربرد

بستر تولید:

  • Java Enterprise Edition

ویژگی قابل توجه این سیستمها:

    • اهمیت کاربر در مقابل برنامه نویس
    • نمی توان در جهت ارائه تسهیلات به برنامه نویس، نیاز کاربر را ساده کرد

خط-تولید-نرم-افزار_سازمان-های-هدف

خط تولید شامل چه بخشهایی است؟

  • ابزارهای توسعه نرم افزار
  • امکانات زیرساختی
  • امکانات عمومی
  • الگوهای فرایند توسعه نرم افزار

 

1- ابزارهای توسعه نرم افزار

ابزار مدلسازی نیازمندیها

  • انتخاب/ ایجاد یک استاندارد/ادبیات برای معرفی نیازمندیها
  • نیازمندیها ورودی خط تولید محسوب می شوند

ابزار تولید کد

  • از روی نیازمندیها کدهای منبع را تولید می کنند
  • تولید کد در یک یا چند گام صورت می پذیرد

خط-تولید-نرم-افزار_ابزار-های-توسعه

ابزار ساخت

  • در محیط توسعه از روی کدهای منبع، بسته های قابل اجرا میسازند

ابزارهای نصب و به روزآوری

  • در محیط بهره برداری بسته های اجرایی را نصب و پیکربندی می کند.

ابزارهای کنترل کیفی

  • کنترل کیفیت کدهای منبع

             چکهایی را روی کدهای منبع انجام می دهند

  • کنترل کیفیت برنامه های اجرایی

              تست صحت عملکرد: تست واحد، تست پذیرش

              ارزیابی شاخصهای کیفی امنیت و کارایی

               بررسی Black Box : ابزارهای Load Test

                بررسی White Box: Profiler ها

خط-تولید-نرم-افزار_ابزار-های-تولید-نرم-افزار

 

2- امکانات زیرساختی

کلاسها و سایر منابع پر استفاده ای

  • این امکانات به خودی خود قابلیتی را پیاده سازی نمی کنند
  • پیاده سازی قابلیتهای نرم افزار را تسهیل می کنند
  • در زمان اجرا و بهره برداری وجود دارند
  • مانند کلاسهای پایه، کتابخانه ها، استایلها و تصاویر پر کاربرد

3- امکانات عمومی

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

نمونه هایی از امکانات عمومی

  • قابلیتهای امنیتی 
          هویت شناسی (فرم Login، فرمهای مدیریت کاربران، سرویسهای Authentication)
          سرویسهای مجازشناسی (فرمهای تخصیص دسترسی، سرویسهای مجاز شناسی)
          ثبت و گزارش عملیات کاربران
  • درگاه ورود واحد، منو و Layout یکپارچه
  • گزارشات پویا
  • ساختار سازمانی
         تعریف درخت/ماتریس سازمانی
         تعریف سمتها، متصدیان، جانشین/جانشینان
  • تعریف گردش کار و قواعد کسب و کار
  • کارتابل سازمانی و مدیریت وظایف

ماژول های WISE

 

4- الگوهای فرایند توسعه

الگوهای فرایند توسعه

  • رعایت نکاتی در فرایند توسعه را گوشزد می کنند
  • کل فرایند توسعه را محدود نمی کنند

چارچوب کلی فرایند را با نگاه به امکانات SPL مشخص می کنند

  • روش مستندسازی نیازمندیها و دسته بندی آنها
  • روش اولویت بندی و فازبندی موارد کاربرد
  • روش پیاده سازی موارد کاربرد
  • دستورالعملها و چک لیستها در مراحل مختلف

واکاوی خانواده هدف از نمای کاربری

خط تولید نرم افزار محدود به خانواده خاصی از نرم افزارها می باشد

خانواده هدف ما سیستمهای سازمانی بزرگ است

سوال مهم ؟!

  • کاربر از این گونه نرم افزارها چه قابلیتهایی را انتظار دارد؟
  • این قابلیتها در چه دسته هایی قابل ساماندهی هستند؟

 

قابلیتها امنیتی

هویت شناسی

  • هویت شناسی با نام کاربری و گذرواژه
  • هویت شناسی با اثر انگشت، Smart Card، Token
  • مکانیزم Single Sign-on

مجازشناسی

  • تخصیص دسترسی (Role-based & Activity-based)

مدیریت کاربران

تنظیمات امنیتی

ثبت وقایع و عملکرد کاربران

شتابدهی با WISE

واسط کاربری

یکپارچگی واسط کاربری کلیه زیرسیستمها

مولفه های واسط کاربر کامل و متنوع

صحت سنجی اطلاعات

سرعت و سهولت کاربری، تعامل و پاسخگویی

امکان سفارشی سازی ظاهر و عملکرد

پشتیبانی از Localization و Internationalization

  • فرمهای راستچین
  • تقویم جلالی

پاسخگویی در شبکه های کم ظرفیت (در شرایط فعلی)

 

عملیات CRUD

مخفف Create Read Update Delete

عملیات پایه روی موجودیتهای سیستم

  • ایجاد
  • جستجو و مشاهده
  • ویرایش
  • حذف
  • سایر امکانات: چاپ، Import ، Export و …

تشکیل دهنده بیش از 50 درصد موارد کاربرد

نیاز به پوشش موجودیتهای ساده و ترکیبی (Master/Detail)

 

مدیریت فرایندهای سازمانی

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

 

گزارشات

  • تشکیل دهنده 10 تا 20 درصد موارد کاربرد
  • استخراج اطلاعات از داده های ذخیره شده
  • ارائه در فرمتهای استاندارد: Excel، PDF، Html
  • تولید قالبهای قابل چاپ
  • امکان مشاهده آخرین وضعیت کسب و کار (Business Dashboard)
  • امکان تولید گزارشات جدید (گزارشات پویا)
  • امکان زمان بندی اجرای گزارشات
  • امکان ارسال گزارشات از طریق رایانه

 

واکاوی SPL از نگاه معمار نرم افزار

مفاهیم و ابزارهای متعددی در فضای تولید نرم افزار مطرحند

تولید کننده SPL باید با اشراف و آگاهی از آنها

  • رابطه خود با آنها را مشخص کند
  • بهترین گزینه ها را با مقایسه تطبیقی انتخاب نماید
  • از بهترین گزینه ها استفاده یا پیروی کند
  • از سایر گزینه الهام گیرد

سوال مهم ؟؟

  • اهم مسائلی که SPL باید در مورد آنها پاسخ داشته باشد چیست؟

 

بستر تولید و اجرای محصول

محصولات نرم افزاری بر پایه سخت افزار و میان افزارهای خاصی ارائه و اجرا می شوند.

  • معماری سخت افزاری، سیستم عامل، پایگاه داده و Application Server های متعددی می توانند محمل اجرای محصولات باشند.

با توجه به رسالت SPL وجود کمترین محدودیت مزیت جدی محسوب خواهد شد.

ISV ها می توانند با رعایت ترجیحات خود و مشتری بستر مناسب را انتخاب کنند.

 

جایگاه محصولات متن باز

تولید کننده SPL باید تعهد خود به محصولات متن باز را روشن کند

مزیتهای محصولات متن باز

  • سرعت در کشف و رفع معایب
  • سهولت دسترسی به منابع مورد نیاز
  • عدم وجود بن بست در پشتیبانی

             عدم دسترسی به خدمات پشتیبانی تولیدکننده اصلی

              مقابله با تحریمها

  • توصیه اسناد بالادستی در جهت پدافند غیرعامل

 

Model Driven Architecture

هدف از MDA

  • استفاده از مدلسازی به عنوان زبان برنامه نویسی توصیفی
  • افزایش سطح انتزاع برنامه نویسی
  • تولید کدهای قابل اجرا از روی مدلهای تحلیل و طراحی

مزایا

  • کاهش هزینه و زمان تولید
  • مطابقت سریعتر با فناوریهای مختلف
  • همخوانی مدلهای تحلیل و طراحی با محصول نرم افزاری
  • استانداردسازی و تبعیت از معماری واحد

اطلاعات بیشتر:

 

جایگاه MDA در SPL

تولید کننده SPL باید:

  • ابزارها و استانداردهای خود را برای بهره برداری از این مفاهیم مشخص نماید.
  • متامدلهای خود را برای هر گام در مسیر حرکت از نیازمندیها تا کدهای منبع طراحی نماید.
  • ابزارهای لازم برای تبدیل متامدلها به هم و تبدیل متامدلها به کد را تهیه نماید.
  • ابزارهای لازم برای ویرایش و صحت سنجی مدلها را تهیه نماید.

 

جایگاه SOA در SPL

تولید کننده SPL باید:

  • استانداردها و ابزارهای خود برای بهره برداری از مفاهیم SOA را روشن نماید.
  • تسهیلاتی برای تولید سرویس همزمان و ناهمزمان فراهم کند.
  • تسهیلاتی برای یافتن سرویس و استفاده از آن ارائه نماید.
  • تسهیلاتی برای تولید سرویسهای ترکیبی (Composite) و پشتیبانی از مفاهیم Service Orchestration فراهم نماید.
  • دغدغه های امنیتی در مورد سرویسها را پوشش دهد.
  • رهنمودهایی برای شناسایی، تعریف و پیاده سازی سرویسها ارائه نماید.

سایر دغدغه ها

  • پشتیبانی از آنچه در نمای کاربری بیان شد
  • مفاهیم Coding by Convention
  • استفاده از مفاهیم و ابزارهای AJAX
  • تولید برنامه برای موبایل
  • تولید برنامه برای کارتهای هوشمند
  • طرحها، تکنیکها و ابزارهای تضمین شاخصهای کیفی

 

رویکرد اعوان در راه اندازی خط تولید نرم افزار

WiSE مخفف Web-based Information System Elite می باشد.

سابقه شرکت اعوان در SPL چیست؟

راهبرد شرکت اعوان از بدو تاسیس (سال 83)

  • رقابت در بازار با کسب مزیتهای فنی
  • کاهش هزینه ها با به کارگیری متدهای نوین مهندسی نرم افزار

تولید محصولات با SPL از سال 84

غنای گام به گام SPL طی پروژه های عملیاتی

شکلگیری خط تولید نرم افزار اعوان تحت عنوان: WiSE

 

امکانات WiSE چیست؟

ارائه امکانات در هر 4 محور خط تولید نرم افزار

  • زیرساختهای پیاده سازی
  • ابزارهای توسعه
  • بسته های عمومی آماده و …

مبتنی بر ابزارها، کتابخانه ها و محصولات متن باز

مبتنی بر زبان Java و کارپایه Java EE

سازگار با معماری های سخت افزاری، سیستم عاملها و پایگاه داده ها و Application Serverهای گوناگون

 

آیا WiSE امتحان خود را پس داده است؟

شرکت اعوان: قریب به اتفاق پروژه های اعوان

  • نهاد ریاست جمهوری: پروژه ملی سامد
  • مجلس شورای اسلامی: ارتباطات مردمی
  • ایران خودرو، وزارت بهداشت و …

شرکت فناوری اطلاعات پاسارگاد

  • محصول نظام جامع بیمه (مشتریان: بیمه دانا، بیمه پاسارگاد)

بنیاد شهید و امور ایثارگران: کلیه پروژه های مبتنی بر جاوا

مخابرات استان تهران

شرکت خدمات ماشینی تامین (صندوق تامین اجتماعی)


ضرورت خط تولید نرم افزار بومی

محصولات تجاری خارجی

  • عدم اشراف به فناوری
  • عدم دسترسی به خدمات
  • تجربیات ناموفق یا نامطلوب

محصولات متن باز

  • کامل نبودن محصولات موجود
  • لزوم گردآوری گلچینی از محصولات متن باز
  • پیکربندی، اصلاح، تکمیل و بومی سازی مجموعه


ارزش فنی

تسهیل و تسریع انجام پروژه

  • استفاده کنندگان از SPL

بالا رفتن پایه استانداردهای کیفی

  • سایر تولید کنندگان


ارزش اقتصادی

گردش مالی پروژه هایی که یک SPL نمونه در آنها نقش داشته است؟

چند برابر شدن این گردش مالی در صورت امکان بهره برداری عمومی !

در نظر گرفتن صرفه جویی حاصل از به کار گیری SPL

لحاظ کردن ارزش افزوده محصولاتی که بدون SPL:

  • انجام نمی شوند
  • به تاخیر می افتند
  • شکست می خورند

 

به این مطلب رای دهید.
[مجموع: 1 میانگین: 5]