0% found this document useful (0 votes)
22 views24 pages

Software Engineering Important Questions

The document provides an overview of software engineering, detailing various software development models including Waterfall, Incremental, Iterative, Spiral, Prototype, Agile, and RAD. It outlines key phases, advantages, and disadvantages of each model, along with essential concepts like feasibility studies, SRS characteristics, cost estimation techniques, and risk management. Additionally, it discusses software configuration management, team structures, and design approaches, emphasizing the importance of effective planning and collaboration in software projects.
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)
22 views24 pages

Software Engineering Important Questions

The document provides an overview of software engineering, detailing various software development models including Waterfall, Incremental, Iterative, Spiral, Prototype, Agile, and RAD. It outlines key phases, advantages, and disadvantages of each model, along with essential concepts like feasibility studies, SRS characteristics, cost estimation techniques, and risk management. Additionally, it discusses software configuration management, team structures, and design approaches, emphasizing the importance of effective planning and collaboration in software projects.
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
You are on page 1/ 24

Q.

Software Engineering

Software Engineering is the systematic application of engineering principles to develop, operate, and maintain
software.

Software Engineering Process

1. Requirement Gathering and Analysis: Collect and analyze requirements.

2. Design: Create a blueprint for the software.

3. Implementation (Coding): Write the code.

4. Testing: Verify the software works as intended.

5. Deployment: Release the software to users.

6. Maintenance: Update and improve the software over time.

Q. Waterfall Model

The Waterfall Model is a linear software development approach where each phase must be completed before the
next begins. It includes requirement gathering, design, implementation, verification, and maintenance. Once a phase
is completed, you cannot go back to it. This model is simple but inflexible and not ideal for large or complex projects.

Phases:

1. Requirement Phase: Collect and document system requirements.

2. Design Phase: Create a blueprint for the software system.

3. Implementation Phase: Install hardware, software, and application programs; test, code, and debug.

4. Verification Phase: Verify and evaluate the software through various types of testing.

5. Maintenance Phase: Solve problems and maintain the software over time.

Advantages:

• Simple and easy to understand.

• Useful for small projects.

• Easy to manage.

• End goal determined early.

• Well-explained phases.

• Structured approach.

• No overlapping between phases.

Disadvantages:

• Requires complete and accurate requirements at the beginning.

• Working software not available early.

• Difficult to change requirements.

• High risk and uncertainty.

• Late testing period.

• Not realistic for today's dynamic environment.


• Not suitable for large and complex projects.

