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

1          مقدمه  

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

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

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

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

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

دستوراتی که در صورت اجرا شدن باعث انجام عمل و کارایی خواسته شده می شوند .

ساختمان داده های که باعث می شوند برنامه ها بطور مناسبی اطلاعات را دستکاری کنند .

مستنداتی که توصیف کنندۀ عملکرد و استفاده از برنامههاست

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

 

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

 

نکته:

اگر از برنامه عقب باشیم ، افزودن افراد جدید باعث عقب افتادگی بیشتر می شود .

نصیحت :

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

- امکان سنجی پروژه دائم در حال تغییر است اما این تغییرات به راحتی سازماندهی می شوند- زیرا نرم افزار قابل انعطاف است .

- هرچه زودتر کد نویسی را شروع کنید ، برای اتمام کار مدت طولانی تری لازم است .

تعریف   IEEE از مهندسی نرمافزار :

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

 


 

2          فرایند

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

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

فرایندی که سازگار می شود ، وابسته به نرم افزاری است که ایجاد می گردد .

محصول برنامه ها : برنامه ، کدها و مستندات

2.1         فرایند روشها وابزارها .

          مهندسی نرمافزار یک تکنولوژی لایهای است. هر روش مهندسی باید بر روی یک ساختنار سازمانی بر مبنایی کیفیت قرار بگیرد.

امثال مهندسی نرم افزار لایه های فرایند آن می باشد . فرایند مهندسی نرم افزار به همراه لایه های روشها و ابزار باعث توسعه تدریجی نرم افزار کامپیوتر می شود. شکل 1-2 تکنولوژی لایه ای نشان می دهد .


3          امکان سنجی[1]      

امکانسنجی يک نرمافزار عبارت است از ارزیابی اولیه نرمافزار به هدف شناخت نیازها و ارائه راه حل جهت قبول یا رد پیشنهاد .

امکانسنجی اولین مرحله در فرایند مهندسی نرمافزار است و موفقیت در امکان سنجی نیازمند آشنایی کامل با فیلدهای مختلف مهندسی کامپیوتر و تجربه است.

1.1       مراحل امکان سنجی

·        شناسایی سیستم موجود.

·        مشخص کردن محدود

·        برسی مشکلات

·        ارائه راه حل و مشخص کردن اهداف سیستم جدید ( معرفی سیستم پیشنهادی ) امکان

·        مشخص کردن میزان ریسک – ( عوامل محدود کننده ومانع اجرا کار مشخص )

·        بررسی اقتصادی پروژه – زمان و هزینه

 

هزینه شامل اقلام زیری                                                                    

   الف – تجهیزات

  ب – نیروی انسانی

  ج – آموزش

  د – پشتیبانی ( کاغذ – غذا – اسکان )

1.1       گزارش های امکان سنجی

 

·        مقدمه

·        خلاصه ایی در مورد سازمان کارفرما

·        بررسی اجمالی سیستم موجود

·        راه حل های پیشنهادی

·        معرفی سیستم های پیشنهادی

·        بررسی اقتصادی

·        برنامه ریزی پروژه

·        نتیجه گیری و پیشنهادات

·        مفاهیم تکنیکی

 

 

 

 

 


4          سیستم ونگرش سیستمی

    اصولا هر موجودیتی که دارای حیات و چرخۀ حیات باشد، سیستم نامیده می شود.

ایدهای در سال 1937 به وسیله ی"  لودویک وون برتالانفی" یک زیست شناس آلمانی ارائه شد که برای درک تمام پدیده ها روش سیستمی بهتر است . وی نام نظریۀ عمومی سیستمها را به یک نظم جدید برای فرموله کردن قواعدی که در سیستم به صورت کلی به کار می ورد اطلاق نمود.

4.1       تعریف سیستم

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

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

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

کل سیستم دارای قابلیت ها ی مازادی است که اجزای آن جزء به جزء دارای ان نیستند .( ارتباط بین اجزا ء قابلیت های تازه ای به وجود می آورد .)

