Monday, May 18, 2026

Software engineering and project management_Fith Semester_Question answer

1. What is software? What are the types of software? What is software engineering? Describe the software myth and ethics.


Software: Collection of programs, procedures and related documents used to operate computer system and solve user problems.

Types of software:
i) System software: Controls hardware and system operation. Eg: OS, compiler, driver.
ii) Application software: Performs user tasks. Eg: MS Word, billing system.
iii) Utility software: Maintenance and security software. Eg: Antivirus, backup tools.
iv) Embedded software: Used inside devices. Eg: ATM, mobile system.

Software engineering: Systematic and disciplined approach for development, operation, testing and maintenance of software in cost effective and reliable way.

Objectives: Quality software, low cost, reliability, timely delivery, maintainability.

Software myths: False beliefs about software development.
i) Customer myth: “Requirement can change anytime easily.” Reality: increases cost and delay.
ii) Management myth: “Adding more programmers finishes project faster.” Reality: increases coordination complexity.
iii) Developer myth: “Coding is only important.” Reality: design, testing and maintenance are equally important.

Software ethics: Moral and professional rules followed by software engineers during software development.

Main ethics:

  • Maintain confidentiality of client data
  • Respect copyright and license
  • Be honest about project status
  • Develop safe and reliable software
  • Work within professional skill

Example: Engineer should not leak banking customer information because it violates professional ethics and confidentiality.


2. Explain the spiral software development process model.



Spiral model is a risk-driven software development model proposed by Barry Boehm. It combines features of waterfall model and prototyping model. Development is completed through repeated cycles called spirals.

Each spiral contains four major activities:

i) Planning:
Objectives, requirements, cost and schedule are identified.

ii) Risk analysis:
Possible risks are identified and solutions are planned. Prototype may be developed to reduce risk.

iii) Engineering:
Coding, design and testing of software are performed.

iv) Evaluation:
Customer evaluates the product and provides feedback for next cycle.

Process continues repeatedly until final software is completed.

Advantages:

  • Suitable for large and complex projects
  • Better risk management
  • Customer feedback in every phase
  • Requirement changes can be handled easily

Disadvantages:

  • Expensive model
  • Complex to manage
  • Requires risk analysis expertise
  • Not suitable for small projects

Applications:
Used in banking system, military software, large business systems and high-risk projects.



3. Describe the importance of SRS and explain requirement engineering process, requirement and component.


SRS (Software Requirement Specification):

SRS is a document that describes functional and non-functional requirements of software system clearly and completely.

Importance of SRS:

  • Acts as agreement between customer and developer
  • Reduces development error
  • Helps in testing and validation
  • Provides basis for design and coding
  • Reduces cost and development time
  • Helps maintenance and future enhancement

Requirement Engineering:
Requirement engineering is the process of collecting, analyzing, documenting and managing software requirements.

Requirement Engineering Process:
i) Feasibility study:
Checks whether project is technically, economically and operationally possible.

ii) Requirement elicitation:
Requirements are collected from users using interview, questionnaire, observation etc.

iii) Requirement analysis:
Collected requirements are analyzed and conflicts are removed.

iv) Requirement specification:
Requirements are documented in SRS form.

v) Requirement validation:
Requirements are checked for correctness and completeness.

vi) Requirement management:
Manages requirement changes during development.

Requirement:
Requirement is a condition or capability needed by user or system.

Types:
i) Functional requirement: Describes system functions. Eg: login, report generation.
ii) Non-functional requirement: Describes quality attributes. Eg: security, performance, reliability.

Components of SRS:

  • Introduction
  • Overall description
  • Functional requirements
  • Non-functional requirements
  • Interface requirements
  • Database requirements
  • Constraints and assumptions

Conclusion:
SRS and requirement engineering help developers clearly understand user needs and develop quality software systematically.


4. What are the activities of software project management? Explain the software development planning process.

Software Project Management Activities:
i) Project planning: Define scope, objectives, schedule and resources.
ii) Effort estimation: Estimate time, cost and manpower required.
iii) Scheduling: Prepare timeline and task sequence.
iv) Resource allocation: Assign team, tools and budget.
v) Risk management: Identify and control possible risks.
vi) Monitoring and control: Track progress and compare with plan.
vii) Quality management: Ensure software meets required standards.
viii) Communication management: Maintain coordination among stakeholders.

Software Development Planning Process:
i) Define scope:
Identify system boundaries, objectives and deliverables.

ii) Requirement analysis:
Understand user needs and system requirements.

iii) Estimation:
Estimate cost, time and effort using techniques like COCOMO, expert judgment.

iv) Scheduling:
Prepare project schedule using Gantt chart or PERT.

v) Resource planning:
Assign developers, tools, hardware and budget.

vi) Risk planning:
Identify risks and prepare mitigation strategies.

vii) Quality planning:
Define testing strategy, standards and quality goals.

viii) Documentation:
Prepare project plan document for execution and monitoring.

Conclusion:
Software project management ensures proper planning, execution and control of software projects for successful delivery within time and cost.

5. What are software matrices? Describe the calculation parameters of functional point and object point.

Software Metrics:
Software metrics are quantitative measures used to estimate, evaluate and control software development process, product and project.

Functional Point (FP):
FP measures software size based on user functionality.

Calculation parameters:

  1. External Input (EI): User inputs to system (data entry, login)
  2. External Output (EO): Reports or output generated
  3. External Inquiry (EQ): Query/response without major processing
  4. Internal Logical File (ILF): Internal database files
  5. External Interface File (EIF): Files used from other systems

Each component is rated as simple, average or complex and assigned weight.

FP formula:
FP = Total Unadjusted Function Points × Value Adjustment Factor (VAF)

Object Point (OP):
Object point measures software size based on objects like screens, reports and modules.

Calculation parameters:

  1. Screens (user interfaces)
  2. Reports
  3. 3GL components (program modules)

Each is classified as simple, medium or complex and weighted.

OP formula:
OP = (Number of objects × weight) – percentage of reuse

Conclusion:
Software metrics like FP and OP help in effort estimation, cost prediction and project planning.


6. Describe the black box and white box software Testing approach.

Software engineers need ethics because software affects users, organizations and society directly. Ethical behavior ensures trust, safety and professional responsibility in software development.

Importance of ethics:

  • Protects user data and privacy
  • Ensures software reliability and safety
  • Builds trust between client and developer
  • Prevents legal and financial issues
  • Maintains professional integrity
  • Avoids misuse of software systems

Main ethical responsibilities:

  • Maintain confidentiality of client information
  • Be honest in reporting project status
  • Respect intellectual property rights
  • Develop safe and secure software
  • Work within professional competence

