فصل اول: نرمافزار و مهندسی نرمافزار
1-1. ماهیت نرمافزار
1-2. تعریف رشته مهندسی نرمافزار
1-3. فرآیند نرمافزار
1-4. مهندسی نرمافزار در عمل
1-5. شروع به کار
مسائل و نکاتی برای تعمق
بخش اول: فرآیند نرمافزار
فصل دوم: مدلهای فرآیند
2-1. مدل فرآیند کلی
2-2. تعریف یک فعالیت چارچوبی
2-3. تعیین مجموعه وظایف
2-4. ارزیابی و بهبود فرآیند
2-5. مدلهای فرآیند تجویزی
2-6. محصول و فرآیند
مسائل و نکاتی برای تعمق
فصل سوم: توسعهی چابک
3-1. چابکی چیست؟
3-2. چابکی و هزینههای تغییر
3-3. فرآیند چابک چیست؟
3-4. اسکرام (Scrum)
3-5. چارچوبهای دیگر چابک
مسائل و نکاتی برای تعمق
فصل چهارم : مدلهای فرآیند پیشنهادی
4-1. تعریف نیازمندیها
4-2. طراحی معماری اولیه
4-3. برآورد منابع
4-4. ساخت اولین نمونه
4-5. ارزیابی نمونه اولیه
4-6. تصمیمگیری برای ادامه یا توقف
4-7. ارزیابی نمونهی اولیه
4-8. انتشار نمونهی اولیه
4-9. نگهداری نرمافزار منتشرشده
مسائل و نکاتی برای تعمق
فصل پنجم : جنبههای انسانی مهندسی نرمافزار
5-1. خصوصیات مهندسان نرمافزار
5-2. روانشناسی مهندسی نرمافزار
5-3. تیم نرمافزاری
5-4. ساختار تیمها
5-5. تأثیر رسانههای جمعی
5-6. تیمهای جهانی
مسائل و نکاتی برای تعمق
بخش دوم: مدلسازی
فصل ششم: اصول راهنما در مهندسی نرمافزار
6-1. اصول بنیادی
6-2. اصول راهنمای فعالیتهای چارچوبی
مسائل و نکاتی برای تعمق
فصل هفتم: شناخت نیازمندیها
7-1. مهندسی نیازمندیها
7-2. تدارک مقدمات کار
7-3. جمعآوری نیازمندیها
7-4. توسعهی موارد کاربری
7-5. ساخت مدل تحلیل
7-6. مذاکره بر سر نیازمندیها
7-7. پایش نیازمندیها
7-8. اعتبارسنجی نیازمندیها
مسائل و نکاتی برای تعمق
فصل هشتم: مدلسازی نیازمندیها: رویکرد پیشنهادی
8-1. تحلیل نیازمندیها
8-2. مدلسازی مبتنی بر سناریو
8-3. مدلسازی مبتنی بر کلاس
8-4. مدلسازی عملکردی
8-5. مدلسازی رفتاری
مسائل و نکاتی برای تعمق
فصل نهم: مفاهیم طراحی
9-1. طراحي در حيطهي مهندسي نرمافزار
9-2. فرآيند طراحي
9-3. مفاهيم طراحي
9-4. مدل طراحي
مسائل و نكاتي براي تعمق
فصل دهم: طراحی معماری - رویکرد پیشنهادی
10-1. معماری نرمافزار
10-2. چابکی و معماری
10-3. سبکهای معماری
10-4. ملاحظات معماری
10-5. تصمیمات معمارانه
10-6. طراحی معماری
10-7. ارزیابی طراحیهای معماری متفاوت
مسائل و نکاتی برای تعمق
فصل یازدهم: طراحی در سطح مولفهها
11-1. مولفه چیست؟
11-2. طراحي مولفههاي مبتني بر كلاس
11-3. اجرای طراحی در سطح مولفهها
11-4. طراحی سطح مولفهی ویژه
11-5. بازآرایی مولفه
مسائل و نکاتی برای تعمق
فصل دوازدهم: طراحی تجربهی کاربر
12-1. عناصر طراحی تجربهی کاربر
12-2. قوانین طلایی
12-3. تحلیل و طراحی واسط کاربر
12-4. تحلیل واسط
12-5. طراحی تجربهی کاربری
12-6. طراحی واسط کاربری
12-7. ارزیابی طراحی
12-8. قابلیت استفاده و دسترسپذیری
12-9. تجربهی کاربری نرمافزار سنتی و تحرکپذیری
مسائل و نكاتي براي تعمق
فصل سیزدهم: طراحی اپلیکیشنهای سیار
13-1. چالشها
13-2. چرخهی حیات توسعهی اپلیکیشنهای سیار
13-3. معماریهای سیار
13-4. اپلیکیشنهای آگاه از حیطه
13-5. هرم طراحی وب
13-6. طراحي در سطح مولفهها
13-7. طراحی تحرکپذیری و كيفيت
13-8. بهترین روشهای طراحی تحرکپذیری
مسائل و نکاتی برای تعمق
فصل چهاردهم: طراحی مبتنی بر الگو
14-1. الگوهاي طراحي
14-2. طراحي نرمافزار بر اساس الگوها
14-3. الگوهاي معماري
14-4. الگوهاي طراحي در سطح مولفهها
14-5. ضد الگوها
14-6. الگوهاي طراحي واسط كاربر
14-7. الگوهاي طراحي براي اپلیکیشنهای وب
مسائل و نكاتي براي تعمق
بخش سوم: کیفیت و امنیت
فصل پانزدهم: مفاهیم کیفی
15-1. كيفيت چيست؟
15-2. كيفيت نرمافزار
15-3. مُعضل كيفيت نرمافزار
15-4. دستیابی به كيفيت نرمافزار
مسائل و نکاتی برای تعمق
فصل شانزدهم: مرور نرمافزار - رویکرد پیشنهادی
16-1. تأثير نقصهای نرمافزار بر هزينهها
16-2. تشديد نقصها و حذف آنها
16-3. معيارهاي مرور و كاربرد آنها
16-4. مرورها: يك طيف رسميت
16-5. مرورهاي غير رسمي
16-6. مرورهاى فنى رسمى
16-7. ارزیابیهای کالبدشکافانه
16-8. مرورهای چابک
مسائل و نكاتي براي تعمق
فصل هفدهم: تضمین کیفیت نرمافزار
17-1. مسائل پسزمينه
17-2. عناصر تضمين كيفيت نرمافزار
17-3. فرآیند SQA و ویژگیهای محصول
17-4. وظايف، اهداف و معيارهاي SQA
17-5. رویکردهای رسمی در SQA
17-6. تضمين كيفيت آمارى نرمافزار
17-7. قابليت اطمينان نرمافزار
17-8. استانداردهای كيفى ISO 9000
17-9. طرح SQA
مسائل و نكاتي براي تعمق
فصل هجدهم: مهندسی نرمافزار توزیعشده
18-1. چرا مهندسی امنیت نرمافزار مهم است؟
18-2. مدلهای چرخهی حیات امنیت
18-3. فعالیتهای چرخهی حیات توسعهی اَمن
18-4. مهندسی نیازمندیهای امنیتی
18-5. موارد بدکاربری و سوءاستفاده و الگوهای حمله
18-6. تحلیل ریسک امنیتی
18-7. مدلسازی، اولویتبندی و تعدیل تهدید
18-8. سطح حمله
18-9. کدنویسی اَمن
18-10. اندازهگیری
18-11. بهسازی فرآیند امنیتی و مدلهای بلوغ
مسائل و نکاتی برای تعمق
فصل نوزدهم: آزمون نرمافزار - سطح مولفه
19-1. رویکردى راهبردى براى آزمون نرمافزار
19-2. برنامهریزی و ثبت سوابق
19-3. طراحی موارد آزمون
19-4. آزمون جعبه سفيد
19-5. آزمون جعبه سياه
19-6. آزمون شىءگرا
مسائل و نكاتي براي تعمق
فصل بیستم: آزمون نرمافزار- سطح یکپارچهسازی
20-1. مبانی آزمون نرمافزار
20-2. آزمون یکپارچهسازی
20-3. هوش مصنوعی و آزمون رگرسیون
20-4. آزمون یکپارچهسازی در حیطهی شیءگرا
20-5. آزمون اعتبارسنجی
20-6. الگوهای آزمون
مسائل و نكاتي براي تعمق
فصل بیست و یکم: آزمون نرمافزار - آزمون ویژه برای تحرکپذیری
21-1. دستورالعملهای آزمون سیار
21-2. راهبردهای آزمون
21-3. مسائل آزمون تجربهی کاربری
21-4. آزمون اپلیکشینهای وب
21-5. راهبردهای آزمون وب
21-6. جهانیسازی
21-7. آزمون امنیت
21-8. آزمون عملکرد
21-9. آزمون بیدرنگ
21-10. آزمون سیستمهای هوش مصنوعی
21-11. آزمون محیطهای مجازی
21-12. آزمون مستندسازی و تسهیلات کمکی
مسائل و نكاتي براي تعمق
فصل بیست و دوم: مدیریت پیکربندی نرمافزار
22-1. مديريت پيكربندى نرمافزار
22-2. مخزن SCM
22-3. كنترل نسخهها
22-4. یکپارچهسازی پیوسته
22-5. فرآيند مدیریت تغییرات
22-6. تحرکپذیری و مدیریت تغییرات چابک
مسائل و نكاتی برای تعمق
فصل بیست و سوم: معیارها و تحلیل نرمافزار
23-1. اندازهگیری نرمافزار
23-2. تحلیل نرمافزار
23-3. معیارهای محصول
23-4. معیارهای برای آزمون
23-5. معيارهايى براى نگهدارى
23-6. معیارها در دامنهي فرآیند و پروژه
23-7. اندازهگیری نرمافزار
23-8. معیارهایی برای کیفیت نرمافزار
23-9. تدوین یک برنامه برای معیارهای نرمافزار
مسائل و نكاتی برای تعمق
بخش چهارم: مدیریت پروژههای نرمافزاری
فصل بیست و چهارم: مفاهیم مدیریت پروژه
24-1. طیف مدیریتی
24-2. افراد
24-3. محصول
24-4. فرآیند
24-5. پروژه
24-6. اصل W5HH
24-7. اقدامات حیاتی
مسائل و نکاتی برای تعمق
فصل بیست و پنجم: برنامهریزی قابل اجرا برای پروژه
25-1. توضیحاتی دربارهی برآوردها
25-2. فرآیند برنامهریزی پروژه
25-3. حوزهي نرمافزار و امکانسنجی
25-4. منابع
25-5. تحلیل دادهها و برآورد پروژههای نرمافزاری
25-6. تکنیکهای برآورد و تجزیه
25-7. زمانبندی پروژه
25-8. تعریف مجموعه وظایف برای پروژه
25-9. تعریف شبکهی وظایف
25-10. زمانبندى
مسائل و نکاتی برای تعمق
فصل بیست و ششم: مدیریت ریسک
26-1. راهبردهاى ريسك واكنشى در مقابل پيشكنشى
26-2. ريسكهاى نرمافزارى
26-3. شناسايى ريسكها
26-4. پيشبينى ريسك
26-5. پالايش ريسك
26-6. تعدیل، پايش و مديريت ريسك
26-7. برنامهي RMMM
مسائل و نكاتي براي تعمق
فصل بیست و هفتم: راهبردی برای پشتیبانی نرمافزار
27-1. پشتیبانی نرمافزار
27-2. نگهداری نرمافزار
27-3. پشتیبانی پیشکنشی نرمافزار
27-4. بازآرایی
27-5. تکامل نرمافزار
مسائل و نکاتی برای تعمق
بخش پنجم: موضوعات پیشرفته
فصل بیست و هشتم: بهبود فرآیند نرمافزار
28-1. SPI چیست؟
28-2. فرآیند SPI
28-3. CMMI
28-4. سایر چارچوبهای SPI
28-5. عایدی سرمایهگذاری روی SPI
28-6. روندهای SPI
مسائل و نکاتی برای تعمق
فصل بیست و نهم: گرایشهای نوظهور در مهندسی نرمافزار
29-1. ارزیابی فناوری
29-2. مهندسی نرمافزار به عنوان یک نظام
29-3. مشاهدهي گرايشهای مهندسي نرمافزار
29-4. شناسایی "گرايشهای نرم"
29-5. جهتگیریهاي فناوری
29-6. گرايشهای مرتبط با ابزارها
مسائل و نکاتی برای تعمق
فصل سیاُم: سخن واپسین
30-1. اهمیت نرمافزار- نگاهی دوباره
30-2. افراد و شیوهي ساخته شدن سیستمها توسط آنها
30-3. کشف دانش
30-4. دید درازمدت
30-5. مسئولیت مهندسان نرمافزار
30-6. کلام آخر
واژهنامه