شناخت کل بدون شناخت جزء ، و شناخت جزء بدون شناخت کل امکان پذیر نیست .

درجه ی پیچیدگی یک سیستم وابسته به تعداد عناصروروابط بین آن عناصراست .

                                        

سیستم از لحاظ ساختاری شامل:

·        اجزاء سیستم

·        روابط بین اجزاء

·        محیط خارج سیستم

·        رابط با محیط

·        ورودی

·        خروجی

·        اهداف

·        محدودیت ها

دید گاه های کلی شناخت :

 

دیدگاه وظایف (Function ):  در روش های تجزیه و تحلیل مبتنی بر شناخت وظایف وعملکرد سیستم هاست .

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

 

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

 

موجودیت   (Entiry)  به آنچه در داخل سیستم درمورد آن اطلاعاتی نگهداری می شود . جزئی ازساختار سیستم است ، در واقع موجودیت ها عناصر ساختاری سیستم هستند، از ارتباط بین موجودیت ها ساختار ثابت سیستم مشخص می شود .

 

دیدگاه رفتار : مبتنی برشناخت واکنش  موجودیت ها ی سیستم در مقابل رویداد های مختلف است .

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

یک روش شناخت رفتار تعیین تاریخچه ی حیات موجویت ها است .

 

تاریخچه ی  حیا ت یک موجودیت نمایانگر تاُ ثیر رویدادها در تولد ، تغییرات آن موجودیت در طول حیات و مرگش می باشد.

 

دیدگاه شی ء گرا : مبتنی بر تجرید (Abstraction) اشیا ء و روابط بین آنهااست.

روش تجرید مبتنی بر تعیین مشترکات اشیا ء جهت شناخت اشیاء است .مبتنی بر شناخت کل

 

دیاگرام گردش داده ها نمایانگر دیدگاه وظایف است

 

دیدگاه یوردون :

 یک راه شناخت وظایف سیستم ها تعیین عملکردهااست .

                        

 

5         دیا گرام گردش داده ها    data flow diagram

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

·        دیاگرام DFD level 0 نشان می دهد که اطلاعات ورودی و خروجی در حالت کلی تحت چه پردازش هایی قرار می گیرند .

·        کدام واحدهای عملیاتی اطلاعات را از واحدهای خارجی دریافت / ارسال می کند .

·        هر کدام از واحدهای عملیاتی را یک پردازش گویند .

·        روی داده ها چه عملیاتی صورت می گیرد .

·        سیستم نرم افزاری اطلاعات را دریافت می کند ، تبدیل می کند و خروجی را تولید می کند .

·        در DFD     پردازش شرطی یا حلقه ها نشان داده نمی شوند فقط جریان داده ها نشان داده می شوند .

5.1      عناصر تشکیل دهنده ی DFD   

1.     خطوط جریان : نمایانگر جریان داده ها

o       با اسم نامگذاری می شوند که نشان دهنده ی داده ای که حمل می کنند هستند .

o       عدم وجود فعل

o       تداوم جریان داده بین سطوح مختلف

2.     موجودیت های خارجی :

o       منبع و مقصد داده

o       تمام اطلاعات روی سیستم از منبع خارجی می آیند

 

3.     پردازش      Process

o       با یک جمله امری کوتاه مشخص می گردد که تعیین کننده ی عملکرد پردازه است .

o       عملکرد دقیق پردازه ممکن است توسط یک دیاگرام گردش داده ی دیگر مشخص شود .

o       اگر پردازه ای به دیا گرام گردش داده گسترش نیابد ، پردازه جزئی گویند

o       عملکرد پردازه جزئی با شبه کد – جدول تصمیم گیری مشخص می شود

o       در صورتی که نمی توان یک اسم کوتاه انتخاب کرد ، احتمالا فرایند پیچیده است

فرایند باید ورودی و خروجی داشته باشد

 

4- انباره ها : مکانی برای حفظ و نگهداری داده ها و اطلاعات درون سیستم .