Example:
In a banking system, a software engineer must not access or leak customer account details. If he shares or sells this data, it is unethical and illegal because it violates confidentiality and trust.

Another example:
If a developer knows a system has security bugs, he must report it instead of hiding it, because ignoring it may harm users.

Conclusion:
Ethics is essential in software engineering to ensure responsible behavior, protect users and maintain trust in software systems.

 

7. Why software engineers need to be ethical? Support your answer with example.

Software engineers need ethics because software affects users, organizations and society directly. Ethical behavior ensures trust, safety and professional responsibility in software development.

Importance of ethics:

  • Protects user data and privacy
  • Ensures software reliability and safety
  • Builds trust between client and developer
  • Prevents legal and financial issues
  • Maintains professional integrity
  • Avoids misuse of software systems

Main ethical responsibilities:

  • Maintain confidentiality of client information
  • Be honest in reporting project status
  • Respect intellectual property rights
  • Develop safe and secure software
  • Work within professional competence

Example:
In a banking system, a software engineer must not access or leak customer account details. If he shares or sells this data, it is unethical and illegal because it violates confidentiality and trust.

Another example:
If a developer knows a system has security bugs, he must report it instead of hiding it, because ignoring it may harm users.

Conclusion:
Ethics is essential in software engineering to ensure responsible behavior, protect users and maintain trust in software systems.

8. What is software process model? Explain waterfall model.

Software Process Model:
A software process model is a structured framework that defines the sequence of activities involved in software development.

It provides a systematic way to develop software efficiently and ensures proper planning, execution and maintenance.

Waterfall Model:
Waterfall model is a linear sequential software development model where each phase is completed before the next begins.

Phases:
i) Requirement analysis:

System requirements are collected and documented.

ii) System design:
Architecture and system design are prepared.

iii) Implementation:
Coding is done based on design.

iv) Testing:
Software is tested to find and fix errors.

v) Deployment:
Software is delivered to users.

vi) Maintenance:
Updates and error fixes are done after delivery.

Characteristics:

  • Sequential process
  • No overlapping of phases
  • Easy to understand and manage
  • Each phase has specific deliverables

Advantages:

  • Simple and structured
  • Easy to manage and understand
  • Suitable for small projects
  • Clear documentation

Disadvantages:

  • Not flexible for requirement changes
  • Testing happens late
  • Not suitable for complex and evolving projects

Conclusion:
Waterfall model is a simple and structured process model suitable for small and well-defined projects where requirements are clear.

9. Define “Requirement elicitation”. Explain any two elicitation technique with example.

Requirement Elicitation:
Requirement elicitation is the process of collecting requirements from stakeholders, users and clients for software development.

It helps to understand what the user actually needs from the system.

Techniques:

  1. Interview:
    In this technique, developer directly interacts with users and asks questions to gather requirements.

Example:
Developer interviews school admin to know requirements of student admission system like registration, fee entry, report generation.

  1. Questionnaire:
    A set of written questions is given to users to collect requirements.

Example:
In a banking system, customers fill questionnaire about needed services like account inquiry, fund transfer, loan services.

Conclusion:
Requirement elicitation is an important step in requirement engineering to ensure correct and complete understanding of user needs using different techniques.

10. Define project planning. Explain work breakdown structure(WBC) with example.

Project Planning:
Project planning is the process of defining project objectives, scope, schedule, resources and cost to complete a software project successfully.

It provides roadmap for development and helps in monitoring progress.

Work Breakdown Structure (WBS):
WBS is a technique used to divide a project into smaller, manageable tasks or modules.

It helps in organizing work and assigning responsibilities.

Structure:
Project → Major modules → Sub modules → Tasks

Benefits:

  • Easy project management
  • Clear task distribution
  • Better estimation of time and cost
  • Improves control and monitoring

Example: Student Management System

  1. Project: Student Management System
  2. Modules:
    i) Student Registration
    ii) Attendance Management
    iii) Exam Management
  3. Sub tasks:
    Registration → form design, database setup, validation
    Attendance → daily entry, report generation
    Exam → marks entry, result calculation

Conclusion:
Project planning with WBS helps in breaking complex projects into simple tasks for efficient execution and control.

11. Explain cost estimation technique in brief.

Cost estimation is the process of predicting the effort, time and money required to develop software.

Techniques:

  1. Expert judgment:
    Estimation done by experienced professionals based on past projects.
  2. COCOMO model:
    Constructive Cost Model uses software size (KLOC) to estimate effort, time and cost.
  3. Function Point analysis:
    Estimates cost based on functionality delivered to user instead of lines of code.
  4. Delphi technique:
    Group of experts give estimates independently and final estimate is reached by consensus.
  5. Top-down estimation:
    Overall project cost is estimated first and then divided into modules.
  6. Bottom-up estimation:
    Each module cost is estimated separately and then summed up.

Conclusion:
Cost estimation techniques help in planning budget, schedule and resources for successful software development.

12. Why software need to be validated? Explain.

Software validation is the process of checking whether the developed software meets user requirements and intended purpose.

Need of validation:

  • Ensures software meets user needs
  • Detects missing or incorrect requirements
  • Improves software quality
  • Reduces failure after deployment
  • Increases customer satisfaction
  • Ensures correctness of final product

Explanation:
Validation checks “Are we building the right product?” rather than “Are we building the product right?”

It is done after development or during testing phase using methods like:

  • System testing
  • Acceptance testing
  • User feedback
  • Requirement review

Example:
In a student management system, validation ensures that features like registration, attendance, and result generation actually satisfy school requirements.

Conclusion:
Software validation is essential to confirm that the final product fulfills user expectations and real-world needs.

13. What is the difference between software maintenance and software evolution?

Software Maintenance:
Software maintenance is the process of correcting faults, improving performance, or adapting software after delivery.

It is done after deployment to keep software working properly.

Types:

  • Corrective: Fixing bugs
  • Adaptive: Adjusting to environment changes
  • Perfective: Improving performance or features
  • Preventive: Improving maintainability

Software Evolution:
Software evolution is the continuous process of changing and improving software over time to meet new requirements and environment changes.

It includes maintenance plus major structural changes and enhancements.

Difference:

  1. Meaning:
    Maintenance: Fixing and small improvements after delivery
    Evolution: Continuous growth and major changes of software over time
  2. Scope:
    Maintenance: Limited to fixing and minor updates
    Evolution: Includes large enhancements and redesign
  3. Nature:
    Maintenance: Reactive process (fix problems)
    Evolution: Both reactive and proactive (improve system)
  4. Focus:
    Maintenance: Keep system working
    Evolution: Keep system relevant and up-to-date
  5. Example:
    Maintenance: Fix login bug
    Evolution: Adding mobile app version of system

