متدولوژی های اولیه مهندسی نرم افزار :
در سال 1962 دایجسترا
(Edsger Dijkstra)
نظریه ای مبنی بر اینکه یک تکه کد
اساساً ریشه در عبارات ریاضی دارد را مطرح نمود .
بنابر این عقیده ، او فرض نمود که باید بتوان یک
برنامه اختیاری را به دلخواه انتخاب نموده و با
برهان و دلایل ریاضی درستی یا نادرستی کارکرد آنرا
اثبات نمود .اگرچه ، در آن زمان تلاشهای وی در این
زمینه موفقیت زیادی در پی نداشت .اما کمی بعد در
سال 1965 دایجسترا و دیگران یکی از مشکلات اساسی ،
که امروزه عبارات نا آشنای
Go
To
[ناآشنا به دلیل عدم استفاده از آن] یا پرش های
غیر شرطی می باشند ، را هشدار دادند .
در
سال 1968 دایجسترا با برهان و استدلال این موضوع
که پرش های غیر شرطی مشکلی اساسی به شمار می آیند
را اثبات نموده و مقاله ای با عنوان "عبارت
Go
To
یک ضرر قابل توجه "را منتشر ساخت . البته تلاش های
دایجسترا تنها محدود به عبارات
Go
To
نشد .کمی بعد در سال 1968 وی نتیجه فعالیت ها و
کارهای موفقیت آمیز خود را در راه توسعه یک سیستم
عامل منتشر نمود . این مقاله خواندنی در مورد
دیدگاه لایه های انتزاعی بحث می نماید ؛ موضوعی که
امروزه استفاده از آن رایج می باشد ولی ما کمتر به
آن فکر کرده ایم .
در
برنامه نویسی ساخت یافته ، دایجسترا نه تنها
اصطلاح
Structured Programming
را وضع و ایجاد کرد بلکه وی بر اهمیت موضوعاتی چون
جلوگیری از خطا و مقابله با رخ دادن خطا بجای رفع
خطا بعد از وقوع آن تاکید نمود .در مقاله اشاره
شده فوق ؛ او این سوال را مطرح ساخت که :
"
سوال اصلی این است که آیا می توان قابلیت و قدرت
برنامه نویسی را بواسطه اندازه و تکنیک هایی
(تکنیک های ذهنی ، سازمانی یا مکانیکی) که بتوانند
در فرآیند ترکیب برنامه بکار بسته شوند ؛ بالا برد
؟ "
این
سوال هنوز هم برای ما بدون جواب باقی است .
در
سال 1966 بوهم (Bohm)
و ژاکوپینی (Jacopiny)
مقاله خود را به زبان انگلیسی ترجمه و به
ACM
ارائه دادند .در سال 1967 اصطلاح مهندسی نرم افزار
(Software
Engineering)
برای عنوان سمینار سال 1968 سازمان پیمان آتلانتیک
شمالی یا ناتو (NATO)
انتخاب شد .که هدف آن ، در میان سایر موارد ، کمک
به شناساندن و معرفی مهندسی نرم افزار و دامنه عمل
آن بود .
سال
1971 ایده توسعه نرم افزار بوسیله پالایش مرحله ای
یا
Stepwise Refinement
توسط نیکلاس ورث ارائه شد .پالایش مرحله ای کارها
و فعالیت های گذشته دایجسترا ، بوهم و ژاکوپینی را
روشن و مبرهن ساخت .یک سال بعد دیوید پارناس مقاله
خود تحت عنوان "مخفی سازی اطلاعات" را منتشر نمود
.دسامبر سال 1973 نشریه
Datamation
یک شماره از مجله خود را به برنامه سازی ساخت
یافته اختصاص داد و تعدادی از برنامه های کاربردی
موفق که با این تکنیک ساخته شده بودند را معرفی
نمود .
تقریبا اواخر دهه 1960 توسعه دهندگان و سازندگان
نرم افزار پی بردند که برنامه نویسی ساخت یافته (و
یا در دامنه ای وسیع تر ، کد نویسی ساخت یافته) به
تنهایی کارساز و کارگشا نمی باشد .
هالان میلس (Halan
D. Mills)
فعالیت های خود را بر روی "بهینه سازی برنامه ساز"
در پروژه ابر برنامه ساز (SuperProgrammer)
متمرکز نمود .که نتایج این کار به مجله نیویورک
تایمز هم کشیده شد. درک این موضوع که این پروژه
های بزرگ و کارهای دیگران (نظیر فعالیت های
لابراتوار
SKYLab)
، در راستای اثبات نمودن و نشان دادن ناکافی بودن
برنامه سازی ساخت یافته بوده است ، و نیز مفاهیمی
همچون "تیم ارشد برنامه ساز" و ویرایش های جدید
طراحی ساخت یافته ؛ حائز اهمیت می باشند .
لری کانستنتین (Larry
Constantine)
(یکی از کارکنان
IBM
در خلال دهه های 60 و 70 میلادی) موضوع مکانیسم
های مستقل برای جلوگیری از طراحی بد از ابتدای
شروع پروژه ، و تشخیص مشکلات بالقوه قبل از شروع
مرحله تولید نرم افزار را مطرح ساخت. او به همراه
Wayne Stevens
و
Glen
Myers
طراحی ترکیبی (Composite
Design)
را که بعدا به طراحی ساخت یافته تغییر نام داد ،
ارائه نمود .