کتاب Beginning Software Engineering (شروع مهندسی نرمافزار، ویرایش دوم) از جدیدترین منابع یادگیری مهندسی نرمافزار برای نوآموزان است که در سال 2022 به چاپ رسیده است. این کتاب در 21 فصل به آموزش مقدماتی تا بیان نکات مهم و پیشرفتهی مهندسی نرمافزار و ترفندهای آن خواهد پرداخت.
در ادامه مقدمهای از کتاب Beginning Software Engineering را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Beginning Software Engineering:
امروزه برنامهنویسی مسابقهای است بین مهندسان نرمافزار که تلاش میکنند تا برنامههای بهتر بسازند، و تلاش جهان برای ساختن برنامههای ساده و بهتر. تا اینجا کائنات برنده است.
ریک کوک
با ابزارهای توسعه مدرن، نشستن پشت صفحه کلید و اجرای یک برنامه کاری بدون طراحی یا برنامه ریزی قبلی آسان است، و این در برخی شرایط خوب است. وبسایتهای My VB Helper (www.vb-helper.com) و C# Helper (www.csharphelper.com) حاوی هزاران نمونه برنامه هستند که به ترتیب با Visual Basic و C# نوشته شدهاند و دقیقاً با استفاده از این رویکرد ساخته شدهاند. من یک ایده داشتم (یا کسی از من سؤالی پرسید) و یک مثال سریع زدم.
این نوع برنامهها اگر تنها کسی باشید که از آنها استفاده میکنید و فقط برای مدت کوتاهی از آنها استفاده میکنید، خوب هستند. همچنین اگر مانند وبسایتهای من، فقط برای نشان دادن یک تکنیک برنامهنویسی در نظر گرفته شده باشند و هرگز از محدوده آزمایشگاه برنامهنویسی خارج نشوند، مشکلی ندارند.
با این حال، اگر این نوع برنامههای slap-dash به طبیعت فرار کنند، نتیجه میتواند فاجعهبار باشد. در بهترین حالت، غیر برنامهنویسانی که از این برنامهها استفاده میکنند به سرعت گیج میشوند. در بدترین حالت، آنها میتوانند کامپیوترهای خود و حتی دوستان و همکاران خود را خراب کنند.
حتی توسعهدهندگان باتجربه نیز گاهی با این برنامههای نیمهکاره مخالفت میکنند. من کسی را میشناسم (اسامی نمیآورم، اما همچنین نمیگویم این من نبودم) که یک اسکریپت بازگشتی ساده برای حذف فایلها در سلسله مراتب دایرکتوری نوشته است. متأسفانه، اسکریپت به صورت بازگشتی راه خود را به بالای درخت دایرکتوری صعود کرد و سپس با خوشحالی شروع به حذف هر فایل در سیستم کرد.
این اسکریپت قبل از اینکه متوقف شود فقط حدود پنج ثانیه اجرا شد، اما قبلاً به اندازه کافی فایلها را در سطل زباله گذاشته بود که سیستم عامل باید از ابتدا دوباره نصب میشد. (در واقع، برخی از توسعهدهندگان بر این باورند که نصب مجدد سیستم عامل هر سال یا بیشتر، شخصیتسازی است.
اگر موافق هستید، شاید این روش چندان بد نباشد.) من یک توسعهدهنده با تجربه دیگر را میشناسم که در حالی که تنظیمات سیستم ویندوز را آزمایش میکرد، موفق شد هر رنگ سیستم را روی سیاه تنظیم کنید. نتیجه یک مکاننمای سیاه روی یک دسکتاپ سیاه بود که پنجرههای سیاه را با حاشیهها، منوها و متن سیاه نشان میداد.
این شخص (که این بار من نبودم) در نهایت با راهاندازی مجدد و استفاده از رایانه دیگری که دارای اختلالات رنگی نبود، توانست همه چیز را برطرف کند و تنها با استفاده از شتابدهندههای صفحهکلید، مراحل اصلاح تنظیمات را طی کند. این یک پیروزی هوشمندانه بود، اما من گمان میکنم که او ترجیح میداد کل قسمت را نادیده بگیرد و دو روز تلف شدهاش را به عقب برگرداند.
برای برنامههایی که بیش از چند ده خط طول دارند، یا به کاربران نهایی ناآگاه داده میشوند، این نوع رویکرد توسعه آزادانه به سادگی جواب نمیدهد. برای تولید برنامههایی مؤثر، ایمن و قابل اعتماد، نمیتوانید بنشینید و شروع به تایپ کنید. شما نیاز به یک برنامه دارید. تو نیاز داری . . . <drumroll>. . . مهندسی نرمافزار.
کتاب Beginning Software Engineering مهندسی نرمافزار را توضیح میدهد. توضیح میدهد که مهندسی نرمافزار چیست و چگونه به تولید برنامههایی کمک میکند که برای استفاده در موقعیتهای واقعی، مؤثر، انعطافپذیر و به اندازه کافی قوی باشند.
کتاب Beginning Software Engineering شما را به یک تحلیلگر سیستم خبره، معمار نرمافزار، مدیر پروژه یا برنامهنویس تبدیل نمیکند، اما توضیح میدهد که این افراد چه کاری انجام میدهند و چرا برای تولید نرمافزار با کیفیت بالا ضروری هستند. همچنین ابزارهایی را که برای شروع نیاز دارید در اختیار شما قرار میدهد.
شما عجله نخواهید کرد و یک تلاش 1000 نفری را برای ساختن یک سیستم کنترل ترافیک هوایی جدید برای FAA رهبری نمیکنید، اما میتواند به شما کمک کند در پروژههای توسعهای در مقیاس کوچک و بزرگ کار کنید. (همچنین میتواند به شما کمک کند که منظور یک کارفرمای آینده نگر را درک کنید که میگوید: “بله، ما بیشتر از اسکرام با چند تکنیک اضافی XP استفاده میکنیم.”)
کتاب Beginning Software Engineering به سه بخش تقسیم شده است. بخش اول وظایف اساسی را که برای تکمیل و ارائه نرمافزار مفید نیاز دارید، مانند طراحی، برنامهنویسی و تست شرح میدهد. بخش دوم کتاب برخی از مدلهای رایج فرآیند نرمافزار را توضیح میدهد که از تکنیکهای مختلفی برای انجام آن وظایف استفاده میکنند.
بیشتر بخوانید: کتاب What Every Engineer Should Know about Software Engineering
بخش سوم و پایانی کتاب Beginning Software Engineering شامل دو فصل اضافی، «اخلاق نرمافزار» و «روندهای آینده» است که اطلاعات مفیدی را برای هر توسعهدهنده نرمافزاری ارائه میکند، اما با قسمتهای قبلی کتاب همخوانی ندارد. پس از آنها، ضمیمه، که شامل پاسخ تمرینات فصلها است، و واژهنامه آمده است.
با این حال، قبل از شروع کار بر روی یک پروژه توسعه نرمافزار، باید مقداری آمادهسازی را انجام دهید. شما باید ابزارها و تکنیکهایی را تنظیم کنید که به شما کمک کند پیشرفت خود را در طول پروژه پیگیری کنید. اگر پیشرفت خود را پیگیری نکنید، بسیار آسان است که به طرز ناامیدکنندهای بسیار عقب بمانید.
فصل 1 کتاب Beginning Software Engineering، “مهندسی نرمافزار از 20000 فوت”، یک نمای کلی در سطح بالا ارائه میدهد. فصل 2، “قبل از شروع”، و فصل 3، “تیم”، برخی از کارهای راه اندازی دیگری را توضیح میدهند که باید قبل از اینکه توسعه ملموستر شروع شود، شروع کنید. پس از انجام مقدمات، رویکردهای زیادی برای تولید نرمافزار وجود دارد. همه این رویکردها هدف یکسانی دارند (ساخت نرمافزار مفید)، بنابراین آنها باید تقریباً وظایف مشابهی را انجام دهند.
اینها مواردی مانند جمع آوری نیازمندیها، ساختن یک طرح و در واقع نوشتن کد هستند. بخش اول کتاب Beginning Software Engineering به تشریح این وظایف میپردازد. فصل 1 آن وظایف را در سطح بالایی توضیح میدهد. فصل 4 تا 16 جزئیات بیشتری در مورد اینکه این وظایف چیست و چگونه میتوانید آنها را به طور مؤثر انجام دهید ارائه میدهد.
بخش دوم کتاب Beginning Software Engineering برخی از روشهای محبوبتر توسعه نرمافزار را شرح میدهد. همه این مدلها مسائل مشابهی را که در فصلهای قبلی توضیح داده شد، اما به روشهای متفاوتی بررسی میکنند. برخی بر روی قابلیت پیشبینی تمرکز میکنند تا دقیقا بدانید چه ویژگیهایی و چه زمانی ارائه میشوند. برخی دیگر بر ایجاد بیشترین ویژگیها در سریعترین زمان ممکن تمرکز میکنند، حتی اگر این به معنای دور شدن از طرح اصلی باشد.
فصلهای 17 تا 19 کتاب Beginning Software Engineering برخی از محبوب ترین این مدلهای توسعه را شرح میدهند. فصل 20 در مورد اخلاق نرمافزار بحث میکند. نرمافزار چند معضل اخلاقی منحصر به فرد را ارائه میدهد و هوش مصنوعی (AI) چارچوبی را برای برخی موقعیتها فراهم میکند که اگر تا حدودی بعید هستند جالب هستند.
در نهایت، در فصل 21، من برخی از پیشبینیهای (احتمالا احمقانه) را در مورد گرایشهای مهندسی نرمافزار انجام میدهم. این راهی است که کتاب Beginning Software Engineering برای یادگیری مهندسی نرمافزار در اختیار شما قرار میدهد.
ابتدا وظایفی را که برای ارائه نرمافزار مفید باید انجام دهید را بیاموزید. در مرحله بعد، بیاموزید که چگونه مدلهای مختلف آن وظایف را انجام میدهند. سپس با مواد متفکرانهتری تمام کنید.
با این حال، بسیاری از مردم در یادگیری از طریق شمارش خستهکننده حقایق مشکل دارند. (مطمئناً این کار را انجام میدهم!) برای اینکه جذب اطلاعات کمی آسانتر شود، کتاب Beginning Software Engineering شامل چند عنصر دیگر است.
هر فصل با تمرینهایی پایان مییابد که میتوانید با استفاده از آنها متوجه شوید که آیا هنگام خواندن فصل به آن توجه کردهاید یا خیر. من تمرینهایی را دوست ندارم که صرفاً از شما بخواهند آنچه در فصل است را تکرار کنید. (سریع، برخی از مزایا و معایب ماهیت نرمافزار خارقالعاده چیست؟) بیشتر تمرینها از شما میخواهند که ایدههای اصلی فصل را گسترش دهید. امیدواریم، آنها شما را به فکر راههای جدیدی برای استفاده از آنچه در فصلها توضیح دادهاند، بیاندازند.
گاهی اوقات، تمرینها تنها راهی هستند که میتوانم اطلاعات بیشتری را در فصلی که کاملاً در هیچ یک از بخشهای آن جا نمیافتد، پنهان کنم. در این موارد، سؤالات و پاسخهای ارائه شده در ضمیمه کتاب Beginning Software Engineering بیشتر شبیه انحرافات گسترده و آزمایشهای فکری هستند تا سؤالات مسابقه.
اکیداً توصیه میکنم که حداقل تمرینات را مرور کنید و به آنها فکر کنید. سپس از خود بپرسید که آیا راه حلها را درک میکنید؟ تمام راه حلها در ضمیمه گنجانده شده است.
سرفصلهای کتاب Beginning Software Engineering:
- Cover
- Title Page
- Copyright Page
- About the Author
- Acknowledgments
- Contents
- Introduction
- Part I Software Engineering Step-by-Step
- Chapter 1 Software Engineering from 20,000 Feet
- Chapter 2 Before the Beginning
- Chapter 3 The Team
- Chapter 4 Project Management
- Chapter 5 Requirements Gathering
- Chapter 6 High-Level Design
- Chapter 7 Low-Level Design
- Chapter 8 Security Design
- Chapter 9 User Experience Design
- Chapter 10 Programming
- Chapter 11 Algorithms
- Chapter 12 Programming Languages
- Chapter 13 Testing
- Chapter 14 Deployment
- Chapter 15 Metrics
- Chapter 16 Maintenance
- Part II Process Models
- Chapter 17 Predictive Models
- Chapter 18 Iterative Models
- Chapter 19 RAD
- Part III Advanced Topics
- Chapter 20 Software Ethics
- Chapter 21 Future Trends
- Appendix: Solutions to Exercises
- Glossary
- Index
- EULA
جهت دانلود کتاب Beginning Software Engineering میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.