انواع متدولوژي و موارد کاربرد در سازمان (IT تامین اجتماعی)

مقدمه

  • این تحقیق شامل دو بخش میباشد
  • توضیحات اولیه در باره مباحث متدولوژی و پیاده سازی
  • روش پیاده سازی در سازمان من (IT تامین اجتماعی )

متدولوژي

  • قانونمند كردن توليد نرم افزار براي جلوگيري از بروز مشكل
  • فرمولي را كه براي توليد و توسعه نرم افزار ارائه مي دهند را متدولوژي مي گويند.
  • يك متدولوژي چرخه حيات نرم افزار را مشخص مي كند .

انواع متدولوژی

  1. متدولوژی سنتی
  2. متدولوژی فرآیند گرا
  3. متدولوژی ساختمان داده
  4. متدولوژی مدل سازی اطلاعات
  5. متدولوژی شیءگرا

چرخه حيات توليد و توسعه نرم افزار يا SDLC

  • مخفف System Development Life Cycle مي‌باشد . مراحلي را كه طي توليد و توسعه نرم افزار به كار مي‌روند را چرخه حيات توليد و توسعه نرم افزار مينامند .

انواع چرخه‌هاي حيات توليد و توسعه نرم افزار

  • چرخه حيات سيستم‌هاي قديمي يا TLC
  • چرخه حيات سيستم‌هاي شي گرا يا OODLC

چرخه حيات سيستم‌هاي قديمي يا TLC

  • TLC مخفف Traditional Life Cycle است . در گذشته چون برنامه ها به صورت فرايند گرا يا Process Oriented نوشته مي‌شدند از روش TLC براي توليد و توسعه نرم افزار استفاده مي شد .
  • در اين روش بيشتر از نمودارهاي DFD و ERD استفاده مي‌شد

چرخه حيات مورد اسفاده در سازمان مورد بررسی

  • TLC مخفف Traditional Life Cycle است .
  • با اینکه IT تامین اجتماعی سه دوره مختلف نرم افزاری  و دو دوره بازمهندی فرایندها و تغییر platform ها سپری کرده اما در واقع با توجه به نوع فرایندها و حساسیت های موجود ، همچنان از متدولوژی سنتی آبشاری استفاده میکند.

مدلهای مورد استفاده در TLC

  • روش حلزونی (Spiral)
  • تولید پیش الگو (Prototyping)
  • RAD
  • SCRUM
  • DSDM

مدل آبشاري يا Water Fall

  • مدل آبشاري از معروف ترين متدولوژي هاي TLC است كه كاربرد زيادي در گذشته داشته و مبناي اساسي براي مدل هاي شي گرا هم همين مدل Water Fall است.

انواع متدولوژي و موارد کاربرد در سازمان

چرخه حيات سيستم هاي شي گرا يا OODLC

  • اين نوع چرخه حيات بعد از بوجود آمدن روش جديد برنامه نويسي يعني روش شي گرا بوجود آمد.
  • زبانهايي مانند C# ، JAVA و C++ و بسياري ديگر از زبانهاي برنامه نويسي كه قابليت پياده سازي خواص Object Oriented (شي گرايي) را دارا هستند امروزه از مهمترين زبانهاي برنامه نويسي دنيا محسوب مي شوند .

مهمترين عامل برتري روش Object Oriented نسبت به روش Process Oriented

  • استقلال هويتي دارند . يعني هر بخش عملا از ساير بخشها مجزا است .
  • پايداري سيستم يا System Stability است. به اين معني كه سيستم در مقابل تغييرات مقاومت داشته باشد . يعني پيدايش نيازمنديهاي جديد منجر به اين نشود كه سيستم نياز به تغييرات كلي داشته باشد.
  • قابليت نگهداري يا Main ability : به دليل جدا بودن اشيا ، نگهداري سيستم پس از ارائه به مشتري نيز به راحتي امكان پذير است . مثلا ورژن هاي جديد برنامه هايي كه با شماره هاي پشت سر هم وارد بازار مي شوند به همين دليل است .

خواص اساسی متدولوژی شیءگرا

  1. روش های متداول برای سازماندهی
  2. تجرید
  3. کپسوله کردن یا مخفی سازی اطلاعات
  4. وراثت
  5. چند شکلی
  6. ارتباطات پیامی
  7. همروندی
  8. قابلیت استفاده مجدد

مجرد سازی

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

کپسوله کردن