Conclusion:
Software maintenance ensures system stability while software evolution ensures long-term improvement and adaptation to changing needs.

14. In Recent year university has computerized its examination system by using various software application. Find out Risk involved in implementing and administration you as software expert. Prepare risk integration, monitoring and management plan.

Risk Identification:
i) Technical risk: system failure, bugs, server crash
ii) Security risk: hacking, data leakage, exam paper theft
iii) Operational risk: user errors, staff untrained
iv) Schedule risk: delay in development or deployment
v) Hardware risk: power failure, network failure
vi) Data risk: loss or corruption of exam records

Risk Management Plan:

  1. Risk integration:
    Risk management is integrated into all phases of SDLC from planning to maintenance. Each module (exam upload, login, result) has risk checklist.
  2. Risk analysis:
    Each risk is analyzed based on probability and impact.
    High priority: security breach, server crash
    Medium: user error, delay
    Low: minor UI issues
  3. Risk mitigation strategies:
  • Backup system and database replication
  • Strong authentication and encryption
  • Load balancing for server failure
  • Training for staff and users
  • Regular system testing and audits
  1. Risk monitoring:
  • Continuous system monitoring during exams
  • Log tracking and alert system
  • Regular security audits
  • Monitoring server performance and uptime
  1. Risk control:
  • Immediate backup activation on failure
  • Emergency shutdown plan if data breach occurs
  • Patch updates and bug fixing

Conclusion:
Proper risk management ensures secure, reliable and uninterrupted computerized examination system with minimal failure chances.

15. List the software development process activities. Explain the Raid application development (RAD) Model.

Software development process activities:
i) Requirement analysis
ii) System design
iii) Coding/implementation
iv) Testing
v) Deployment
vi) Maintenance
vii) Project planning and estimation (supporting activity)
viii) Configuration management and documentation

RAD Model (Rapid Application Development):
RAD is an incremental software development model that focuses on fast development with less planning and more user involvement.

Phases of RAD:

i) Business modeling:
Understand business processes and information flow.

ii) Data modeling:
Identify data objects and relationships.

iii) Process modeling:
Define process logic and transformations of data.

iv) Application generation:
Code is generated using tools, reusable components and CASE tools.

v) Testing and turnover:
Final testing is done and system is delivered to user.

Characteristics:

  • Fast development
  • High user involvement
  • Component-based development
  • Parallel development of modules

Advantages:

  • Very fast delivery
  • Reduces development time
  • Easy to accommodate changes

Disadvantages:

  • Not suitable for large complex systems
  • Requires skilled developers and tools
  • Depends on user availability

Conclusion:
RAD model is suitable for fast development of systems where requirements are well understood and time is limited.

16. What is agile software development? Explain Challenges & Strategies in scaling agile method in large scale. Why agile software development principles are adopted in software development? Describe the XP methodology.

Agile Software Development:
Agile is an iterative and incremental software development approach where requirements and solutions evolve through collaboration between self-organizing teams and customers.

Challenges in scaling agile:

  • Difficulty in coordinating multiple teams
  • Communication gaps in large projects
  • Integration issues between modules
  • Maintaining consistent quality standards
  • Resistance to organizational change
  • Complex documentation management

Strategies for scaling agile:

  • Use of Scrum-of-Scrums for coordination
  • Strong product backlog management
  • Continuous integration and automated testing
  • Modular architecture for parallel development
  • Standardized coding and quality practices
  • Regular cross-team communication meetings

Why agile principles are adopted:

  • Faster delivery of software
  • Easy adaptation to changing requirements
  • High customer satisfaction
  • Early detection of defects
  • Continuous improvement of product
  • Better team collaboration

XP (Extreme Programming) methodology:
XP is an agile methodology focused on improving software quality and responsiveness to changing requirements.

Key practices:

  • Pair programming
  • Test-driven development (TDD)
  • Continuous integration
  • Small releases
  • Simple design
  • Refactoring
  • Customer involvement throughout development

Conclusion:
Agile and XP improve flexibility, quality and speed of software development, especially in dynamic environments.

17. Explain the software requirement engineering process with example of each process.

Software Requirement Engineering Process:
It is the structured process of gathering, analyzing, documenting and managing software requirements.

Steps:

i) Feasibility study:
Checks whether system is practical in terms of cost, technology and time.
Example: Checking if online exam system can be developed with available server and budget.

ii) Requirement elicitation:
Collecting requirements from users.
Example: Interview teachers for exam system features like question upload and result generation.

iii) Requirement analysis:
Remove conflicts and prioritize requirements.
Example: Decide whether manual grading or automatic grading is needed.

iv) Requirement specification:
Document requirements in SRS.
Example: “System shall allow student login using ID and password.”

v) Requirement validation:
Check correctness and completeness of requirements.
Example: Review SRS with school admin to confirm exam rules are correct.

vi) Requirement management:
Handle changes in requirements during development.
Example: Adding new feature like online proctoring during development phase.

Conclusion:
Requirement engineering ensures correct understanding, documentation and control of software requirements throughout SDLC.

18. Demonstrate the class diagram & sequence diagram with reference outline student admission system in school.

Class Diagram (Student Admission System):

Main classes:

  1. Student
  • student_id, name, dob, address
  • apply(), updateDetails()
  1. AdmissionForm
  • form_id, date, status
  • submit(), verify()
  1. Admin/Clerk
  • staff_id, name
  • approve(), reject()
  1. Course/Class
  • class_id, name, capacity
  • addStudent()

Relationships:

  • Student submits AdmissionForm
  • Admin verifies AdmissionForm
  • AdmissionForm linked to Course

Simple structure:
Student → submits → AdmissionForm → verified by → Admin → assigned to → Course

Sequence Diagram (Admission Process):

Steps:

  1. Student fills admission form
  2. System receives form
  3. Clerk verifies details
  4. Admin approves/rejects form
  5. If approved, student assigned to class
  6. Confirmation message sent to student

Sequence flow:
Student → Form Submission → System → Clerk → Admin → System → Class Allocation → Student Notification

Conclusion:
Class diagram shows structure of system, while sequence diagram shows step-by-step interaction in admission process.

19. What is software re-engineering process? Why software maintenance is implemented? Describe the forward and reverse engineering process.

Software Re-engineering Process:
Software re-engineering is the process of improving or transforming existing software to a better form without changing its external behavior.

It includes understanding, restructuring, and re-implementing old software to improve quality, performance, and maintainability.

Why software maintenance is implemented:

  • To fix errors (bug fixing)
  • To adapt software to new environment (OS, hardware, rules)
  • To improve performance and efficiency
  • To add new features based on user needs
  • To ensure long-term usability of software

