محاضرة 1
Introduction to Software Engineering
مقدمة عن هندسة البرمجيات ودورة حياة تطوير البرمجيات (SDLC).
يلا نشوف الملخص
Lecture 1: Introduction to Software Engineering
Overview: This lecture introduces the fundamentals of Software Engineering and the Software Development Life Cycle (SDLC).
- Why Software Engineering?
- Software development is inherently challenging.
- It is crucial to distinguish between "easy" systems (experimental, single-user) and "hard" systems (commercial products, multiple developers/users).
- Goals of Software Development:
- Satisfy user requirements (many large-scale ordered systems are delivered but not used).
- High reliability (bugs are expensive; they can cost money, damage reputation, or even cost human lives, e.g., the Ariane 5 launch bug costing $500 million).
- Low maintenance costs (maintenance accounts for roughly 65% of overall project costs).
- Delivery on time, low production costs, high performance, and ease of reuse.
- Types of Maintenance:
- Corrective: Fixing bugs (21%).
- Adaptive: Altering software to fit changing software (25%).
- Perfective: Meeting new requirements (50%).
- Preventative: Reducing further maintenance (4%).
- The Software Process & SDLC:
- SDLC is a structured process to design, develop, and test software.
- Stages of SDLC:
- Planning and Requirement Analysis: Creating a roadmap.
- Defining Requirements: Documenting needs using a Software Requirement Specification (SRS).
- Designing Architecture: Using the SRS to create the Design Document Specification (DDS).
- Developing Product: Writing the code using languages like C/C++, Python, or Java.
- Product Testing and Integration: Finding and fixing mistakes; writing manuals.
- Deployment and Maintenance: Releasing the software and monitoring its performance.
- Software Development Models:
- Waterfall Model: A linear-sequential life cycle model.
- Advantages: Simple, clear milestones, well-defined phases, and works well for stable requirements.
- Disadvantages: Inflexible to changes, limited client involvement, and long delivery time.
- Agile SDLC Models: Iterative development focusing on sprints and daily scrums.
- Waterfall Model: A linear-sequential life cycle model.
في نقطة مش واضحة؟ بطبط موجود!
اسأل بطبط عنها