Q. Incremental Model
Phases:
1. Communication: Collect customer requirements.
2. Planning: Divide requirements into modules and plan accordingly.
3. Modeling: Design each module and document it.
4. Construction: Implement and test the module.
5. Deployment: Deliver the module to the customer and integrate with previous modules.
Advantages:
• Develop important modules first.
• Quick delivery of working software.
• Flexible and less expensive to change requirements.
• Customer feedback for each module.
• Easier to test and debug.
• Errors are easy to identify.
Disadvantages:
• Continuous management required.
• Clear requirements needed from the start.
• Requires good planning and designing.
• Higher total cost.
Q. Iterative Model
The Iterative Model is a software development approach where the project is developed through repeated
cycles (iterations) and smaller portions at a time. Each iteration involves planning, design, implementation,
and testing.
Phases:
1. Planning: Define the scope and objectives of the iteration.
2. Design: Create the design for the iteration.
3. Implementation: Develop and code the iteration.
4. Testing: Test the iteration to identify and fix defects.
5. Review: Evaluate the iteration and gather feedback for the next cycle.
Advantages:
• Allows for early detection of issues.
• Provides a working version of the software early in the process.
• Flexibility to accommodate changes.
• Continuous improvement through feedback.
Disadvantages:
• Requires good planning and design.
• Can be resource-intensive.
• Management complexity increases with more iterations.
Q. Spiral Model
The Spiral Model is a software development approach that combines elements of both the Waterfall Model
and iterative development, with a strong focus on risk assessment and mitigation.
Phases:
1. Planning: Define objectives, alternatives, and constraints.
2. Risk Analysis: Identify and evaluate risks, and develop strategies to mitigate them.
3. Engineering: Develop and test the product increment.
4. Evaluation: Review the progress and plan the next iteration.
Advantages:
• Focuses on risk management.
• Allows for iterative refinement.
• Flexible and adaptable to changes.
• Suitable for large and complex projects.
Disadvantages:
• Can be costly and time-consuming.
• Requires expertise in risk assessment.
• Management complexity increases with more iterations.
Q. Prototype Model
The Prototype Model is a software development approach where a prototype (an early approximation of
the final product) is built, tested, and refined based on user feedback.
Phases:
1. Requirement Gathering: Collect initial requirements from the user.
2. Quick Design: Create a simple design for the prototype.
3. Building Prototype: Develop the prototype based on the quick design.
4. User Evaluation: Present the prototype to the user for feedback.
5. Refinement: Refine the prototype based on user feedback and repeat the cycle until the final
product is achieved.
Advantages:
• Helps in understanding user requirements.
• Provides a working model early in the process.
• Allows for user feedback and iterative refinement.
• Reduces the risk of project failure.
Disadvantages:
• Can be time-consuming and costly.
• Requires frequent user involvement.
• May lead to scope creep if not managed properly.
Q. Agile Model
The Agile Model is a software development approach that emphasizes iterative and incremental
development, collaboration, flexibility, and customer feedback.
Phases:
1. Planning: Define the project scope and objectives.
2. Design: Create a high-level design for the iteration.
3. Development: Develop and code the iteration.
4. Testing: Test the iteration to identify and fix defects.
5. Review: Evaluate the iteration and gather feedback for the next cycle.
6. Deployment: Release the iteration to the customer.
Advantages:
• Flexibility to accommodate changes.
• Continuous improvement through feedback.
• Early delivery of working software.
• Enhanced collaboration and communication.
Disadvantages:
• Requires frequent user involvement.
• Can be resource-intensive.
• Management complexity increases with more iterations.
Q. Feasibility Study
A Feasibility Study assesses the practicality and potential success of a project.
Types of Feasibility Studies
1. Technical Feasibility: Evaluates technology and resource availability.
2. Economic Feasibility: Assesses cost-effectiveness and financial benefits.
3. Legal Feasibility: Ensures compliance with legal and regulatory requirements.
4. Operational Feasibility: Determines if the project fits within the existing operational framework.
5. Schedule Feasibility: Checks if the project can be completed within the desired timeframe.
Q. SRS. Characteristics of good SRS Document.
An SRS (Software Requirements Specification) document details the software system's requirements,
including functional and non-functional requirements, architecture, use cases, data requirements,
interfaces, and constraints. It serves as a blueprint for development and ensures the final product meets
specified requirements.
A good Software Requirements Specification (SRS) document should have the following characteristics:
1. Clear and Unambiguous: Requirements should be stated clearly and without ambiguity.
2. Complete: All necessary requirements should be included.
3. Consistent: There should be no conflicting requirements.
4. Verifiable: Each requirement should be testable.
5. Modifiable: The document should be structured to allow easy updates.
6. Traceable: Each requirement should be traceable to its source and throughout the development
process.
7. Understandable: The document should be easily understood by all stakeholders.
8. Feasible: Requirements should be realistic and achievable within the constraints.
Q. Empirical Cost Estimation Techniques
1. Expert Judgment: Estimates based on experts' knowledge and experience.
2. Delphi Technique: Anonymous expert panel provides estimates, reaching a consensus.
3. COCOMO: Model estimating cost, effort, and schedule based on project size and complexity.
4. Function Point Analysis: Measures software functionality to estimate effort and cost.
5. Regression Analysis: Uses statistical methods to predict cost based on project variables.
Q. “A good software should have high cohesion but low coupling.”- explain in brief.
A good software should have:
• High Cohesion: Components within a module are closely related and work together effectively.
• Low Coupling: Modules are independent with minimal dependencies, making the system more
flexible and easier to maintain.
Q. Baselines in Software Configuration Management
Baselines:
• A baseline is a fixed reference point in the software development process.
• It represents a snapshot of the software at a specific point in time.
• Baselines are used to track changes and ensure consistency.
Necessity of Software Configuration Management (SCM)
SCM is essential for:
1. Version Control: Manages different versions of software components.
2. Change Management: Tracks and controls changes to the software.
3. Consistency: Ensures that all team members work with the same version of the software.
4. Traceability: Provides a history of changes and their impact.
5. Collaboration: Facilitates teamwork by managing shared resources.
Q. COCOMO Model
The COCOMO (Constructive Cost Model) estimates software project cost, effort, and schedule based on size
and complexity.
Types:
1. Basic COCOMO: Rough estimates based on project size.
2. Intermediate COCOMO: Considers additional factors like product, hardware, and personnel
attributes.
3. Detailed COCOMO: Adds detailed assessment of each cost driver.
Q. Coupling and Cohesion
Coupling refers to the degree of interdependence between software modules. Low coupling is desirable as
it means modules can function independently, making the system more flexible and easier to maintain.
Cohesion refers to the degree to which the elements within a module belong together. High cohesion is
desirable as it means the module is focused and efficient.
Types of Cohesion
1. Functional Cohesion: Elements work together to perform a single function.
2. Sequential Cohesion: Output of one element is the input for another.
3. Communicational Cohesion: Elements operate on the same data set.
4. Procedural Cohesion: Elements are related by the sequence of execution.
5. Temporal Cohesion: Elements are related by the timing of execution.
6. Logical Cohesion: Elements perform similar activities and are grouped logically.
7. Coincidental Cohesion: Elements have no meaningful relationship and are grouped arbitrarily (least
desirable).
Q. Software Project Plan.
A Software Project Plan outlines the roadmap for a software development project. It includes the following
key components:
1. Introduction: Overview of the project, objectives, and scope.
2. Project Organization: Roles and responsibilities of the project team.
3. Risk Management: Identification and mitigation of potential risks.
4. Project Schedule: Timeline with milestones and deliverables.
5. Resource Allocation: Allocation of resources, including personnel, hardware, and software.
6. Budget: Estimated costs and budget allocation.
7. Quality Assurance: Processes for ensuring the quality of the software.
8. Communication Plan: Methods and frequency of communication among stakeholders.
9. Change Management: Procedures for handling changes to the project scope or requirements.
Q. Cost-Benefit Analysis in Software Engineering
Cost-Benefit Analysis (CBA) evaluates the economic feasibility of software projects by comparing costs and
benefits.
Techniques:
1. Identify Costs and Benefits: List all potential costs and benefits.
2. Quantify Costs and Benefits: Express them in monetary terms.
3. Compare Costs and Benefits: Calculate net benefit.
4. Sensitivity Analysis: Assess impact of changes in assumptions.
5. Risk Analysis: Evaluate risks and their impact on costs and benefits.
Q. Hardware vs. Software
Q. Software Configuration Management (SCM)
SCM is the process of systematically managing, organizing, and controlling changes in software during its
development and maintenance. It ensures that changes are properly implemented, tracked, and
documented.
Key Activities:
1. Version Control: Managing different versions of software components.
2. Change Control: Tracking and approving changes to the software.
3. Build Management: Automating the process of building software from source code.
4. Release Management: Planning, scheduling, and controlling the release of software versions.
5. Configuration Identification: Identifying and defining the configuration items in a system.
6. Configuration Auditing: Ensuring that the configuration items are correct and complete.
Q. Risk Management in Software Engineering
Risk Management involves identifying, assessing, and mitigating risks that could impact a software project.
It ensures that potential problems are addressed proactively to minimize their impact.
Key Activities:
1. Risk Identification: Identify potential risks that could affect the project.
2. Risk Assessment: Evaluate the likelihood and impact of each risk.
3. Risk Mitigation: Develop strategies to reduce or eliminate risks.
4. Risk Monitoring: Continuously monitor risks and their mitigation strategies throughout the project
lifecycle.
Q. CASE Tools in Software Engineering
CASE (Computer-Aided Software Engineering) Tools support various stages of software development,
improving productivity and quality.
Types:
1. Upper CASE Tools: Support early stages like requirements analysis and design.
2. Lower CASE Tools: Assist in later stages like coding, testing, and maintenance.
3. Integrated CASE Tools: Cover the entire software development lifecycle.
Benefits:
• Improve productivity and efficiency.
• Enhance quality and consistency.
• Facilitate collaboration.
• Provide better project management and documentation.
Q. Team Structure of an organization
1. Generalist Team: Broad range of skills.
2. Specialist Team: Specific expertise in certain areas.
3. Hybrid Team: Combines generalists and specialists.
4. Feature Team: Focuses on specific features.
5. Component Team: Works on specific components.
Q. Risk Identification & Assessment
Risk Identification involves identifying potential risks that could affect a software project. Common
methods include brainstorming, checklists, and expert judgment.
Risk Assessment evaluates the likelihood and impact of identified risks. Techniques include:
1. Qualitative Analysis: Assessing risks based on their probability and impact using a rating scale.
2. Quantitative Analysis: Using numerical methods to estimate the effect of risks on project
objectives.
Q. RAD Model
The Rapid Application Development (RAD) Model is a software development approach that emphasizes
quick development and iteration. It involves the following phases:
1. Business Modeling: Understand the business context and requirements.
2. Data Modeling: Define the data objects and relationships.
3. Process Modeling: Design the processes to manipulate the data.
4. Application Generation: Develop the actual software using automated tools.
5. Testing and Turnover: Test the software and hand it over to the users.
Q. Top-Down and Bottom-Up Design Approaches
Top-Down Design:
• Starts with the highest level of the system and breaks it down into smaller, more detailed
components.
• Focuses on the overall system architecture first, then moves to detailed design.
• Useful for understanding the big picture and ensuring all components fit together.
Bottom-Up Design:
• Begins with designing the smallest, most detailed components first.
• These components are then integrated to form larger subsystems and eventually the complete
system.
• Useful for building reusable components and ensuring each part is well-defined and tested before
integration.
Q. Difference between Top-down and Bottom-up design