Forward Engineering:
Forward engineering is the process of developing software from requirement to design and implementation.

Flow:
Requirements → Design → Code → Testing → Deployment

Purpose:

  • Build new software system
  • Normal SDLC process

Reverse Engineering:
Reverse engineering is the process of analyzing existing software to understand its design and structure.

Flow:
Code → Design → Requirements (understanding system backward)

Purpose:

  • Understand legacy systems
  • Recover lost design documentation
  • Modify or improve old systems

Difference (simple):
Forward: design to code (new system)
Reverse: code to design (existing system analysis)

Conclusion:
Re-engineering improves old software systems, while forward and reverse engineering help in building and understanding software effectively.

20. Compare the software quality control and quality assurance with indicators.

Software Quality Assurance (SQA):
It is a process-oriented activity that ensures proper processes are followed during software development to prevent defects.

Software Quality Control (SQC):
It is a product-oriented activity that focuses on identifying defects in the final software product.

Comparison:

  1. Meaning:
    SQA: Ensures process quality
    SQC: Ensures product quality
  2. Focus:
    SQA: Prevent defects
    SQC: Detect defects
  3. Nature:
    SQA: Proactive (before development issues occur)
    SQC: Reactive (after product is developed)
  4. Activities:
    SQA: Process audits, standards, reviews
    SQC: Testing, inspections, debugging
  5. Responsibility:
    SQA: Entire development team + QA team
    SQC: Testing team
  6. Timing:
    SQA: Throughout SDLC
    SQC: After or during implementation

Indicators:

SQA indicators:

  • Process compliance rate
  • Defect prevention rate
  • Audit results
  • Requirement coverage

SQC indicators:

  • Number of defects found
  • Defect density
  • Test case pass/fail rate
  • Reliability of software

Conclusion:
SQA improves development process quality while SQC ensures final product quality through testing and defect detection.

21. What is software testing? Why configuration management is required?

Software Testing:
Software testing is the process of executing a program to find errors and ensure that it meets specified requirements.

Objectives:

  • Detect defects in software
  • Ensure software quality
  • Verify and validate system functionality
  • Improve reliability and performance

Types (brief):

  • Unit testing
  • Integration testing
  • System testing
  • Acceptance testing

Configuration Management (CM):
Configuration management is the process of controlling and tracking changes in software components during development and maintenance.

Why configuration management is required:

  • Controls version of software components
  • Manages changes systematically
  • Prevents confusion between multiple versions
  • Ensures consistency in development team
  • Supports rollback to previous versions if error occurs
  • Improves coordination in large projects

Activities in CM:

  • Version control
  • Change control
  • Build management
  • Release management

Conclusion:
Software testing ensures defect-free software, while configuration management ensures controlled and organized development with proper version tracking and change handling.

22. How is requirement validation carried out in the context of software engineering.

Requirement validation is the process of checking whether the documented requirements are correct, complete, consistent and meet user needs.

It ensures we are building the right system.

Methods of requirement validation:

i) Requirement review:
SRS document is reviewed by developers, testers and users to detect errors and missing requirements.
Example: checking if student admission system includes fee payment and verification steps.

ii) Prototyping:
A prototype is built and shown to users to confirm requirements.
Example: a sample login and admission form is shown to school admin for feedback.

iii) Test case generation:
Test cases are derived from requirements to ensure they are testable and correct.
Example: login requirement must have test cases for valid and invalid inputs.

iv) Consistency checking:
Ensures no conflicting requirements exist.
Example: system cannot both allow and disallow late admission simultaneously.

v) Acceptance testing:
Final validation done by user after system development.
Example: school admin verifies if exam system works as expected.

Conclusion:
Requirement validation ensures correctness, completeness and usability of requirements before full development, reducing costly errors later.

23. What is the role of development testing ins software development life cycle?

Development testing is the testing performed during the development phase to detect and fix defects early in the software.

Role of development testing:

i) Early defect detection:
Finds errors during coding stage before they become costly.

ii) Improves software quality:
Ensures each module works correctly and meets requirements.

iii) Reduces development cost:
Fixing bugs early is cheaper than fixing after deployment.

iv) Supports continuous improvement:
Helps developers improve code while building the system.

v) Ensures module correctness:
Verifies individual components before integration.

Types involved:

  • Unit testing: tests individual functions/modules
  • Integration testing: tests interaction between modules
  • Static testing: reviews code without execution

Example:
In a student system, unit testing checks login function, while integration testing checks login + database connection.

24. How risk management integrated into software project management?

Risk management is integrated into software project management by identifying, analyzing, controlling and monitoring risks throughout the project lifecycle.

Integration in project management:

i) Project planning stage:
Risks are identified early (technical, cost, schedule, security) and documented in risk plan.

ii) Risk analysis stage:
Each risk is assessed based on probability and impact and prioritized.

iii) Risk mitigation planning:
Strategies are prepared to reduce or avoid risks.
Example: backup systems for data loss, training for users.

iv) Resource allocation:
Extra buffer time, budget and skilled staff are allocated for high-risk areas.

v) Implementation stage:
Risk control actions are applied during development (testing, reviews, monitoring).

vi) Monitoring and review:
Risks are continuously tracked and updated using reports, audits and status meetings.

vii) Communication:
Risk status is regularly shared with stakeholders for decision making.

Example:
In an online exam system, risk of server crash is handled by load balancing and backup servers.

Conclusion:
Risk management is fully integrated into software project management to ensure smooth execution, reduced failures and successful delivery of software projects.

 

25. Short notes on SDLC,SCRUM, prototype model.

SDLC (Software Development Life Cycle):
SDLC is a structured process used to develop software step by step.

Phases:

  • Requirement analysis
  • Design
  • Implementation (coding)
  • Testing
  • Deployment
  • Maintenance

Importance:

  • Ensures systematic development
  • Improves quality
  • Reduces cost and risk
  • Clear documentation and control

SCRUM:
SCRUM is an agile framework used for managing and completing complex software projects.

Key roles:

  • Product Owner
  • Scrum Master
  • Development Team

Key terms:

  • Sprint: short time iteration (1–4 weeks)
  • Product backlog: list of requirements
  • Daily scrum: short daily meeting

Advantages:

  • Fast development
  • Flexible to changes
  • Continuous feedback

Prototype Model:
Prototype model is a development approach where a working model is built early to understand requirements.

Steps:

  • Gather requirements
  • Build prototype
  • User evaluation
  • Refine prototype
  • Develop final system

Advantages:

  • Better requirement understanding
  • User involvement
  • Reduces risk of misunderstanding

Conclusion:
SDLC provides structure, SCRUM provides agility, and prototype model helps in requirement clarity through early working model.

26. Short notes on COCOMO.

