کامپیوتر و IT و اینترنتعلوم مهندسی

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

صفحه 1:
مقدمه ای بر مهندسی نرم افزار Omid.Mofidian@qmail.co m 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 2:
re RV.) Sone ees ren eae بررسی مسائل کلیدی مطرح در مهندسی نرم افزار ‎Serre rst Ye nee ots Reece‏ 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 3:
مهندسى نرم افزار اقتصاد جهانی به نرم افزار وابسته است. ‎I ia Se a 0‏ ان ‏مهندسى نرم افزار به تئورى هاء متدها و ابزار حرفه اى توسعه ى نرم افزار وابستة است. ‏هرینه ی نرم افراز کسری معنی داری از تولید ناخالض ملی را دز تمامی ‎OBS gi Sl TAU eena (els os‏ ‏1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 4:
هزینه های فرم افزار غالباً هزينه ى نرم افزار به هزينه هاى سيستم كامبيوترى محدود مى شود. ‎See nee)‏ ا ا ا 0ت لك مى باشد. ا اي ‎ne‏ ‎renee‏ ل ا ا ا ۱ هزینه ی توسعه گردد. ل ا ا 1 «ماوحطه ‎SOS Cent eR‏ 4 6 للتتعسصره5 ممه

صفحه 5:
نرم افزار جیست؟ FO Carpe EUSTON INTER TO ert ‏ا‎ Brean men CaTarer 5) Se aa eed eS Sent ‏ا‎ ne cone Ik SRD Ewa) ‏داده شود.‎ 6 Ee ad * _ کلی - برای فروش به مشتریان مختلف کامپیوتر شخصی توسعه داده می شود مانند اکسل یا ورد سس رات ا ا يي ا ا ا ا ل ا ا ] Pee Se ee ea ae aes eras PLS SOS Cent eR eC ‏«ماوحطه‎ 1

صفحه 6:
‎ere‏ سنا ‎ ‎ee Re een Re nS ene ‏محصول نرم افزار اهمیت می دهد. ‎SNe SUS Mee ‏ا ل ا ل‎ ‏م ا‎ Rye eS tclecpy ‏نیز مدنظر قرار گیرد. ‎ ‎eek CS eNOS ere Reet Benet ‏ا‎ ‏1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 7:
oS ee ‏درل دز مس‎ Leen te DDL Pek Steen ane ore erase Ee Saas 1 era ea oe ‏كت‎ ee oe CRS bene ae نیست. 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 8:
تفاوت مهندسی فرم افزار و سیستم ی سوت سل دا تحت لت و مت وی بر کامپیوتر اهمیت داده که شامل سخت افزار, نرم افزار و مهندسی فرآیند است. مهندسى نرم افزار بخشى از فرايند زيرساخت نرم افزار. كنترل» ا ا ا ا ل ا م مهندسين نرم افزار در مشخصات سيستم, معمارى؛ يكبارجكى و 1 «ماوحطه ‎SOS Cent eR‏ 4 6 للتتعسصره5 ممه

صفحه 9:
فرآيند نرم افزار جيست؟ ل ا ا ا ل ا | © فعاليت هاى كلى در تمامى فرآيندهاى نرم افزارى: مشخصات - سيستم جه كارى بايد انجام دهد و محدوديت هاى توسعه ۱ *؟ اعتبارسنجى - بررسى شود كه مشترى جه مى خواهد | ر پاسخ به تقاضای تغییر 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 10:
مدل فر آیند نرم افزار چیست؟ نمايش ساده اى از فرآيند نرم افزار است كه از ديدكاهى خاص نشان داده د ‎evel ENESCO TEN Lewy ee!‏ ؟ء ديدكاه جريان كارى - توالى فعاليت هاء ا ا لل ل * ديدكاه نقش/فعاليت - نقش افراد. مدل هاى كلى ¢ آبشارى. ‎ae‏ ل | 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 11:
000000 * تقريباً ‎7١‏ درصد هزينه. هزينه ى توسعه استء 48 درصد هزينه ى تست مى باشد. براى نرم افزار سفارشی, هزينه هاى تكامل بر هزينه ى توسعه وا 3 هزینه ها به نو توسعه ی سیستم و ‎PPD Can tel LE MENtES)‏ م ‎ae‏ ا يي ل rl nce oe ‏ا ل‎ 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 12:
100 and evolution 1 «ماوحطه ‎SOS Cent eR eC‏ 4 ه6للتتعسصره5 مهلم