منظور از کپسوله کردن این است که جزئیات یک فرایند یا عمل از دید استفاده کننده آن مخفی باشد. همچنین صفات و اطلاعات یک شیء از دید سایر اشیاء و اجزاء مخفی باشد و ارتباط از طریق ارسال پیام صورت گیرد.

وراثت

  • وراثت، روشی برای بیان شباهت ها است. به عنوان مثال“ برای مدل سازی انسان های یک دانشگاه می توانیم آنها را به اشیاء“ دانشجو، استاد و کارمند“ تفکیک کنیم. اما برخی خصوصیات این اشیاء، مشابه یکدیگر می باشند، نظیر: ” نام، نام خانوادگی، تلفن و. .“ برای اجتناب از تکرار خصوصیات مشترک اشیاء کلاسی به نام ” انسان“ ایجاد می کنیم که صفات آن همان صفات تکراری سه کلاس اصلی دانشگاه است. سپس هر یک از آن سه کلاس، تمام خصوصیات این کلاس جدید را به ارث  می گیرند.
  1. چند شکلی

چند شکلی یا چند ریختی، به معنای یک چیز بودن و چند شکل داشتن است. مثل آب که دارای چند شکلِ جامد، مایع و گاز ظاهر می شود.

  1. ارتباطات پیامی

ارتباطات پیامی راهی است که اشیاء در یک متدولوژی شیءگرا با یکدیگر ارتباط برقرار می کنند. شبیه رویه ها و توابع در زبان های برنامه نویسی که با ارسال پارامتر از نقطه ای درون برنامه، یک رویه یا تابع فراخوانی می شود.

  1. همروندی

همروندی، اجرای هم زمان دو یا چند فعالیت سیستم است. برای مثال در یک چاپگر، می توانیم هم زمان با چاپ نامه مورد نظرمان، نشانه (آرم) شرکت را نیز به عنوان زمینه نامه و هم زمان با متن نامه به چاپ برسانیم.

  1. قابلیت استفاده مجدد

استفاده مجدد قابلیتی است که بیان گر استفاده دوباره از چیزی است که هم اکنون وجود دارد.قابلیت استفاده مجدد خاصیتی است که هر روز از آن استفاده می کنیم مانند کپی کردن اطلاعات و در اختیار دیگران قرار دادن.

یک مدل شیء گرا

مدل شیء گرا مجموعه ای است از اشیاء و کلاس ها که در جهت پیاده سازی رفتار کل سیستم به یکدیگر پیغام می فرستند و اعمالی را انجام می دهند.یک شیء، ساختمان داده و رفتار مربوطه اش را یک جا و به طور مجتمع در خود نگاه میدارد.

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

  • IT سازمان تامین اجتماعی سه نسل مختلف از نرم افزار ها و پلت فرم ها را تجربه کرده است
  • Fox pro
  • Vb .net
  • Java
  • Fox pro

سیستم مکانیزه تامین اجتماعی فعالیت خود را با نرم افزار fox pro تحت سیستم عامل dos اغاز کرد

تمامی سیستم های بیمه ای و درمانی با این نرم افزار و با متدولوژی آبشاری پیاده سازی شدند

  • Vb .net

فاز بعدی، تغییر پلت فرم به  .net و استفاده از دیتابیس اوراکل بود که در سال 1386 نهایی و اجرایی گردید.

با توجه به نوع فرایندها متدولوژی تغییر نکرد

لازم به ذکر است در سازمان از RUP جهت تهیه فایل های مستند سازی و نمایش نمودارهای اولیه تحلیل و طراحی استفاده میشود.

  • Java

از سال 89 کم کم عملیات تغییر پلت فرم به java آغاز شد

در حال حاضر سیستم های جدید با java1.7 نوشته میشوند و از maven  به عنوان ابزار ساخت پروژه بصورت جنرال استفاده میگردد.

  • Java

تکنولوژی ها:

از Rest به عنوان یک معماری مبتنی بر request , response روی HTTP به عنوان یک قرارداد معتبر استفاده میشود

  • Java

تکنولوژی ها:

وب سرویس ها

جهت ارتباط با سابر سازمان ها از وب سرویس های آن سازمان ها مانند

ثبت احوال soap

شماره حساب بانک soap

استفاده میشود.

  • Java

هم چنین جهت برقراری ارتباط با لایه دیتابیس از JPA استفاده میشود.

معرفی RUP

  • RUP یک فرایند تولید نرم افزار است که توسط شرکت rational ایجاد شده است (هم اکنون IBM) و هدف آن کمک به تولید کنندگان و مدیران صنعت نرم افزار است.
    • RUP برای جنبه های مختلف تولید چیزهایی مانند نقشها، محصولات، فعالیتها و گردش کار تعریف میکند

