كارگاه مهندسي نرم افزار
Download
Report
Transcript كارگاه مهندسي نرم افزار
كارگاه مهندس ي نرم افزار
مدرس :شهراد رضايي
متدولوژي
قانونمند كردن توليد نرم افزار براي جلوگيري از بروز مشكل
فرمولي را كه براي توليد و توسعه نرم افزار ارائه مي دهند را
متدولوژي مي گويند.
يك متدولوژي چرخه حيات نرم افزار را مشخص مي كند .
انواع متدولوژی
.1
متدولوژی سنتی
.2
متدولوژی فرآیند گرا
.3
متدولوژی ساختمان داده
.4
متدولوژی مدل سازی اطالعات
.5
متدولوژی ش یءگرا
چرخه حيات توليد و توسعه نرم افزار يا SDLC
مخفف System Development Life Cycleميباشد .
مراحلي را كه طي توليد و توسعه نرم افزار به كار ميروند را چرخه حيات
توليد و توسعه نرم افزار مينامند .
انواع چرخههاي حيات توليد و توسعه نرم افزار
چرخه حيات سيستمهاي قديمي يا TLC
چرخه حيات سيستمهاي ش ي گرا يا OODLC
چرخه حيات سيستمهاي قديمي ياTLC
در گذشته
TLCمخفف Traditional Life Cycleاست .
چون برنامه ها به صورت فرايند گرا يا Process Oriented
نوشته ميشدند از روش TLCبراي توليد و توسعه نرم افز ار استفاده
مي شد .
بيشتر از نمودارهاي DFDو ERDاستفاده ميشد
در اين روش
مدلهای مورد استفاده در TLC
روش حلزونی )(Spiral
تولید پیش الگو )(Prototyping
RAD
SCRUM
DSDM
مدل آبشاري ياWater Fall
مدل آبشاري از معروف ترين متدولوژي هاي TLCاست كه كاربرد
زيادي در گذشته داشته و مبناي اساس ي براي مدل هاي ش ي گرا هم
همين مدل WaterFallاست.
چرخه حيات سيستم هاي ش ي گرا يا OODLC
اين نوع چرخه حيات بعد از بوجود آمدن روش جديد برنامه نويس ي
يعني روش ش ي گرا بوجود آمد .
زبانهايي مانند JAVA ، #Cو ++Cو بسياري ديگر از زبانهاي برنامه
نويس ي كه قابليت پياده سازي خواص ( Object Orientedش ي
گرايي) را دارا هستند امروزه از مهمترين زبانهاي برنامه نويس ي دنيا
محسوب مي شوند .
مهمترين عامل برتري روش Object Orientedنسبت به روش Process
Oriented
استقالل هويتي دارند .يعني هر بخش عمال از ساير بخشها مجزا است .
پايداري سيستم يا System Stabilityاست .به اين معني كه سيستم در
مقابل تغييرات مقاومت داشته باشد .يعني پيدايش نيازمنديهاي جديد منجر به اين
نشود كه سيستم نياز به تغييرات كلي داشته باشد.
قابليت نگهداري يا : Main abilityبه دليل جدا بودن اشيا ،نگهداري سيستم
پس از ارائه به مشتري نيز به راحتي امكان پذير است .مثال ورژن هاي جديد برنامه
هايي كه با شماره هاي پشت سر هم وارد بازار مي شوند به همين دليل است .
قابليت استفاده مجدد اجزا يا Reusable
Component
داشتن ديد واقعي به دنياي اطراف .
قابليت دسترس ي به اطالعات و داده ها
دوستانه بودن از نظر كاربر يا User Friendlyبودن برنامه.
خواص اساس ی متدولوژی ش یءگرا
.1
.2
.3
.4
.5
.6
.7
.8
روش های متداول برای سازماندهی
تجرید
کپسوله کردن یا مخفی سازی اطالعات
وراثت
چند شکلی
ارتباطات پیامی
همروندی
قابلیت استفاده مجدد
ی
مجرد ساز
ی) اصل نادیده گرفتن جنبه هایی از حوزه مسئلله اسئت کئه
تجرید(مجرد ساز
بئئه هئئدف امن مئئا مربئئو نیسئئتند .ایئئن اصئئل همهنئئين بئئه معنئئای خالص ئه
سئئازی مئئی باشئئد عنئئی آنکئئه مئئا مئئی تئئوانیم بئئه مسئئلله از ی ئ دیئئد کلئئی ،بئئه
راحتی و بدون لحاظ کردن جزئیات ،نگاه کنئیم .مثئل نقشئه کشئور ،شئهر و
منطقه.
کپسوله کردن
منظ ئئور از کپس ئئوله ک ئئردن ای ئئن اس ئئت ک ئئه جزئی ئئات ی ئ فراین ئئد ی ئئا عم ئئل از دی ئد
اسئئتفاده کننئئده آن مخفئئی باشئئد .همهنئئين صئئفات و اطالعئئات یئ شئ یء از
دیئ ئئد سئ ئئایر اشئ ئئیاء و اج ئ ئزاء مخفئ ئئی باشئ ئئد و ارتبئ ئئا از طری ئ ئ ارسئ ئئال پیئ ئئام
صورت گيرد.
وراثت
وراثت ،روش ی برای بیان شباهت ها است .به عنوان مثال“ برای مدل
سازی انسان های ی دانشگاه می توانیم آنها را به اشیاء“ دانشجو،
استاد و کارمند“ تفکی کنیم .اما برخی خصوصیات این اشیاء ،مشابه
یکدیگر می باشند ،نظير ” :نام ،نام خانوادگی ،تلفن و “. .برای اجتناب از
تکر ار خصوصیات مشترک اشیاء کالس ی به نام ” انسان“ ایجاد می کنیم
که صفات آن همان صفات تکراری سه کالس اصلی دانشگاه است.
هر ی از آن سه کالس ،تمام خصوصیات این کالس جدید را به
سپس
ارث می گيرند.
شکل وراثت
17
.5چند شکلی
چن ئئد ش ئئکلی ی ئئا چن ئئد ریخت ئئی ،ب ئئه معن ئئای ی ئ چي ئئز ب ئئودن و چن ئئد ش ئ ل داش ئئتن
است .مثل آب که دارای چند ش ِل جامد ،ما ع و گاز ظاهر می شود.
19
.6ارتباطات پیامی
ارتباطئئات پیئئامی راهئئی اسئئت کئئه اشئئیاء در ی ئ متئئدولوژی ش ئ یءگرا بئئا یک ئدیگر
ارتب ئئا برقئ ئرار م ئئی کنن ئئد .ش ئئویه روی ئئه ه ئئا و تواب ئئع در زب ئئان ه ئئای برنام ئئه
نویسئ ی کئئه بئئا ارسئئال پئئارامتر از نقطئئه ای درون برنامئئه ،ی ئ رویئئه یئا تئئابع
فراخوانی می شود.
20
.7همروندی
در
همرونئئدی ،اجئرای هئئم زمئئان دو یئئا چنئئد فعالیئئت سیسئئتم اسئئت .بئرای مثئئال
یئ چئاپگر ،مئی تئوانیم هئم زمئان بئا چئاو نامئه مئورد نظرمئان ،نشئئانه(آرم)
ش ئئرکت را ني ئئز ب ئئه عن ئئوان زمین ئئه نام ئئه و ه ئئم زم ئئان ب ئئا م ئئتن نام ئئه ب ئئه چ ئئاو
برسانیم.
21
.8قابلیت استفاده مجدد
اسئئتفاده مجئئدد قئئابلیتی اسئئت کئئه بیئئان گئئر اسئئتفاده دوبئئاره از چيئئزی اسئئت کئئه
هم اکنون وجود دارد.قابلیت استفاده مجدد خاصیتی است کئه هئر روز از
آن اسئئتفاده مئئی کنئئیم ماننئئد کائئی کئئردن اطالعئئات و در اختیئئار دیگئران قئرار
دادن.
22
یک مدل ش یء گرا
م ئئدل ش ئ یء گ ئرا مجموع ئئه ای اس ئئت از اش ئئیاء و ک ئئالس ه ئئا ک ئئه در جه ئئت پی ئئاده
سئئازی رفتئئار کئئل سیسئئتم بئئه یکئئدیگر پیغئئام مئئی فرسئئتند و اعمئئا ی را انجئئام
مئئی دهنئئد.ی ئ ش ئ یء ،س ئئاختمان داده و رفت ئئار مربوطئئه اش را ی ئ ج ئئا و ب ئئه
طور مجتمع در خود نگاه میدارد.
23
مدل up
ي را
در روش هاي قديمي يك مدل خاص مثل مدل آبشار
همانگونه كه
نيز از
در اين بخش
بررس ي كرديم و مزايا و معايب آن را بررس ي نموديم
در سيستم هاي ش ي گرا به بررس ي مدل معروف
ميان مدل هاي موجود
و نامي UPمي پردازيم .
مخفف Unified Processingاست .اين روش يكي از روشهاي
توليد نرم افزار است كه با چرخه حيات سيستم را با تاكيد روي تكرارها
مدل مي كند.
معرفی RUP
RUPی فرایند تولید نرم افزار است که توسط شرکت rational
ایجاد شده است (هم اکنون )IBMو هدف آن کم به تولید کنندگان
و مدیران صنعت نرم افزار است.
–
RUPبرای جنبه های مختلف تولید چيزهایی مانند نقشها ،محصومت،
فعالیتها و گردش کار تعریف میکند
خالصه
فازها
آغاز ( :) Inception
خير و این تصمیم پس از تولید ی
آغاز کنیم یا
فاز تصمیم گرفته ایم که آیا پروژه را
در انتهای این
Business Caseگرفته می شود.
اجرا ( : )Elaboration
اکثر نیازمنديهای باقی مانده شناسایی شده اند و ی معماری مانع ( sound
فاز
در انتهای این
)architectureبرای نرم افز ار بناشده است.
ساخت ( :)Construction
در طی
فاز قبل و تولید ی سری افزا ش بر روی نرم افز ار
کار روی معماری حاصل از
فاز با
در این
در محیط کار بر ساخته می شود.
تعدادی تکرار ،نسخه او ل محصو ل برای اجرا
انتقال ( :)Transition
نرم افز ار ساخته شده به سایت مشتری انتقال داده می شود و بررس ی میگردد که آیا کام ال نیازمنديهای
نيز تحویل می شود.
ی
ی برطرف شده است؟ مستندات کاربر
مشتر
دیسیپلینهای فرایند
مدلسازی تجاری:
–
–
–
–
درک ساختار و فعالیتهای سازمانی که قرار است سیستم در آنجا استقرار یابد
درک مشکالت فعلی در سازمان و شناسایی پتانسیل های بهبود
حصول اطمینان از اینکه مشتریان ،کاربران نهایی و ایجاد کنندگان نرم افزار درک یکسان از
سازمان مقصد دارند.
بيرون کشیدن نیازمنديهای نرم افزاری که برای پشتیبانی سازمان مقصد مورد نیاز است
تشخیص نیازمندیها :
–
–
–
–
–
–
فراهم آوردن اساس تخمين هزینه و زمان ایجاد سیستم
بستن قرارداد با مشتری بر اساس آنهه سیستم باید انجام دهد
فراهم کردن درک بهتر از نیازمنديهای سیستم برای تولیدکنندگان
تعیين مرزهای سیستم
فراهم آوردن پایه ای برای طرح ریزی بخشهای فنی تکرارها
واسط کاربر سیستم با تاکید بر نیازها و اهداف کاربران تهیه می شود
دیسیپلینهای فرایند
تحلیل و طراحی:
–
–
–
طراحی سیستم نهایی بر اساس نیازمنديها
ایجاد ی معماری قوی برای سیستم
تطبی طراحی و پیاده سازی (وارد ساختن مالحظات خاص پیاده سازی ) ،ایجاد ی
طراحی کارآ
پیاده سازی:
–
–
–
–
میه بندی زیرسیستم های پیاده سازی
کالسها و موجودیتها پیاده سازی می شوند (به ش ل فایلهای ،sourceباینريها ،اجرایی
ها و )...
انجام آزمون واحد بر روی مولفه ها
مجتمع کردن مولفه ها و ایجاد ی سیستم اجرایی
دیسیپلینهای فرایند
ن:
آزمو
–
ارزیابی صحت تعامل بين موجودیتها
–
ارزیابی مجتمع سازی همه مولفه های نرم افزار
–
ارزیابی اینکه همه نیازمنديها بطور صحیح پیاده شده اند
–
شناسایی عیب ها و حصول اطمینان از اینکه قبل از استقرار مرتفع شده اند.
استقرار:
–
استقرار نرم افزار در محیط کاربری ( نصب ،دسترس ی بر روی اینترنت ،پیشنهاد
بخش ی از نرم افزار)
دیسیپلینهای پشتیبانی
مدیریت پروژه:
–
–
–
مدیریت تغیير و پیکر بندی:
–
–
–
–
–
مدیریت ریس
طرح ریزی ی پروژه تکرار شونده
مونیتور کردن پیشرفت پروژه ،متری ها
پشتیبانی روشهای تولید
مراقبت ا ز مجتمع بودن نرم افزار
حصول اطمینان از کامل بودن و صحت محصول پیکربندی شده
فراهم آوردن ی محیط مناسب برای تولید محصو ل
فراهم آوردن قابلیت پاسخ به این سوال :ی دستاورد توسط چه کس ی ،کی و چرا تغیير یافته است.
آماده سازی محیط:
–
–
تمرکز اصلی بر پیکربندی فرایند برای ی پروژه است بعالوه تعیين ابزارها
تولید راهنمایی های برای پشتیبانی ی پروژه
تکرار ))Iteration
تکرار ی گذر کامل از همه Disciplineها شامل حداقل تشخیص
نیازمنديها ،تحلیل و طراحی ،پیاده سازی و آزمون است .تکرار مانند ی
پروژه کوچ مدل آبشاری است
Rational Rose نمودار هاي
Use-case
Class diagram
Sequence diagram
Colaboration Diagram
State digram
Activity diagram
Physical diagrams