Software engineering covers modelling languages like UML, designing class diagrams, software testing strategies, and object-oriented programming. It emphas
Topic Synopsis
Software engineering covers modelling languages like UML, designing class diagrams, software testing strategies, and object-oriented programming. It emphasises systematic development and quality assurance.
Key Concepts & Core Principles
- Systems Development Life Cycle (SDLC): Understanding the phases from planning to maintenance, including methodologies like Agile and Waterfall.
- Database Design and Normalisation: Creating efficient relational databases using entity-relationship diagrams and normal forms to reduce redundancy.
- Network Topologies and Protocols: Differentiating between LAN, WAN, and VPN, and understanding TCP/IP, DNS, and HTTP/HTTPS.
- Cybersecurity Principles: Implementing CIA triad (Confidentiality, Integrity, Availability), encryption, and risk management strategies.
- Project Management Techniques: Applying PRINCE2 or PMBOK frameworks, including scope, time, cost, and quality management.
Exam Tips & Revision Strategies
- Practice drawing class diagrams for given scenarios.
- Learn testing levels and their purposes.
- Write simple OOP programs to reinforce concepts.
- Use standard UML notation consistently.
- Write test cases before coding (test-driven approach).
- Follow OOP principles (SOLID) in development.
Common Misconceptions & Mistakes to Avoid
- Incorrect UML notation in class diagrams.
- Poor test coverage leading to undetected bugs.
- Misunderstanding OOP concepts like inheritance.
- Incorrect relationships in class diagrams (e.g., multiplicity).
- Testing only happy paths, ignoring edge cases.
- Poor encapsulation or inheritance in OOP code.
Examiner Marking Points
- Explain benefits of modelling languages.
- Design and implement UML class diagrams.
- Describe software testing strategies (e.g., unit, integration).
- Develop a solution using object-oriented programming.
- Apply testing to ensure software quality.
- Understand benefits of modelling languages like UML.
- Design and implement UML class diagrams correctly.
- Apply different testing strategies (unit, integration, system).