COCOMO (Constructive Cost Model) is a software cost estimation model used to estimate effort, time, and cost of software projects based on size.

It uses KLOC (Kilo Lines of Code) as input.

Basic COCOMO formula:
Effort = a × (KLOC)^b
Time = c × (Effort)^d

Types of COCOMO:

i) Basic COCOMO:
Used for small, simple projects with limited analysis.

ii) Intermediate COCOMO:
Includes cost drivers like product, hardware, personnel and project attributes.

iii) Detailed COCOMO:
More detailed version where each phase of SDLC is analyzed separately.

Project modes:

i) Organic:
Small, simple projects with experienced team.

ii) Semi-detached:
Medium complexity projects.

iii) Embedded:
Complex projects with tight constraints and hardware interaction.

Advantages:

  • Simple and widely used
  • Good for early estimation
  • Helps in planning cost and schedule

Limitations:

  • Depends on accurate KLOC
  • Not suitable for modern reuse-based development
  • Less accurate for agile projects

Conclusion:
COCOMO is a useful model for estimating software cost and effort based on project size and complexity.

27. What is version control? How version control is differing from change management?

Version Control:
Version control is a system that records and manages changes made to software code or documents over time.

It allows developers to track, store, and restore different versions of software.

Features:

  • Keeps history of changes
  • Supports collaboration among developers
  • Allows rollback to previous version
  • Manages multiple versions of same software

Example:
Git is a popular version control system.

Difference between Version Control and Change Management:

  1. Meaning:
    Version control: Manages different versions of code/files
    Change management: Controls and approves changes in software system
  2. Focus:
    Version control: Technical tracking of code changes
    Change management: Process of evaluating and approving changes
  3. Level:
    Version control: Developer level activity
    Change management: Project management level activity
  4. Tools:
    Version control: Git, SVN
    Change management: Jira, service desk systems
  5. Purpose:
    Version control: Maintain code history and collaboration
    Change management: Ensure controlled and safe implementation of changes

Conclusion:
Version control manages code versions technically, while change management ensures proper approval and control of software changes in a project.

 Some Important Notes

1. Software Engineering Ethics

Software Engineering Ethics refers to the set of moral principles, values, and professional standards that guide software engineers in the design, development, testing, and maintenance of software systems. It ensures that software professionals act responsibly while handling data, user privacy, security, and system reliability. Since software systems are widely used in banking, healthcare, education, and government sectors, ethical behavior is very important to protect individuals and society.

Ethical practices help engineers make correct decisions when facing dilemmas such as data misuse, security risks, or system failures.

Importance of Software Engineering Ethics

  • Ensures responsible development of software systems
  • Protects user privacy and personal data
  • Prevents misuse of software and technology
  • Improves trust between users and developers
  • Ensures compliance with laws and regulations
  • Reduces security risks and system failures

Main Ethical Principles

  • Privacy Protection: User data must be kept confidential and not shared without permission.
  • Security Responsibility: Software should be protected from unauthorized access and cyber attacks.
  • Honesty and Integrity: Engineers should provide accurate information about software capabilities.
  • Professional Responsibility: Follow coding standards, rules, and industry guidelines.
  • Public Interest: Software should not harm society or individuals.

Main Points

  • Protect user privacy and data
  • Ensure system safety and reliability
  • Avoid misuse of information
  • Follow professional standards and code of conduct
  • Maintain public trust and transparency

Example

In a hospital management system, patient records such as medical history, reports, and personal details must be securely stored and should not be accessed or shared by unauthorized users. If leaked, it can harm patients and violate ethical and legal standards.

Another example is banking software, where customer account details must be protected from hackers and unauthorized access.

Conclusion

Software Engineering Ethics plays a vital role in ensuring safe, secure, and responsible software development. It helps developers create trustworthy systems that protect users and society while maintaining professionalism and legal compliance. Without ethics, software systems may lead to privacy violations, security threats, and loss of public trust.


 

2. Software Process Model (Waterfall)

A Software Process Model is a structured framework used to develop software in a systematic and organized way. It defines a step-by-step approach for software development, starting from requirement gathering and ending with maintenance. It helps developers manage activities properly, reduce errors, and improve software quality. One of the most widely used traditional models is the Waterfall Model, which follows a linear and sequential process.

 

Waterfall Model

The Waterfall Model is a classic software development model in which each phase must be completed before moving to the next one. It is called “waterfall” because the process flows downward like a waterfall, with no overlapping of phases.

Each phase produces output that becomes the input for the next phase.

Phases of Waterfall Model

  • Requirement Analysis: Collect and analyze user needs and system requirements.
  • System Design: Prepare system architecture, database design, and overall structure.
  • Implementation (Coding): Developers write code based on design specifications.
  • Testing: The software is tested to find and fix errors and bugs.
  • Deployment: The system is delivered and installed for users.
  • Maintenance: Regular updates, bug fixes, and improvements are made after deployment.

Main Points

  • Requirement analysis is done at the beginning
  • Design is prepared before coding starts
  • Coding is done after finalizing design
  • Testing is performed after implementation
  • Maintenance is the final and continuous phase

Advantages

  • Simple and easy to understand
  • Easy to manage due to clear structure
  • Suitable for small and well-defined projects
  • Each phase has specific deliverables
  • Easy documentation process

Disadvantages

  • Not flexible for changes
  • Difficult to go back to previous stages
  • Not suitable for complex or large projects
  • Testing is done late in the process

Example

The Waterfall Model is commonly used in government systems, payroll systems, and banking applications, where requirements are clearly defined and changes are minimal.

Conclusion

The Waterfall Model is a simple and structured software development approach. It is suitable for small and stable projects with fixed requirements. However, it is less flexible compared to modern models, making it less suitable for complex and changing systems.

 


 

3. SDLC (Software Development Life Cycle)

SDLC (Software Development Life Cycle) is a structured, step-by-step process used for developing high-quality software efficiently. It defines a complete framework that covers all stages of software development from initial planning to final maintenance. The main goal of SDLC is to produce reliable, efficient, and cost-effective software while reducing risks and errors during development.

Purpose of SDLC

  • To develop software in a systematic and organized way
  • To improve software quality and reliability
  • To reduce cost, time, and development risks
  • To ensure proper documentation and planning
  • To manage complex software projects effectively

 

Phases of SDLC

  • Requirement Gathering & Analysis: Collect user needs and system requirements.
  • System Design: Design system architecture, database, and interface structure.
  • Implementation (Coding): Convert design into actual program code.
  • Testing: Identify and fix bugs and errors in the software.
  • Deployment: Install and deliver software to users.
  • Maintenance: Update, improve, and fix issues after deployment.

