This book reviews important technologies for software development with a particular focus on Web applications. In reviewing these technologies I put emphasis on underlying principles and basic concepts, rather than meticulousness and completeness. In design and documentation, if conflict arises, clarity should be preferred to precision because, as will be described, the key problem of software development is having a functioning communication between the involved human parties. My main goal in writing this book has been to make it useful. The developer should always keep in mind that software is written for people, not for computers. Computers just run software—a minor point. It is people who understand, maintain, improve, and use software to solve problems. Solving a problem by an effective abstraction and representation is a recurring theme of software engineering. The particular technologies evolve or become obsolete, but the underlying principles and concepts will likely resurface in new technologies
The idea behind the book is great. But I felt it did not work in the paper format. It tries to teach you by building several projects. However, the building blocks are spread throughout the book unevenly. It would be cool if it could be implemented as an interactive web app that allows you to follow the learning by focusing on one of the projects.
درست نصف هذا الكتاب كمقرر لكورس CS 2401 هندسة البرمجيات تُعنى بانتاج نظم حاسوبية تعالج مشاكل العملاء. تبدأ الهندسة من المقابلات الأولى مع العميل لفهم المشكلة التي يريد حلها، الحلول التي يستخدمها حاليًا، كيف يريد حل المشكلة، فهم المجال الخاص بالنظام المطلوب، وضع مستند للمتطلبات
بعد ذلك تأتي مرحلة تصميم النظام، يتم تصميم النظام بشكل مجرد أولا وقبل كتابة أي سطر برمجي، تحديد هيكلية النظام البرمجي، الكائنات التي سيتم استخدامها، توزيع المسؤليات على الكائنات، كتابة سيناريوهات الاختبار إلخ
بعد ذلك تأتي مرحلة تنفيذ التصميم السابق وأخيرا مرحلة الاختبار
هندسة البرمجيات تركز على المنهجية في التعامل مع مشكلة العميل، بامتلاك طريقة واضحة ومحددة المعالم لتجزئة المشكلة إلى مشاكل أصغر، ثم وضع تصاميم لحل هذه المشاكل الصغيرة، ثم وضع اختبارات وأخيرًا مرحلة البرمجة.
Good book, many valuable pointers towards creating great software. Hard to read through and a lot of information. The exercises were helpful and I recommend this book to anyone interested in software engineering.