مهندسی نرم افزار - بخش سوم

الگوهای تحلیل سیستم ،مهندسی نرم افزار

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

• دیدگاه خارجی که زمینه و محیط برنامه و سیستم را نشان میدهد.

• دیدگاه رفتاری که عملکرد سیستم را نمایش میدهد.

• دیدگاه ساختاری که معماری سیستم و یا داده ها را ارائه می کند.
الگوهای تحلیل سیستم ،مهندسی نرم افزار:
انواع مدلها

• مدل پردازش داده نشان میدهد که داده ها چگونه در مراحل مختلف پردازش میشوند.

• مدل ترکیبی نشان میدهد که نهادها و عناصر چگونه با عناصر دیگر ترکیب شده اند.

• مدل معماری که زیر سیستم های اصلی را نشان میدهد.

• مدل عمل-عکس العمل که واکنش سیستم را در برابر واقع نشان میدهد.

 ♦ مدلهای پردازش داده

معمولا از دیاگرام جریان داده (DFD) برای مدلسازی پردازش جریان داده استفاده می شود. این مدل سیستم را از دیدگاه عملیاتی نشان میدهد. از این دیاگرام میتوان برای نشان دادن تبادل داده بین سیستم موجود با سایر سیستمها نیز استفاده کرد.
 ♦ مدلهای ارائه وضعیت

این مدلها رفتار سیستم را در پاسخگویی به وقایع خارجی و داخلی نشان میدهند. همچنین عملکرد سیستم های بلادرنگ را نیزمی توانند مدلسازی کنند. این مدل را میتوان توسط یک جدول که در آن وقایع و واکنشها ذکر شده اند،پیاده سازی کرد.
 ♦ مدلهای داده ای

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

در این فرهنگها لیستی از کلیه اسامی استفاده شده در مدلهای سیستم نگهداری می شود. نهادها، ارتباطات و صفات نیز در فرهنگ داده قرار میگیرند. مزایای استفاده از فرهنگ داده در این است:

1. مدیریت نامها و جلوگیری از نامگذاری تکراری.

2. نگهداری دانش سازمانی جهت پیوند دادن تحلیل، طراحی و پیاده سازی.


اصول طراحی نرم افزار

طراحی، نمایشی مهندسی با مفهوم و معنی دار از آن چیزی است که قرار است ساخته شود. از طراحی میتوان برای ارزیابی صحت نیازمندی های مشتری و تعیین کیفیت نرم افزار استفاده کرد. در مهندسی نرم افزار ، طراحی بر چهار زمینه تاکید دارد: داده ، معماری، واسط ها و قطعات.

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

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



معیارهای مختلف یک طراحی خوب و موفق عبارتنداز:

• طراحی باید نمایانگر یک ساختار معماری وار باشد که، 1. براساس الگوهای طراحی شناخته شده ساخته شده است 2. از قطعاتی با طراحی خوب تشکیل شده است و 3. با استفاده از روشهای تکاملی قابل انجام است.

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

• طراحی نرم افزار باید شامل نمایشهای مجزایی برای هر کدام از ماژولهای داده، معماری، واسطها و قطعات باشد.

• طراحی باید به ساختارهای داده ای منتهی شود که برای اشیا پیاده سازی شده مناسب هستند و از الگوهای داده ای قابل تشخیص نشات گرفته اند.

• طراحی باید به قطعاتی منتهی شود که هر کدام خصوصیات عملکردی مستقلی برای خود دارند.

• طراحی نرم افزار باید به واسطهایی منتهی شود که پیچیدگی اتصالات بین ماژولها و ارتباط با محیط بیرونی را کاهش دهد.

• طراحی باید با استفاده از اعمال یک روش تکراری بر روی اطلاعات بدست آمده از تحلیل نیازمندیها انجام گردد.



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

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

جنبه های کیفیت طراحی نرم افزار دو دسته اند:

بیرونی: فاکتورهای بیرونی خواصی هستند که مسقیما توسط کاربر قابل مشاهده اند. مانند سرعت، قابلیت اعتماد، صحت و قابلیت استفاده.

درونی: فاکتورهای درونی از دیدگاه مهندسی نرم افزار مهم هستند و کیفیت را از دیدگاه فنی اندازه گیری می کنند.


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


در طراحی معماری نرم افزار باید خواص زیر را تعریف کرد:

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


طراحی معماری نرم افزار را میتوان با استفاده از مدلهای مختلفی مورد نمایش قرار داد:

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


♦ تقسیم بندی ساختاری

اگر سبک معماری یک سیستم ، سلسله مراتبی باشد میتوان ساختار برنامه را به صورتهای افقی و عمودی تقسیم بندی کرد.

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


♦ ساختار داده  (Data Structure)

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

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


♦ رویه نرم افزار

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


♦ پنهان سازی اطلاعات

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

ایده ها برای استارت آپ موجب رونق کسب و کارهای اینترنتی

آینده / استارت آپ

استارت‌آپ‌ها ادبیات بازار سرمایه را بلدند؟

استارت آپ

صدور تاییدیه دانش بنیانی شتابدهنده صدر فردا

اخبار / استارت آپ

اپلیکیشن شارژاپ

گوناگون / استارت آپ / رپرتاژ آگهی / بازتاب

جذاب‌ترین ایده‌های B2B در سال 2020

استارت آپ

۱۰ استارتاپ که بدون سرمایه به سوددهی رسیدند

استارت آپ

ایده ها و پیشنهاد برای استارت آپ در سال جدید

راهکارها و ترفند ها / استارت آپ

استارت‌آپ ایرانی؛ مرجع اول زنان افغان

استارت آپ

شروع یک کسب و کار نوپا پلتفرمی

استارت آپ

برنامه شبکه اجتماعی تیندر

گوناگون / معرفی وب سایت / استارت آپ

10 استارت آپ برتر تاکسیرانی جهان

استارت آپ

پخت پیتزاهای هیجان انگیز با هوش مصنوعی

آینده / استارت آپ

ایده‌ های استارتاپی فراموش شده‌

دورنما / بازار / استارت آپ

اپل، استارتاپ فناوری خودران Drive.ai را تصاحب کرد

استارت آپ

بررسی مهمترین چالش‌های تیم‌های استارتاپی

استارت آپ

نگرانی کاربران از هزینه تعمیر و تامین قطعات

گفت و گو / بازار / استارت آپ

مصاحبه با مدیرعامل و بنیان‌گذار استارتاپ Moz

گفت و گو / استارت آپ

آشنایی با استارت آپ های حوزه مدیریت آب

استارت آپ

راه اندازی ۷۰ استارت آپ توسط نخبگان ایرانی

استارت آپ

معرفی هشت استارت‌آپ‌ موفق ایرانی در حوزه فینتک

استارت آپ

اولین مرورگر شرعی دنیا

استارت آپ

از صفر تا پیست

استارت آپ

معرفی برترین استارتاپ‌های CES 2019

اخبار / استارت آپ

تبلیغات
درباره ما

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

ما را در شبکه های اجتماعی دنبال کنید