لایههای مهندسی نرم‌افزار

مهندسی نرم افزار از چهار لایه ابزارها، روش‌ها، فرآیندها و کیفیت ایجاد شده است، که نتیجه استفاده درست از فرآیندها، روش‌ها و ابزارها می‌شود کیفیت. بنابراین ‏مهندسی نرم‌افزار یک فرآیند لایه‌ای است.

در شکل زیر، چهار لایه نشان داده شده است:

کیفیت

‏مهندسی نرم‌افزار یک کوشش لایه‌ای برای تولید یک محصول نرم‌افزاری با کیفیت که نیازمندی‌های مورد انتظار مشتری را برآورده می‌سازد می‌باشد. در صورتی که ابزارها، روش‌ها و فرآیندها به گونه‌ای درست و مطابق با کاربرد انتخاب و استفاده شوند می‌توان این‌گونه بیان نمود که کیفیت که همان برآورده ساختن نیازمندی‌های مورد انتظار مشتری می‌باشد برآورده شده است.

‏برای ­مثال کیفیت خانه برای برآورده ساختن آرامش و نیازهای مشتری، مهم است. اما شیوه‌های رسیدن به این مهم در شهرهای شمالی و جنوبی شباهتها و تفاوتهایی دارد. به طور مثال در شهرهای شمالی بارندگی به وفور وجود دارد، پس روشها و ابزارهای ساختمانی باید به گونهای انتخاب شوند که در برابر بارندگی مقاوم باشند. مثل روش سقف شیروانی با استفاده از ابزار سفال!

‏فرآیندها (فرآیند تولید نرم‌افزار)

‏هر پروژه‌ی نرم‌افزاری، چه بزرگ و چه کوچک مراحلی را طی می‌نماید که در طی آن مجموعه‌ای از نیازمندی‌های مشتری به یک محصول نرم‌افزاری تبدیل می‌گردد. الگو و قالبی که چگونگی طی مراحل مختلف یک پروژه را تعریف می‌نماید، اصطلاحاً فرآیند تولید نرم‌افزار نامیده می‌شود. شکل زیر فرآیند تولید نرم‌افزار و ورودی و خروجی آن را نشان می‌دهد:

http://cdn.khalilifar.ir/2020/02/SE211.png

‏همانطور که ملاحظه می‌نمایید، ورودی این فرآیند، نیاز یا خواسته‌های مشتری و خروجی
آن، یک محصول نرم‌افزاری است. یک فرآیند تولید در یک پروژه به ما می‌گوید که برای دستیابی به هدف مطلوب که همان تولید یک فرآورده‌ی نرم‌افزاری با کیفیت مطلوب است، چه کسی Who، چه کاری را What، چه موقع When و چگونه How باید انجام دهد، در واقع، بدون داشتن تعریف مشترکی
از فرآیند تولید نرم‌افزار، هماهنگی انجام کار تیمی در یک پروژه‌ی نرم‌افزاری، امکان‌پذیر نخواهد بود.

توجه نمایید که مدل فرآیندی که انتخاب می‌کنیم دقیقاً به نرم‌افزاری که تولید می‌کنیم بستگی دارد. ممکن است که یک مدل فرآیند برای تولید سیستم الکترونیکی هواپیما مناسب باشد، در حالی که مدل فرآیندی دیگر، برای ایجاد یک وب‌سایت استفاده شود. پس انتخاب مدل فرآیند براساس ماهیت نرم‌افزار صورت می‌گیرد. در ادامه‌ی این فصل به طور مفصل در مورد انواع مدل‌های فرآیند تولید نرم‌افزار صحبت خواهیم کرد.

روش‌ها

