درس مهندسی نرمافزار عصاره رشته مهندسی کامپیوتر و فنآوری اطلاعات است. مشکل عمده بیشتر کتابها و مراجع موجود، این است که مطالب این درس را به صورت بسیار گنگ و نامفهوم بیان کردهاند. نویسنده کتاب، دلیل اصلی این مشکل را نبودن مثالهای عملی در بیشتر این کتابها میداند. بنابراین، تألیف و گردآوری این کتاب با رویکرد حل مسئله انجام شده است و با ارائه مثالها و تمرینهای عملی کاربردی و گوناگون، نگاهی نو به مهندسی نرمافزار داشته است و به این دلیل، میتوان آن را از دیگر آثار ترجمه و تألیفی موجود در این حوزه، متمایز دانست.
نظرات کاربران
|
حسين يعسوبي
١٣٩٥/٠٨/١٤ ???? ٢٣:٢٥
به نظرم آقای کمالی 4 مرحله خرید را تا آخر طی نکرده اند تا ببینند در مرحله آخر رقم تخفیف در فاکتور منظور میشه
|
|
احمدرضا سنجری
١٣٩٥/٠٩/١٨ ???? ١٤:٥٧
با سلام،
با سپاس از کتاب بسیار خوب و کامل شما، در تمرینات ارائه شده در انتهای فصل نیازمند پاسخ های آنها می باشم متاسفانه پاسخ های این تمرینات در محتوای درون فصل بیان نشده و و نیاز به جستجو در اینترنت است، لطفا پاسخ ها را به عنوان مبحث قابل دانلود در ضمائم قرار دهید،
سوال های تمرینات بسیار خوب با رعایت نقاط مرزی بسیار عالی که شفافایت و پاسخ به این سوالات از نظر من از هوشمندی مولف می باشد، بوده، اما به علت همین نقاط غیر شفاف و شبه برانگیز از مولف عزیز در خواست پاسخ آن ها را دارم
|
|
کریم کمالی
١٣٩٥/٠٨/٠٨ ???? ١١:٣٧
در ایتجا تخفیف اینترنتی اعلام شده است اما در موقع خرید اعمال نمیشود ، مشکل از چیست ؟
|
|
محسن كجباف
١٣٩٥/٠٨/٠٩ ???? ٢٠:٣٥
سلام
مدیریت محترم انتشارات باید پیگیری کنند.
|
ثبت نظر تنها براي اعضا میسر است. در صورتی که مایل به ثبت نظر هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.
فصل نخست؛ نرمافزار و مهندسی نرمافزار 1
1-1 نرمافزار و مهندسي نرمافزار 1
1-2 ويژگيهاي يك نرمافزار خوب 2
1-3 مقايسه سختافزار و نرمافزار 3
1-4 هفت گروه نرمافزارهاي كامپيوتري 4
1-5 چالشهاي پيش روي مهندسي نرمافزار 5
1-6 دلایل اهمیت مهندسي نرمافزار 5
1-7 دلايل نياز به تكامل سيستمهاي نرمافزاري قديمي 5
1-8 لایههای مهندسي نرمافزار 6
1-9 فرآيند نرمافزار 6
1-10 پندارهاي باطل نرمافزاري 9
1-11 شروع يك پروژه نرمافزاري 10
1-12 فرآیند تهیه سیستم در سازمان 11
1-13مهندسی سیستمها 11
1-13-1 تعریف نیازمندیهای سیستم 13
1-13-2 طراحی سیستمها 13
1-13-3 مدلسازی سیستم 14
1-13-4 توسعه زیرسیستم 14
1-13-5 جامعیت زیرسیستم 14
1-13-6 نصب زیرسیستم 14
1-13-7 تکامل سیستم 14
1-13-8 تجزیه سیستم 15
1-14 قابلیت اتکای سیستم 15
1 – 15 تحلیلگر سیستم 15
1-15-1 مسئولیتهای تحلیلگر 15
1-15-2 وظیفههای تحلیلگر 16
1-16 خودکارسازی فرآیند کسب و کار (BPA) 16
1-17 بهبود فرآیند کسب و کار (BPI) 17
1-18 مهندسی مجدد فرآیند کسب و کار (BPR) 17
برون سپاری 17
مشاوره 17
تمرینات فصل نخست 18
فصل دوم؛ مدلهای فرایند 21
2-1 فرآيند نرمافزار 21
2-2 ارزيابي و بهبود فرآيند 24
2-3 مدلهاي فرآيند 24
مدلهاي فرآيند چشمانداز 24
2-3-1 مدل آبشاري 24
2-3-2 مدل فرآيند افزايشي 25
مدلهاي فرآيند تكاملي 26
2-3-3 مدل نمونهسازي 26
2-3-4 مدل مارپيچي 27
2-3-5 مدل توسعه همروند 28
مدلهاي فرآيند تخصصي 30
2-3-6 توسعه مبتنيبر مولفه 30
2-3-7 مدل روشهاي رسمي 30
2-3-8 فرآيند يكپارچه 31
2-4 مدلهاي فرآيند تيمي و شخصي 32
2-4-1 فرآيند نرمافزاري شخصي (PSP) 33
2-4-2 فرآيند نرمافزاري تيمي 33
مثالهای حل شده 34
تمرینات فصل دوم 35
فصل سوم؛ شروع پروژه و درک نیازمندیهای نرمافزار 43
3-1 شناسایی پروژه 43
3-2 درخواست سیستم 44
3-3 تجزیه و تحلیل امکانسنجی 44
3-4 تکنیکهای استخراج نیازمندیها 46
3-4-1 مصاحبهها 46
رویکردهای سازماندهی پرسشهای مصاحبه 46
3-4-2 ایجاد و توسعه برنامه کاربری مشترک (JAD) 47
مراحل ایجاد JAD 48
3-4-3 پرسشنامه 48
3-4-4 تجزیه و تحلیل و مطالعه مستندات 49
3-4-5 مشاهده 49
3-5 درك نيازمنديهاي نرمافزار 50
3-6 ايجاد پيشزمينه براي شروع كار 52
3-7 استخراج نيازمنديها 53
استقرار عملکرد کیفی ( QFD ) 53
3-8 سناریوهای استفاده 53
3-9 محصول کاری استخراج نیازمندیها 54
3-10 توسعه موردهای استفاده 54
3-11 ساخت مدل نیازمندیها 55
3-12 عناصر مدل نیازمندیها 55
3-13 الگوهای تحلیل 55
3-14 مذاکره درباره نیازمندیها 56
3-15 اعتبارسنجی نیازمندیها 56
3-16 الگوی مشخصات نیازمندیهای نرمافزاری 57
3-17 تعیین مشخصات نیازمندیها 58
3-18 مديريت تغيير نيازمنديها 59
مثالهای حل شده 59
تمرینات فصل سوم 61
فصل چهارم؛ تحلیل و مدلسازی نیازمندیها 71
4-1 مدلسازي نيازمنديها 71
4-2 تحليل نيازمنديها 71
4-3 مدلسازی و شئگرایی با زبان UML 74
4-3-1 Use case diagram 74
4-3-2 Class diagram 76
4-3-3 نمودار حالت (State diagram) 79
4-3-4 نمودار فعالیت (Activity diagram) 80
4-3-5 نمودار توالی (Sequence diagram) 80
4-3-6 نمودار همکاری (Collobration diagram) 81
4-3-7 نمودار قطعه (Component diagram) 81
4-3-8 نمودار استقرار (Deployment giagram) 82
4-3-9 نمودار جریان داده (DFD) 82
نمادهای موجود در نمودار DFD 82
قوانین ترسیم نمودار جریان دادهها (DFD) 83
مثالهای حل شده 87
مثالهای حل شده 88
مطالعه موردی 1 105
مطالعه موردی 2 109
مطالعه موردی 3 111
مطالعه موردی 4 118
4-4 مدلسازی دادهها (مدلسازی پایگاه دادهها) 136
4-5 مدلسازی کلاس- وظیفه- همکاری (CRC) 142
تمرینات فصل چهارم 143
فصل پنجم؛ طراحی نرم افزار 161
طراحی در مهندسی نرمافزار 161
5-1 فرآیند طراحی 163
5-2 مفاهیم طراحی 163
5-2-1 مفاهیم اتصال و انسجام 165
5-2-2 مفاهیم طراحی شئگرا 172
5 – 3 طراحی معماری 172
چرا معماری مهم است؟ 173
5-3-1 سبکهای معماری 173
5-3-2 طبقه بندی سبکهای معماری 174
5-4 طراحی در سطح مؤلفه 178
5-4-1 طراحی مؤلفهها به صورت سنتی 179
5-4-2 نمادگذاری طراحی به روش جدولی 180
5-5 طراحی واسط کاربر 183
5-5-1 قوانین طلایی 184
2-5-2 تحلیل و طراحی واسط کاربر 186
5-5-3 نکات تکمیلی مبحث رابط کاربر 186
5 – 6 طراحی پایگاه داده 188
5-6-1 نرمال سازی 193
تمرینات فصل پنجم 196
فصل ششم؛ پیادهسازی نرمافزار 205
6-1 مقدمهای برای زبان C++ 205
6-2 ترجمه نمودار کلاس (class diagram) به زبان C++ 214
6-3 پیادهسازی نمودار همکاری و نمودار توالی در C++ 226
6-4 ترجمه نمودار حالت به C++ 231
6-5 ترجمه نمودار فعالیت به C++ 234
تمرینات فصل ششم 237
فصل هفتم؛ آزمون نرمافزار 245
7-1 وارسی و اعتبارسنجی (Verification and Valdation) 245
7-2 راهبردهای آزمون برای نرمافزارهای متداول 246
7-2 -1 آزمون واحد (unit test) 246
7-2-2 آزمون مجتمعسازی (intergration testig) 247
7-2-3 آزمون اعتبارسنجی 247
7-2-4 آزمون سیستم 248
7-3 اشکالزدایی (Debugging) 249
7-4 آزمونهای برنامههای کاربردی سنتی 250
7-4-1 آزمون جعبه سفید (White box testing) 250
7-4-2 آزمون مسیرهای اصلی (Basic Path testing) 250
7-4-3 پیچیدگی سیکلوماتیک (Cyclomatic complexity) 253
7-4-4 ماتریس گراف (Graph Matrix) 253
7-4-5 آزمون ساختارهای کنترلی (Control Structure testing) 254
7-4-6 آزمایش حلقهها (Loop testing) 254
7-5 آزمون جعبه سیاه (Black Box testing) 256
7-5-1 آزمون افراز همارزی (Equivalence Partitioning) 256
7-5-2 آزمون تحلیل مقادیر مرزی (Boundary Value Analysis) 257
7-5-3 آزمون روش مبتنی بر گراف 257
7-5-4 آزمون آرایههای متعامد 257
7-5-5 آزمون واسطهای گرافیکی 258
7-5-6 آزمون مستندات راهنماها (help) 258
مثالهای حل شده 258
تمرینات فصل هفتم 290
فصل هشتم؛ مديريت پروژههاي نرمافزاري 307
8-1 مديريت كيفيت 307
8-1-1 كيفيت نرمافزار 307
8-1-2 عناصر كيفيت نرمافزار 307
8-1-3 كنترل كيفيت و تضمین کیفیت 308
8-1-4 عناصر تضمين كيفيت نرمافزار 309
8-1-5 وظايف SQA 309
8-1-6 اهداف SQA 310
8-1-7 تضمين كيفيت آماري نرمافزار 310
8-1-8 قابليت اطمينان نرمافزار 311
8-2 مرورهاي نرمافزار 311
8-2-1 تشدید و حذف نقایص 312
8-2-2 معیارهای اندازهگیری مرورها و کاربرد آنها 314
8-2-3 مرورهای غیر رسمی 316
8-2-4 مرورهای فنی رسمی 316
8-2-5 گزارش مرور 317
8-3 مفاهیم مدیریت پروژه 317
8-3-1روش سازماندهی گروه 318
8-4 مديريت ريسك 321
8-4-1 استراتژي مديريت ريسك 321
8-4-2 شناسایی ریسک 323
8-4-3 تخمین ریسک 323
8-4-4 توسعه یک جدول ریسک 324
8-4-5 ارزیابی تأثیر ریسک 325
8-4-6 کاهش، نظارت و مدیریت ریسک 325
8-4-7 نكات تكميلي فصل مديريت ريسك 326
8-5 زمان بندی پروژه 326
8-5-1 اصطلاحات زمانبندی پروژه 327
8-5-2 تعریف یک شبکه وظیفهای 328
8-5-3 زمانبندی 330
8-5-4 رسم نمودارهای پرت 330
8-5-5 رسم نمودار گانت 332
8-5-6 مراحل ترسیم شبکه فعالیت برای رسم نمودار پرت با استفاده از جدول زمان بندی پروژه 333
8-5-7 پیگیری زمانبندی پروژه 336
8-5-8 تحلیل مقدار بهدست آمده(EVA) 337
8-5-9 نقاط عطف بخشهای قابل تحویل 339
8-6 معیارهای اندازهگیری در مهندسی نرمافزار 339
8-6-1 معیارهایی برای مدل نیازمندیها 340
8-6-2 معیارهای اندازهگیری کیفیت مشخصات: 343
8-6-3 معیارهایی برای اندازهگیری طراحی معماری 343
8-6-4 معیارهای اندازهگیری کد منبع 345
8-6-5 معیار اندازهگیری برای نگهداری نرمافزار 349
8-6-6 اندازهگیری نرمافزار 349
8-6-7 معیارهای اندازهگیری مربوط به کیفیت 351
8-6-8 بازدهی رفع نقایص 352
8-6-9 تخمین پروژههای نرمافزاری 352
8-6-10 تخمین 353
8-6-11 معادله نرمافزار 356
8-6-12 تصمیم درباره ساخت یا خرید 357
8-7 مدیریت پیکربندی 358
8-7-1 فعالیت مدیریت پیکربندی 358
8-7-2 مدیریت نسخه 360
کنترل نسخه متمرکز 362
کنترل توزیع شده نسخه 362
مزایای کنترل توزیع شده نسخه 363
توسعه منبع باز 363
انشعاب و ادغام 363
مدیریت ذخیره سازی 364
8-7-3 ساختار سیستم 364
پلت فرمهای ساخت 365
پلت فرم سیستم 365
8-7-4 مدیریت تغییر 366
8-7-5 مدیریت انتشار 367
مؤلفههای انتشار 367
8-7-6 عوامل مؤثر بر برنامهریزی انتشار سیستم 367
8-7-7 تعاریف مهم در زمینه مدیریت پیکربندی 368
تمرینات فصل هشتم 370
مهندسی نرمافزار 383
مقدمه 386
تصحیحات
ثبت تصحيح تنها براي اعضا میسر است. در صورتی که مایل به ثبت تصحيح هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.