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

48
تابستان سال1394 هجری خودی رشینشگاه کابل دااینسدهء کمپیوتر س دانشکGuidelines for Making Software مان" یه وترتیب: محب تهستاد محمد رفیع "باهز"حت نظر: ا ت

Upload: muhibullah-aman

Post on 22-Jan-2017

206 views

Category:

Software


68 download

TRANSCRIPT

Page 1: راهکارهای طراحی نرم افزار ها   محب الله امان

رشیدیهجری خو 1394تابستان سال

دانشگاه کابل دانشکدهء کمپیوتر ساینس

Guidelines for Making Software

تهیه وترتیب: محب هللا "امان" تحت نظر: استاد محمد رفیع "باهز"

Page 2: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

1

تهیه وترتیب : محب هللا "امان"

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

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

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

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

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

به ام اسالمی وجیبهء چون دهم قرار تجاوز ویاهم تمسخر مورد را نباشد کامل ولو دیگری لسان نمیخواهم وهم .نویسم می هارا نوشته !اسالم؟ کدام اما .دهد نمی را اجازه این من شما یااینکه خبریم؟ بی ما آیا ؟ اسالمیته نوع چه این است؟ اسالم وجه کدام این همینه؟ اسالمیت آیا است؟ همین اسالم آیا !مسلمان آی تجاوز مورد را قشری کامل و اصیل زبان گرایی لسان و تعصب روی از که است پیامبری سنت این آیا میکنید؟ بازی اسالم نام با

اسالم گرامی پیامبر نزد خودرا جامعه از قشری لسان باالی شخوی صریح تجاوز با آیا ندارید؟ ایمان آخرت به آیا میدهید؟ قرار کودنید؟ شما یااینکه خبریم؟ بی ما آیا نمیکنید؟ حس شرمنده صداقت و همکاری ، همدردی ، همدلی ، برادری ، دوستی ، محبت ، آرامی صفا، بوی میدهد صلح بوی ، میشناسم من راکه اسالم .پرستی اجداد و تعصب ، افراط انتحار، ، ،ظلم چپاول ، رچو بوی تجاوز، بوی اینکه نه .میدهد وبا ”تماشاییست بهتر گلبته در گل “ اجدادمان قول به باتوجه بگذارید تان لسان در تانرا شیرین لسان خاص های واژه اگر میکنید لطف چی؟ یعنی آخر .بکشانید لجن به را دیگری های لسان نه و کنید کمرنگ تانرا لسان زیبایی نه ، دیگر لسان باالی ها واژه این تحمیل !تانرا متجاوزبودن ویاهم مانرا؟ مظلومیت یا تانرا؟ قدرت کنید؟ ثابت میخواهید را چی خداوند، رضای خاطر به یکبار بلکه من بخاطر نه کنند لطف میکنم توصیه هم است دار زهر برایشان هایم نوشته که دوستان به

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

خاموش اگر است چاه و نابینا که بینی می چون“ معروف المثل ضرب قول به ینهمچن و شود تبدیل دردها به ها آینده در ممکن __. ”است گناه بنشینی

تقاضامندم که با انتفاد ها ، پیشنهاد ها و نظریات نیک شان مرا دربهبودی محتویات این مجموعه مخلصانه ودر اخیر هم از تمام همصنفان عزیزم

رام نویسی افغانستان خدمتی کرده باشیم.یاری بخشند. تا باشد برای جامعهء پروگ

محب هللا "امان"با احترام

Page 3: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

2

تهیه وترتیب : محب هللا "امان"

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

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

ها دارای software developerازاینرو گفته می توانیم که امنیت وغیره را بوجود آورد. مؤثریت ، قابلیت اعتماد ، سهولت ،

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

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

می باشد که برای ساختن یک سافت ویر technical disciplineو یا مجموعهء از Frameworkسافت ویر انجنیرینگ هم پراسه ،

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

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

( در ارتباط s/w project managementکتینگ ، دیزاین وغیره( وچه درقسمت نگهداری آن )مارسافت ویر )تحلیل نیازمندی ،

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

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

دریافت نیاز های مشتری و تشخیص آن

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

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

مدیریت پروژه

باشد. وغیرهکنترول و قبول تغییرات آمدن در سافت ویرها

( ویا مجموعهء ازبرنامه programمیبریم که سافت ویر تنها یک برنامه )ما بدین نکته پی software engineeringبا درک مفهوم

شامل قوانین ، ویژگی ها ودستورالعملهای دیگری ازقبیل:( نیست بلکه programsها )

Documentation

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

Dependability

Efficiency

Security .وغیره میباشد

Software Process Software process عبارت از مجموعهء ( فعالیت هاactivities .می باشد که درنتیجهء آن یک سافت ویر ایجاد میگردد )

( با استفاده از لسان های پروگرام نویسی مثل جاوا باشد وهم scratchها می تواند شامل مراحل ایجاد سافت ویر از ابتدا ) activityو

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

ها بمیان آمده software process modelهایی مذکور به اشکال وانواع مختلف، به اجرا درآید بدین ملحوظ activityممکن است

که اساس سافت ویر سازی می باشد ، را شامل باشد.ذیل activityباید چهار software processاست ولی هر

Software Specification تعریف سافت ویر ویا اینکه نظربه درخواست مشتری ، سافت ویر چه کارهایی را باید انجام :

مشخص میگردد. activity، دراین (constraintرا بازدارد ) userوازچه کارهایی دهد

Page 4: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

3

تهیه وترتیب : محب هللا "امان"

Software Design and implementation این :activity شامل دیزاین وایجاد سافت ویر طوریکه مطابق به

software specification .باشد

Software Validation یعنی در این :activity سافت ویر بایدvalidate ( تایید)نیاز های مشتری را گردد تا وتثبیت

مرفوع می سازد ویاخیر.

Software Evaluation : اینactivity شامل تغییرات می باشد که مشتری بخاطر تکامل سافت ویر پس ازvalidation

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

می باشد. software evaluationمشتری جدید خود تکامل بخشیم شامل

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

Software Definition د باشد دراینصورت نیاز نداریم که برای ساختن این سافت از ابتدا خواسته شده، از قبل هم موجو

(scratchشروع کنیم بلکه با تعریف تغییرات ناچیز ، سا )فت ویر موجودرا بنابر میل ودرخواست مشتری جدید تکامل

(extend) .می بخشیم

فوق را تعریف میکنیم. activityهر sub activity که درذیل می باشد. sub activitiesفوق شامل چندین Activityهر

Software Specificationالف. softwareشخیص داده میشود. ودراین پراسه یک ( مشتری تrequirementsمرحلهء است که درآن نیازمندیها )

engineer سعی کند تاFunctional Requirements وNon Functional Requirements .را مشخص کند

Functional Requirements به نیازمندیها و خدمات گفته می شود که درسافت ویر سیستم باید موجود باشد ودرصورت

functional requirementها را مرفوع نساخته وناقص اطالق شود. وهمچنین نبود آن سافت ویر نیازمندی

دربرگیرندهء کارهایی که سیستم باید آنرا انجام ندهد نیز می باشد.Nonfunctional Requirement د که موجودیت آن درسیستم موثریت ، قابلیت وویژگی به نیازمندیهای گفته می شو