شیوه‌های فنی برای ساخت نرم‌افزار را «روش» می‌گوییم و به دو شکل روش ساخت‌یافته و روش شیءگرا می‌باشد. در روش ساخت‌یافته می‌گوییم چه عملکردهایی داریم و این عملکردها به چه داده‌هایی نیاز دارند و داده و عملکرد را به طور جداگانه و به روش ساخت‌یافته تحلیل، طراحی و پیاده‌سازی می‌کنیم. اما در روش شیءگرا می‌گوییم چه داده‌هایی داریم و این داده‌ها چه عملکردهایی دارند. در واقع داده و عملکرد را در قالب یک بسته (کلاس) در کنار هم قرار می‌دهیم و به روش شیءگرا (مانند مفاهیم کلاس، وراثت و چندریختی) تحلیل، طراحی و پیاده‌سازی می‌کنیم. آنچه مهندسی­نرم­افزار به عنوان یک هدف و اصل سودآور برای سازنده نرم‌افزار و به­تبع مقرون­ به صرفه­شدن برای مشتری دنبال می­کند، اصل قابلیت استفاده مجدد قطعات پروژه­های نرم­افزاری فعلی در پروژه­های آتی است. زمان و هزینه‌ی فرآیند تولید نرم‌افزار به دلیل استفاده از قطعات آماده (قابلیت استفاده مجدد) کاهش چشمگیری دارد. در واقع یک قطعه با قابلیت استفاده‌ی مجدد یک بار ساخته می‌شود و بارها و بارها استفاده می‌شود و این یعنی سودآوری! بنابراین واضح است که شرط لازم برای ساخت قطعات قابل استفاده مجدد، قطعه قطعه کردن نرم­افزار یا به عبارتی پیمانه­ای­کردن یا بُرش نرم­افزار است. بنابراین روش یعنی چگونگی و نحوه بُرش نرم­افزار، در متدولوژی ساخت­یافته این­ بُرش یا به عبارتی پیمانه­ای­کردن نرم­افزار براساس تابع تابع کردن نرم­افزار انجام می­گردد و در متدولوژی شیءگرا این­ بُرش یا به عبارتی پیمانه­ای­کردن نرم­افزار بر­اساس کلاس کلاس کردن نرم­افزار انجام می­گردد. همانطور که گفتیم شرط لازم برای ساخت قطعات قابل استفاده مجدد، قطعه قطعه کردن نرم­افزار یا به عبارتی پیمانه‌ای­کردن یا بُرش نرم­افزار است. در مورد شرط کافی برای ساخت قطعات قابل استفاده مجدد که با مفاهیمی همچون اصل پنهان­سازی اطلاعات، استقلال عملیاتی، انسجام بالا و اتصال پایین مرتبط است در فصل مفاهیم طراحی ساخت­یافته و مفاهیم شیءگرایی به تفصیل صحبت خواهیم کرد.

ابزارها

ابزارهای فنی برای ساخت نرم‌افزار را «ابزار» می‌گوییم و به دو شکل ابزار ساخت‌یافته و ابزار شیءگرا می‌باشند. شکل زیر ابزارهای ساخت‌یافته را در روش ساخت‌یافته نمایش می‌دهد:

http://cdn.khalilifar.ir/2020/02/SE2111.png

توجه: ابزارهای شیءگرا، در فصل مربوط به مباحث شیءگرایی معرفی خواهند شد. مانند ابزار UML که سرواژه عبارت Unified Modeling Language است و به معنی زبان مدل­سازی یکپارچه می­باشد که جهت مدل‌سازی متدولوژی شیءگراء مورد استفاده قرار می­گیرد.

ابزارهای کاغذی (Tool) : به معنی استفاده از ابزار به صورت دستی و نقشی بر روی کاغذ بدون استفاده از کامپیوتر مانند رسم نمودار ER بدون کامپیوتر یا رسم نمودارهای UML بدون کامپیوتر یا نوشتن کدهای برنامه‌نویسی بر روی کاغذ بدون کامپیوتر.

ابزارهای کامپیوتری (Computer-Aided Software Engineering Tool) : (CASE TOOL)

به معنی استفاده از ابزار به کمک کامپیوتر، مانند رسم نمودار ER به کمک کامپیوتر توسط نرم‌افزار ویزیو یا رسم نمودارهای UML به ‏کمک کامپیوتر توسط نرم‌افزار رشنال رُز یا نوشتن کدهای برنامه‌نویسی به کمک کامپیوتر توسط کامپایلرها.

توجه: ابزارهای کامپیوتری (CASE TOOL) می‌توانند، در کلیه مراحل فرآیند تولید نرم‌افزار (ارتباطات، برنامه‌ریزی، مدل‌سازی (تحلیل و طراحی)، ساخت (پیاده‌سازی و تست) و استقرار) مورد استفاده قرار گیرند.

تکنیکهای نسل چهارم (۴GT : Fourth Generation Techniques)

تکنیک‌های نسل چهارم، دسته‌ای از ابزارهای CASE هستند که در فعالیت پیادهسازی، کد برنامه را به صورت خودکار تولید می‌نمایند. البته شرط لازم برای این کار، توصیف مشخصات نرم‌افزار در یک سطح انتزاعی بالا در فعالیت مدل‌سازی (نمایش نرم‌افزار توسط اشکال و علائم گرافیکی) است. مانند تولید خودکار کدهای HTML توسط نرم‌افزار Dreamweaver یا FrontPage، تولید کدهای برنامه توسط نرم‌افزار رشنال رُز که نمودارهای آن در سطح انتزاعی بالا توسط نمودار­های UML ایجاد شده است.

ارسطو خلیلی‌فر

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

2 پاسخ ها
    • ارسطو خلیلی‌فر
      ارسطو خلیلی‌فر می گوید:

      سلام
      همه اصلی هستن و باید درست انجام بشن، اما لایه ریشه، میشه کشف نیازمندی های مشتری، بعد برنامه‌ریزی، بعد تحلیل، بعد طراحی، بعد پیاده‌سازی، بعد تست و درنهایت هم استقرار، که تکرار مجدد از کشف نیازمندی‌ها تا استقرار می‌شود، توسعه و نگهداری نرم افزار

      پاسخ

دیدگاه خود را ثبت کنید

آیا می خواهید به بحث بپیوندید؟
در صورت تمایل از راهنمایی رایگان ما استفاده کنید!!

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

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