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


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

بسياري از اشخاص مهندسي نرم افزار را با علم کامپيوتر يکي مي دانند. اين ديد بسيار محدود کننده و غلط است. در واقع مهندسي نرم افزار را مي توان مستقل از علم کامپيوتر دانست. هر چند پيش نياز کاري مهندسين نرم افزار آشنايي با علوم کامپيوتري است اما اساسا، علم کامپيوتر با تئوريها و روش هايي سر و کار دارد که به کامپيوترها و سيستم هاي نرم افزاري مربوط مي شود، در حالي که مهندسي نرم افزار با مسائل عملي تعيين مشخصات، تحليل، پياده سازي و توليد نرم افزار سر و کار دارد. البته بديهي است که مهندسي نرم افزار و علم کامپيوتر رابطه تنگاتنگي با هم دارند و پيشرفت در علم کامپيوتر نياز به پيشرفت علم نرم افزار را مي طلبد. داشتن برخي از علوم کامپيوتر براي مهندسين نرم افزار ضروري است(همان طور که دانش فيزيک براي مهندسين الکترونيک ضرروي است).

در حالت ايده آل، کل مهندسي نرم افزار از تئوري هاي علم کامپيوتر ساخته مي شود، اما واقعيت چيز ديگري است. مهندسين نرم افزار اغلب بايد از رهيافت هاي ذهني براي توسعه نرم افزار استفاده کنند و احتمالا ايده اي که تا به حال شکل نگرفته را عملي کنند. تئوري هاي علم کامپيوتر را هميشه نمي توان به مسائل واقعي پيچيده اي اعمال کرد که نيازمند راه حل های نرم افزاري اند.

در واقع مهندسين نرم افزار بايد مسائل پيچيده واقعي را با تفکر نرم افزاري مبتني بر علم کامپيوتر حل کنند. اين گونه مسائل واقعي کاملا با تئوري هاي علم کامپيوتر در تناقض است و در اين ميان وظيفه مهندسين نرم افزار تحليل و رفع تناقضات مسئله با علوم کامپيوتري و ايجاد سيستم نرم افزاري مبتني بر علم کامپيوتر مي باشد.

به طور مثال ساخت يک نرم افزار اتوماسيون اداري که قرار است تمامي سيستم هاي يک سازمان بزرگ از جمله سيستم حسابداري، توليد ، فروش ، انبارداري وغيره را پياده سازي نمايد، نياز به داشتن دانش مهندسي نرم افزار دارد. چنين سيستمي را نمي توان با تئوري و منطق کامپيوتري پياده سازي نمود چون این گونه سیستم ها نياز به تحليل هاي تشريحي دارند که با علوم کامپيوتر که فقط قادر با حل مسائل منطقي است کاملا در تضاد مي باشد.

Advertisements