0% found this document useful (0 votes)
39 views3 pages

Essential Software Engineering Notes

The document outlines key concepts in Software Engineering, including the development process, requirements specification, and testing methodologies. It emphasizes the importance of Agile models, risk management, and quality assurance techniques like Six Sigma and the Capability Maturity Model. Additionally, it covers modern practices like DevOps and version control to enhance collaboration and efficiency in software projects.

Uploaded by

pshilpesh5828
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views3 pages

Essential Software Engineering Notes

The document outlines key concepts in Software Engineering, including the development process, requirements specification, and testing methodologies. It emphasizes the importance of Agile models, risk management, and quality assurance techniques like Six Sigma and the Capability Maturity Model. Additionally, it covers modern practices like DevOps and version control to enhance collaboration and efficiency in software projects.

Uploaded by

pshilpesh5828
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Engineering Viva – Simple Notes

1. Software Engineering (SE)


What: Developing software step-by-step using engineering methods.
Why: To make it reliable, low-cost, and easy to maintain.
Purpose: To build good-quality software that meets user needs.

2. SRS (Software Requirement Specification)


What: A document that explains what the software should do.
Why: Helps customer and developer clearly understand the project.
Purpose: Describes all requirements before coding starts.

3. Requirement Engineering
What: Process of collecting and managing what users want from software.
Why: To ensure developers know what to build.
Purpose: To get clear and complete requirements.

4. Functional & Non-Functional Requirements


What: Functional – what software does; Non-functional – how it performs.
Why: To cover both work and quality.
Purpose: Ensures software works well and performs properly.

5. Agile Models
What: Builds software in small parts with regular feedback.
Why: Because user needs often change.
Purpose: To deliver working software faster and adapt easily.

6. FP Metric (Function Point)


What: Measures software size by counting functions.
Why: To estimate time and cost.
Purpose: Helps plan software projects.

7. COCOMO Model
What: Estimates software cost, effort, and time.
Why: To plan resources and deadlines.
Purpose: Predicts project cost based on size.

8. RMMM (Risk Mitigation, Monitoring, and Management)


What: A plan to handle project risks.
Why: To avoid project failure.
Purpose: To identify and control problems early.

9. Cohesion & Coupling


What: Cohesion – how parts work together; Coupling – how modules depend.
Why: To make software simple and easy to modify.
Purpose: High cohesion, low coupling = better design.

10. Verification & Validation


What: Verification – are we building it right? Validation – are we building the right one?
Why: To ensure both process and product quality.
Purpose: To make sure software is correct and useful.

11. White Box & Black Box Testing


What: White Box – tests internal code; Black Box – tests functions.
Why: To check both inside and outside behavior.
Purpose: To find errors and ensure quality.

12. Testing Concepts


Unit Testing – one small part; Integration – modules together; System – full system.
Validation – meets needs; Acceptance – user test; Alpha/Beta – internal/external.
Stress/Load/Performance – tests speed and stability.

13. Six Sigma


What: Method to reduce errors and improve quality.
Why: To make software almost defect-free.
Purpose: To ensure high-quality software.

14. W5HH Principle


What: Answers What, Why, When, Who, Where, How, How much.
Why: To manage projects clearly.
Purpose: Helps in clear planning and tracking.

15. CMM (Capability Maturity Model)


What: Model to measure how good an organization’s process is.
Why: To improve development process.
Purpose: Makes software predictable and efficient.

16. Re-engineering, Reverse & Forward Engineering


Re-engineering – improve old software; Reverse – understand code; Forward – build new software.
Purpose: To update, understand, or create software efficiently.
17. SCM (Software Configuration Management)
What: Managing versions and documents.
Why: Many people change files at once.
Purpose: Keeps project organized and consistent.

18. Version Control


What: Tracks changes in code and stores all versions.
Why: To handle teamwork and recover files.
Purpose: To maintain history and avoid loss.

19. DevOps
What: Combines development and operations teams.
Why: To deliver software faster and better.
Purpose: To improve teamwork and automation.

20. 7 C’s of DevOps


Planning, Coding, Building, Testing, Deployment, Monitoring, Feedback.
Purpose: Continuous delivery and improvement.

Common questions

Powered by AI

SCM benefits collaborative projects by managing multiple versions of documents and code, ensuring consistency and organization . It addresses challenges such as coordinating changes from different team members, preventing conflicts, and maintaining a history of changes to facilitate recovery from errors or unintended changes .

Verification is concerned with whether the software is being built correctly according to the specified design, while validation checks if the correct product is being created to meet user needs . Collectively, they ensure the software's quality by addressing both the correctness of the build process and the alignment of the product with user requirements, thereby reducing defects and enhancing user satisfaction .

The COCOMO model is used to estimate the software project cost, effort, and time based on project size . It contributes to project management by providing a quantitative basis for planning resources and setting realistic deadlines, thereby enhancing the efficiency and predictability of software project execution .

Cohesion refers to how closely related the functions within a single module are, whereas coupling refers to the degree of interdependence between different modules . High cohesion and low coupling are desirable as they result in components that are more comprehensible, more reusable, and easier to maintain. This balance improves software design by making it more modular, thereby simplifying modifications and reducing the risk of errors .

RMMM involves creating strategies to identify, control, and monitor potential risks throughout the software project lifecycle . It is crucial as it helps to preemptively address issues that could lead to project failure, thereby protecting the project timeline, budget, and overall scope from unforeseen complications .

Six Sigma improves the defect rate in software development by identifying defects early and improving processes to prevent defects from occurring . Key principles include focusing on customer needs, using data-driven analysis to identify root causes of defects, and applying continuous improvement techniques to reduce variability and enhance quality .

The CMM contributes to improving an organization's development processes by providing a structured framework that helps organizations evaluate and enhance their software development capabilities systematically . By progressing through its maturity levels, an organization can gain more control over its processes, leading to predictable outcomes and more efficient operations .

The Agile model is preferred for dynamic projects because it builds software in small increments with regular feedback, allowing the team to adapt to changing user needs quickly . This iterative approach enables early delivery of a functional product and continuous improvement, thus ensuring that the final product closely aligns with the evolving requirements and expectations of users .

Functional requirements specify what the software should do, such as specific behaviors or functions, while non-functional requirements specify how the software performs, including its usability, reliability, and efficiency . Distinguishing between them is important because it ensures that software not only meets functional criteria but also performs well in various environments, maintaining overall quality and user satisfaction .

The Function Point (FP) metric measures the size of software by evaluating its functionality from a user's perspective, rather than lines of code . It facilitates project planning by providing a basis for estimating time and cost, thus allowing managers to allocate resources more effectively and predict project timelines with greater accuracy .

You might also like