Q. E-R Diagram for Hospital Management

An Entity-Relationship (E-R) diagram is a visual representation of the entities and their relationships within a system.
For a hospital management system, the E-R diagram typically includes the following entities and relationships:

1. Patient: Stores patient details.

2. Doctor: Stores doctor details.

3. Appointment: Manages appointments between patients and doctors.

4. Medical Record: Contains patient medical history.

5. Department: Represents different hospital departments.

6. Staff: Includes hospital staff details.

7. Room: Manages room allocation for patients.


Relationships:

• A Patient can have multiple Appointments with different Doctors.

• A Doctor can belong to a Department.

• A Patient can have multiple Medical Records.

• Staff can be assigned to different Departments.

• Rooms can be allocated to Patients.

Diagram:

Q. Use Case Diagram in Software Engineering


A Use Case Diagram visually represents the interactions between users (actors) and the system. It shows
the system's functionality from the user's perspective, highlighting the relationships between actors and
use cases.
Key Components:
1. Actors: Users or external systems that interact with the system.
2. Use Cases: Specific functions or actions that the system performs.
3. Relationships: Connections between actors and use cases, indicating interactions.
Q. Structure Chart
A Structure Chart is a hierarchical diagram that represents the organization of a software system. It shows
the system's modules, their relationships, and interactions. Structure charts are used to break down a
complex system into smaller, manageable components.
Key Components:
1. Modules: Represent different functions or procedures in the system.
2. Control Hierarchy: Shows the relationship between modules, indicating which modules control
others.
3. Data Flow: Represents the flow of data between modules.
4. Coupling: Indicates the level of dependency between modules.
5. Cohesion: Measures the degree to which a module's components are related.
Q. Decision Tree vs. Decision Table
Decision Tree:
• Graphical representation (tree-like structure)
• Easier for complex decisions
• Visualizes decision paths
• Suitable for hierarchical decisions
• More flexible with branching
Decision Table:
• Tabular representation (rows and columns)
• Better for simple, structured decisions
• Represents conditions and actions
• Suitable for rule-based decisions
• More rigid, predefined rules
Q. Data Flow Diagram (DFD)
A Data Flow Diagram (DFD) is a graphical representation of the flow of data within a system. It shows how
data moves from input to output through various processes and data stores.
Key Components:
1. Processes: Represent the functions or activities that transform data.
2. Data Stores: Represent where data is stored within the system.
3. Data Flows: Indicate the movement of data between processes, data stores, and external entities.
4. External Entities: Represent sources or destinations of data outside the system.
Q. Work Breakdown Structure (WBS)
A Work Breakdown Structure (WBS) is a hierarchical decomposition of a project into smaller, manageable
components. It helps in organizing and defining the total scope of the project.
Key Components:
1. Project: The overall project goal.
2. Deliverables: Major outputs or products of the project.
3. Work Packages: Smaller tasks or activities that contribute to the deliverables.
4. Subtasks: Detailed tasks within work packages.
Q. Utility of PERT Chart
PERT (Program Evaluation and Review Technique) Chart is a project management tool used to plan,
schedule, and control complex projects.
Key Utilities:
1. Task Scheduling: Identifies task sequence and dependencies.
2. Time Estimation: Estimates time for task completion.
3. Critical Path Identification: Determines the project's minimum completion time.
4. Resource Allocation: Allocates resources efficiently.
5. Risk Management: Identifies potential delays and bottlenecks.
Q. Halstead's Metrics
Halstead's Metrics measure software complexity based on operators and operands.
Key Metrics:
1. Program Length (N): Total operators and operands.
2. Program Vocabulary (n): Unique operators and operands.
3. Volume (V): Size of implementation (V = N * log2(n)).
4. Difficulty (D): Writing/understanding difficulty (D = (n1/2) * (N2/n2)).
5. Effort (E): Development/maintenance effort (E = V * D).
Q. Mutation Testing
• Introduces small changes (mutations) to the code.
• Evaluates the quality of test cases.
• Ensures test cases can detect potential errors.
White Box Testing
• Internal structure known to the tester.
• Tests code paths, branches, loops, and conditions.
• Techniques: statement coverage, branch coverage, path coverage.
Black Box Testing
• Internal structure not known to the tester.
• Tests functionality based on requirements.
• Techniques: equivalence partitioning, boundary value analysis, decision table testing.
Q. Software Verification vs. Software Validation
Software Verification:
• Ensures the product is built correctly.
• Focuses on internal processes and code.
• Techniques: reviews, inspections, walkthroughs, and static analysis.
• Answers the question: "Are we building the product right?"
Software Validation:
• Ensures the right product is built.
• Focuses on external requirements and user needs.
• Techniques: testing, user acceptance testing (UAT), and dynamic analysis.
• Answers the question: "Are we building the right product?"
Q. Different Levels of Testing and their goals.
1. Unit Testing:
o Goal: Verify individual components or units of code.
o Focus: Ensure each unit functions correctly in isolation.
2. Integration Testing:
o Goal: Test the interaction between integrated units.
o Focus: Identify issues in the interfaces and interactions between units.
3. System Testing:
o Goal: Validate the complete and integrated software system.
o Focus: Ensure the system meets the specified requirements.
4. Acceptance Testing:
o Goal: Confirm the system is ready for delivery to the end-users.
o Focus: Validate the system against user needs and requirements.
5. Regression Testing:
o Goal: Ensure that new changes do not adversely affect existing functionality.
o Focus: Re-test previously tested components after changes.
Q. Fault vs. Error vs. Failure
Fault:
• A defect in the software that can cause an error.
• Occurs due to incorrect code or logic.
Error:
• A mistake or flaw in the code.
• Occurs during the development phase.
• Can be due to incorrect logic, syntax, or design.
Failure:
• The system's inability to perform its intended function.
• Occurs during the execution phase.
• Results from errors in the code.
Testing detects failures by executing the software and observing its behavior. Errors are identified indirectly
through the failures they cause.
Q. Explain why spiral life cycle model is considered to be a meta model?
The Spiral Life Cycle Model is considered a meta-model because it incorporates elements from various
other software development models, such as the Waterfall, Incremental, and Prototyping models. Here's
why:
1. Iterative Approach: Combines iterative development with systematic aspects of the Waterfall
model.
2. Risk Management: Emphasizes risk analysis and mitigation at each iteration.
3. Flexibility: Adapts to changes in requirements and project scope.
4. Prototyping: Allows for the creation of prototypes to gather user feedback.
5. Comprehensive: Integrates planning, risk assessment, engineering, and evaluation in each cycle.
Q. Metrics for Software Estimation
1. Lines of Code (LOC): Measures code size.
2. Function Points (FP): Evaluates user functionality.
3. COCOMO: Estimates cost, effort, and schedule.
4. Story Points: Estimates effort in Agile.
5. Use Case Points (UCP): Estimates effort based on use cases.
Q. Formal Technical Review (FTR) in Software Engineering
Formal Technical Review (FTR) is a software quality control activity performed by software engineers. It is
an organized, methodical procedure for assessing and raising the standard of any technical paper, including
software objects.
Key Objectives:
1. Detect Defects: Identify errors and issues in the software.
2. Ensure Quality: Verify that the software meets quality standards.
3. Improve Design: Provide feedback to enhance the software design.
4. Verify Compliance: Ensure adherence to project requirements and standards.
5. Promote Collaboration: Foster communication and collaboration among team members.
Q. System Documentation in Software Engineering
System documentation describes the system itself and its parts.
Types:
1. Requirements Documentation: Functional and non-functional requirements.
2. Design Documentation: Architecture and design details.
3. Technical Documentation: Code, algorithms, and data structures.
4. User Documentation: User manuals and guides.
5. Maintenance Documentation: Troubleshooting and maintenance guides.
Q. Software Reliability
Software Reliability is the probability that software will function without failure under specified conditions
for a specified period.
Key Factors:
1. Faults and Errors: Reduce reliability.
2. Complexity: Higher complexity increases failure points.
3. Testing and Validation: Improves reliability by identifying defects.
4. Operational Environment: Impacts reliability.
5. Maintenance: Regular updates maintain reliability.
Q. Lines of Code (LOC):
• Measures the size of the software by counting the number of lines in the codebase.
• Simple and easy to calculate.
• Does not account for complexity or functionality.
Function Point (FP):
• Evaluates the functionality provided to the user.
• Considers inputs, outputs, user interactions, files, and interfaces.
• More comprehensive than LOC, focusing on user requirements.
Feature Point:
• An extension of Function Points.
• Includes additional factors like algorithms and data structures.
• Useful for systems with complex processing requirements.
Q. Types of Coupling
1. Content Coupling:
o One module directly accesses the content of another module.
o High dependency and low maintainability.
2. Common Coupling:
o Multiple modules share the same global data.
o Can lead to unexpected side effects.
3. Control Coupling:
o One module controls the behavior of another by passing control information.
o Reduces module independence.
4. Stamp Coupling:
o Modules share a composite data structure and use only a part of it.
o Can lead to unnecessary data dependencies.
5. Data Coupling:
o Modules share data through parameters.
o Most desirable form of coupling due to low dependency.
6. Message Coupling:
o Modules communicate through message passing.
o Promotes high independence and flexibility.
7. Module Coupling:
o Refers to the degree of interdependence between software modules.
o Lower coupling is preferred for better modularity and maintainability.
Q. Software Reliability Metrics
Reliability refers to the probability that software will function without failure under specified conditions for
a specified period.
Key Metrics:
1. Rate of Occurrence of Failure (ROCOF):
o Measures the frequency of failures over a specific time period.
o Indicates how often unexpected events occur.
2. Probability of Failure on Demand (POFOD):
o Measures the likelihood that the system will fail when a service is requested.
o Essential for safety-critical systems.
3. Mean Time to Failure (MTTF):
o Average time a non-repairable component operates before failing.
o Helps predict the lifespan of components.
4. Mean Time to Repair (MTTR):
o Average time taken to repair a system or component after a failure.
o Includes detection, diagnosis, and repair time.
Q. Software Quality Metrics
Software Quality Metrics are quantitative measures used to assess and evaluate the quality, performance,
and reliability of a software product or development process.
1. Defect Density: Defects per unit of code.
2. Code Coverage: Percentage of code executed during testing.
3. Cyclomatic Complexity: Complexity based on independent paths.
4. MTTR: Average time to repair defects.
5. Customer Satisfaction: User satisfaction level.
Q. Alpha, Beta, and Gamma Testing
Alpha Testing:
• Conducted by internal teams.
• Simulates real users in a controlled environment.
• Identifies bugs before releasing to external users.
Beta Testing:
• Conducted by external users.
• Real-world testing environment.
• Gathers feedback and identifies issues not found in alpha testing.
Gamma Testing:
• Final testing phase before release.
• Ensures the product is ready for market.
• Focuses on performance, security, and usability.
Q. Function Point Method
A software metric that measures the size and complexity of an application based on its functionality from
the user's perspective.
Key Components:
1. External Inputs (EI): User inputs that provide data to the system.
2. External Outputs (EO): Outputs generated by the system for the user.
3. External Inquiries (EQ): User-initiated queries that retrieve data.
4. Internal Logical Files (ILF): Data files maintained within the system.
5. External Interface Files (EIF): Data files used by the system but maintained by external systems.
Q. Software Reengineering
• Definition: Examining and altering existing software to improve it.
• Goals: Enhance maintainability, performance, and adaptability.
• Steps: Reverse engineering, refactoring, forward engineering.
Q. Regression Testing
• Definition: Ensures recent code changes don't affect existing functionality.
• Goals: Verify no new bugs are introduced.
• Techniques: Retest all, regression test selection, test case prioritization.
Q. Integration Testing
• Definition: Tests interaction between integrated units.
• Goals: Identify interface issues.
• Types: Big Bang, Incremental (Top-Down, Bottom-Up, Sandwich).
Q. Load Testing
• Definition: Evaluates system behavior under specific load.
• Goals: Ensure system handles expected user load.
• Metrics: Response time, throughput, resource utilization.
Q. Software Quality

