The Limits of Software – Part II- The Problems of Functionality

  • یوسف مهرداد

Consider the requirements for the avionics of a multi-engine aircraft, a cellular phone switching system, or an autonomous robot. The raw functionality of such systems is difficult enough to comprehend, but now add all of the (often implicit) nonfunctional requirements such as usability, survivability, and adaptability, indeed, all of the forces that shape a system. These unrestrained, potentially contradictory, external requirements are what amplify the arbitrary complexity ….
This external complexity usually springs from the “impedance mismatch” that exists between the users of a system and its developers: users generally find it very hard to give precise expression to their needs in a form that developers can understand. In extreme cases, users may have only the vaguest ideas of what they want in a software system.

Moreover, developers may not even know exactly the expectations of its user base, especially in the case of emerging, rapidly changing markets.

This is not so much the fault of either the users or the developers of a system; rather, it occurs because each group generally lacks expertise in the domain of the other. Users and developers have different perspectives on the nature of the problem and make different assumptions regarding the nature of the solution.

Actually, even if users had perfect knowledge of their needs, it is intrinsically difficult to communicate those requirements precisely and efficiently.

At one extreme, the development team may capture requirements in the form of large volumes of text, occasionally accompanied by a few drawings. Such documents are difficult to comprehend, are open to varying interpretations, and too often contain elements that are designs rather than essential requirements.

At the other extreme, there will be no stated requirements, only general visions and some specific stories, all retained in the heads of the developers. This may work for exploratory development or ultra-lightweight projects, but it is absolutely impossible to manage a development process against invisible requirements.

گزیده:

A life without love, is no life at all.
– “Ever After: A Cinderella Story”

https://bibalan.com/?p=140
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

نظرات (4)

wave
  • بهروز

    ۲۷ شهریور ۱۳۸۶ در ۰۰:۰۰

    این جمله را که خواندم designing a new version of an old kind of system is easier, because we have some idea of how to break it into meaningful parts
    یاد یک موضوع افتادم که دقیقا نمی دانم کجا خواندم یا کدام استاد می گفت که نظریه ای وجود دارد که می کوید تمامی سیستم های که وجود دارند به نوعی از ابتدا وجود داشتند و ما تنها آنها را شناسایی می کنم و یا فقط آنها را توسعه می دهیم یعنی فکر کنم اینطور می گفت که ما هیچ سیستمی را خلق نکردیم و یا چیزهای شبیه به این. می خاستم اگر می شه شما در مورد این موضوع اگر وجود داشته باشد توضیح بیشتری بدهد.
    با تشکر و خسته نباشد

    پاسخ
  • بهروز

    ۲۷ شهریور ۱۳۸۶ در ۰۰:۰۰

    شرمنده من دیر رسیدم یک سوالم در مورد پست چالشهای پیش رو در آموزش مهندسی نرم‏افزار از شما داشتم من به عنوان یک دانشجو تقریبا به صورت آشکار تمام مسائل و مشکلات گفته شده در دانشگاهها به صورت آشکار مشاهده کردم و تفریبا سر این موضوع با بسیاری از اساتید مشکل داشتم. می خاستم نظر شخصی شما را به عنوان یک استاد در شرایط فعلی و زمانیکه دانشجو بودید بدانم و آیا نقصی های را که در زمان دانشجویی احساس می کردید در کلاس درسی خود چگونه پر می کنید؟ حتما جواب بدهید چون این موضوع خیلی برای خودم مهم است

    پاسخ
  • مهرداد

    ۲۹ شهریور ۱۳۸۶ در ۰۰:۰۰

    بهروز عزیز سلام،
    واقعیت امر این است که در برخورد با موضوعات این چنینی نباید از یک جنبه آنها را مورد بررسی قرار داد. رفتار سیستمهای اجتماعی و آموزشی که ما و اساتیدمان نیز بخشی از آن هستیم، تحت تأثیر پارامترهای متعددی هستند. بنابراین وقتی صحبت از مشکلات آموزشی می‏شود، اگر تنها اساتید عزیزمان به عنوان یکی از ارکان این سیستم مورد نقد و خطاب قرار بگیرند، کمی کم‏لطفی است.
    هدف از تحصیل در دانشگاه و وظیفه استاد به خصوص در سطح کارشناسی، در وهله نخست، انتقال دانش به دانشجویان نیست، چرا که دریای دانش بیکران است. هدف ایجاد بینش لازم در دانشجویان برای ادامه راهی است که در پیش دارند. هدف این نیست که ماهی به آنها بدهید، هدف این است که یاد بگیرند که چگونه ماهی بگیرند. ایجاد انگیزه برای یادگیری شاید بزرگترین رسالت استاد باشد. چرا که انگیزه و تلاش دو رکن اساسی مؤفقیت هستند.
    از سوی دیگر، دلایل متعددی باعث شده است که دانشجویان بیشتر شبیه به دانش‏آموز(دانش+آموز) باشند تا دانشجو(دانش+جو)(آن چه که استاد میگوید تنها برای نمره یاد میگیرند). خوشبختانه رشته ما به شکلی است که دسترسی علاقمندان به منابع تحقیقاتی بسیار زیاد است. اگر کسی بخواهد یاد بگیرد، واقعاً مشکلی برای یادگیری ندارد.
    بگذریم. به هر حال موضوع بحث، «موضوع سیستمی» است که تمامی ارکان آن به هم پیوسته‏اند. امیدوارم هر چه زودتر بازدهی سیستم به آن چه که مطلوب همه باشد، برسد. هر سیستمی هم مشکلات خودش را دارد. سئوال این جاست که من به عنوان عضوی از سیستم برای تغییر آن چه کاری کرده‏ام؟ لازم نیست، کار بزرگی انجام دهم، حتی کار کوچک، درست و به جا می‏تواند تأثیرات شگرفی به همراه داشته باشد.

    پاسخ
  • بهروز

    ۳۱ شهریور ۱۳۸۶ در ۰۰:۰۰

    سلام به استاد عزیز
    من نیز با شما کاملا موافق هستم و اگر هر کس حتی یک قدم کوچک برای بهبود سیستم بردارد روزی خواهد رسید که سیستم به نقطه ائده ال خود خواهد رسد.

    پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برای خروج از جستجو کلید ESC را بفشارید