خلاصه

فازها

  • آغاز (Inception):

در انتهای این فاز تصمیم گرفته ایم که آیا پروژه را آغاز کنیم یا خیر و این تصمیم پس از تولید یک Business Case گرفته می شود.

  • اجرا (Elaboration):

در انتهای این فاز اکثر نیازمندیهای باقی مانده شناسایی شده اند و یک معماری مانع (sound architecture) برای نرم افزار بناشده است.

  • ساخت (Construction):

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

  • انتقال (Transition):

نرم افزار ساخته شده به سایت مشتری انتقال داده می شود و بررسی میگردد که آیا کاملا نیازمندیهای مشتری برطرف شده است؟ مستندات کاربری نیز تحویل می شود.

دیسیپلینهای فرایند

  • مدلسازی تجاری:
    • درک ساختار و فعالیتهای سازمانی که قرار است سیستم در آنجا استقرار یابد
    • درک مشکلات فعلی در سازمان و شناسایی پتانسیل های بهبود
    • حصول اطمینان از اینکه مشتریان، کاربران نهایی و ایجاد کنندگان نرم افزار درک یکسان از سازمان مقصد دارند.
    • بیرون کشیدن نیازمندیهای نرم افزاری که برای پشتیبانی سازمان مقصد مورد نیاز است
  • تشخیص نیازمندیها:
    • فراهم آوردن اساس تخمین هزینه و زمان ایجاد سیستم
    • بستن قرارداد با مشتری بر اساس آنچه سیستم باید انجام دهد
    • فراهم کردن درک بهتر از نیازمندیهای سیستم برای تولیدکنندگان
    • تعیین مرزهای سیستم
    • فراهم آوردن پایه ای برای طرح ریزی بخشهای فنی تکرارها
    • واسط کاربر سیستم با تاکید بر نیازها و اهداف کاربران تهیه می شود
  • تحلیل و طراحی:
    • طراحی سیستم نهایی بر اساس نیازمندیها
    • ایجاد یک معماری قوی برای سیستم
    • تطبیق طراحی و پیاده سازی (وارد ساختن ملاحظات خاص پیاده سازی )، ایجاد یک طراحی کارآ
  • پیاده سازی:
    • لایه بندی زیرسیستم های پیاده سازی
    • کلاسها و موجودیتها پیاده سازی می شوند (به شکل فایلهای source، باینریها، اجرایی ها و …)
    • انجام آزمون واحد بر روی مولفه ها
    • مجتمع کردن مولفه ها و ایجاد یک سیستم اجرایی
  • آزمون:
    • ارزیابی صحت تعامل بین موجودیتها
    • ارزیابی مجتمع سازی همه مولفه های نرم افزار
    • ارزیابی اینکه همه نیازمندیها بطور صحیح پیاده شده اند
    • شناسایی عیب ها و حصول اطمینان از اینکه قبل از استقرار مرتفع شده اند.
  • استقرار:
    • استقرار نرم افزار در محیط کاربری ( نصب، دسترسی بر روی اینترنت، پیشنهاد بخشی از نرم افزار)
  • مدیریت پروژه:
    • مدیریت ریسک
    • طرح ریزی یک پروژه تکرار شونده
    • مونیتور کردن پیشرفت پروژه، متریک ها
  • مدیریت تغییر و پیکر بندی:
    • پشتیبانی روشهای تولید
    • مراقبت از مجتمع بودن نرم افزار
    • حصول اطمینان از کامل بودن و صحت محصول پیکربندی شده
    • فراهم آوردن یک محیط مناسب برای تولید محصول
    • فراهم آوردن قابلیت پاسخ به این سوال: یک دستاورد توسط چه کسی، کی و چرا تغییر یافته است.
  • آماده سازی محیط:
    • تمرکز اصلی بر پیکربندی فرایند برای یک پروژه است بعلاوه تعیین ابزارها
    • تولید راهنمایی های برای پشتیبانی یک پروژه

تکرار (Iteration)

  • تکرار یک گذر کامل از همه Disciplineها شامل حداقل تشخیص نیازمندیها، تحلیل و طراحی، پیاده سازی و آزمون است. تکرار مانند یک پروژه کوچک مدل آبشاری است

نمودار هاي Rational Rose

Use-case

Class diagram

Sequence diagram

Collaboration Diagram

State diagram

Activity diagram

Physical diagrams