لایههای مهندسی نرمافزار
مهندسی نرم افزار از چهار لایه ابزارها، روشها، فرآیندها و کیفیت ایجاد شده است، که نتیجه استفاده درست از فرآیندها، روشها و ابزارها میشود کیفیت. بنابراین مهندسی نرمافزار یک فرآیند لایهای است.
در شکل زیر، چهار لایه نشان داده شده است:
کیفیت
مهندسی نرمافزار یک کوشش لایهای برای تولید یک محصول نرمافزاری با کیفیت که نیازمندیهای مورد انتظار مشتری را برآورده میسازد میباشد. در صورتی که ابزارها، روشها و فرآیندها به گونهای درست و مطابق با کاربرد انتخاب و استفاده شوند میتوان اینگونه بیان نمود که کیفیت که همان برآورده ساختن نیازمندیهای مورد انتظار مشتری میباشد برآورده شده است.
برای مثال کیفیت خانه برای برآورده ساختن آرامش و نیازهای مشتری، مهم است. اما شیوههای رسیدن به این مهم در شهرهای شمالی و جنوبی شباهتها و تفاوتهایی دارد. به طور مثال در شهرهای شمالی بارندگی به وفور وجود دارد، پس روشها و ابزارهای ساختمانی باید به گونهای انتخاب شوند که در برابر بارندگی مقاوم باشند. مثل روش سقف شیروانی با استفاده از ابزار سفال!
فرآیندها (فرآیند تولید نرمافزار)
هر پروژهی نرمافزاری، چه بزرگ و چه کوچک مراحلی را طی مینماید که در طی آن مجموعهای از نیازمندیهای مشتری به یک محصول نرمافزاری تبدیل میگردد. الگو و قالبی که چگونگی طی مراحل مختلف یک پروژه را تعریف مینماید، اصطلاحاً فرآیند تولید نرمافزار نامیده میشود. شکل زیر فرآیند تولید نرمافزار و ورودی و خروجی آن را نشان میدهد:
همانطور که ملاحظه مینمایید، ورودی این فرآیند، نیاز یا خواستههای مشتری و خروجی
آن، یک محصول نرمافزاری است. یک فرآیند تولید در یک پروژه به ما میگوید که برای دستیابی به هدف مطلوب که همان تولید یک فرآوردهی نرمافزاری با کیفیت مطلوب است، چه کسی Who، چه کاری را What، چه موقع When و چگونه How باید انجام دهد، در واقع، بدون داشتن تعریف مشترکی
از فرآیند تولید نرمافزار، هماهنگی انجام کار تیمی در یک پروژهی نرمافزاری، امکانپذیر نخواهد بود.
توجه نمایید که مدل فرآیندی که انتخاب میکنیم دقیقاً به نرمافزاری که تولید میکنیم بستگی دارد. ممکن است که یک مدل فرآیند برای تولید سیستم الکترونیکی هواپیما مناسب باشد، در حالی که مدل فرآیندی دیگر، برای ایجاد یک وبسایت استفاده شود. پس انتخاب مدل فرآیند براساس ماهیت نرمافزار صورت میگیرد. در ادامهی این فصل به طور مفصل در مورد انواع مدلهای فرآیند تولید نرمافزار صحبت خواهیم کرد.
روشها
شیوههای فنی برای ساخت نرمافزار را «روش» میگوییم و به دو شکل روش ساختیافته و روش شیءگرا میباشد. در روش ساختیافته میگوییم چه عملکردهایی داریم و این عملکردها به چه دادههایی نیاز دارند و داده و عملکرد را به طور جداگانه و به روش ساختیافته تحلیل، طراحی و پیادهسازی میکنیم. اما در روش شیءگرا میگوییم چه دادههایی داریم و این دادهها چه عملکردهایی دارند. در واقع داده و عملکرد را در قالب یک بسته (کلاس) در کنار هم قرار میدهیم و به روش شیءگرا (مانند مفاهیم کلاس، وراثت و چندریختی) تحلیل، طراحی و پیادهسازی میکنیم. آنچه مهندسینرمافزار به عنوان یک هدف و اصل سودآور برای سازنده نرمافزار و بهتبع مقرون به صرفهشدن برای مشتری دنبال میکند، اصل قابلیت استفاده مجدد قطعات پروژههای نرمافزاری فعلی در پروژههای آتی است. زمان و هزینهی فرآیند تولید نرمافزار به دلیل استفاده از قطعات آماده (قابلیت استفاده مجدد) کاهش چشمگیری دارد. در واقع یک قطعه با قابلیت استفادهی مجدد یک بار ساخته میشود و بارها و بارها استفاده میشود و این یعنی سودآوری! بنابراین واضح است که شرط لازم برای ساخت قطعات قابل استفاده مجدد، قطعه قطعه کردن نرمافزار یا به عبارتی پیمانهایکردن یا بُرش نرمافزار است. بنابراین روش یعنی چگونگی و نحوه بُرش نرمافزار، در متدولوژی ساختیافته این بُرش یا به عبارتی پیمانهایکردن نرمافزار براساس تابع تابع کردن نرمافزار انجام میگردد و در متدولوژی شیءگرا این بُرش یا به عبارتی پیمانهایکردن نرمافزار براساس کلاس کلاس کردن نرمافزار انجام میگردد. همانطور که گفتیم شرط لازم برای ساخت قطعات قابل استفاده مجدد، قطعه قطعه کردن نرمافزار یا به عبارتی پیمانهایکردن یا بُرش نرمافزار است. در مورد شرط کافی برای ساخت قطعات قابل استفاده مجدد که با مفاهیمی همچون اصل پنهانسازی اطلاعات، استقلال عملیاتی، انسجام بالا و اتصال پایین مرتبط است در فصل مفاهیم طراحی ساختیافته و مفاهیم شیءگرایی به تفصیل صحبت خواهیم کرد.
ابزارها
ابزارهای فنی برای ساخت نرمافزار را «ابزار» میگوییم و به دو شکل ابزار ساختیافته و ابزار شیءگرا میباشند. شکل زیر ابزارهای ساختیافته را در روش ساختیافته نمایش میدهد:
توجه: ابزارهای شیءگرا، در فصل مربوط به مباحث شیءگرایی معرفی خواهند شد. مانند ابزار 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 ایجاد شده است.
ارسطو خلیلیفر
مولف کتاب مهندسی نرم افزار راهیان ارشد
دیدگاه خود را ثبت کنید
آیا می خواهید به بحث بپیوندید؟در صورت تمایل از راهنمایی رایگان ما استفاده کنید!!
اصلی ترین لایه مهندسی نرم افزار کدوم لایه است ؟
سلام
همه اصلی هستن و باید درست انجام بشن، اما لایه ریشه، میشه کشف نیازمندی های مشتری، بعد برنامهریزی، بعد تحلیل، بعد طراحی، بعد پیادهسازی، بعد تست و درنهایت هم استقرار، که تکرار مجدد از کشف نیازمندیها تا استقرار میشود، توسعه و نگهداری نرم افزار