Software Quality refers to the degree to which a software product meets the specified requirements, satisfies user
needs, and is free from defects.

McCall's Factors

1. Product Operation:

o Correctness: Accurate performance of required functions.

o Reliability: Performs without failure.

o Efficiency: Effective resource usage.

o Integrity: Protects against unauthorized access.

o Usability: Easy to use and learn.

2. Product Revision:

o Maintainability: Easy to modify.

o Flexibility: Adapts to changes.

o Testability: Easy to test.

3. Product Transition:

o Portability: Operates in different environments.

o Reusability: Used in different applications.

o Interoperability: Interacts with other systems.

Q. Why Project Planning is Needed

Project Planning is essential for:

1. Defining Objectives: Clearly outlines the project's goals and deliverables.

2. Resource Management: Allocates resources efficiently.

3. Risk Management: Identifies and mitigates potential risks.

4. Time Management: Establishes a timeline for project completion.

5. Budget Control: Ensures the project stays within budget.

6. Communication: Facilitates clear communication among stakeholders.

Precedence Ordering Among Planning Activities


Q. What is object lifeline and focus of control and which diagram is it required and why?
Object Lifeline and Focus of Control
Object Lifeline:
• Represents an object's existence over time.
• Shown as a vertical dashed line in a sequence diagram.
Focus of Control:
• Indicates when an object is performing an action.
• Shown as a narrow rectangle on the object's lifeline in a sequence diagram.
Diagram:
• Required in Sequence Diagrams.
• Purpose: Illustrates object interactions and control flow over time.
Q. Software Failure and Fault
Software Failure:
• Occurs when the software does not perform its intended function.
• Can happen due to various reasons, such as bugs, incorrect requirements, or environmental issues.
Fault:
• A defect or flaw in the software code or design.
• Can lead to software failure if triggered during execution.
Relationship:
• A fault is the underlying cause of a software failure.
• When a fault is executed, it can result in an error, which may lead to a failure if not handled
properly.
Q. Boehm's Software Quality Model
Boehm's Software Quality Model is a comprehensive framework for evaluating software quality. It
identifies various quality characteristics and their interrelationships.
Key Quality Characteristics:
1. Maintainability: Ease of maintenance and updates.
2. Usability: Ease of use and learning.
3. Efficiency: Optimal use of resources.
4. Reliability: Consistent performance without failure.
5. Functionality: Meeting specified requirements.
6. Portability: Ability to operate in different environments.
Block Diagram:
Functionality -> Reliability -> Usability -> Efficiency -> Maintainability -> Portability
Q. Forking and Joining in Activity Diagrams
Forking:
• Represents the splitting of a single flow into multiple parallel flows.
• Depicted as a thick horizontal or vertical bar with one incoming arrow and multiple outgoing
arrows.
Joining:
• Represents the merging of multiple parallel flows into a single flow.
• Depicted as a thick horizontal or vertical bar with multiple incoming arrows and one outgoing arrow.
Swimlane
Swimlane:
• A visual element used in activity diagrams to group related activities into distinct categories.
• Each swimlane represents a different actor, role, or organizational unit.
• Helps in clarifying responsibilities and interactions between different parts of the system.
Q. Quality Assurance (QA)
• Definition: Ensures that software meets specified requirements and standards.
• Activities: Includes process monitoring, audits, and testing.
• Goal: Improve software quality and prevent defects.
Q. UML Diagram
• Definition: Unified Modeling Language (UML) diagrams visually represent software systems.
• Types: Includes class diagrams, sequence diagrams, use case diagrams, etc.
• Purpose: Helps in designing, visualizing, and documenting software systems.
Q. Incremental Model of Software Development
• Definition: A software development model that builds the system incrementally.
• Process: Develops the system in small, manageable increments.
• Advantages: Allows for partial implementation and testing, reduces risks, and provides early
feedback.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy