Software Engineering Exam Notes
Software Engineering Exam Notes
2. Spiral Model
3. V-Model
4. Incremental Model
6. Prototype Model
7. Waterfall Model
Cost Estimation
Risk Management
9. Risk Management
o Example: Technical risks (e.g., technology failure), Schedule risks (e.g., delays).
Software Metrics
o Types:
Project Scheduling
o Definition: The process of breaking down a software project into individual tasks,
determining their dependencies, estimating their duration, assigning resources, and
creating a timeline to ensure timely completion, often using tools like Gantt charts or
PERT charts to visualize progress.
▪ Dependencies: A → B, C; B → D; D → F; C → E; E → F.
13. Coupling
14. Cohesion
o Definition: A measure of how closely the elements within a single module are
related to each other in terms of functionality, where high cohesion (e.g., functional
cohesion, where all elements contribute to a single task) is desired to ensure the
module is focused and easier to maintain.
o Definition: A design paradigm that organizes software around objects and classes,
leveraging concepts like inheritance (reusing code through parent-child
relationships), polymorphism (allowing objects to be treated as instances of their
parent class), and encapsulation (hiding data within objects) to create modular and
scalable systems.
Software Testing
▪ Definition: A testing approach where the tester has full knowledge of the
internal structure and code of the software, allowing them to design test
cases based on the code’s logic, often used to test paths, loops, and
branches within the program.
▪ Definition: A hybrid testing approach where the tester has partial knowledge
of the internal structure, combining elements of both white box and black
box testing, often used to test APIs or databases where some structural
understanding is beneficial.
o Unit Testing:
o Integration Testing:
o System Testing:
o Acceptance Testing:
Additional Notes
• Exploratory Style:
o Symbols: Process (Circle), Data Store (Open Rectangle), External Entity (Square), Data
Flow (Arrow).
o Definition: Modern projects adopt iterative and flexible methodologies like Agile and
DevOps, emphasizing collaboration and adaptability, while traditional projects follow
structured, sequential approaches like Waterfall, focusing on detailed planning and
documentation.