Comprehensive notes, MCQs, and Short Questions for Chapter 1 Basics of Software Development. Covers SDLC, Waterfall & Agile models, UML diagrams, and Design Patterns.
Definition: Software development is the process of writing computer programs designed to perform specific tasks. It involves collecting requirements, designing, coding, testing, debugging, and maintaining software.
Importance:
Definition: SDLC is a structured framework used to develop software from idea to final product, ensuring quality and efficiency. It consists of the following phases:
1. Waterfall Model: A linear, sequential approach where each phase must complete before the next begins.
Pros: Simple, clear documentation.
Cons: Inflexible to changes, testing happens late.
2. Agile Methodology: An iterative approach delivering software in small increments (sprints). Focuses on customer feedback and adaptability.
Pros: Flexible, faster delivery of working features, high customer satisfaction.
Cons: Requires constant user involvement, scope creep risk.
Project Planning: Involves defining scope, scheduling timelines, and estimating costs (considering salaries, tools, infrastructure).
Risk Management:
Definition: A standard visual language for viewing, specifying, constructing, and documenting software artifacts.
Definition: Reusable solutions to common software design problems.
Benefits: Reduces code complexity, improves maintainability, speeds up development.
Common Types:
IDE (Integrated Development Environment): Combines editor, compiler, and debugger (e.g., VS Code).
Compiler vs Interpreter: Compiler translates whole code at once (faster execution); Interpreter translates line-by-line (easier debugging).
Version Control: Tools like Git track changes and allow team collaboration.