Main Points

  • Requirement gathering from users
  • System design and planning
  • Coding or implementation of software
  • Testing for error detection
  • Deployment and maintenance of system

Advantages of SDLC

  • Provides clear structure for development
  • Improves software quality
  • Reduces development risks and confusion
  • Easy project management and control
  • Ensures better documentation

Disadvantages of SDLC

  • Can be time-consuming for large projects
  • Difficult to handle requirement changes
  • Not suitable for rapidly changing systems in traditional models
  • Requires detailed planning and documentation

Example

SDLC is used in developing websites, mobile applications, banking systems, and management systems where proper planning and structured phases are required.

Conclusion

SDLC is a systematic approach to software development that ensures proper planning, design, implementation, testing, and maintenance. It helps in producing high-quality and reliable software while reducing risks and improving development efficiency.

 


 

4. Project Planning & WBS

Project Planning is the process of defining how a project will be completed, including tasks, time, cost, resources, and responsibilities. It is done before starting actual development to ensure smooth execution and successful delivery of the project. It helps in organizing work in a systematic manner and reduces confusion, delays, and risks.

Work Breakdown Structure (WBS) is an important part of project planning. It is a technique used to break a large project into smaller, manageable tasks or modules. Each task can be assigned, tracked, and completed easily.

Importance of Project Planning

  • Helps in proper organization of project activities
  • Defines clear goals and objectives
  • Reduces project risks and uncertainty
  • Ensures efficient use of time and resources
  • Improves communication among team members

 

Work Breakdown Structure (WBS)

WBS divides a project into smaller components or modules. Each module represents a specific task that contributes to the final project.

It follows a top-down approach:

  • Project → Major Modules → Sub-modules → Tasks

Main Components of Project Planning & WBS

  • Task Division: Breaking the project into smaller tasks
  • Resource Allocation: Assigning developers, tools, and materials
  • Scheduling: Setting deadlines for each task
  • Cost Estimation: Estimating budget required for the project
  • Progress Monitoring: Tracking project development status

Advantages of WBS

  • Makes complex projects easier to manage
  • Improves task clarity and organization
  • Helps in better time management
  • Reduces chances of missing important tasks
  • Improves team coordination

Example

An Online Examination System can be divided into modules such as:

  • User login module
  • Question management module
  • Exam scheduling module
  • Result evaluation module
  • Report generation module

Each module is further divided into smaller tasks for development.

Conclusion

Project Planning and Work Breakdown Structure (WBS) are essential for successful project management. They help in organizing, dividing, and managing tasks efficiently. WBS simplifies complex projects into manageable parts, ensuring timely delivery and better quality output.

 


 

5. Cost Estimation Techniques

Cost Estimation is the process of predicting the required effort, time, and total cost needed to develop a software system. It is an important activity in software project planning that helps in budgeting, resource allocation, and decision-making. Cost estimation is usually done in the early stage of a project before development begins. It reduces financial risks and improves the chances of project success.

Importance of Cost Estimation

  • Helps in proper budgeting and financial planning
  • Ensures efficient use of resources
  • Reduces risk of project failure due to cost issues
  • Helps managers make better project decisions
  • Improves project scheduling and planning

Cost Estimation Techniques

  • Expert Judgment:
    Estimation is done by experienced professionals based on their knowledge and past experience.
  • Analogous Estimation:
    Cost is estimated by comparing the current project with similar completed projects.
  • COCOMO Model (Constructive Cost Model):
    A mathematical model that estimates cost, effort, and time based on project size (usually lines of code).
  • Bottom-Up Approach:
    The project is divided into smaller modules, and cost is estimated for each module separately, then combined.
  • Parametric Estimation:
    Uses statistical relationships between historical data and project variables to estimate cost.

Main Points

  • Expert judgment based estimation
  • Use of past project comparison
  • COCOMO mathematical model
  • Bottom-up module-wise estimation
  • Parametric estimation using data analysis

Example

If a company has previously developed a website for 50,000 NPR, it can use that past data to estimate the cost of a similar new website, adjusting for new features and complexity.

Conclusion

Cost Estimation Techniques are essential in software project management. They help predict the cost, time, and effort required for development. Proper estimation ensures effective planning, reduces risks, and increases the chances of successful project completion.


 

6. Software Validation

Software validation checks whether the software meets user requirements. It ensures that the correct product is developed. It is performed before delivery. It improves quality and reliability. It avoids user dissatisfaction.

Main Points

  • Ensures correct functionality
  • Detects errors early
  • Improves reliability
  • Ensures user satisfaction
  • Reduces system failure

Example

Ticket booking system must correctly reserve seats.

Conclusion

Validation ensures the right product is built.

 

7. Risk Management (RMMM Plan)

Risk Management is the process of identifying, analyzing, and controlling potential problems that may occur during software development. These problems (risks) can affect cost, time, quality, or system performance. To handle risks effectively, software engineers use the RMMM Plan, which stands for Risk Mitigation, Monitoring, and Management. It is an important part of software project management, especially in large and critical systems such as banking, healthcare, and online examination systems.

Importance of Risk Management

  • Helps in identifying potential project failures early
  • Reduces cost and time overruns
  • Improves software quality and reliability
  • Ensures smooth project execution
  • Increases system safety and stability

RMMM Plan (Risk Mitigation, Monitoring, and Management)

  • Risk Mitigation:
    Strategies used to reduce the probability or impact of risks before they occur.
  • Risk Monitoring:
    Continuous observation of identified risks during the project to detect changes early.
  • Risk Management:
    Actions taken to handle risks if they occur and minimize their effects on the project.

Main Types of Risks

  • Technical risks (system failure, bugs, technology issues)
  • Financial risks (budget overrun)
  • Schedule risks (project delay)
  • Operational risks (system downtime, performance issues)
  • Security risks (data breach, hacking)

Main Points

  • Risk identification in early stages
  • Planning mitigation strategies
  • Continuous monitoring of risks
  • Proper control and response plan
  • Disaster recovery planning

Example

In an online examination system, if there is a server failure or data loss, a backup system and recovery plan help restore data and continue the exam process without disruption.

Conclusion

RMMM is a crucial part of software engineering that ensures safe and reliable system development. It helps in identifying and controlling risks effectively, making software systems more stable, secure, and dependable.

 


 

8. Software Testing

Software Testing is the process of evaluating and verifying a software system to identify errors, bugs, or missing requirements. It ensures that the software works correctly according to user requirements before it is released to users. Testing is a critical phase in the Software Development Life Cycle (SDLC) because it improves software quality, performance, and reliability. It helps reduce system failures after deployment and ensures the software is safe and efficient.

Importance of Software Testing

  • Ensures software correctness and reliability
  • Detects errors and bugs in early stages
  • Improves software quality and performance
  • Reduces maintenance cost after release
  • Increases user satisfaction and trust

Types of Software Testing

  • Unit Testing: Testing individual components or modules of software separately.
  • Integration Testing: Testing combined modules to check interaction between them.
  • System Testing: Testing the complete system as a whole to ensure it meets requirements.
  • Acceptance Testing: Checking whether the system is ready for delivery to the user.
  • Error Detection: Identifying and fixing defects in the software.

Main Points

  • Unit testing for individual modules
  • Integration testing for module interaction
  • System testing for complete software
  • Focus on error detection and correction
  • Ensures overall quality improvement

Example

Testing a login system by entering valid and invalid usernames and passwords to check whether the system correctly allows or rejects access.

Conclusion

Software Testing is an essential phase of SDLC that ensures the delivery of high-quality, error-free software. It improves system reliability, performance, and user satisfaction by detecting and fixing defects before release.

 


 

9. Black Box vs White Box Testing

Black Box Testing and White Box Testing are two important software testing techniques used to ensure the quality and reliability of software systems. These techniques help in identifying errors, improving performance, and verifying that the software works as expected. Both methods are widely used in software development life cycle (SDLC) to deliver bug-free applications.

Black Box Testing

Black Box Testing is a type of testing in which the internal structure or code of the software is not known to the tester. The tester only focuses on input and output behavior. It checks whether the software is working correctly according to requirements.

  • It is also called functional testing.
  • It tests what the system does, not how it does.
  • No programming knowledge is required.
  • Test cases are based on user requirements.

Example:
Testing a login system by entering valid and invalid usernames and passwords without knowing how the login code is written.

White Box Testing

White Box Testing is a type of testing in which the internal structure, logic, and code of the software are tested. The tester needs programming knowledge to design test cases.

  • It is also called structural or glass box testing.
  • It tests internal logic, loops, conditions, and paths.
  • Requires knowledge of source code.
  • Focuses on code optimization and security.

Example:
Checking whether all loops and conditions in a program are executed correctly during login validation or calculation logic testing.

Main Differences

  • Black box testing focuses on external behavior (input/output), while white box testing focuses on internal code structure.
  • Black box testing does not require code knowledge, while white box testing requires programming knowledge.
  • Black box is done by testers or users, while white box is done by developers.
  • Black box is requirement-based testing, while white box is logic-based testing.

Importance

  • Helps in finding different types of software errors.
  • Ensures complete test coverage (both functional and structural).
  • Improves software quality, reliability, and security.
  • Reduces chances of system failure after deployment.

Conclusion

Black Box and White Box Testing are both essential for effective software testing. Black Box ensures that the system works according to user requirements, while White Box ensures that the internal code is correct and optimized. Together, they provide complete software quality assurance.

 


 

10. Agile Model & Principles

Agile is a flexible software development approach. It focuses on customer satisfaction and continuous improvement. It delivers software in small iterations. It supports changing requirements. It improves collaboration and speed.

Main Points

  • Customer collaboration
  • Iterative development
  • Continuous feedback
  • Adaptive to change
  • Working software priority

Example

Mobile apps updated based on user feedback.

Conclusion

Agile improves flexibility and delivery speed.

 

11. RAD Model

RAD (Rapid Application Development) is a software development model that focuses on quick development and delivery of software. It uses prototypes instead of full system development in early stages. This model emphasizes user feedback throughout the development process. It reduces overall development time by using reusable components. RAD is mainly suitable for projects where requirements are well understood and time is limited.

2. Main Points

  • Uses rapid prototyping for quick development
  • Reusable components reduce coding effort
  • Continuous user involvement and feedback
  • Short and fast development cycles
  • Requires skilled developers and strong tools

3. Example

A mobile application developed quickly using pre-built modules and user feedback during each prototype stage.

4. Conclusion

RAD model is best suited for fast and flexible software delivery where time and user involvement are critical.

 

12. SRS (Software Requirement Specification)

Software Requirement Specification (SRS) is a formal document that clearly describes all the requirements of a software system. It defines what the system should do and how it should behave. SRS acts as a communication bridge between the client and the developer. It is prepared before the design phase to avoid confusion and misunderstanding. It is also considered as a contract between both parties.

Main Points

  • Functional requirements of the system
  • Non-functional requirements (performance, security, etc.)
  • System constraints and limitations
  • External interfaces (hardware/software/user)
  • User requirements and expectations

Example

In a login system, the SRS defines that only users with valid username and password can access the system securely.

Conclusion

SRS plays a key role in software development as it provides a clear blueprint for designing, coding, and testing the system.

 

13. Software Project Management

Software Project Management is the process of planning, organizing, and controlling software development activities. It ensures that the project is completed within the given time, cost, and quality requirements. It involves managing resources, tasks, and risks throughout the project. It helps in smooth coordination among team members. It is essential for successful completion of large and complex software systems.

Main Points

  • Project planning and scope definition
  • Task scheduling and tracking progress
  • Cost estimation and budget control
  • Risk identification and management
  • Resource allocation and team management

Example

Using a Gantt chart to schedule and monitor tasks in an online examination system project.

Conclusion

Effective project management ensures timely delivery of software with required quality and minimal risk.

 


 

14. Software Myths

Software myths are false beliefs or assumptions about software development that are commonly accepted as true. In reality, software development is complex, requires planning, teamwork, and proper engineering practices. Many people misunderstand how software is built and maintained. These wrong beliefs often lead to poor decisions and project failure. Understanding the difference between myth and reality is important for successful software engineering.

Types of Myths with Reality

a.      Management Myths

  • Myth: Adding more programmers will speed up a delayed project.
    Reality: It often slows down the project due to communication overhead.
  • Myth: Software development is just coding.
    Reality: It includes planning, design, testing, and maintenance.

b.      Customer Myths

  • Myth: A general idea is enough to start development.
    Reality: Clear and complete requirements are necessary.
  • Myth: Changes can be easily added anytime without cost.
    Reality: Changes later increase cost and effort.

c.       Developer Myths

  • Myth: Once the program runs, the job is finished.
    Reality: Maintenance and updates are continuous processes.
  • Myth: Testing is not very important if code works.
    Reality: Testing is essential to ensure quality and reliability.

Example

A project manager adds extra developers to finish a late project, but instead of speeding it up, the project becomes more delayed due to coordination problems.

Conclusion

Understanding the difference between software myths and reality helps in better planning, realistic expectations, and successful project execution.

 

15. Spiral Model

The Spiral Model is a risk-driven software development model that combines the features of both iterative development and the waterfall model. It is mainly used for large, complex, and high-risk software projects. In this model, development is done in repeated cycles called spirals. Each cycle focuses on identifying and reducing risks before moving forward. It improves system reliability, flexibility, and control over the project.