o       ممکن است برای خوانایی بیشتر یک انباره دوباره در نمودار تکرار شود

o       فقط در ارتباط  با پردازه ها هستند.

5.2           سطح بندی          DFD

o       می توان برای هر یک از پردازه ها دیاگرام گردش داده ی مجزا کشید .

o       جریان داده ها بین سطوح باید تداوم داشته باشد ( تداوم جریان داده)

o       پردازش ها و انبارها ی در ارتباط با یک پردازه در سطوح پایین تر به صورت موجودیت خارجی هستند .

o       اگر یک انباره یا پردازه درون یک پردازه باشد در سطوح بالاتر نمایش داده نمی شود

5.3      مزایای DFD   

o       یک نمایش ساده گرافیکی و غیر تکنیکی از سیستم  .

o       برای تبادل نظر بین تحلیل گر و کاربر مفید است .

o       مفید برای درک پیچیدگی سیستم .

o       مشخص کردن محدوده ی سیستم .

o       تکنیک بالا به پایین .

 

- برای برسی صحت  DFD   باید چند سوال را مد نظر داشت

o        کلیه پردازه ها فعل امری داشته باشد

o       هماهنگی بین داده های ورودی و خروجی

o       آیا می توان خطوط جریان داده را کاهش داد

o       بهتر است اگر خطوط جریان یک پردازه زیاد است آن را به چند پردازه تقسیم کنیم .

o       کلیه انباره ها باید حداقل یک ورودی و خروجی داشته باشد

o       موجودیت خارجی در ارتباط مستقیم با انباره نمی تواند باشد .

5.4         دیاگرم متن     context    diagram

o       اولین گام در شناخت وظایف و عملکرد سیستم ایجاد دیاگرام متن است .

o       این دیاگرام ارتباط سیستم با محیط اطراف را مشخص .

o       مشخص کننده ی محدوده سیستم .

o       نشان دهنده جریان ورودی و خروجی اطلاعات  بین سیستم و محیط است .

o       محیط اطراف یک سیستم را موجودیت های خاجی تشکیل می دهند  افراد – سازمان – سیستم دیگر

5.5      در دیاگرام متن

o       سیستم به صورت یک مستطیل نمایش داده می شود .

o       موجودیت های خارجی به صورت بیضی

o       جریان داده اطلاعات به صورت کمال های جهت دار

o       برای رسم دیاگرام متن برای یک سیستم پیچیده  بهتر است ابتدا سیستم را به زیر سیستم های کوچکتر تقسیم نمود .

o       در این حالت هر سیستم برای زیر سیستم دیگر به عنوان یک موجودیت خارجی  در نظر گرفته می شود .

o       هدف ارائه تصویر وشمایی کلی  از عملکرد سیستم است

 

 

 

 

 

 

 

5.6      مستند سازی دیاگرام متن باید شامل :

o       تشریح موجودیت خارجی

فرم تشریح موجودیت خارجی

نام موجودیت

     کد

شرح موجودیت

 

 

 

o       تشریح جریان داده

o       فرم تشریح جریان داده ها

 

 

 

 

 

 

6         مدل منطقی داده ها         Logical      data    model

o       نمایانگر روابط منطقی بین داده ها واطلاعات است

o       برای مدلسازی داده ی سیستم است که دیدگاه هر ساختار را نسبت به سیستم ایجاد می کند

این مدلسازی مشخص می کند :

                    - چه اشیاء داده ای توسط سیستم پردازش می شود.

                    - هر شی ء داده چه صفاتی دارد؟

                    - رابطه ی هر شی ء با اشیاء داده ی دیگرچیست ؟

o       برای ایجاد این مدل ابتدا باید داده و ارتباط بین آنها را به دست آوریم .

 

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

یک موجودیت دارای مشخصات زیر است :

 

. نمایانگر ساختار داده  - شامل خصوصیات 

. چندی رکورد وجود داشته باشد

. برای هر رکورد موجودیت یک کلید یگانه برای دسترسی موجود باشد

 