صفحه 13:
هزينه هاى توسعه ى محصول 0 25 50 75 ]«ٍ ____ Specification Development system testing 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 14:
010000 00 ‏ا‎ ‎Etc ole Ce ea ne rere fon v re er ee cre rae SCENES Se ne ‏ا‎ Use ‏اا‎ ols ‎Ache ex‏ د 0 ‎0 ‎ ‎eras 4 SOS Cent eR ‏«ماوحطه‎ 1

صفحه 15:
‎Senta)‏ لا در سول( ‎ ‏سيستم هاى نرم افزارى براى فعاليت هاى فرآيند نرم افزار يشتيبانى لا ‏سیستم های کیس غالباً برای پشتیبانی مورد استفاده قرار می گيرند. * حدبالاى كيس ‏ا ا ا ا ا ا ل ‏* حدپایین کیس ‏ا ی ‏1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 16:
Se oe TO ree.) rere es pe reece to ‏_قابل اطمینان‎ * | ؟ راندمان و م ا ل ‎cca‏ 0 ‎eee CS ee‏ ۳ نرم افزار نبايد منابع سيستم را پبهوده مورد استفاده قرار دهد؛ eras PLS SOS Cent eR eC ‏«ماوحطه‎ 1

صفحه 17:
‎eg‏ ا بل ‎ ‏م 0 ‏ناهمكنى ‏اا ا ل ا ا ل ‎oer‏ ‏ها و محيط هاى اجرايى ناهمكون برآيد؛ ‏م ‏۱ ‏اعتبار ‏ع ‎er Ur bn Sean Se eee ie en it‏ | اطمینا ‎ ‏1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق ‎

صفحه 18:
مسئولیت اخلاقی و حرفه ای ا ا ا ا لت تکنیکی یک برنامه ی کاربردی ساده است. 9 0 4 me *؟ رفتارى منطبق بر قانون اخلاقى داشته باشد. 1 «ماوحطه ‎SOS Cent eR‏ 4 6 للتتعسصره5 ممه

صفحه 19:
پی آمدهای مسئولیت حرفه ای ۱ ا ا مهندسان باید بطور طبیعی اطلاعات کارمندانشان یا مشتریانشان را حفظ کنند. * صلاحیت * . مهندسان نباید بدصلاحیت جلوه کنند. نباید دانسته کاری را بپذیرند که خارج ‎Os]‏ ۳ 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 20:
پی آمدهای مسئولیت حرفه ای ۲ * حقوق مالکیت فکری ا مهندسان باید به قوائین محلی نسبت به استفاده ی از امکانات و مالکیت پبب۰پبببپپ ببس ا ‎TORR‏ 19 ؟ مووءاستفاده از کامییوتر ] SEC De Oe ieee ee ‏و‎ eee 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 21:
نظام نامه ى اخلاقى :0000/10:0):0) ‎et eet ave‏ ا ات ل ا ‏* اعضاى اين سازمان موظفند به قانون عمل نمايند. ‏قانون دربرگیرنده ی هشت ماده در مورد رفتارها و تصمیمات حرفه ای مهندسین نرم افزار شاغلان. معلمان. مديران. ناظران و سياست كذاران ‏است. ‏1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق ‎

صفحه 22:
نظام نامه ى اخلاقى - مقدمه مقدمه قوانين در سطح بالايى مطرح شد رحا از عرد به صورت جر ‎EP ME TE iene‏ جره اى ملسي ‏نرم افزار را بيان مى دارند. ‏ا ا ا 0 الل ات ا ل ا 0 ‏1 «ماوحطه ‎SOS Cent eR‏ 4 6 للتتعسصره5 ممه ‎

صفحه 23:
Are es rey) ea ae ae ee ck Sie ee ‏ل‎ ‏مهندسان نرم افزار بايد به روشى عمل نمايد كه مطابق با علايق متقاضيان و‎ * pales eee ice ؟ محصول 0 ‏ا‎ ORD DY Pete no RUF 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 24:
نظام نامه ی اخلاقی - اصول ۲ داوری ‎ *‏ مهندسان نرم افزار باید درستی و استقلال را در داوری حفظ نمایند. * مدیریت مدیران و سرپرستان مهندس نرم افزار باید شیوه ی اخلاقی را در مدیریت ال ار 59 حرفه ‎ee ee ee ean eee‏ شهرت کسب کنند. ‏1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 25:
نظام نامه ی اخلاقی - اصول ۳ © شمكاران ا ا ا ا ا ل ا ‎lO cone tb)‏ © 0 5 *؟ء مهندسين نرم افزار بايد تمام عمر در ارتقاى سطح علمى و اخلاقى خود كوشا تاش 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

