TCS 611 Unit5
TCS 611 Unit5
Management:
• Software does not degrade physically but becomes less relevant or incompatible.
• Continuous maintenance is essential to keep software aligned with business goals.
• Even perfectly working software may require updates for new hardware, new
regulations, or new customer needs.
Types of Maintenance
1. Corrective Maintenance:
• Code decompilation
• Static and dynamic analysis
Software Re-Engineering
Definition: Process of examining and altering existing software to reconstitute it in a new
form.
Why:
Cost of Maintenance
Factors Influencing Cost:
• Complexity of software
• Quality of documentation
• Skill level of maintenance team
• Age of software
• Size and modularity
Strategies to Reduce Maintenance Cost:
SCM Activities
• Configuration Identification: Defining software artifacts (source code, documents,
executables).
• Configuration Control: Managing changes systematically.
• Status Accounting: Tracking changes and versions.
• Configuration Audits: Verifying conformance to requirements.
• Git
• Subversion (SVN)
Versioning: Creating separate versions of the software. Revisioning: Minor changes within
a version.
Benefits
• Increased speed and accuracy.
• Standardized deliverables.
• Enhanced documentation.
• Easier project management.
Limitations
• High initial investment.
• Training overhead.
• Tool compatibility issues.
Key Parameters
• Cost: Total financial requirement.
• Effort: Work measured in person-months.
• Schedule/Duration: Project timeline.
Estimation Techniques
1 Lines of Code (LOC)
• Based on estimated total lines of code.
• Merits: Simple and historical data-based.
• Demerits: Language dependent, ignores complexity.
2 Function Point Metrics (FPM)
• Measures delivered functionality.
• Merits: Language independent, complexity aware.
• Demerits: Requires expertise.
• UFP = 24
• TDI = 30 → VAF = 0.65 + (0.01 × 30) = 0.95
• FPC = 24 × 0.95 = 22.8 FP
COCOMO Types
Type Description Use-Case
Basic Effort = a × (KLOC)^b Small, simple projects
Intermediate Adds cost drivers Medium projects
Advanced Detailed, includes sub-models Large, complex systems
Project Classifications
• Organic: Small, stable teams, familiar problems.
• Semidetached: Medium-sized, mixed experience.
• Embedded: Complex, hardware-software interaction.
Formulas
Effort (Person-Months): E = a × (KLOC)^b
Development Time (Months): D = c × (E)^d
Example Calculation
For Organic, 50 KLOC:
• Data-driven.
• Well-tested.
Demerits:
Why is it Important?
• Ensures optimal use of limited resources.
• Helps in preventing bottlenecks and idle times.
• Aligns resource capacity with project demand.
• Facilitates scheduling, budgeting, and risk management.
Factors Affecting Resource Allocation
• Project size and complexity
• Skill levels of team members
• Availability of hardware and software tools
• Budget constraints
• Time schedules
Why Important?
• Avoids project failures.
• Enables proactive management.
• Protects budget, schedule, and deliverables.
Risk Metrics
• Likelihood: Probability of occurrence.
• Impact: Severity of consequences.
• Priority: Product of likelihood and impact.
Risk Leverage
Formula:
Risk Leverage = (Risk Exposure before – Risk Exposure after) / Cost of Risk Reduction
Example:
Why Important?
• Enhances software reliability and user satisfaction.
• Reduces defects and rework.
• Ensures compliance with standards.
SEI-CMM Model
Capability Maturity Model (CMM) by SEI assesses software processes on maturity levels.
Level Description
1 Initial (chaotic, ad hoc)
2 Repeatable (basic controls)
3 Defined (standardized)
4 Managed (quantitative)
5 Optimizing (continuous improvement)