به منظور ایجاد این مدل از نمودار رابطه ی موجودیت  ERD   استفاده می شود . ERD   داده ها را مستقل از پردازش در نظر می گیرد .

 سه مسئله ی مهم در رسم ERD: 

                         شی ء داده

                         صفات توصیف کننده ی شیء داده

                         روابط شیء داده با دیگر اشیا ء

اشیاء داده : هر اطلاعاتی که در سیستم پردازش می گردد .

 

6.1      شناخت          Entity

o       تجزیه و تحلیل اسمی  : در شرح سیستم اسم ها را مشخص کنید .

o       در آوردن تمام داده هایی که سیستم به آن نیاز دارد.

o       صفات : خصوصیات یک شیء داده را مشخص می کند. یک یا چند صفت به عنوان نشانه به کار می رود .

o       روابط: ارتباطی که اشیا ء داده با یکدیگر دارند .

o       ارتباط می تواند  یک به یک، یک به چند، چند به چند  باشد.

o       با استفده از  ERD سیستم های بانک اطلاعاتی رابطه به دست می آید .

6.2       ترسیم مدل منطقی داده ها  ERD

o       شناخت موجودیت های سیستم.... مشخص کردن صفات ( فیلدها )

o       ترکیب یک یا چند فیلد به عنوان کلید یگانه

o       چگونگی ارتباط بین موجودیت ها

1)درجه ارتباط           2) قطعیت ارتباط                  3) نام ارتباط

 

  نکته : رابطه یک به یک حتی بین دو موجودیت رابا ادغام ان دو موجودیت می توان حذ ف نمود.

نکته : ارتباطات چند به چند موجب افزونگی در حجم داده می شوند.

 

 

 

 یک موجودیت دارای مشخصات زیر است :

o       باید نمایانگر ساختار داده ها و اطلاعات مورد توجه سیستم باشد .

o        چندین رکورد برای یک موجودیت وجود داشته باشد .

o       برای هر موجودیت یک کلید دسترسی یگانه موجود باشد.

 

نرمالیزه کردن ساختار داده ها

با ساده کردن روابط  بین خواص داده ها ، رابطه های نرمالیزه ایجاد می شود .

حداقل ساختار داده برای ذخیره کردن داده ها

در یک جدول نرمال ردیف ها مستقل از یکدیگرند

 

مرحله 1 نرمالیزه کردن

    تشخیص خاصیت های تکراری در روابط

   حذف آنها و ایجاد یک موجودیت جدید

مرحله 2

   آزمون خاصیت های غیر کلیدی و حذف خاصیت هایی که وابسته به بخشی از کلید ترکیبی        هستند و به کل کلید وابسته نیستند.

مرحله 3

    کلیه خاصیت های غیر کلیدی که از خاصیت های غیر کلیدی دیگر قابل دسترسی و یا محاسبه    هستند را حذف می کنند.

7         مدل سازی تاثیر اتفاقات بر موجودیت ها

موجودیت : رویدادی است که درون سیستم اطلاعاتی درباره آن نگهداری می شود

حال باید چگونگی تاثیر یک رویداد را  بر فایل ها و جداول درون بانک اطلاعاتی  بررسی کرد .

 

:Event

o       چیزی است که باعث تغییر اطلاعات یک موجودیت می گردد .

o       اتفاقی است در دنیای واقعی که موجب تغییر در سیستم می شود . 

o       یک رویداد ممکن است

o       آن چیزی که روی سیستم رخ می دهد  که می تواند از دنیای واقعی یا یک سیستم دیگر باشد .

مانند سفارش مشتری – فارغ التحصیل یک دانشجو

رویداد مبتنی بر زمان – اتمام دوران حساب ماهیانه

تغییر در شرایط درونی – کاهش اعتبار کاربر

يک رویداد باعث ایجاد، تغییر یا حذف  یک موجودیت می گردد.

 در این نمودار تاثیر رویداد ها بر یک موجودیت بدو تولد ، در طول حیاط و مرگ موجودیت داخل سیستم  برسی می شود

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

 

