مباحث پيشرفته در مهندسي نرم افزار دکتر جهانشاهی
تعداد صفحه: 73 دستنویس و بسیار عالی
نسبتاً تمام تاریخچه کوتاه مهندسی نرم افزار، افراد حرفه ای و محققان هر گروه از مدل های پردازش، روش های تکنیکی ، و ابزار خودکار در تلاش برای پرورش دادن تغییر بنیادی در مسیری که ما نرم افزار کامپیوتری ساختیم را توسه دادند.اگرچه تجربه قبلی غیر از خواسته ضمنی برای یافتن”راه حل معجزه آسا” را نشان می دهد فرآیند سحرآمیز یا تکنولوژی برتر که می خواهد به ما اجازه ساخت نرم افزار پیچیده و عظیم مبتنی بر سیستم های آسان ، بدون اشتباه ، بدون اغتشاش ، بدون تأخیر – بدون بسیاری از مشکلاتی که افت کار نرم افزار را استمرار می دهند را بدهند.
اما تاریخ نشان می دهد که تقاضا ما برای راه حل معجزه آسا حکم شکست را دارد.تکنولوژی های جدید بطور منظم ، برتر مانند راه حلی برای بسیاری از مشکلات مهندسان نرم افزار که با آنها مواجه اند معرفی شده اند و با پروژه های بزرگ وکوچک همراه شده اند.متخصصان صنعت بر اهمیت این تکنولوزی های نرم افزاری جدید اصرار دارند، متخصص انجمن نرم افزاری آنها را با رغبت می پذیرند و نهایتاً متخصصان نقشی در مهندسی نرم افزار در دنیا بازی می کنند.اما متخصصان تمایلی به مواجه با نوید آنها و مانند پیامدی در استمرار تقاضا ندارند.
مهندسی نرم افزار چیست؟هیچ کسی نمی تواند آینده را بطور قطع پیش بینی کند.اما تعیین روندها در ناحیه مهندسی نرم افزار و تمایل آنها به پیشنهادمسیرهای احتمالی برای تکنولوژی ممکن است.این چیست که من برای انجام دراین فصل تلاش دارم.
چه کسی مهندسی نرم افزارراانجام می دهد؟کسی که می خواهد درباره زمان ماندن در برابرمشکلات مهندسی نرم افزار که می توانند برای پیش بینی مسیر آینده تکنولوژی فعالیت کنند بحث کند.
چرا مهندسی نرم افزار مهم است؟چرا پادشاهان قدیمی طالع بین هایی استخدام می کردند؟ چرا بنگاه های چندملیتی بزرگ شرکت های مشاوره به خدمت می گیرند و تمایل به تفکر درباره تدارک پیش بینی های دارند؟چرا درصد قابل توجهی از عموم مردم طالع ها را می خوانند؟ ما می خواهیم بدانیم که چه چیزی در حال پدید آمدن است پس ما می توانیم خود را آماده کنیم .
چه مراحلی وجود دارد؟هیچ فرمولی برای پیش بینی مسیر پیشرو وجود ندارد.ما به جمع آوری اطلاعات ، سازماندهی آنها برای تهیه اطلاعات مفید،آزمایش انجمن های ماهر برای استخراج دانش مشغول هستیم و این دانش روندهای احتمالی پیش بینی اینکه چگونه اینها می خواهند در برخی زمان های آینده باشند را پیشنهاد می دهد.
محصول کاری چیست؟ یک دیدگاه نزدیک به آینده ممکن است درست باشد یا خیر.
چگونه اطمینان داشته باشم که من مهندسی نرم افزار را درست انجام می دهم؟ پیش بینی مسیر پیشرو هنر است نه علم. در حقیقت این مسئله کاملاً نادر است زمانی که پیش بینی جدی درباره آینده ای یا کاملاً درست یا به صراحت اشتباه (پیش بینی های استشنا و متفکرانه از اتمام دنیا) است .ما روندها را می یابیم و تلاشی برای قیاس آنها داریم.می توانیم قیاس را فقط براساس گذشت زمان تعیین کنیم.
Mil و Cowan نظریه ای درباره چالش هایی که زمان جداسازی روندهای فناوری منطقی با آنها روبرو هستیم مطرح می کنند:
چه عواملی در تعیین موفقیت یک روند نقش دارند؟ ویژگی هایی در روندهای فناوری موفق: شایستگی تکنیکشان چیست ؟ توانایی شان برای تأسیس بازارهای جدید ؟ توانایی شان برای تغییر اقتصاد بازارهای موجود چیست؟
از چه چرخه زندگی یک روند پیروی می کند؟ اگرچه دیدگاه قدیمی می گوید روندها از تعریف مناسب ،چرخه زندگی قابل پیش بینی که فرآیندها از یک ایده تحقیقاتی برای یک محصول نهایی در یک فرآیند انتقالی نتیجه می شوند در می یابیم که بسیاری از روندهای موجود دارای مسیر کوتاه در این چرخه هستند یا از مسیر دیگری پیروی می کنند.
ابتدا یک روند موفق چگونه می تواند معرفی شود؟ اگر ما از چگونگی شناسایی عوامل موفقیت آمیز آشنا باشیم و یا چرخه زندگی یک رون را یئانیم سپس درباره شناسایی نشانه های اولیه موفقیت دریک روند تحقیق می کنیم.مطابق فصاحت توانایی تشخیص روند بعدی هر شخص دیگر را جستوجو می کنیم.
وجه های تکامل قابل کنترل چیست؟ آیا بنگاه ها می توانند از اعتصاب بازارشان برای تحمیل روندها استفاده کنند؟ آیا دولت می تواند از منابعش برای تحمیلروندها استفاده کند؟ استانداردها چه نتشی در تعریف روندها بازی می کنند؟ برای مثال تجزیه وتحلیل دقیق Ada در برابر Javaباید دراین بررسی روشن شده باشد.پاسخ های آسانی برای این سؤالات وجود ندارند وهیچ مناظره ای نمی تواند بگوید که تلاش های گذشته برای معرفی فناوری های منطقی در حد متوسط بهترین قرار داشتند.
در انتشارهای قبلی این کتاب ( بیش از 30 سال پیش) درباره پیدایش تکنولوژی ها و اثر برنامه ریزی شده آنها بر مهندسی نرم افزار بحث کردم. برخی از آنها بطور گستدره پذیرفته شده بودند اما برخی دیگر به پتانسیل آنها نرسیدند. نتیجه گیری من : فناوری ها می آیند و می روند؛درروند های واقعی شما و من باید راحت تر بودن را کشف کنیم. بدین ترتیب درمی یابم که پیشرفت در مهندسی نرم افزارمی خواهد با روند های فرهنگی، بازار، سازمانی و تجارت راهنمایی شود.این روند ها نو آوری فناوری را سبب می شوند.دراین فصل اندکی از روندهای فناوری مهندسی نرم افزار را می بینیم اما اهمیت اولیه من می خواهد برخی از روندهای فرهنگی ، بازار، سازمانی و تجارت باشد که ممکن است اثر مهمی بر فناوری مهندسی نرم افزار بیش از 10 یا 20 سال بعد داشته باشند