تجزیه و تحلیل شی گرا (Object-Oriented Analysis)

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

تجزیه و تحلیل شی گرا object-oriented analysis

در فاز تجزیه و تحلیل شی گرا از توسعه یک نرم افزار، نیازمندی های سیستم مشخص شده، کلاس‌های آنها تعریف گردیده و ارتباط بین کلاسها مشخص و معین می گردند. هدف تجزیه و تحلیل شی گرا، درکapplication domain و یا حوزه کاری و فعالیتی یک نرم افزار و البته نیازمندی های خاص یک سیستم است. نتیجه این کار مشخص شدن نیازمندی ها و تجزیه و تحلیل ابتدایی ساختار منطقی و قابلیت امکان پذیری سیستم می باشند.

سه مورد از تکنیک های تجزیه و تحلیل که در این قسمت مورد استفاده قرار می‌گیرند شامل؛ object modeling و dynamic modeling و functional modeling هستند که در ادامه در رابطه با آنها صحبت خواهیم کرد.

بررسی مدل سازی شی گرا و یا object modeling

منظور از تکنیک object modeling، توسعه دادن ساختار ایستای یک سیستم نرم‌افزاری از نقطه‌نظر object ها می باشد. این تکنیک می تواند object ها و class های مربوطه را مشخص کرده و آنها را در رابطه های معینی گروه بندی کند. علاوه بر این؛ با استفاده از این تکنیک می‌توانیم attribute ها و operation های خاص هر کلاس را نیز مشخص کنیم. فرایند object modeling و یا مدل سازی شی گرا، می تواند شامل مراحل زیر باشد:

  • مشخص کردن object ها و گروه بندی کردن آنها در کلاس ها.
  • مشخص کردن ارتباط بین کلاس ها.
  • ایجاد کردن یک نمودار مدل شی‌گرا برای کاربر.
  • تعریف کردن attribute های مربوط به object ها.
  • تعریف کردن operation هایی که باید بر روی هر کدام از class ها انجام شود.
  • مدل سازی پویا و یا dynamic modeling

پس از اینکه رفتار ایستای مربوط به یک سیستم در قسمت object modeling تجزیه و تحلیل گردید، می بایست رفتار سیستم با در نظر گرفتن زمان و همچنین تغییرات خارجی مورد بررسی قرار بگیرد. به این تکنیک dynamic modeling و یا مدل سازی پویا می‌گویند.

dynamic modeling به عنوان روشی برای توصیف کردن اینکه یک object چگونه به رویدادها و دیگر اتفاقاتی که در سیستم رخ می‌دهند پاسخ می‌دهد، تعریف می گردد. فرآیند dynamic modeling را می توان در مراحل زیر انجام داد:

  • مشخص کردن state و یا حالت هر کدام از object ها.
  • مشخص کردن event ها و رویدادها و البته تجزیه و تحلیل کردن عملیاتی که در پاسخ به آنها باید انجام شود.
  • ایجاد کردن یک نمودار dynamic modeling که از نمودارهای state transition diagram تشکیل شده است.
  • مشخص کردن state هرکدام از object ها با استفاده از attribute های آنها.
  • اعتبارسنجی کردن نمودارهای state transition و یا انتقال حالت هرکدام از object ها

مدلسازی تابعی و یا functional modeling

تکنیک آخری که در تجزیه و تحلیل شی گرا مورد استفاده قرار می‌گیرد، functional modeling است. منظور از یک functional modeling، مشخص کردن فرآیندهایی است که در یک object اتفاق می‌افتند و البته تغییراتی که بر روی داده های مربوط به هر کدام از آن object ها رخ می دهد. با استفاده از این تکنیک می‌توانیم معانی هرکدام از عملیاتی که بر روی یک object رخ می دهند را مشخص کنیم. یک functional model نمایانگر data flow diagram و یا نمودار جریان داده هر کدام از object ها می باشد. فرآیند functional modeling می‌تواند از مراحل زیر تشکیل بگردد:

  • مشخص کردن تمامی ورودی ها و خروجی ها
  • ساختن نمودار جریان داده و یا data flow diagram با استفاده از functional dependency ها
  • مشخص کردن هدف هر کدام از function ها
  • مشخص کردن قیود و یا constraint ها
  • مشخص کردن قیود بهینه سازی