نمودار ELH    :

 

نمایانگر چگونگی تاثیر اتفاقات بر یک موجودیت از بدو تولد تا خاتمه آن موجودیت درون آن سیستم است .

- برای هر موجودیت  دوره ی زندگی مجزایی وجود دارد.

 

این نمودار ترتیب اتفاقاتی که روی یک موجودیت اعمل می شود را نشان می دهد .

در این نمودار درختی، ریشه موجودیت و اتفاقات برگ های درختی هستند .

مراحل تحلیل ساختیافته :

 

8         جمع بندی

o     نمودار رابطه موجودیت

o       نمودار رابطه موجودیت باعث شناخت کامل اشیاء داده ای را که ورودی و خروجی های سیستم هستند ERD    را باید به روش تکرار ایجاد کرد

o       لیست اسامی از سناریو استخراج شوند

o       در هر مرحله یک اسم در نظر گرفته شود و تحلیل گر ومشتری صحبت می کنند که آیا نیاز است اطلاعاتی ذخیره شود

o       آیا ارتباطی بین این شئ (با اشیاء ) دیگر بدون نام وجود دارد

o       اگر ارتباطی وجود داشته باشد تحلیل گر ومشتری یک یا چند زوج رابط – شئ را تولید می کنند

o       برای هر زوج رابطه رابطه شئ ، درجه و ضرورت مشخص شود .

o       صفات شئ مشخص شود

o       نمودار  ERD  مرور و سازماندهی شوند

o       مراحل یک تا هفت تکرار شوند 

 

o     ایجاد مدل جریان داده

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

o       با استفاده ازسطوح بالاتر جزئیات ، تجزیه ی تابعی ضمنی انجام می شود

o       ورودی و خروجی اولیه باید با دقت مشخص شوند.

o       تمام پیکان ها و مستطیل ها دارای نام های معنی دار باشند

o       تداوم جریا ن داده

o       تجزیه گرامی می تواند نقطه ی شروع خوبی باشد

 

ایجاد یک مدل جریان حالت

o       تغییر حالت نرم افزار را با استفاده از STD   مشخص بکنیم

 

فرهنگ داده

o        برای نمایش خصوصیات هر شی ء داده  و   Event های سیستم است

o       - شامل نام هر Entity   ویا  Event  است که مربوط به سیستم است .

شامل :

. نام –

.  نام مستعار –

. محل استفاده و نحوه ی استفاده – لیست از فرایند هایی  که این قلم داده  یا کنترل را استفاده می کند .

. تو صیف محتویات

. اطلاعات تکمیلی

 

خلاصه :  

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

 

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

 نمودار جریان داده به عنوان مبنایی برای تبدیل و پردارش داده است وایحاد مدل تابعی و تقسیم بندی تابعی

 مدل رفتاری با نمودار  STD  

 محتویات داده  با فرهنگ داده  

 

9         اصول و مفاهیم طراحی

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

o       طراحی نرم افزار یک فرایند تکراری است  که نیاز مندی ها را به صورت واضح برای پیاده سازی انتقال می دهد .

o       مهنسین نرم افزار وظیفه ی  طراحی سیستم کامپیوتری را دارن اما نیازمند مهارت های گوناگون  است .

o       بدون طراحی اولیه ریسک های پیاده سازی افزایش پیدا می کند.

o       طراحی با مدل های تحلیل شروع می شود .وکارهایی انجام می شود تا این مدل به چهار سطح از جزئیات طراحی تبدیل شود .

1- طراحی داده      2- طراحی معماری       3- طراحی رابطه ی کاری    4- طراحی مولفه

9.1      طراحی داده :

 


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

طراحی معماری :

رابطه ی بین عناصر ساختاری عمده ی نرم افزار را تعریف می کند .

 

9.2      طراحی رابط :

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

 

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

 

9.3      طراحی در سطح مولفه :

