عملیات بازمهندسی نرمافزارهای اتوماسیون اداری دیدگاه بر اساس ۳ هدف تغییر رفتار، تغییر معماری و تغییر کد به صورت همزمان آغاز شده است. در این مقاله از ضرورت بازمهندسی نرمافزارها خواهیم گفت.
هر نرمافزار جدیدی در ابتدای شکلگیری بر اساس مفاهیم مهندسی نرمافزار در فاز تولید قرار میگیرد. در این فاز بر اساس نیازمندیهای تعریف شده برای نرمافزار در فازهای مختلف تحلیل، معماری، طراحی، پیادهسازی و تست میشود.
بعد از پایان این مراحل نرمافزار به فاز توسعه و نگهداری وارد میشود. در این فاز بدون تغییر اساسی در مفاهیم یا رفتارهای آن به منظور رفع باگهای موجود در آن از نرمافزار نگهداری میشود.
در همین مرحله ممکن است بر اساس نیازهای جدید تعریف شده برای نرمافزار مجموعهای از تغییرات محدود و کنترل شده که مفاهیم یا رفتارهای اصلی و همچنین معماری سختافزاری و نرمافزاری را تغییر نمیدهد در نرمافزار ایجاد میشود.
در فاز توسعه و نگهداری معمولا تغییرات در نرمافزار در سطح افزودن قابلیتهای کوچک به ماژولهای اصلی برای تصحیح یا تسهیل رفتار آنها خواهد بود. از طرف دیگر مهمترین مساله در این فاز، برطرف کردن انواع باگها و بهینهسازی کارایی نرمافزار است.
چرایی بازمهندسی نرمافزارها
نکته بسیار مهم در رابطه با نرمافزارها سناریوی عمومی براساس کتاب «مهندسی نرمافزار» آقای پرسمن است. در این کتاب آمده است « نرمافزاری که برای مدت ۱۰ تا ۱۵ سال در شرکتها استفاده شده است؛ بارها و بارها در طول زمان تغییر کرده، وفق داده شده و گسترش پیدا کرده است.»
این تغییرات در طول حیات نرمافزار باعث ناپایداری میشود. نرمافزار همچنان کار میکند؛ اما هر تغییر باعث ایجاد تاثیرات غیر قابل کنترلی در سایر قسمتهای آن میشود و در نهایت نرمافزار را غیر قابل نگهداری میکند. در این شرایط نیاز است که با بازمهندسی نرمافزار حیات دوبارهای به او بخشیده شود؛ اما این تنها علت برای بازمهندسی نرمافزار نیست.
جدا از تغییرات فرایندهای شرکتها که در طول سالها به وجود میآید و نیاز به بروزرسانی نرمافزارها به عنوان ابزارهای مورد استفاده در این فرایندها را به وجود میآورد، عوامل دیگری نیز باعث بازمهندسی نرمافزارها میشود.
یکی از اصلیترین این عوامل تغییر و تکمیل علوم نرمافزاری و ایجاد تکنولوژیهای جدید بر اساس این علوم است.
بر این اساس، پلتفرمهای جدیدی در ساختارهای نرمافزاری ایجاد میشوند که انجام امور توسط کاربران را راحتتر میکنند. از این رو نیاز است تا نرمافزارها به این تکنولوژیهای جدید انتقال پیدا کنند؛ به عنوان مثال میتوان استفاده از نرمافزارهای اتوماسیون اداری و نرمافزارهای موبایلی و میزان وابستگی افراد به این پلتفرم در مدت زمان ۶ یا ۷ سال پیش را با حال حاضر مقایسه کرد.
ایجاد علوم و تکنولوژیهای جدید در مدت زمانی که نرمافزارها در فاز توسعه و نگهداری هستند برای قابل توسعه نگهداشتن آنها نیاز به بازمهندسی را اجتنابناپذیر میکند. یکی دیگر از علتهای شایع برای بازمهندسی نرمافزار نیاز به ریفکتور کدها است.
نرمافزارها در طول حیات خود در فاز نگهداشت معمولا توسط افراد مختلف با میزان مهارتهای متفاوت، توسعه داده میشود.
این توسعه مکرر در سالهای طولانی باعث تغییرات بنیادین در کدهای نرمافزار میشود که معمولا کدهای اولیه را تبدیل به کدهایی پیچیده و غیر قابل توسعه، میکند.
از این رو نیاز است که با بازنگری بر روی منابع کد موجود در نرمافزار و ریفکتور کردن آنها توسعهپذیری و پشتیبانیپذیری نرمافزار را به آن برگرداند. در این شرایط هزینههای نگهداشت نرمافزار برای هر تغییر کوچک از هزینههای بازنویسی آن بیشتر میشود و نیاز به دوباره نویسی کدهای منبع بدون تغییر رفتار نرمافزار را اجتنابناپذیر میکند.
بر اساس موارد بیان شده میتوان گفت که عملیات بازمهندسی در نرمافزارها با اهداف زیر صورت میگیرد:
- تغییر رفتار نرمافزار به منظور پشتیبانی از فرایندهای تغییریافته در شرکتهای مشتری
- تغییر معماری نرمافزار به منظور استفاده از علوم و تکنولوژیهای جدیدتر
- تغییر کد به منظور توسعهپذیری و نگهداشت بهتر نرمافزار
بازمهندسی نرمافزارها ممکن است نتیجه یکی از این علتها و یا ترکیبی از آنها با هم نیز باشد. از این رو با توجه به هدف یا اهداف انتخاب شده عملیاتهای مختلفی برای بازمهندسی صورت میگیرد.
در ایران از اولین نسل نرمافزارهای سیستمهای اطلاعاتی بر مبنای وب بیشتر از ۱۵ سال میگذرد. در این دوره نرمافزارها نه تنها به بلوغ کامل رسیدهاند؛ بلکه در حال حاضر هیچ شرکتی را نمیتوان بدون وجود این گونه نرمافزارها تصور کرد. در طول این سالها شرکتهای تولیدکننده نرمافزار سعی کردهاند با بازمهندسیهای محدود در برخی از نرمافزارهای خود که بیشتر با اهداف تغییر معماری و تغییر کد بودهاند، نیازمندیهای جدید را پایهریزی کنند.
شرکت ها نیز همواره در این مورد پیشرو بوده اند. نسل پنجم دیدگاه به ویژه در حوزه اتوماسیون اداری با هدف تغییر کد برای پشتیبانی از تمامی مرورگرها، ایجاد نرمافزارهای موبایلی با هدف استفاده از تکنولوژیهای جدیدتر و پروژه زاگرس به منظور تغییر جامع معماری نرمافزار دیدگاه مجموعه پروژههایی بوده است که شرکت ها با اهداف بازمهندسی انجام داده و همچنان در حال اجرا و تکمیل آن هستند.
در حال حاضر نیاز به بازمهندسی در تغییر رفتار نرمافزارها به ویژه در زمینه نرمافزارهای اتوماسیون اداری برای پشتیبانی از فرهنگهای جدید ایجاد شده در شرکتها به شدت احساس میشود. تغییرات شگرفی در طول سالهای گذشته به ویژه در زمینه مکاتبات اداری و بکارگیری نرمافزارهای اتوماسیون اداری شرکتها ایجاد شده که نیاز به باز تعریف برخی از مفاهیم بنیادی سیستمهای اطلاعاتی را اجتناب ناپذیر کرده است.