Foundations of Systems Development أسس تطوير النظم
Understanding the ecosystem of software creation: from Agile methodologies to procuring billion-dollar enterprise systems. فهم بيئة إنشاء البرمجيات: من منهجيات Agile إلى شراء أنظمة المؤسسات بمليارات الدولارات.
Analysis vs. Design التحليل مقابل التصميم
System Analysis تحليل النظم (System Analysis)
"The What" "ماذا" (The What)
The process of studying a procedure or business to identify its goals and purposes and create systems and procedures that will efficiently achieve them. عملية دراسة إجراء أو عمل تجاري لتحديد أهدافه وأغراضه وإنشاء أنظمة وإجراءات تحققها بكفاءة.
- Understanding current problems. فهم المشاكل الحالية.
- Gathering requirements. جمع المتطلبات.
- Specifying what the system should do. تحديد ماذا يجب أن يفعل النظام.
System Design تصميم النظم (System Design)
"The How" "كيف" (The How)
The process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements. عملية تعريف البنية والمكونات والوحدات والواجهات والبيانات للنظام لتلبية المتطلبات المحددة.
- Creating blueprints (UML). إنشاء المخططات (UML).
- Designing Database schemas. تصميم مخططات قواعد البيانات.
- Specifying how the system will be built. تحديد كيف سيتم بناء النظام.
Modern Methodologies المنهجيات الحديثة
Agile Methodologies منهجيات Agile
A reaction to rigid, document-heavy methods. Agile prioritizes individuals, interactions, and working software over strict processes. رد فعل على الأساليب الصارمة والمثقلة بالوثائق. تعطي Agile الأولوية للأفراد والتفاعلات والبرمجيات العاملة على العمليات الصارمة.
eXtreme Programming (XP) eXtreme Programming (XP)
- • Short cycles & incremental planning.دورات قصيرة وتخطيط تزايدي.
- • Pair ProgrammingPair Programming: Two devs, one screen.مطوران، شاشة واحدة.
- • Automated testing is core.الاختبار الآلي هو الجوهر.
- • Heavy client involvement.مشاركة مكثفة من العميل.
Scrum Scrum
- • Designed for high chaos/flux.صمم للفوضى/التغيير العالي.
- • SprintsSprints: 2-4 week work units.وحدات عمل لمدة 2-4 أسابيع.
- • Product BacklogProduct Backlog: List of all desired features.قائمة بكل الميزات المطلوبة.
- • Daily Standups (15 min meetings).اجتماعات يومية (Standups) لمدة 15 دقيقة.
Object-Oriented Analysis & Design (OOAD) تحليل وتصميم كائني التوجه (OOAD)
Modeling systems as collections of objects (combining data and behavior) rather than separating data from logic. Commonly implemented via RUP (Rational Unified Process). نمذجة الأنظمة كمجموعات من الكائنات (الجمع بين البيانات والسلوك) بدلاً من فصل البيانات عن المنطق. ينفذ عادة عبر RUP.
Where does Software Come From? من أين تأتي البرمجيات؟
1. Outsourcing 1. Outsourcing (الاستعانة بمصادر خارجية)
Hiring external firms to build/run systems. توظيف شركات خارجية لبناء/تشغيل الأنظمة.
- Cost-effective, Focus on core business.فعالة من حيث التكلفة، التركيز على العمل الأساسي.
- Loss of control, Security risks.فقدان السيطرة، مخاطر أمنية.
2. Off-the-Shelf 2. Off-the-Shelf (جاهزة)
Buying pre-packaged software (e.g., Microsoft Office, SAP). شراء برمجيات جاهزة (مثل Microsoft Office, SAP).
- Fast deployment, Standard.نشر سريع، قياسي.
- May not fit specific needs perfectly.قد لا تناسب الاحتياجات المحددة تماماً.
3. Enterprise (ERP) 3. Enterprise (ERP)
Integrated systems for all biz functions (HR, Finance, Sales). أنظمة متكاملة لجميع وظائف الأعمال (HR، المالية، المبيعات).
- Single data source, Process integration.مصدر بيانات واحد، تكامل العمليات.
- Extremely complex & expensive implementation.تنفيذ معقد للغاية ومكلف.
4. Cloud / SaaS 4. Cloud / SaaS
Renting software over the internet (e.g., Salesforce, Google Docs). استئجار البرمجيات عبر الإنترنت (مثل Salesforce, Google Docs).
- Low upfront cost, Scalable.تكلفة أولية منخفضة، قابل للتوسع.
- Data ownership/security concerns.مخاوف ملكية البيانات والأمن.
5. Open Source 5. Open Source (مفتوح المصدر)
Code is free to use/modify (e.g., Linux, MySQL, Firefox). الكود مجاني للاستخدام/التعديل (مثل Linux, MySQL).
- Free license, Community driven.رخصة مجانية، مدعوم من المجتمع.
- Support can be costly/inconsistent.الدعم قد يكون مكلفاً/غير متسق.
6. In-House 6. In-House (داخلي)
Building it yourself from scratch. بناؤه بنفسك من الصفر.
- Perfect fit, Competitive advantage.ملاءمة مثالية، ميزة تنافسية.
- Highest cost, Staffing burden.أعلى تكلفة، عبء التوظيف.
Software Reuse إعادة استخدام البرمجيات
Why reinvent the wheel? Reuse increases productivity and quality. However, it requires a culture shift. لماذا نعيد اختراع العجلة؟ إعادة الاستخدام تزيد الإنتاجية والجودة. ومع ذلك، تتطلب تغييراً في الثقافة.
| Approachالنهج | Reuse Levelمستوى إعادة الاستخدام | Costالتكلفة | Policyالسياسة |
|---|---|---|---|
| Ad hoc Ad hoc (ارتجالي) | None to Low معدوم إلى منخفض | Low منخفضة | Informal. "Use it if you find it." No enforcement. غير رسمي. "استخدمه إذا وجدته". لا فرض. |
| Facilitated Facilitated (مُيسر) | Low منخفض | Low منخفضة | Developers encouraged. Some tools available. يتم تشجيع المطورين. بعض الأدوات متاحة. |
| Managed Managed (مُدار) | Moderate متوسط | Moderate متوسطة | Mandated policies. Established processes for sharing. سياسات مفروضة. عمليات ثابتة للمشاركة. |
| Designed Designed (مُصمم) | High عالي | High عالية | Code is written specifically for reuse from the start. Corporate "Reuse Office". يتم كتابة الكود خصيصاً لإعادة الاستخدام من البداية. "مكتب إعادة استخدام" مؤسسي. |
The Exam Vault خزنة الاختبار
Professor's Secrets & Trap Avoidance أسرار البروفيسور وتجنب الفخاخ
TRAP: Open Source Cost فخ: تكلفة المصدر المفتوح
"Open Source is free."
FALSE. The license might be free, but the Total Cost of Ownership (TCO) can be high due to implementation costs, lack of support, and need for internal expertise to maintain it.
"المصدر المفتوح مجاني."
خطأ. قد تكون الرخصة مجانية، لكن التكلفة الإجمالية للملكية (TCO) قد تكون عالية بسبب تكاليف التنفيذ، نقص الدعم، والحاجة لخبرة داخلية للصيانة.
TRAP: The Reuse Fallacy فخ: مغالطة إعادة الاستخدام
"Ad hoc reuse saves money."
Usually false in the long run. Without management, ad hoc reuse leads to finding bad code, duplicating bugs, and high maintenance costs. Designed reuse has high initial cost but massive long-term savings.
"إعادة الاستخدام الارتجالية توفر المال."
عادة خطأ على المدى الطويل. بدون إدارة، تؤدي إلى كود سيء، تكرار الأخطاء، وتكاليف صيانة عالية. إعادة الاستخدام المصممة لها تكلفة أولية عالية لكن توفير هائل على المدى الطويل.
SECRET: Analysis vs Design سر: التحليل مقابل التصميم
If a question asks "Determining business requirements," it is Analysis.
If it asks "Specifying hardware or database schema," it is Design.
Think: Analysis = Problem Space. Design = Solution Space.
إذا سأل السؤال عن "تحديد متطلبات العمل"، فهو تحليل.
إذا سأل عن "تحديد الأجهزة أو مخطط قاعدة البيانات"، فهو تصميم.
تذكر: التحليل = مساحة المشكلة. التصميم = مساحة الحل.
KEY CONCEPT: The Iron Triangle مفهوم مفتاحي: المثلث الحديدي
In project management (and acquisition), you can't have it all. Fast, Cheap, Good — pick two. Off-the-shelf is Fast and Good, but maybe not cheap (licensing) or perfect fit. In-house is Good (fit) but Slow and Expensive. في إدارة المشاريع (والاستحواذ)، لا يمكنك الحصول على كل شيء. سريع، رخيص، جيد — اختر اثنين. الجاهز (Off-the-shelf) سريع وجيد، لكن ربما ليس رخيصاً (تراخيص) أو ملائماً تماماً. الداخلي (In-house) جيد (ملائم) لكنه بطيء ومكلف.