عناصر ساختاری معماری نرم افزاررا به توصیف مولفه های نرم افزار تبدیل می کند .

استفاده ازPSPEC           ،    CSPEC    و    STD  مبنایی برای طراحی می باشد.

 

9.4      فرایند طراحی

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

برای طراحی خوب پیشنهاد می شود :

o       طراحی باید تمام نیازهای مدل طراحی و نیازهای ضمنی مشتری را در نظر بگیرد.

o       طراحی باید راهنمایی قابل خواندن ودرک برای کد نویسی( coder) ، آزمایش گر (tester) و پشتیبان (maintainers)  باشد .

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

 

 

راهنمایی برای طراحی :                                   

o       یک طراحی باید ساختار معماری داشته باشد

o       الگوهای شناخته شده معماری پشتیبانی کند 

o       مکان پیاده سازی به صورت تکاملی را داشته باشد

o       طراحی باید ساختار سلسله مراتبی داشته باشد .

o       طراحی باید پیمانه ای باشد .( یعنی نرم افزار به طور منطقی به عناصری تقسیم شود که توابع و زیر توابع خاصی را اجرا میکند )

o       طراحی باید شامل انتزاع داده و انتزاع رویه باشد .

o       پیمانه ها باید حد اکثر استقلال را داشته را داشته باشد

( پیمانه : عبارت است از اجزا ء یک سیستم که دارای حداکثر استقلال در عملکرد است .)

o       طراحی باید رابطه هایی را به وجود آورد که پیچیدگی را کم کند .

o       پیچیدگی ارتباط بین پیمانه ها و محیط خارج

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

o       طراحی به وسیله ی یک روش تکراری به وجود بیاید و مبتنی بر مدل تحلیل باشد .

 

 

اصول طراحی :

 

o       فرایند طراحی باید به روش های مختلفی مبتنی بر نیازمندی ها توجه کند و دیگاه تونلی نداشته باشد .

o       طراحی باید از طریق مدل تحلیل قابل پیگیری باشد .

o       طراحی باید به استفده مجدد تاکید کند و چرخ رادوباره  اختراع نکند .

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

o       طراحی باید فاصله ی هوشی ( intelectual) بین نرم افزار و مسئله ی دنیای واقعی را کم کند .

o       طراحی باید قابلیت تغییر داشته باشد .(تغییر را سازماندهی کند )

o       طراحی باید رابطه ی متقابل بین پیمانه هارا به حداقل برساند .

o       اگر باید پردازش را تمام کند بتواند با موفقیت این کار را انجام دهد

o       طراحی کد نویسی نیست و کد نویسی ،طراحی نیست

o       طراحی باید در زمان ایجاد به کیفیت توجه داشته باشد نه بعد از آن

o       طراحی باید مرور شود تا اشکالات مفهومی آن برطرف گردد.

o       طراحی باید به گونه ای سازماندهی شده باشد که در شرایط غیر عادی با ملایمت پایین بیاید .

o       یک طراحی خوب هیچوقت منفجر نمی شود .، باید به گونه ای طراحی شده باشد در شرایط غیر عادی و در حالتی که باید یک فرایند را تمام کند بتواند با موفقیت این کار را انجام دهد .

 

9.5      طراحی رابط کاربر

 

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

1.     طراحی رابط میان مولفه های نرم افزاری

2.     طراحی رابط بین نرم افزار

3.     طراحی رابط بین انسان و کاربر

 

·        طراحی رابط کاربر یک واسط ارتباطی موثر بین انسان و کامپیوتر ایجاد می کند

·        طراحی رابط کاربر با شناخت کاربر ، وظایف و نیازهای محیطی آغاز می گردد .

·        بعد از شناخته شدن وظایف کاربر ، سناریوها ی کاربر برای شناخت اهداف و کارهای کاربر شناخته و تحلیل می گردند .

·        مجموعه ی این ها پایه ایی برای ایجاد طرح صفحه ، محل آیکون ها و منو ها می گردد.

·        در طراحی رابط کاربر شناخت افراد به اهمیت شناخت تکنولوژی است .

 