Main Points

  • Planning of objectives and requirements
  • Risk analysis in every cycle
  • System design and development
  • Customer evaluation and feedback
  • Iterative development process

Example

The Spiral Model is commonly used in banking systems and defense-related software where risk management is very important.

Conclusion

The Spiral Model is best suited for high-risk and complex projects because it focuses on continuous risk analysis and iterative improvement.

 

16. SRS Components & Requirement Engineering Process

Requirement Engineering is the process of gathering, analyzing, documenting, and validating software requirements. It ensures that the final system meets user needs correctly. SRS (Software Requirement Specification) is the final document produced after requirement analysis. It acts as a communication bridge between client and developer. It reduces misunderstanding and project failure.

Main Points

  • Feasibility study
  • Requirement elicitation (gathering)
  • Requirement analysis
  • Requirement specification (SRS writing)
  • Requirement validation

Example

Interviewing hospital staff to design a patient management system.

Conclusion

Requirement engineering ensures clear and correct software requirements.

 


 

17. Software Project Management Activities + Development Planning

Software project management involves planning, organizing, and controlling software development activities. It ensures that projects are completed within time, cost, and quality constraints. Development planning defines how the project will be executed step by step. It improves coordination and resource utilization. It is essential for successful delivery.

Main Points

  • Project planning and scope definition
  • Cost estimation
  • Scheduling (Gantt/PERT chart)
  • Risk management
  • Resource allocation

Example

Gantt chart used for scheduling online exam system tasks.

Conclusion

Proper planning ensures successful project execution.

 

18. Software Metrics (FP and OP)

Software metrics are quantitative measures used to evaluate software size, quality, and performance. They help in project estimation and productivity measurement. Function Point (FP) measures software functionality from user perspective. Object Point (OP) is used in object-oriented systems. These metrics help in better project planning.

Main Points

  • Function Point counts inputs, outputs, files
  • Object Point measures screens, reports, modules
  • Used for cost estimation
  • Helps measure productivity
  • Supports project comparison

Example

Estimating software size using number of inputs and outputs.

Conclusion

Metrics help in accurate planning and estimation.

 

19. Feasibility Study & Types

Feasibility study is the process of analyzing whether a software project is practical and worth developing. It is performed before starting the project. It checks technical, financial, and operational feasibility. It helps avoid project failure. It supports decision making.

Main Points

  • Technical feasibility
  • Economic feasibility
  • Operational feasibility
  • Legal feasibility
  • Schedule feasibility

Example

Checking whether a hospital system can be built with available resources.

Conclusion

Feasibility study ensures project viability.

 

20. Cost Estimation (COCOMO vs Other Techniques)

 

Cost estimation is the process of predicting effort, time, and cost required for software development. It helps in budgeting and planning resources. Different techniques are used depending on project size. COCOMO is a widely used mathematical model for estimation. It improves accuracy in project planning.

Main Points

  • Expert judgment
  • Analogous estimation
  • COCOMO model
  • Bottom-up approach
  • Parametric model

Example

Using past project cost to estimate a new website.

Conclusion

Cost estimation helps in effective project budgeting.

 


 

21. Software Re-engineering & Maintenance

Software re-engineering is the process of improving existing software without changing its functionality. It involves restructuring and updating old systems. Software maintenance ensures software continues to work after delivery. It fixes bugs and improves performance. Both are important for long-term software usability.

Main Points

  • Corrective maintenance (bug fixing)
  • Adaptive maintenance (environment changes)
  • Perfective maintenance (new features)
  • Preventive maintenance (future improvement)
  • Reverse engineering

Example

Updating old banking software to new technology.

Conclusion

Maintenance keeps software useful and updated.

 

22. Quality Assurance vs Quality Control

Quality Assurance (QA) and Quality Control (QC) are important processes used to ensure the quality of software. QA focuses on preventing defects, while QC focuses on detecting and fixing defects.

QA is process-oriented, proactive, and prevents bugs — it happens during development and involves the whole team (reviews, planning). QC is product-oriented, reactive, and finds bugs — it happens after development and mainly involves testers (testing, inspection). A key exam point: QA does not need a finished product, but QC does. Example — checking a cooking method = QA; tasting the finished dish = QC.

 

QA (Quality Assurance)

QC (Quality Control)

Focuses on the process – Ensures the way you build software is correct and prevents mistakes before they happen.

Focuses on the product – Checks the final software for defects after it has been built.

Prevents errors – Aims to stop defects from being created during development by improving how work is done.

Finds errors – Identifies bugs and issues by testing the software after it is developed.

Done before mistakes occur – Activities like planning, training, and setting standards happen early, before coding starts.

Done after mistakes occur – Testing happens after development, so you only see the problem once it exists.

All team members involved – Developers, analysts, and managers all help follow and improve the process.

Mainly testing team involved – Testers run test cases, log bugs, and verify fixes.

Uses reviews and planning – Methods include code reviews, process audits, checklists, and defining workflows.

Uses testing and checking – Methods include running tests, comparing outputs, and inspecting features.

Example: Checking the process – Reviewing if developers follow a coding standard or attend requirement meetings.

Example: Testing the software – Running a login test to see if the password field accepts invalid input.

 

 


 

23. Software Engineering Definition & Problems

Software engineering is the systematic application of engineering principles to software development. It ensures structured design, development, and maintenance of software systems. It aims to produce reliable and efficient software. Software engineers face many real-world challenges. These challenges affect project success.

Main Points

  • Changing requirements
  • Tight deadlines
  • Communication issues
  • Integration problems
  • Security challenges

Example

Requirement changes during project development.

Conclusion

Software engineering requires proper planning to overcome challenges.

 

24. Software Quality & Standards

Software quality refers to how well software meets user requirements and expectations. It includes reliability, usability, and performance. Software standards are guidelines that ensure consistency and quality in development. Standards like ISO and IEEE are widely used. They improve software reliability.

Main Points

  • Reliability
  • Usability
  • Efficiency
  • Maintainability
  • ISO/IEEE standards

Example

ISO standards used in software documentation.

Conclusion

Standards ensure high-quality software development.

 

25. Configuration Management & Version Control

Configuration management is the process of tracking and controlling changes in software. It ensures consistency across development stages. Version control manages different versions of software files. It helps developers collaborate efficiently. It prevents data loss and conflicts.

Main Points

  • Tracks software changes
  • Maintains version history
  • Supports rollback
  • Ensures team coordination
  • Tools: Git, SVN

Example

Git used for managing code versions.

Conclusion

Version control improves software development efficiency.

 

0 comments:

Post a Comment