1. Software Development Life Cycle (SDLC)
1. Software Development Life Cycle (SDLC)
6. Software Maintenance
Q6: Explain the types of software maintenance.
Answer:
. Corrective Maintenance: Fixing bugs or defects.
. Adaptive Maintenance: Modifying software to work in new environments.
. Perfective Maintenance: Enhancing functionality or performance.
. Preventive Maintenance: Updating software to prevent future issues.
7. Risk Management
Q7: What are the steps in software risk management?
Answer:
. Risk Identification: Identify potential risks.
. Risk Analysis: Assess the likelihood and impact of risks.
. Risk Prioritization: Rank risks based on severity.
. Risk Mitigation: Develop strategies to reduce or eliminate risks.
. Risk Monitoring: Continuously track and address risks.
2. Software Architecture
Q2: What are the different software architecture styles?
Answer:
. Layered Architecture:
○ System divided into layers (e.g., presentation, business logic, data).
○ Example: Web applications.
. Client-Server Architecture:
○ Clients request services from a central server.
○ Example: Online banking systems.
. Microservices Architecture:
○ Independent, small services communicate through APIs.
○ Example: E-commerce platforms.
. Pipe-and-Filter Architecture:
○ Data flows through a sequence of filters (components) via pipes.
○ Example: Data processing systems.
. Event-Driven Architecture:
○ Components interact by sending and receiving events.
○ Example: Real-time monitoring systems.
4. Software Metrics
Q4: What are software metrics? Explain their types.
Answer: Software Metrics measure the quality, productivity, and performance of software.
Types:
. Product Metrics:
○ Measure software quality.
○ Examples: Lines of Code (LOC), Cyclomatic Complexity.
. Process Metrics:
○ Measure the efficiency of software development processes.
○ Examples: Defect density, productivity rate.
. Project Metrics:
○ Measure project management and delivery aspects.
○ Examples: Cost, schedule variance.
5. Software Testing
Q5: Explain different levels of software testing.
Answer:
. Unit Testing:
○ Tests individual components or modules.
○ Example: Testing a login function.
. Integration Testing:
○ Tests interactions between modules.
○ Approaches: Top-down, Bottom-up, Sandwich.
. System Testing:
○ Tests the complete integrated system for compliance with requirements.
○ Includes functional and non-functional testing.
. Acceptance Testing:
○ Performed by the end-user to validate the system meets business needs.
7. Risk Management
Q7: What are the common risks in software projects? How can they be mitigated?
Answer: Common Risks:
. Requirement Risks: Changing or unclear requirements.
○ Mitigation: Proper requirement analysis and customer collaboration.
. Technical Risks: Use of new or unproven technologies.
○ Mitigation: Conduct feasibility studies and pilot testing.
. Project Risks: Budget or schedule overruns.
○ Mitigation: Effective project planning and resource management.
. Operational Risks: Inefficient processes or team conflicts.
○ Mitigation: Regular training and conflict resolution strategies.
8. Agile Methodology
Q8: Compare Scrum and Kanban methodologies.
Answer:
Feature Scrum Kanban
Approach Iterative (work in sprints) Continuous (workflows)
Roles Defined (Scrum Master, Flexible, no strict roles
Product Owner)
Work Limits Time-boxed sprints Work-in-progress limits
Best Suited For Complex projects with Maintenance and
changing requirements production environments
9. Software Quality Assurance (SQA)
Q9: What are the activities involved in SQA?
Answer:
. Process Definition: Define standards and procedures.
. Audits and Reviews: Ensure compliance with quality standards.
. Testing: Validate that the system meets requirements.
. Defect Tracking: Identify and resolve defects systematically.
. Metrics Collection: Analyze performance and quality trends.
E, N
N, and P
P.
. Apply the formula.
Importance:
● Helps in determining the effort required for testing and maintenance.
7.a) Explain the software life cycle model that incorporates risk factors.
Answer: Spiral Model
The Spiral Model is a risk-driven software life cycle model that emphasizes iterative
development while systematically addressing risks at every stage. It was proposed by Barry
Boehm.
Phases of the Spiral Model:
. Objective Setting: Define objectives, alternatives, and constraints for the current iteration.
. Risk Assessment: Identify potential risks and analyze their impact on the project.
. Development and Testing: Develop the system incrementally, perform testing, and
integrate it.
. Planning for the Next Iteration: Plan subsequent phases based on risk analysis and
feedback.
Key Features:
● Emphasis on risk analysis and mitigation.
● Iterative approach to handle evolving requirements.
● Suitable for large, complex, and high-risk projects.
7.b) Draw the Context-Level DFD and Level-1 DFD for the Store System
Context-Level DFD:
This shows the system as a single process interacting with external entities.
Entities:
. Customer
. Supplier
. Store Management
Context-Level Diagram:
. Customer places orders and receives updates.
. Supplier provides items and schemes.
. Store Management handles inventory and transaction data.
(Diagram would be drawn with external entities connected to a single central process "Store
System.")
Level-1 DFD:
Break down the context-level process into multiple sub-processes:
. Order Management: Handles customer orders.
. Inventory Management: Maintains item stock and updates availability.
. Supplier Management: Manages supplier registration and schemes.
. Transaction Management: Stores daily transactions and customer details.
(Diagram would show these sub-processes with data flows connecting them.)
8.a) Function Point Analysis (FPA) and Its Advantages Over LOC
Answer:
FPA estimates the size of software based on its functionality, independent of programming
language or technology.
Steps:
. Count:
○ External Inputs (EI), External Outputs (EO), External Interface Files (EIF), Internal
Logical Files (ILF), and External Inquiries (EQ).
. Assign Weights:
○ Assign low, medium, or high weights to each based on complexity.
. Calculate Unadjusted Function Points (UFP):
UFP=∑(Count×Weight)
. Adjust using the Value Adjustment Factor (VAF):
○ Determine VAF based on general system characteristics.
5.
AdjustedFP=UFP×VAF
Advantages over LOC:
. Language-independent.
. Reflects user perspective.
. Accounts for complexity and functionality rather than just code volume.
9.b) Why "Low Coupling and High Cohesion" is a Feature of Good Design
Answer:
● Low Coupling:
○ Reduces dependency between modules.
○ Easier to modify or test independently.
● High Cohesion:
○ Enhances clarity and functionality within modules.
○ Promotes reusability and maintainability.