Information Technology- Software Engineering

Software Development Processes- Waterfall Model, Agile Methodology, Spiral Model, Iterative and Incremental Development (IID), DevOps, Lean Software Development, Rapid Application Development (RAD), Feature-Driven Development (FDD), Prototype Methodology, Continuous Integration/Continuous Delivery (CI/CD).

Requirement Analysis and Specification- Functional Requirements Analysis, Non-Functional Requirements Analysis, User Requirements Analysis, Stakeholder Analysis, Use Case Analysis, Requirements Prioritization, Requirements Elicitation, Requirements Specification, Prototyping, Validation and Verification.

Software Design Principles- SOLID Principles, GRASP Principles, DRY (Don’t Repeat Yourself), KISS (Keep It Simple, Stupid), YAGNI (You Ain’t Gonna Need It), Separation of Concerns (SoC), Composition Over Inheritance, Law of Demeter (LoD), Dependency Injection (DI), Interface Segregation Principle (ISP), Open/Closed Principle (OCP), Single Responsibility Principle (SRP), Least Astonishment Principle, Fail-Fast Principle.

Software Architecture- Monolithic Architecture, Microservices Architecture, Service-Oriented Architecture (SOA), Event-Driven Architecture (EDA), Layered Architecture, Component-Based Architecture (CBA), Client-Server Architecture, Peer-to-Peer (P2P) Architecture, Space-Based Architecture, Event-Sourcing Architecture.

Software Testing- Unit Testing, Integration Testing, System Testing, Acceptance Testing, Functional Testing, Non-functional Testing, Regression Testing, Smoke Testing, Exploratory Testing, Compatibility Testing, Localization Testing, Accessibility Testing.

Software Maintenance and Evolution- Corrective Maintenance, Adaptive Maintenance, Perfective Maintenance, Preventive Maintenance, Reactive Maintenance, Routine Maintenance, Evolutionary Maintenance.

Software Quality Assurance, Software Project Management, Software Development Tools, Ethical and Professional Issues in Software Engineering.