کاربر کیست ؟

چگونه یاد می گیرد با سیستم جدید کار کند ؟

کاربر چه انتظاری از سیستم دارد ؟

چگونه راحت تر می تواند باسیستم ارتباط برقرارکند ؟

 

سه قانون طلایی

کاربر را تحت کنترل در آورید .

بار فکری کاربر را کاهش دهید .

رابط را یکنواخت نمایید .

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

 

Place  user  in  control

·        مودهای تعاملی را به گونه ای تعریف کنید که کاربر را مجبور به کارهای غیر ضروری نکند .

·        یک مود تعاملی حالت فعلی سیستم است ، به عنوان مثال اگر در یک نرم افزار پردازش کلمه گزینه spell check انتخاب شود وارد مود spell chck  می شویم

·        کاربر باید بتواند به راحتی وارد یک مود تعاملی شود و به راحتی از یک مود تعاملی بیرون بیاید .

·        امکان تعامل انعطاف پذیر را به وجود آورید .

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

·        امکان برگشت وقفه به کاربر داده شود .

·        هنگامی که کاربر مجموعه ایی از اعمال را انجام می دهد این اجازه را بدهیم که کار دیگری شروع کند .

·        امکان customize  کردن نحوه ارتباط با سیستم را به کاربر بدهیم .

·        جزئیات تکنیکی از دیدگاه کاربر موقت سیستم پنهان باشد .

·        امکان تعامل مستقیم با اشیا ء ظاهر شده روی صفحرا داشته باشید .

 

بار فکری کاربر را کاهش دهید

·        کاهش تقاضا از حافظه کوتاه مدت

·        رابط  به گونه ای طراحی شود که نیاز به خاطر سپردن نداشته باشد 

·        موارد پیش فرض ایجاد کنید

·        ایجاد دکمه reset

·        امکان تعریف shortcut

·        طراحی رابط کاربر باید مبتنی بر مثالهای دنیای واقعی باشد

·        اگر مدل های گذشته انتظارات کاربر را فراهم کرده است ، تغییراتی در آن داده نشود .

 

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

مهندس نرم افزار یک مدل طراحی

کارشناس روابط انسانی یک مدل طراحی

کاربر نهایی یک تصویر سیستم

پیاده کننده سیستم یک مدل 

 

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

 

تحلیل وظایف کاربر ، وظایف و محیط

طراحی رابط  

ساخت رابط

اعتبار سنجی

 


مطالب مشابه :


الگوهای طراحی و معماری-2

من ،نرم افزار و زندگی . الگوهای طراحی و معماری-2. Domain Logic. Domain Model – بخش اول :




الگو های طراحی (Design Pattern)

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




الگوهای معماری(Architectual Patterns) -مدل های مرجع(Reference Models) - معماری های مرجع(Reference Ar

الگوهای معماری(Architectual Patterns) بین اجزا نرم افزار نگاشت شده است.از آنجا که یک مدل مرجع




الگوهای طراحی، محاسن و معایب (Design Patterns Pros & Cons)

مهندسی نرمافزار به دنبال کشف نمونه مانند الگوهای معماری وجود دارند که




الگوهای طراحی(desing pattern)

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




برنامه نویسی شی گرا - Object Oriented Programming

فرآیند توسعه نرم افزار الگوهای طراحی Design Pattern. انواع معماری های تولید نرم افزار :




بررسي و شناخت متدولوژي RUP

معماری نرم افزار مطابق نظر آقای Kruchen در معماری 4+1 از • تعیین الگوهای موجود و الگوهایی که




یک دوره آموزش کامل RUP

مفاهیم معماری نرم افزار شامل معماری نرمافزار، مدل مرجع، پیش ران‌های معماری، الگوهای




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

مهندسی نرم افزار. از هر اندازه و با هر معماری اجرا می شوند، همچنین الگوهای شناخته




این طرح برنده مسابقه طراحی معماری اندونزی شد

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




برچسب :