ها وغیره. constraintی در نبود آن سیستم ناقص شمرده نمی شوند مثال انواع مختلف سافت ویرهارا افزایش داده ول

های ذیل را تکمیل کنیم. sub activityباید software specificationبرای تکمیل

Feasibility Study( نیازمندی :requirement درک گردد و تشخیص گردد که آیا نیازهای مشتری میتواند )

د؟ آیا درخواست مشتری مطابقت با منابع سخت افزاری و تکنالوژی فعلی را دارد؟ آیا سافت کمپیوتری شو

ارزش ساختن رادارد؟ آیا هزینهء سافت ویر از توان مالی مشتری باال نیست؟ آیا ما توانایی ایجاد چنین ویر

سیستمی را داریم؟ و ....

درصورت امکان پابه مراحل بعدی ذیل میگذاریم.

Requirement elicitation and analysis استخراج و تحلیل نیازمندیها(: با توجه به مسلکی نبودن مشتری(

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

سازی میگردد. وبه )پیش نمونه( می باشد که درخواست مشتری روی کاغذ شبیه prototypeروش ایجاد یک

مشتری نشان داده می شود. ونظریات و معلومات مشتری گرفته می شود.

Requirement Specification دراین :activity ( تعریف سافت ویرsoftware definition .تعیین میگردد )

رق نشان داده درحقیقت نیازمندیهای استخراج شده و تحلیل شده می باشد که برروی و software definitionو

تا منحیث یک سند ویا ثبوت مبنی برنیازهای مشتری بوجود آید یادمیگردد. documentationمی شود و به نام

نیازمندیها و افکار مشتری مقصر شناخته نشود.درصورت تغییر تیم سافت ویر سازیتا

Requirement Validation( داکمنتیشن :documentation ساخته شده )شان داده شود تا تکمیل به مشتری ن

گردد.وتایید بودن آن بررسی

Page 5: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

4

تهیه وترتیب : محب هللا "امان"

(Software Design and Implementationب. دیزاین و تطبیق سافت ویر )

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

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

Architectural Design دراین :activity یکGeneral view یاblock diagram تمام یک سافت ویر ایجاد گردیده و

مشخص میگردد. همراه با ارتباطات بین شان (sub System) مادیول ها

Interface Design دراین :activity انترفس بینcomponent انترفس بین های موجود در یک سافت ویر و همچنین

user وsystem ها مهمترین آن . البته در دیزاین انترفس ها فکتورهایی است که باید مدنظرگرفته شودکهدیزاین میگردد

می باشد. ومطابق میل مشتری بودن آن بودن آن user friendly آسانی در استفاده ،

Component Design دراین مرحله موقعیت هر :component موجود درسیستم وچگونگی عملکرد آن مشخص

میگردد.

Database Design دراین مرحله ساختار دیتای سیستم را واینکه به چه شکلی در دیتابس ها ذخیره گردد را دیزاین :

میکنیم.

Page 6: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

5

تهیه وترتیب : محب هللا "امان"

می باشد که input designهای سه بخش رادیزاین میکنیم. بخش اول activityین ماقسمیکه درشکل فوق میبینید درمرحله دیزا

می باشد Design activities، وتشریحات دیتا می باشد. قسمت دوم requirement specificationها ، platformشامل دیزاین

می باشدکه درآن Design outputمت سوم هم ها ودیتابس دیزاین میگردد. وقس componentکه درآن انترفس ها ، ساختار ،

اشکال خروجی دیتا را دیزاین میکنیم.

Software Validationج. مشخص وتایید می شود که آیا سیستم از پس تمام نیازمندیها برمی آید ویاخیر؟ ودرصورت activityقسمیکه قبال ذکر کردیم دراین

ذیل می باشد. activityوشامل سه می کنیم. testممکن سیستم را با دیتای مشتری

Development Test کارکرد وعملکرد هر :component به شکل جداگانه توسطdeveloper آزمایش وبررسی ،

(test.میگردد ) هرcomponent .می تواند کالس ها ، فنکشن ها مادیول ها وغیره باشند

System Testing کارکرد وعملکرد تمام :component ها به شکل ( یکجاییintegrated .بررسی میگردد ،)

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

Acceptance Testing آخرین مرحلهء از :testing توسط عملکرد ، وقابلیت رفع نیازمندی مشتری می باشدکه

product owner .و با دیتای مشتری آزمایش میگردد

Page 7: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

6

تهیه وترتیب : محب هللا "امان"

:Software Evaluationد.

فعلی ازقبل نیز سافت ویر های موجود باشد ویاهم بعضی اوقات برای ساختن یک software definitionممکن است مشابه به

(flexibility( کنیم. ازاینرو انعطاف پذیری )incorporateسافت ویر ممکن دو ویا اضافه تراز دو سافت ویرموجودی را متحد )

ها می باشد. ودر صورت که سافت ویر های انعطاف پذیر مشابه software developerل برای یک سافت ویر مهم ترین اص

را تکمیل software processهای activityازقبل به شکل آماده داشته باشیم نیازی نیست دوباره تمام نیازمندیهای مشتری فعلی

دی مشتری را مرفوع سازیم واین تغییرات هم ممکن بدلیل در تضاد کنیم. بلکه با تغییرات آوردن در سیستم موجودی میتوانیم نیازمن

درسافت ویر بیاید.های هاردویر وسافت ویر موجود، platformبودن

Page 8: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

7

تهیه وترتیب : محب هللا "امان"

Prototyping دریافت ها ، problem، تشخیص نیازمندی های مشتریواستخراج بهترتثبیت ، developerبین مشتری و رفع غلط فهمی ها برای

هارا componentاکثرا شکل انترفس ها وموقعیت ها ، وهمچنین دیزاین سافت ویر، problemبرای غلبه بر راه های حل

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

functionality های ابتدایی سیستم می باشد که هم در مرحلهءsoftware specification وهم در مرحلهءsoftware design از

آن استفاده میگردد.

Prototype .باید شامل مفاهیم ذیل باشد

Technical issue موضوعات تخنیکی که درزمان ایجاد :documentation .پیش بینی گردد

Work Flow and Task Flow یعنی چگونگی ارتباط و :interactions دیول ها بخاطر تکمیل یک نیازکه ها بین ما

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

شکلScreen و طریق نمایش اطالعات

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

شما ارایه کنیم.

گروپ هر نوع سافت ویری را که در ذهن شان خطور میکرد ویااینکه دوست داشت پیشنهاد میکرد ونوشته درین فعالیت هرعضو

امتیاز می دادند وسپس امتیازات داده شده هر 15میشد و سپس برای هر سافت ویر پیشنهاد شده ، هر عضو گروپ از صفر الی

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

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

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

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

هایی که در خانه به عنوان وظیفهء خانگی به کمک همگروپان تشکیل prototype دراینجاو خودش میباشد ( را با جزییات بیان کند.

یل می بینید. دادیم در ذ

Page 9: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

8

تهیه وترتیب : محب هللا "امان"

Page 10: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

9

تهیه وترتیب : محب هللا "امان"

Page 11: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

10

تهیه وترتیب : محب هللا "امان"

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

Page 12: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

11

تهیه وترتیب : محب هللا "امان"

Software Process Models Software Specification ،Software Design and یعنی مهم activityهمانطوریکه قبال اشاره کردیم برای تکمیل چهار

implementation ،Software Validation وSoftware Evaluation روش ممکن به طریقه های گوناگون عمل شود که

softwareبه عبارت دیگر میتوان گفت که نامیده میشود. Software process modelبه نام ها activityنمایش دادن وطریقهء

process model عبارت ازیک چهار چوب برای پراسس ها(process framework) می باشد که میتوانیمActivity هارابه روش

ویا یک سیستمی دیگری چگونه با سیستم فعلی ارتباط userوهمچنین میتوانیم به بسیار آسانی نشان دهیم که بهتر درآن نشان دهیم.

برقرار میکند.

اینکه چطور وچگونه این عمومیات موجود وتشخیص شده در تعریف سافت ویرها و ها software process modelیعنی در

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

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

Water Fall Model

Specification ،Design and implementationرا که عبارت از software processهای اساسی یک activityدراین مادل

،Validation،Evaluation می باشد به بخش های جداگانه تقسیم نموده ودرآن طوری عمل میشود که تا تکمیل نشدن یک پراسه

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

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

ها مجبور هستیم تا سیستم را دوباره از شروع problemبا اندکی تغییر در نیازمندی ویا هم وقوع حرکت کنیم درغیر آنصورت

ین کنیم.دیزا

دیاگرام ذیل بررسی هزینه در مادل فوق را نشان میدهد

Page 13: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

12

تهیه وترتیب : محب هللا "امان"

Incremental Model

دیگری می کنیم وبدین activityتکمیل و بررسی گردیده و سپس شروع به کوچک تشخیص ، activityدراین مادل یک

خصوصیات ، versionنی در هر یع ( از سافت ویر بدست می آید.versionsنمونه ها ) activityترتیب با تکمیل هر

استفاده از این مادل زمانی موثر است جدیدی را بدست میاوریم. versionویژگیها و قابلیت های جدیدی را اضافه کرده و

و نیازمندی بعدی خودرا ارایه دهد. testآنرا activityکه مشتری شخص فعال باشد تا به مجرد تکمیل شدن یک

ینه را برای تکمیل هر بخش نشان میدهد.جدول ذیل ارزیابی هز

Reuse-oriented software engineering

Page 14: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

13

تهیه وترتیب : محب هللا "امان"

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

component ها وactivity های مختلف را باهم دیگرintegrate را از آن به دست می آوریم. نموده وسپس مادل جدید

جدول ذیل بررسی هزینه را درین مادل نشان میدهد.

Agile Software Development & Project Management درآن بخش software processاین مادل در حقیقت خوبی های تمام مادل های فوق را جمع نموده است و برعالوهء بخش

project management دراین مادل که شباهت زیاد تر با است. نیز شاملincremental model دارد بطور منظم و غیر منظم

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

هایی معاصر ازاین روش استفاده می software developerاکثرا منحیث یک عضو از تیم سافت ویر سازی محسوب میگردد.

معرفی نموده است که عبارتند از: software developmentو project managementکنند. این روش قوانین جدید را برای

تیم زدرین مادل به مشتری بلندترین اولویت داده میشود که باید راضی نگهداشته شود. ازاینرو مشتری به عنوان یک بخش ا

شمرده میشود.

.در پذیرفتن تغییرات از مشتری خوشروی باشید ولو اینکه باعث تأخیر در ساختن سافت ویر شود

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

در زحمات را متحمل شده باشید.ندارد به مشتری خودداری کنید ولو هر ق outputکه

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

کرده باشند.

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

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

.جریان کار و پیشرفت آن باید بررسی گردد

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

تمام پراسه ها ویاactivity هایی که انجام می شود باید به شکل مسلسل و منظم ازرویassembly line .صورت گیرد

Simplicityپراسه ها طوری ساده شود که افراد تیم هریک بخوبی وظیفهء خودرا دانسته و آنرا انجام دهند.: باید

اعضای تیم باید خودراorganize .کنند

Page 15: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

14

تهیه وترتیب : محب هللا "امان"

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

د که هر فرد می تواند یک تیم باشند.متشکل از افراد ذیل می باشن agileتیم

Product Owner (customer): فرق عمدهءagile model باسایر مادل ها دراین است که درین مادل مشتری یک عضو از

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

ت ویر میباشد.خصوصیات ساف

Manager (SCRUM Master): شخصی است که منحیثproduct owner برای تیم ها می باشد. یعنیrequirement

ونظریات مشتری را مدنظر گرفته و تیم های دیگر را مدیریت میکند. ودرحقیقت منحیث یک انترفس بین تیم های سافت

ی باشد.میباشد که باید تخنیک product ownerویرسازی و

نشان میدهند. Agile software developmentمراحل ذیل طریق تکمیل پراسه هارا در

Product Backlog

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

ین ء آخری سیستم تمام اافراد تیم سافت ویر سازی تعریف می شوند تا نسخه از نیازمندیهای سافت ویر می باشد که توسط تک تک

Non functional requirementو functional Requirementتمام product backlogنیازمندیها را برآورده بسازد.یعنی در

مشخص میگردد.

Sprint Planning ها وبخش ها تقسیم میگردد وبه هر بخش مذکور وقت مناسب در نظر phase ها و پراسه های موجود به activityدراین مرحله تمام

گرفته می شود.

Sprint Backlog

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

sprint یاد میگردد وبرای هرsprint را مدنظر میگیریم البته انتخاب الی دوهفته( 1موال )معوقتsprint که اول باید تکمیل گردد

صورت میگیرد. product ownerتوسط

Page 16: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

15

تهیه وترتیب : محب هللا "امان"

Daily Scrum

برای هماهنگی بین افراد تیم و همچنین رفع مشکالت همه روزه جلسه پانزده دقیقه یی برگزار میگرددکه ناگزیر تمام افراد پروژه باید

:که درآن هر عضو ویاهر تیم یرد. درآن سهم بگ

مقدار کاری را که بعد ازآخرینdaily scrum .انجام داد بیان میکنند

مقدار کاری راکه تاdaily scrum .بعدی انجام خواهند داد بیان میکنند

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

Born Down Chart

اساس یعنی به مقدار کار انجام نداده شده نظر به وقت باقیمانده استفاده میگردد. عبارت از چارت است که برای مانیتورینگ وبررسی

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

Sprint Review

میکنیم. analyzeنموده reviewکارهای صورت گرفته را sprint دراین مرحله از میکانیزمی استفاده میگردد که درختم هر

Page 17: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

16

تهیه وترتیب : محب هللا "امان"

Requirement Engineering Requirement عبارت ازتعریف و تشریح یک پراسه یاactivity می باشد که یک سافت ویر سیستم باید آنرا انجام دهد. و همچنین

را serviceابه عبارت دیگرشکل نظری ومتنی یک پراسه و وی ( که پراسه مذکور انجام ندهد.constraintsتعریف محدودیات )

یاد میکنند. requirementهمراه با درنظرداشت محدودیات آن به نام

Requirement Engineeringو بررسی میگردد به نام documentingها تشخیص ، تحلیل ، Requirementوپراسهء که درآن

ت ونیازمندیها جمع آوری شده و تشخیص میگردد که سیستم باید چه کارهایی را انجام دهد یعنی پراسهء که درآن ضروریا یاد میگردد.

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

د تقسیم گردیده و درهر بخش ( نیازمندیها به بخش هایی خورproblemsبخاطر کاهش مشکالت ) software engineeringدر

مشخص میگردد که سافت ویر کدام پراسه هارا انجام دهد و کدام پراسه هارا انجام ندهد.

تقسیم میگردد. System Requirementو User Requirementنیازمندیها به دوبخش Requirement Engineeringدر

User Requirement به نیازمندیهایHigh Level ه می شود که سیستم باید به وکلی گفتuser ها بدهد واینuser می تواند یک

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

پردازیم.

ها userمشخص شده باشد. و پراسه ها را برای این است که به شکل زبان انسانها و دیاگرام ها high level)هدف از نیازمندی

مشخص کند.(

System Requirement به نیازمندیهای گفته می شود که مشخص می کند چطور پراسه ها ، خدمات و عملکرد موبه مو تطبیق

گردد. وحاوی معلومات مکمل دربارهء آنها می باشد.

تقسیم میگردد. Non Functional Requirementو Functional Requirementپراسه ها از لحاظ اولویت نیز به دو بخش

Page 18: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

17

تهیه وترتیب : محب هللا "امان"

Functional Requirements .به نیازمندیهای اطالق میگردد که در صورت نبود آن سافت ویر سیستم ناقص پنداشته می شود

آن کارایی به ویژگیهای اضافی وخصوصیات گفته می شود که درصورت موجودیت nonfunctional Requirementsدرحالیکه

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

است درحالیکه خصوصیات اضافی دیگری از قبیل هارن ، بریک وغیره Functional Requirementیک handleداشتن تایر ،

Nonfunctional Requirement است ) البته بایسکل ربطی با سافت ویر ندارد ولی برای درک بهتر موضوع این مثال آورده شده

است.(

Functional Requirement هم به دو بخش تقسیم میگردد

Functional User Requirements نیازمندیهای اساسی که به :user .کمک می کند تا کارآیی سیستم را درک کند

Functional System Requirement.نیازمندیهای اساسی که سافت ویر برای کامل بودنش به آن نیاز دارد :

Nonfunctional Requirement :به سه بخش تقسیم میگردد

Product Requirement ویژگیها ونیازمندیهای که :Behavior از قبیل سرعت عملکرد سافت ویر را خوبتر می سازد

عبارتنداز:این نیازمندیها انوع مختلفی دیگری دارد که وغیره. ز، قابلیت اطمینان مقدار حافظه مورد نیاسیستم ،o Usability Requirements : نیازها ومعلوماتی که برای بهتر شدنusability .سافت ویر است

o Efficiency Requirement: .معلومات که به سافت ویر کمک میکند تا به شکل موثر تر کارخودرا انجام دهد

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

Space Requirementکه به سافت ویر کمک میکند تا از : معلوماتspace ومنابع کمتر استفاده

فضای کمتر بگیرد. RAMکنند. ودرمیموری

o Dependability Requirementات می باشد که معلوم : حاویuser هارا از نگرانی از دست دادن معلومات

شدن سیستم هایشان ، بیرون میکند. failشان ولو با

o Security Requirement: .شامل نیازمندیهای که مشکالت امنیتی سافت ویر را رفع میسازد می باشد

Organizational Requirement: یر که از پالیسی ها و دستورالعملهای نیازمندیهای وسیع وگسترده سیستم سافت و

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

o Environmental Requirement :

o Operational requirement.نیازمندی هایی که چگونگی استفاده از سافت ویر را مشخص میکند :

o Development Requirement لسان پروگرام نویسی و محیط :development یک نرم افزار را مشخص

میکند.

External Requirement:.وشامل شامل تمام نیازمندیهای که از فکتور های خارجی باالی سیستم اثر میگذارند می باشد

انواع ذیل می باشد.o Regulatory Requirementباید برای تنظیم واستفاده از سافت ویر چه : مشخص شود که تنظیم کننده سیستم

کارهایی باید انجام دهد.o Ethical Requirement.مشخص میکند که آیا سیستم قابل قبول برای مشتری می باشدویاخیر :

o Legislative Requirement :.باید مشخص شود که سافت ویر ساخته شده حقوقی )قانونی( عمل کند

Accounting Requirement

Safety/Security Requirement

رانشان میدهد. Nonfunctional Requirementدیاگرام ذیل تمام این تقسیم بندی های

Page 19: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

18

تهیه وترتیب : محب هللا "امان"

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

صنف تکمیل نمودیم خدمت تان ارایه میکنم.

functional requirementاین فعالیت باید به روشی تکمیل می شد که شاگردان به دو حصه تقسیم شوند ویک بخش از شاگردان

Nonfunctional Requirementرا جمع آوری کنند و بخش دیگری از شاگردان ATM (Automatic teller machine)سیستم

سیستم مذکور را جمع آوری کنند.

این سیستم که توسط گروپ دیگر شاگردان ارایه داده شد و توسط استاد تایید گردید عبارت Functional Requirementکه بخش

است از:

Withdraw

Check Balance

Security

Count money وغیره

آن عبارت اند از : NonFunctional Requirementوبخش

Secure Screen

Billing

Manual or Help

Voice System

Alarm during Security problem

Changeable Language

Taking ATM Cart before receiving money

Additional battery or UPS

Report if many is less than 2000$

وغیره

Page 20: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

19

تهیه وترتیب : محب هللا "امان"

Architectural Design and System Modeling

Architectural Design architectural designتعیین میگردد یعنی architectural designبا استفاده از (Overall Structure) ساختارکلی یک سیستم

( شود organizeمیبااشد که تعیین میکند که یک سیستم چگونه باید تنظیم ) Designو Requirement Engineeringارتباط دهندهء

ها باید به چه componentت وهمچنین ارتباط بین نیاز اس ها componentکدام (requirementsرای دیزاین آن با توجه به )و ب

باید مشخص کند که چگونه یک سیستم با استفاده از مجموعهء (architectural Model) که نتیجهء تکمیل این مرحله شکل باشد.

component .های ارتباط یافته تنظیم شده است

Architectural Design برای گرفتن بهترrequirement مشتری وهمچنین به منظور مذاکره وتبادل نظر با استفاده کننده جدید از

طراحان و مشتریان اهمیت دارد.گان ،

اندازه هایی مختلف را دیده ، Objectرا برای یک سیستم رباط که میتواند architectural designبطور مثال شکل دیاگرام ذیل

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

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

ال میدهد.انتقال نموده و سپس آنرا انتق

Page 21: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

20

تهیه وترتیب : محب هللا "امان"

System Modeling

انداخت و نمایش داد. یعنی اینکه inputProcessing Outputبصورت عادی هر سیستم کمپیوتری را میتوان در قالب

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

( آن چی می باشد. outputمیدهند و سپس دستورات و معلومات وارد شده به چه نحوی پراسس میگردد و نتیجهء )

این قالب نمود که عبارت اند از: مچنین بعضی از ویژگیهای دیگری را نیز میتوان ضمیمهءه

User Interface

Maintenance

Self-Testing Process

( میتوانیم input ،process ،output ،user Interface ،self-Testing Processبا در نظرداشت تمام موارد فوق الذکر )

را دیزاین کنیم که منحیث مجموعهء از اساسات سافت ویر در مراحل بعدی به کار میرود. system componentمادل

بطور مثال: سیستمی را مثال میدهیم که باکس ها را روی یک مسیر تنظیم می کند هرباکس توسط بارکود که درآن نمبر بخش

سه برای جابجایی باکس ها وجود دارد که باکس ها با استفاده از مربوطهء آن نصب است شناسایی میگردد و درپایان این مسیر شش قف

به قفسه های مشخص قرار میگیرند. PCو bar code readerیک

Page 22: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

21

تهیه وترتیب : محب هللا "امان"

را برای سافت ویر فوق الذکر نشان میدهد. system modelجدول ذیل

Page 23: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

22

تهیه وترتیب : محب هللا "امان"

System Design Using UML Model چیست؟

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

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

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

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

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

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

Modeling language چیست؟

Modeling language ، عبارت از لسان مصنوعی است که معلوماتknowledge وسیستم ها را دریک ساختار که با استفاده از

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

ی باشد.سازی م فهم برای تمام تیم سافت ویر

به عنوان لسان ستاندارد به UML (Unified Modeling Language)از

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

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

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

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

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

استفاده میگردد می باشد.

Page 24: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

23

تهیه وترتیب : محب هللا "امان"

اشاره میکنیم. UML Diagramدرذیل به بعضی از انواع

1. Class Diagram

یک سیستم را نمایش میدهد واین دیاگرام همانند یک ستون فقرات برای تمام (static structureت )این دیاگرام ساختار ثاب

مشخص objectکه هر کالس درآن یک طرح کاری را برای می باشد. (object orientedسافت ویرهای شی گرا )

رام کالس ها و ارتباط بین شان تشخیص ودراین دیاگ ها میباشند. methodها و attributesمیکند. ومتشکل از مجموعهء

میگردد که بعدا به تفصیل مورد مطالعه قرار میگیرد.

نمایید. که درینصورت codingنوت: همیشه کوشش کنید که اوال کالس دیاگرام را ترسیم نمایید و سپس ازروی آن

(forward engineering نامیده میشود واگراوال )coding سم گردد این عملیه به نام شود وسپس دیاگرام رreverse

engineering .یادمیگردد

2. Package Diagram

چندین کالسی که به منظور تکمیل یک عمل مورد می باشد که class diagramاین دیاگرام در حقیقت یک بخش از

ه سازی وارایه بهتر ها برای ساد developerبعضا ( قرار میگیرند. کهpackage)استفاده قرار میگیرند در یک بسته

ها نمایش میدهند.قرار (package( را دسته وبندی وبه شکل بسته ها )elementصر )اعن؛ارتباطات بین عناصر سیستم

شکل ذیل:

Page 25: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

24

تهیه وترتیب : محب هللا "امان"

3. Use Case Diagram

از سیستم را نشان میدهد. یعنی این دیاگرام واضح میسازد که actorاین دیاگرام چگونگی روش کار و طرق استفاده یک

actor چگونه با سیستم به تماس شده وfunctionality سیستم نظر به فعل وانفعالuser .ومتشکل از چی میباشدactor

ها می باشد. use caseها و

یاعمل که میخواهد interactionهمرای نام actorsدیاگرام عبارت از نام use caseنظر به شکل فوق گفته میتوانیم که

میباشد. interaction typeانجام دهد و

4. State chart Diagram

state chart diagram که به نامsequence diagram نیز یاد میگردد دیاگرام است که ارتباط بین کالس هارا در

Page 26: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

25

تهیه وترتیب : محب هللا "امان"

userهای interactionها یا حاالت مختلف سیستم را نظر به stateمراحل مختلف نشان میدهد. یعنی این دیاگرام

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

0. Activity diagram

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

کالس هایی بررسی در (operationعملیات )درآن ی یک سافت ویررا ترسیم شدهیعنی در این دیاگرام جنبهء دینامیک

( ، work flowمیگردد که باعث تغییر حالت سیستم میگردد. بصورت عادی این دیاگرام برای نشان دادن جریان کاری )

business process ( و عملیات داخلی یک سیستمinternal operation) .استفاده میگردد

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

UML Drawing tools استفاده میگردد که چند نوع مشهور آن عبارت اند از: UML Diagramsپروگرام های زیادی برای ترسیم

UMLet http://www.umlet.com LucidChart https://www.lucidchart.com

Page 27: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

26

تهیه وترتیب : محب هللا "امان"

ArgoUML http://argouml.tigris.org/

Use Case Diagram می باشد که به منظور ارایه ونمایش UMLیکی از دیاگرام های بسیار مهم use case diagramهمانطوریکه قبال هم اشاره کردیم

dynamic behavior ( .یک سیستم مورد استفاده قرار میگیردdynamic behavior ز عبارت اbehavior هایی سیستم درحالت

بسیار مهم وحیاتی است که از آن به مقاصد مختلفی از static behaviorنسبت به dynamic behaviorاجرا می باشد( و نمایش

قبیل:

جمع آوری ضروریات یک سیستم

( دیزاین یک نمای بیرونیoutside viewیک سیستم )

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

نمایشinteraction و فعل انفعال بین ضروریات و یاهمactors .ها

Part of Use Case

Use case Diagram متشکل ازactor, use case وassociation .که می باشدactor ها میتواند شامل اشخاص و یا سیستم

نحو ارتباط و associationو functionalityعبارت از use caseهمین ترتیب دیگری باشد که با سیستم ارتباط برقرار میکند وبه

communication اکتور را باuse case .نشان میدهد

Page 28: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

27

تهیه وترتیب : محب هللا "امان"

use case diagramsطریقهء ترسیم

ها مشخص گردد. وسپس از ستاندارد associationها و functionalityها ،actorاوال باید use case diagramبرای ترسیم

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

Type of relationships

1. Generalization (inheritance) : بدین معنی که بخش ها و ویژگیهای اضافی به یک بخش از سیستم اصلی اضافه شده

به شکل ذیل نشان use case diagramهایی جدید اضافه میگردد. وباید در featureعمومی که درآن caseباشد. یعنی

داده شود.

2. Extends برقرار میکنند. ودر : ارتباط بین دوپراسهء است که بسیار به ندرت بین هم ارتباطuse case diagram به شکل

ذیل نمایش داده میشود.

3. Include زمانیکه دو ویاچندین :use case دارایbehavior های مشابه باشند اینbehavior مشابه را به یک های

use case جدید تبدیل میکنیم و سپس تمامuse case ها همانuse case مشترک راinclude میکنند و در پهلوی آن

های اصلی use caseهای مشترک با use caseو های خاص خودشان را نیز داشته باشند. behaviorمیتوانند خواص و

کار می نماید.

Page 29: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

28

تهیه وترتیب : محب هللا "امان"

در اشکال ذیل واضح شده است. use case diagramحاالت ممکنه در یک

طور ذیل نمایش داده میشود. use caseهمراه با یک userارتباط یک .1

طور ذیل نمایش داده میشود. use caseباچندین userارتباط یک .2

3. Generalization بینCms Admin وUser طوریکه میدانیم هرAdmin بازهمuser .شمرده میشود

4. Generalization بینCms admin ،Customer وAgent همراه باUser طوریکه میدانیم هرcustomer, agent و

Cms admin یکuser شمرده می شود درینجا در حقیقتUser یکgeneral case شمرده میشود که مشخصات و

Page 30: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

29

تهیه وترتیب : محب هللا "امان"

behavior سهcase .دیگر را دارا میباشد

بسیار کم Loginبا توجه به اینکه در پراسهء registerو login, reminderبه نام use caseدر سه extendsرابطهء .0

استفاده کنیم. registerویا هم request password reminderکه از پراسه های اتفاق می افتد که بخواهیم

.confirm registerو registerبین includeرابطهء .6

Page 31: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

30

تهیه وترتیب : محب هللا "امان"

را نشان میدهد. use case diagramفاده در وشلک ذیل هم تمام اجزای قابل است .7

ترسیم گردیده است. ATM Machineیک use case diagramقرار شکل ذیل

Page 32: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

31

تهیه وترتیب : محب هللا "امان"

Page 33: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

32

تهیه وترتیب : محب هللا "امان"

Class Diagram یک سافت ویر را نشان static viewنیز نامیده میشود عبارت ازدیاگرام است که structural diagramکالس دیاگرام که به نام

ها می باشند وچطور بین هم ارتباط دارند. این دیاگرام behaviorها و attributesهد که کالس ها شامل کدام میدهد یعنی نشان مید

به مقاصد مختلفی از قبیل:

Visualize کردن شکل ثابت یک سافت ویر

( تشریحdescribeقسمت های مختلف سافت ویر )

Document کردن سافت ویر

ساختنexecutable code یشن وغیره استفاده میشود.یک اپلیک

کالس ها را واضح نموده که با استفاده از این دیاگرام کالس ها به بسیار (behavior( و اعمال )Attributeاین دیاگرام مشخصات )

وهمچنان میگردد.(mapتطبیق ) (Object Oriented Programming languageآسانی به لسان های پروگرام نویسی شی گرا )

( ها نیز شامل است.constraintsس دیاگرام محدودیات )در کال

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

کالس ها

انترفس ها

Association ارتباطات()

Collaboration )همکاری ها بین کالس ها (

Constraints ) محدودیات(

اهداف کالس دیاگرام

یزاین و تحلیل دstatic view یک سافت ویر. یعنی تنهاcomponent هارا میتوانیم با استفاده از کالس دیاگرام نشان

دهیم.

تشریح مسئولیات سیستم

Forward engineering and reverse engineering یعنی اینکه میتوانیم از روی کالس دیاگرام یک سافت ویر را

develop کنیم که درین حالت forward engineering یادمیگردد وهم میتوانیم از رویcode ها کالس دیاگرام را

یادمیگردد. reverse engineeringترسیم کنیم که این حالت به نام

درزمان ترسیم کالس دیاگرام باید نکات ذیل را مد نظر بگیریم.

ا معنی و با مفهوم باشند.نام های کالس ها باید واضح کنندهء کارهای که میکنند باشند یعنی ب

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

( مسؤلیات سیستمattributes وmethods).هاباید به شکل واضح معرفی گردند

برای جلوگیری از پیچیده شدن دیاگرام تنهاproperties وmethod های اساسی یک کالس را نشان میدهیم واز نشان

ل اضافی در دیاگرام صرف نظر میکنیمدادن مشخصات و افعا

.نوع ، هدف و وظیفهء کالس باید مشخص شود

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

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

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

کالس ها: یک بخش مهم از کالس دیاگرام می باشد که هرکالس متشکل از:

نام کالس

( مشخصاتattributes که درجاوا به نام :)field .یاد میشود

Page 34: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

33

تهیه وترتیب : محب هللا "امان"

( افعالoperation or behavior) .که در جاوا به نام متود ها یادمیگردد

Association:در کالس دیاگرام نشاندهندهء ارتباط بین دوکالس می باشد طورذیل :

Role متنی است که به قسمت فوقانی یک :association نوشته میگردد وهدف ارتباط را واضح میسازد. وبا استفاده از آن میتوانیم

association .های یک کالس را فرق کنیم

Multiplicity که یک کالس چند : باید واضح شودobject کالس دومی را میتواند داشته؟ واین توسط نمبر ها در انجام های

association واضح میگردد. یعنی همزمان چندobject یک کالس میتواند منحیثinstance field در کالس دیگری استفاده

Page 35: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

34

تهیه وترتیب : محب هللا "امان"

داشته instance( و درصورتیکه بینهایت 1) associationداشته میتوانست در انجام instanceگردد. درصورت که تنها یک

داشته planeتنها یک flightدر دیاگرام ذیل نشان میدهد که هر ( استفاده میکنیم. مثال:*از ) associationمیتوانست درانجام

داشته باشد. flightمیتواند و برعکس هر پرواز میتواند چندین

را واضح میکند می باشد. multiplicityجدول ذیل بعضی از قیمت های ممکنهء که

Association type in class diagram

Inheritance حالت است که یک کالس بعضی :attribute ها وoperation های خودرا از کالس دیگربه ارث

super class or)( و کالس دومی را به نام sub class or child classکه درین حالت کالس اولی را به نام ).میگیرند

parent class) یاد میکنند. البتهchild class در پهلوی خصوصیات به ارث گرفته میتواند خصوصیات خاص خودش را

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

طور ذیل نمایش داده میشود.مثال: inheritanceودر کالس دیاگرام برقرار کنیم.

Page 36: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

35

تهیه وترتیب : محب هللا "امان"

را به ارث گرفته است. carهای کالس Operationمشخصات و BMWگفته میتوانیم که

Aggregation: زمانیکه یک و یاچندینObject یک کالس منحیث فیلد در کالس دومی استفاده شود این حالت به نام

aggregation .یعنی یک کالس کلی یاد میگردد(whole ) میتاند چندینobject .از کالس دیگری را داشته باشد

Composition aggregation این رابطه هم درحقیقت یک شکل از :aggregation میباشد که یک کالس میتواند یک

می نیز کالس دو objectکالس اولی ، objectکالس دیگر را درخود داشته باشد ولی ارتباط آنها طوری است که با ایجاد

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

کالس دومی ایجاد گردد تا به محض ایجاد constructorیک کالس در objectبرای برقراری این نوع ارتباط باید

object کالس دومیconstructor آن نیزcall و شدهobject کالس دومی نیز ایجاد گردد. بطور مثال میدانیم هر کمپنی

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

Page 37: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

36

تهیه وترتیب : محب هللا "امان"

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

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

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

انترفس مشخص نماییم.

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

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

Page 38: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

37

تهیه وترتیب : محب هللا "امان"

Object Diagram یک کالس روی objectویا instanceنشان دادن ، معلومات ظور ارایهء بهتر و جالبترسیستم بعضی اوقات به من درمادلینگ

واقعی یک کالس ما میتوانیم معلومات را به شکل بهتر و جالبتر روی دیاگرام ها objectدیاگرام بسیار موثر است. چون با یک

یاد میکنند. object diagramنمایش دهیم. که این نوع دیاگرام هارا به نام

Object diagram طات و شباهت زیادی به کالس دیاگرام دارد وتمام ارتباnotation ها مشابه به کالس دیاگرام می باشد وتنها فرق

مربوطهء آنرا classو به تعقیب آن نام objectنام اوالبه جای نام کالس ، object diagramآن در قسمت نام کالس میباشد که در

مثال: میگیریم.

Package Diagram ما از دیاگرام باعث سردرگمی شود کالسطوریکه نمایش همهء آنها درهمانطوریکه قبال گفتیم درصورت زیاد بودن کالس ها

package diagram استفاده میکنیم. که برای ترسیم آن هم یک مرحله قبل رفته و کالس ها را نظر به عملیات ویا هم وجه های

سته هارا باهم دیگر در دیاگرام نشان یاد میکنند. وسپس این د (package)مشترک شان دسته بندی می نماییم.که هر دسته را به نام

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

هارا به شکل ذیل ارتباط دهیم. packageویاهم میتوانیم

Page 39: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

38

تهیه وترتیب : محب هللا "امان"

Activity Diagram ( های یک سیستم وجریان رفتن از یک operationها ) Activityبرای ترسیم یکی از دیاگرام های مهم برای مادلینگ می باشد که

Activity بهactivity .یعنی بعدی استفاده میگرددactivity diagram در حقیقت فلوچارتی است کهactivity های یک سیستم را

Operationویا میتواند فنکشن activityدیگر را به نمایش میگذارد. که هر Activityرا به activityترتیب رفتن از نشان داده و

( آنرا داشته و انجام میدهد.dynamicباشد که سیستم درحالت اجرا )

ها بصورت پیهم ، منشعب و همزمان انجام یابد که هرنوع آنرا ماباید در activityها یا operationدریک سیستم ممکن است

activity diagram .مشخص کنیم

Activity diagram دد:به مقاصد ذیل ترسیم میگر

نشان دادن جریان کار یک سافت ویر

ترتیب جریان کار وانتقال آن از یک پراسه به پراسه بعدی. ) یعنی میتوانیم تعیین کنیم که از یکactivity به کدام

activity .)های دیگر و تحت چه شرایطی رفته میتوانیم

تشریحactivity های که همزمان ، منشعب ویاهم موازی به پیش میروند.

Activity diagram .را میتوانیم در جاهای ذیل استفاده کنیم

Modeling ویاقالب سازی جریان کار ها با استفاده ازactivity ها

Modeling نمودنbusiness requirements تحقیق و بررسی آن ،

دانستن بهتر کارکرد های یک سیستم

activity diagramترسیم باید با اجزای آن و چگونگی نمایش آنان آشنایی داشته باشیم. که عبارتند از: activity diagramبرای ترسیم

Page 40: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

39

تهیه وترتیب : محب هللا "امان"

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

Initial nodeسمت شروع میکند و توسط دایرهء میان : نقطهء آغاز ویا شروع یک سیستم میباشد که بار اول سیستم از آن ق

پر نشان داده میشود.

Final Node : ختمactivity .ها را مشخص میکند. وبه دوشکل ذیل نمایش داده میشود

Control flow قطعه خط جهت دار است که :activity بعدی را مشخص میکند یعنی نشان میدهد که از یکactivity به

ر رفته میتوانیم.های دیگ activityکدام

Page 41: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

40

تهیه وترتیب : محب هللا "امان"

Conditions : ممکن است یکactivity با در نظرداشت شرایط مختلف به چندینactivity پیدا کند که در دیگرانتقال

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

Fork and Join Node :activity های که باید همزمان صورت گیرد را توسطFork یدهیم به شکل و تیرک ها نشان م

ذیل:

Constraints قیودات و محدودیات که باید در یک :Activity صورت نگیرد باید مشخص وشناسایی گردد که این قیودات

طور ذیل نمایش داده شود. Activityمیتواند توسط مستطیل قبل ویا بعد از

Page 42: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

41

تهیه وترتیب : محب هللا "امان"

Exception Handlerرا میتوان به شکل ذیل در : حاالت استثنایی که در سیستم اتفاق خواهد افتیدActivity diagram

نمایش دهیم.

را ترسیم نماییم. ATM Withdraw Money Activityسیستم Activity diagramدرین بخش میخواهیم

Page 43: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

42

تهیه وترتیب : محب هللا "امان"

Page 44: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

43

تهیه وترتیب : محب هللا "امان"

State Chart Diagram ت را بخود اختیار مینمایند. یعنی ها ویا حاال stateبودن یک سیستم ، سیستم مذکور کدام runاین دیاگرام واضح میسازد که در زمان

ها وobjectنشان داده، همچنین را ازخود behaviorماشین در جریان انجام دادن یک پراسه ویاهم بعد از تکمیل یک پراسه کدام

events واتفاق افتادن هایی داخلی و خارجی که باعث کنترول State مختلف یک هایactivity اگرام در این دیماشین میگردد در

مثال : آسانسور که در هرطبقه های زیادی را میتوان با استفاده از این دیاگرام ساده کرد. General problemنمایش داده میشود.

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

به مقاصد ذیل استفاده میگردد: state chart diagramاز

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

مشخص کردن واکنش ها و مادلینگ زمان هرکدام آن

تشریح حاالت مختلف یکobject رازمانیکه درstate .دخیل است

مشخص کردن حاالت ماشین به منظور مادلینگ حاالتobject ها

باید مد نظر گیریم:قبل از ترسیم این دیاگرام نکات ذیل را

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

State .ها باید تشخیص و پیشبینی شده باشند

Event .ها باید تشخیص و پیش بینی گردند

( و starting pointعمل میکنم یعنی نقطهء آغاز ) activity diagramتقریبا مشابه به state chart diagramبرای ترسیم

(final state مشخص میگردند و هر )state .نمایش داده میشود. که در شکل ذیل هرکدام آن نمایش داده شده است

Page 45: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

44

تهیه وترتیب : محب هللا "امان"

شان میدهد.را ن "The Order Management System Order's Object State"سیستم state chart diagramدیاگرام ذیل

Page 46: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

45

تهیه وترتیب : محب هللا "امان"

Software Testing نمودن یک پروگرام این است که باید قبل از استفاده سافت ویر ، مطمئن شویم که سافت ویر ساخته شده مقاصدی را که testهدف از

برای آن ساخته شده است برآورده میکند ویاخیر. و همچنین به منظور

ورت میگیرد. ص testingشناسایی و دریافت نواقص یک سافت ویر

کردن سافت ویر عبارت است از: testیعنی دوهدف عمدهء از

اثبات کردن اینکه سافت ویر تمام نیازمندیهای را که برای آن

ساخته شده بود مرفوع میسازد.

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

requirement در تضاد است و یا هم سافت ویر ازانجام

ز است.آن عاج

بناء کنیم. Testما میتوانیم ابعاد مختلفی سافت ویر را بررسی و

Testing .به چهار نوع ذیل تقسیم بندی شده اند

1. Development Testing

2. Test Driven Development

3. Release Testing

4. User Testing

که ما هریک از آنرا بطور جداگانه و با تفصیل مورد بحث قرار میدهیم.

Development Testing ها و کارکردهای یک سیستم در آن توسط پروگرامر ها activityتوسط تیم سافت ویر سازی صورت گرفته و تمام Testingاین نوع

به سه قسم است: testingچیک و بررسی میگردد. این نوع

Unit Testing درین نوع :testing بخش های کوچک یک سافت ویر از قبیلComponents و هاObject های کالس

ها object class های operationکارکرد و testingوبررسی میگردد. یعنی درین نوع testها بصورت جداگانه

هاباید نکات ذیل را مدنظر بگیریم: Objectنمودن testبررسی میگردد و درزمان

o تمامOperation هایی که باobject پیوستگی و رابطه دارندبایدtest شود.

o قیمت های تمام مشخصات یکobject .باید تنظیم وبررسی گردند

o Object را به تمام حاالت ممکنهء آن قرار داده ودرتمام حاالتtest وبررسی کنید. یعنیobject را با استفاده

ها به تمام حاالت ممکنهء آن ببرید. Eventاز

o خاصیت هایGeneralization وinheritance یکobject هاtesting .را مغلق میسازد

Component Testing معموال :component های یک سیستم شکل پیچیده تری دارند که از چندینobject های باهم

های componentنشده بلکه testبصورت جداگانه componentهر هم testingدر ارتباط ساخته میشوند. درین نوع

میگردد. testباهم بررسی و objectهای متشکل از چندین packageدد. ویاهم که باسیستم در ارتباط است بررسی میگر

درین مرحله بررسی )انترفس ها( ها componentها و شیوهء برقراری بین componentوهمچنین ارتباط بین

interface misuse ،interfaceهای از قبیل common-errorمیگردد. درین مرحله از بررسی ،

misunderstanding ،Timing errors .وغیره موارد تشخیص داده شده و تنظیم میگردند

System Testing این نوع :testing کارکرد وعملکرد تمامcomponent یک سافت ویر را بصورت یکجایی

(integrated بررسی و )test مینماید. و با استفاده از اینtesting ما مبینیم که آیاobject ها وcomponent ها

اند ویاخیر؟ آیا به نحو درست بین شان ارتباط برقرار میکنند؟ آیا دیتای درست را به انترفس compatibleبایکدیگر شان

ها میدهند ؟ آیا در اوقات معین تبادل دیتا از طریق انترفس ها صورت میگیرد؟

Page 47: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

46

تهیه وترتیب : محب هللا "امان"

Test Driven Development اجرا testingنوشته شده و سپس test caseل استفاده شده در سافت ویر اوال یک با توجه به نوع پراسس ماد testingدرین نوع

جدید نمیرویم. test caseنوشته شده نتیجه ندهد به test caseشده و نتیجهء آن بررسی میگردد وتازمانیکه

Agile Processرده میشود. در استفاده شده و یک بخش از آن شم Agile software developmentزیاد تر در testingاین نوع

مذکور sprintبعدی و درغیر آنصورت باید sprintتطبیق شده و درصورت که درست باشد به Sprintباالی یک Testingهر بار

refactor :شود. مطابق به شکل ذیل

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

آن بررسی میگردد. بناء باتوجه به تخنیکی outputهای سیستم صورت میگیرد و درآن صرف قیمت روان شده و userمشتری ویا

outputسیستم سروکار نداریم بلکه چیزی که مهم است وارد کردن قیمت و implementationنبودن مشتری ، با چگونگی

کننده با چگونگی تکمیل پراسه Testهم یاد میکنند زیرا که black box Testingرا به نام testingکه این نوع ونتیجهء آن است.

آن را بررسی میکند. outputنموده و inputها واجزا سرو کار ندارد بلکه دیتا را

اعضای جدیدی که متشکل از مشتری Release Testingت که دراین اس System Testingو Release Testingفرق عمده بین

system testingدرآن دخالتی داشته باشد. ولی در developerمیکنند بدون اینکه testمی باشد سیستم را managerویاهم

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

مینمایند. testنواقص ، سیستم را

Release Testing :میتواند به سه شکل ذیل باشد

Requirement Based Testing

شده روان releaseبه سافت ویر requirementمشتری هربار یک قیمت را به منظور بررسی تنها یک testingدرین نوع

ازمندی هارا مدنظر گرفته و برای بررسی آن به سیستم قیمت روان میکند.یعنی مشتری هربار یکی از نیمیکند.

Scenario Testing

اوال یک سناریو )شرح مختصرنیازمندی( مدنظر گرفته و درآن تمام تشریحات یک پراسه را بدون کم و Testingدرین روش از

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

Page 48: راهکارهای طراحی نرم افزار ها   محب الله امان

راهکارهای طراحی نرم افزار ها

47

تهیه وترتیب : محب هللا "امان"

Performance Testing

شده تا Testبرای بررسی عملکرد یک سیستم بکار میرود طوریکه پس از تکمیل آن واضح میگردد که سیستم Testingاین نوع از

و عملکرد دیتا را باالی سافت ویر زیاد کرده Loadما هربار Testingتکمیل این نوع وبرای ها جوابگو است. Userکدام سرحد به

آنرا می سنجیم.

سیستم درحاالتیکه فشار و اندازهء معلومات ورودی accuracyبررسی دقت و performance Testingاز هدف دیگریوهمچنین

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

User Testing سافت ویر سازی بعد از تکمیل تیم تکمیل میشود. ها )مشتری( Userتوسط User Testingاز نام آن پیداست همانطوریکه

release Testing با توجه به نداشتن محیط برایTesting و همچنین دیتای واقعی سافت ویر را به مشتری داده تا در محیط

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

رفع میگردد.

User Testing د.به سه مرحلهء ذیل تکمیل میگرد

Alpha Testingمنظور : به( ترمیمFix).نمودن اشتباهات سیستم در محیط کاری براه انداخته میشود

Beta Testing : لذا مشتریان بطور امتحانی از سیستم استفاده هنوز قابل اعتماد نیست مرحلهء است که سافت ویر تکمیل شده ولی

پیش آورده و نکات های ضعف سیستم را ند تا حاالت غیر مترقبه را نموده و با راه اندازی و اجرای عملیات گوناگون کوشش میکن

ابند.دری

Acceptance Testing مرحلهء نهایی از :User Testing طور کلی سیستم نیازمندیهارا به است که درآن بررسی میگردد که آیا ب

درآن مشتری تصمیم میگرد که سافت ویر مذکور را قبول کندویا هم رد.رفع میسازد ویاخیر. و software specificationاساس

هللا التوفیقومن