صفحه 26:
مسائل غیرقابل حل اخلاقی * مخالفت با سياست كلى مديريت. ل ل 0 کار را ترک کنند. مشاركت در توسعه ى سيستم هاى سلاح هاى كشتار جمعى يا سيستم ۳ 1 «ماوحطه ‎SOS Cent eR eC‏ 4 مللزنعههه5 صعاق

مقدمه ای بر مهندسی نرم افزار Omid.Mofidian@gmail.co m ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 اهداف ‏ ‏ ‏ معرفی مهندسی نرم افزار و تشریح اهمیت آن بررسی مسائل کلیدی مطرح در مهندسی نرم افزار طرح مباحث اخالقی ،حرفه ای و دغدغه های مهندسین نرم افزار ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 مهندسی نرم افزار ‏ ‏ ‏ ‏ اقتصاد جهانی به نرم افزار وابسته است. بیشتر سیستم ها توسط نرم افزار کنترل می شوند. مهندسی نرم افزار به تئوری ها ،متدها و ابزار حرفه ای توسعه ی نرم افزار وابسته است. هزینه ی نرم افزار کسری معنی داری از تولید ناخالص ملی را در تمامی کشورهای توسعه یافته را نمایش می دهد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 هزینه های نرم افزار ‏ ‏ ‏ غالب ًا هزینه ی نرم افزار به هزینه های سیستم کامپیوتری محدود می شود. در یک کامپیوتر شخصی هزینه ی نرم افزار بیشتر از هزینه ی سخت افزار می باشد. هزینه های نرم افزار بیشتر در توسعه و نگهداری صرف می شود .در سیستم های با عمر طوالنی ،هزینه ی نگهداری ممکن است چند برابر هزینه ی توسعه گردد. برای مهندسین نرم افزار هزینه ی موثر توسعه اهمیت دارد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 نرم افزار چیست؟ ‏ ‏ ‏ برنامه های کامپیوتر و مستندات مربوطه – نیازمندی ها ،مدل های طراحی و کتاب راهنمای کاربر – هستند. محصوالت نرم افزاری ممکن است برای مشتری خاص یا عرضه ی عمومی توسعه داده شود. محصوالت نرم افزاری ممکن است • • ‏ کلی – برای فروش به مشتریان مختلف کامپیوتر شخصی توسعه داده می شود مانند اکسل یا ورد. سفارشی – برای مشتری خاصی توسعه داده می شود. در حال حاضر نرم افزار با توسعه ی برنامه های جدید ،پیکربندی سیستم های نرم افزاری کلی یا استفاده ی مجدد نرم افزار موجود ایجاد شود. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 مهندسی نرم افزار چیست؟ ‏ ‏ مهندسی نرم افزار یک نظام مهندسی است که به تمامی جنبه های محصول نرم افزار اهمیت می دهد. مهندسین نرم افزار باید با یک شیوه ی اصولی و سازماندهی شده را در کارشان پذیرفته و ابزار و تکنیک های مناسب برای حل مشکالت را بکار گیرند .در این راستا باید محدودیت های توسعه و دسترس پذیری منابع نیز مدنظر قرار گیرد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 تفاوت بین مهندسی نرم افزار و علوم کامپیوتر ‏ ‏ علوم کامپیوتر به تئوری و اصول اهمیت می دهد ،مهندسی نرم افزار به مسائل عملی توسعه و تحویل نرم افزار اهمیت می دهد. مهندسی نرم افزار از تئوری های علوم کامپیوتر استفاده می کند اما کافی نیست. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 تفاوت مهندسی نرم افزار و سیستم ‏ ‏ مهندسی سیستم به تمامی جنبه های توسعه ی سیستم های مبتنی بر کامپیوتر اهمیت داده که شامل سخت افزار ،نرم افزار و مهندسی فرآیند است .مهندسی نرم افزار بخشی از فرآیند زیرساخت نرم افزار ،کنترل، برنامه های کاربردی و بانک های اطالعاتی در سیستم است. مهندسین نرم افزار در مشخصات سیستم ،معماری ،یکپارچگی و گسترش درگیر شده اند. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 فرآیند نرم افزار چیست؟ ‏ ‏ مجموعه ای از فعالیت ها که هدف شان توسعه یا تکامل نرم افزار است. فعالیت های کلی در تمامی فرآیندهای نرم افزاری: • • • • مشخصات – سیستم چه کاری باید انجام دهد و محدودیت های توسعه چیست توسعه – تولید سیستم نرم افزاری اعتبارسنجی – بررسی شود که مشتری چه می خواهد تکامل – تغییر نرم افزار در پاسخ به تقاضای تغییر. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 مدل فرآیند نرم افزار چیست؟ ‏ نمایش ساده ای از فرآیند نرم افزار است که از دیدگاهی خاص نشان داده می شود. نمونه هایی از دیدگاه های فرآیند: ‏ مدل های کلی ‏ • • • • • • دیدگاه جریان کاری – توالی فعالیت ها، دیدگاه جریان داده – جریان اطالعات، دیدگاه نقش/فعالیت – نقش افراد. آبشاری، توسعه ی تکراری، مهندسی نرم افزار قطعه گرا. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 *ه های مهندسی نرم افزار هزین ‏ ‏ ‏ تقریباً 60درصد هزینه ،هزینه ی توسعه است 40 ،درصد هزینه ی تست می باشد .برای نرم افزار سفارشی ،هزینه های تکامل بر هزینه ی توسعه می چربد. هزینه ها به نوع توسعه ی سیستم و نیازمندی ها مانند کارآیی و قابلیت اطمینان سیستم بستگی دارد. توزیع هزینه ها به مدل توسعه وابسته اند. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 توزیع هزینه Waterfall model 0 25 Specification Design 50 75 Development 100 Integration and testing It erative development 0 25 Specification 50 75 Iterative development 100 System testing Component-based software eng ineering 0 25 Specification 50 Development 75 100 Integration and testing Development and evolution costs for long-lifetime syst ems 0 10 System development ©Ian Sommerville 2004 200 30 400 System evolution Software Engineering, 7th edition. Chapter 1 هزینه های توسعه ی محصول 0 Specification 25 Development ©Ian Sommerville 2004 50 75 System testing Software Engineering, 7th edition. Chapter 1 100 متدهای مهندسی نرم افزار ‏ ‏ شیوه های ساخت یافته ی توسعه ی نرم افزار شامل مدل های سیستم ،نمادسازی ها، قوانین ،توصیه ی طراحی و راهنمای فرآیند می باشد. توصیف های مدل • ‏ قوانین • ‏ محدودیت هایی در مدل های سیستم اعمال می شود، پیشنهادات • ‏ توصیف های گرافیکی مدل ها باید تولید شوند، طراحی خوب توصیه می شود، راهنمای فرآیند • فعالیت های جاری چه هستند. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 مهندسی نرم افزار به کمک کامپیوتر ‏ ‏ ‏ سیستم های نرم افزاری برای فعالیت های فرآیند نرم افزار پشتیبانی خودکاری فراهم می نمایند. سیستم های کیس غالباً برای پشتیبانی مورد استفاده قرار می گیرند. حدباالی کیس • ‏ ابزاری برای پشتیبانی از فعالیت های فرآیند نیازمندی ها و طراحی، حدپایین کیس • ابزاری برای فعالیت های برنامه نویسی ،اشکال زدایی و تست. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 ویژگی های نرم افزار خوب ‏ ‏ نرم افزار باید وظیفه مند و کارآ بوده همچنین قابل نگهداری ،قابل اطمینان و قابل پذیرش باشد. قابل نگهداری • ‏ قابل اطمینان • ‏ نرم افزار باید قابل اعتماد باشد؛ راندمان • ‏ نرم افزار باید قدرت تغییر پذیری را داشته باشد؛ نرم افزار نباید منابع سیستم را بیهوده مورد استفاده قرار دهد؛ قابل پذیرش • نرم افزار باید توسط کاربران قابل پذیرش باشد .بدین معنی که قابل درک ،قابل استفاده و سازگار با سیستم های دیگر باشد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 چالش های کلیدی مهندسی نرم افزار ‏ ‏ ناهمگن ،تحویل و اطمینان. ناهمگنی • ‏ تحویل • ‏ تکنیک های توسعه برای ایجاد نرم افزاری است که بتواند از عهده ی پالتفرم ها و محیط های اجرایی ناهمگون برآید؛ تکنیک های توسعه به تحویل سریعتر نرم افزار منتهی می شود؛ اعتبار • تکنیک های توسعه ثابت می کند که نرم افزار می تواند توسط کاربرانش مورد اطمینان قرار گیرد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 مسئولیت اخالقی و حرفه ای ‏ ‏ ‏ مهندس نرم افزار درگیر مسئولیت های گسترده تری از مهارت های تکنیکی یک برنامه ی کاربردی ساده است. مهندسین نرم افزار باید رفتار صادقانه ای داشته باشد و مسئولیت پذیر باشد. رفتاری منطبق بر قانون اخالقی داشته باشد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 پی آمدهای مسئولیت حرفه ای 1 ‏ محرمانگی • ‏ مهندسان باید بطور طبیعی اطالعات کارمندانشان یا مشتریانشان را حفظ کنند. صالحیت • مهندسان نباید بدصالحیت جلوه کنند .نباید دانسته کاری را بپذیرند که خارج از صالحیتشان باشد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 پی آمدهای مسئولیت حرفه ای 2 ‏ حقوق مالکیت فکری • ‏ مهندسان باید به قوانین محلی نسبت به استفاده ی از امکانات و مالکیت فکری به عنوان اختراعات ،حق تالیف و غیره احترام بگذارند .آنها باید مراقب باشند از حقوق کارفرمایان و مالکیت فکری حمایت شود. سوءاستفاده از کامپیوتر • مهندسین نرم افزار نباید از مهارت های تکنیکی خود نسبت به کامپیوتر مردم سوءاستفاده کنند. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 نظام نامه ی اخالقی ACM/IEEE ‏ ‏ ‏ انجمن های حرفه ای امریکا از قوانین اخالقی حمایت می کنند. اعضای این سازمان موظفند به قانون عمل نمایند. قانون دربرگیرنده ی هشت ماده در مورد رفتارها و تصمیمات حرفه ای مهندسین نرم افزار شاغالن ،معلمان ،مدیران ،ناظران و سیاست گذاران است. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 نظام نامه ی اخالقی -مقدمه ‏ مقدمه • • قوانین در سطح باالیی مطرح شدند؛ برخی از مواد به صورت جزیی و با مثال هایی همراه است که چگونگی فعالیت حرفه ای مهندسین نرم افزار را بیان می دارند. مهندسین نرم افزار باید در تحلیل ،تعیین مشخصات ،طراحی ،توسعه، تست و نگهداری نرم افزار صالحیت داشته و آن را تعهد نمایند. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 نظام نامه ی اخالقی – اصول 1 ‏ عمومیت • ‏ متقاضی و کارمند • ‏ مهندسان نرم افزار باید مطابق با عالیق عمومی عمل نماید. مهندسان نرم افزار باید به روشی عمل نماید که مطابق با عالیق متقاضیان و کارمندان باشد. محصول • مهندسان نرم افزار باید مطمئن باشند که محصوالتشان و اعمال تغییرات را مبتنی بر استانداردهای حرفه ای انجام خواهند داد. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 نظام نامه ی اخالقی – اصول 2 ‏ داوری • ‏ مدیریت • ‏ مهندسان نرم افزار باید درستی و استقالل را در داوری حفظ نمایند. مدیران و سرپرستان مهندس نرم افزار باید شیوه ی اخالقی را در مدیریت توسعه ی و نگهداری نرم افزار ترویج کنند. حرفه • مهندسان نرم افزار باید به درستی و حسن عملکرد شهرت کسب کنند. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 نظام نامه ی اخالقی – اصول 3 ‏ همکاران • ‏ مهندسین نرم افزار باید بیطرف بوده و از همکاران خود پشتیبانی نمایند. مسائل شخصی • مهندسین نرم افزار باید تمام عمر در ارتقای سطح علمی و اخالقی خود کوشا باشند. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004 مسائل غیرقابل حل اخالقی ‏ ‏ ‏ مخالفت با سیاست کلی مدیریت. کارمندانتان به روشی غیراخالقی عمل کنند و قبل از پایان و تست سیستم کار را ترک کنند. مشارکت در توسعه ی سیستم های سالح های کشتار جمعی یا سیستم های هسته ای. ‏Software Engineering, 7th edition. Chapter 1 ©Ian Sommerville 2004

51,000 تومان