توضیحات
ABSTRACT
We address the disparity between the intellectual preparation that is expected in traditional engineering as compared to that accepted in software engineering. Any beginning student of a traditional engineering discipline realizes that their first courses will be steeped in mathematics–calculus and physics in particular. These foundational tools underlie the practical aspects of their future career. At best a software engineering student will begin with a similar program; but such courses are the stuff of software applications, not of the business of software per se. We examine the history of traditional engineering and the corresponding tran sformation of educational expectations from a shop-culture to a school-culture. From the origins of symbolic algebra in the late 16th century, through calculus and mathematical physics, the basic sciences that support modern engineering were developed. Shadowing this progress, the educational establishment was struggling with how–or whether–to move the new theory into practice. We all know how that struggle turned out . We argue that a similar pattern must ccur in software development, not because of some academic whim but because the complexity of software demands that we expect higher standards. The critical problem in modern software is predictability: we need to know what to expect when we run a program or import software from the net. Such expectations are ill-served by current techniques.
INTRODUCTION
At best, programs are conjectures, free of justifications and supplied “asis.” In this day of the virus such a cavalier attitude is indefensible. We will outline some mathematical foundations for software and illustrate their application to the interplay between program and specification. Many of these ideas are the result of early 20th century philosophers; ideas that developed into a constructive logic, and from there to a mathematical foundation for programming languages. The process that moved traditional engineering from an experience-based craft to a science-based discipline was a multi-century revolution. Thomas Kuhn’s “The Structure of Scientific Revolutions” explored a similar process in the advancement science. In the final section we review his arguments for science revolutions; adapt them for traditional engineering; and then show how our proposed revolution in the engineering of software falls within this framework.
چکیده
ما در مورد اختلاف بین آماده سازی فکری که در مهندسی سنتی انتظار می رود نسبت به آنچه که در مهندسی نرم افزار پذیرفته شده است انتظار می رود. هر دانش آموز ابتدایی یک رشته مهندسی سنتی متوجه می شود که دوره های اول خود را در ریاضیات محاسبات و فیزیک به طور خاص می شود. این ابزارهای پایه و اساس جنبه های عملی حرفه ای آینده خود را. در بهترین حالت یک دانشجوی مهندسی نرم افزار با یک برنامه مشابه شروع می شود؛ اما این دوره ها مواردی از برنامه های کاربردی نرم افزاری هستند، نه از نوع تجاری نرم افزار. ما تاریخچه مهندسی سنتی و ترتیب متناظر با انتظارات آموزشی را از یک فرهنگ مغازه به فرهنگ مدرسه بررسی می کنیم. از ریشه های جبر نمادین در اواخر قرن 16th، از طریق حسابداری و فیزیک ریاضی، علوم پایه ای که از مهندسی مدرن پشتیبانی می کردند، توسعه یافت. سایه این پیشرفت، مرکز آموزشی در حال مبارزه با چگونگی یا اینکه آیا – برای حرکت نظریه جدید به عمل. همه ما می دانیم که چگونه این مبارزه معلوم شد. ما استدلال می کنیم که یک الگوی مشابه باید در توسعه نرم افزار، نه به دلیل برخی از هوی و هولوگرام علمی، بلکه به دلیل پیچیدگی نرم افزار، انتظار ما از استانداردهای بالاتر باشد. مشکل بحرانی در نرم افزار مدرن قابل پیش بینی است: ما باید بدانیم چه اتفاقی می افتد هنگام اجرای یک برنامه یا وارد کردن نرم افزار از شبکه. چنین انتظاری از تکنیک های فعلی بدست آمده است.
مقدمه
در بهترین حالت، برنامه ها حیرت انگیز هستند، بدون توجیه و عرضه “ASIS”. در این روز از ویروس چنین نگرش غریبی غیرقابل قبول است. ما برخی از پایه های ریاضی برای نرم افزار را شرح خواهیم داد و کاربرد آنها را در ارتباط بین برنامه و مشخصات مشخص می کنیم. بسیاری از این اندیشه ها نتیجه فیلسوفان قرن بیستم هستند. ایده هایی که به یک منطق سازنده تبدیل شده اند و از آنجا به یک مبانی ریاضی برای زبان های برنامه نویسی تبدیل شده اند. این فرایند که مهندسی سنتی را از شیوه تجارتی به یک رشته علمی مبتنی بر تکنولوژی انتقال داد انقلاب چند قرن بود. توماس کوهن “ساختار انقلاب های علمی” یک روند مشابه در علم پیشرفت را بررسی کرد. در بخش آخر ما استدلال های خود را برای انقلاب های علمی بررسی می کنیم؛ انطباق آنها را برای مهندسی سنتی. و سپس نشان می دهد که انقلاب پیشنهادی ما در مهندسی نرم افزار در این چارچوب قرار دارد.
Year: 2007
Publisher : Association for Computing Machinery.ACM
By : John R. Allen
File Information: English Language/ 11 Page / size: 454 KB
Only site members can download free of charge after registering and adding to the cart
سال : 1386
ناشر : انجمن ماشین های محاسباتی.ACM
کاری از : جان راولن آلن
اطلاعات فایل : زبان انگلیسی/ 11 صفحه / حجم : KB 454
نقد و بررسیها
هنوز بررسیای ثبت نشده است.