Podcast
Questions and Answers
What is the key problem for organizations that employ software maintenance strategies?
What is the key problem for organizations that employ software maintenance strategies?
Which of the following is not a factor that contributes to the need for software changes?
Which of the following is not a factor that contributes to the need for software changes?
Which software change strategy primarily focuses on restructuring and reorganizing existing systems?
Which software change strategy primarily focuses on restructuring and reorganizing existing systems?
What is the primary distinction between software maintenance and software re-engineering?
What is the primary distinction between software maintenance and software re-engineering?
Signup and view all the answers
Which of the following is a true statement about program evolution dynamics?
Which of the following is a true statement about program evolution dynamics?
Signup and view all the answers
Which of the following is NOT a key aspect of program evolution dynamics as proposed by Lehman and Belady?
Which of the following is NOT a key aspect of program evolution dynamics as proposed by Lehman and Belady?
Signup and view all the answers
What is the primary goal of architectural transformation in software change strategies?
What is the primary goal of architectural transformation in software change strategies?
Signup and view all the answers
Which of the following is NOT a common reason for software changes?
Which of the following is NOT a common reason for software changes?
Signup and view all the answers
Which Lehman's system type is characterized by changes occurring due to the evolution of the real-world environment it is embedded within?
Which Lehman's system type is characterized by changes occurring due to the evolution of the real-world environment it is embedded within?
Signup and view all the answers
Which type of system is most likely to be affected by discrepancies and omissions identified during system development?
Which type of system is most likely to be affected by discrepancies and omissions identified during system development?
Signup and view all the answers
According to Lehman's Laws, what is the natural tendency of a program as it evolves?
According to Lehman's Laws, what is the natural tendency of a program as it evolves?
Signup and view all the answers
Which of the following is NOT an example of an artifact requiring change as a result of initial change during software development?
Which of the following is NOT an example of an artifact requiring change as a result of initial change during software development?
Signup and view all the answers
What type of change is most commonly associated with P-systems during their lifecycle?
What type of change is most commonly associated with P-systems during their lifecycle?
Signup and view all the answers
Which of the following is a typical characteristic of an S-system?
Which of the following is a typical characteristic of an S-system?
Signup and view all the answers
Which type of maintenance is focused on preventing the system from deteriorating to an unacceptable level?
Which type of maintenance is focused on preventing the system from deteriorating to an unacceptable level?
Signup and view all the answers
What is a potential disadvantage of having the development team handle maintenance?
What is a potential disadvantage of having the development team handle maintenance?
Signup and view all the answers
What does Lehman's Law of Continuing Change suggest about programs in a real-world environment?
What does Lehman's Law of Continuing Change suggest about programs in a real-world environment?
Signup and view all the answers
Which type of maintenance focuses on improving existing functions of a system?
Which type of maintenance focuses on improving existing functions of a system?
Signup and view all the answers
Which system type is best suited for tasks like matrix manipulation, which are well-defined and have a clear set of rules?
Which system type is best suited for tasks like matrix manipulation, which are well-defined and have a clear set of rules?
Signup and view all the answers
Which of the following is NOT a skill typically associated with an expert maintainer?
Which of the following is NOT a skill typically associated with an expert maintainer?
Signup and view all the answers
According to Lehman's Laws, what is the main reason why program evolution requires extra resources?
According to Lehman's Laws, what is the main reason why program evolution requires extra resources?
Signup and view all the answers
Which of the following activities is LEAST likely to directly affect the requirement specification during software development?
Which of the following activities is LEAST likely to directly affect the requirement specification during software development?
Signup and view all the answers
What kind of information is provided by the domain expert's view in the context of maintenance?
What kind of information is provided by the domain expert's view in the context of maintenance?
Signup and view all the answers
Which type of maintenance is primarily concerned with handling system modifications?
Which type of maintenance is primarily concerned with handling system modifications?
Signup and view all the answers
What is the primary goal of corrective maintenance?
What is the primary goal of corrective maintenance?
Signup and view all the answers
From the programmer's perspective, what information is crucial for maintenance?
From the programmer's perspective, what information is crucial for maintenance?
Signup and view all the answers
Why might it be beneficial to have a separate maintenance team?
Why might it be beneficial to have a separate maintenance team?
Signup and view all the answers
Which of the following is NOT a benefit of having the development team perform maintenance?
Which of the following is NOT a benefit of having the development team perform maintenance?
Signup and view all the answers
Which of the following is NOT a key attribute of a system's stability?
Which of the following is NOT a key attribute of a system's stability?
Signup and view all the answers
The concept of 'Organisational stability' suggests that:
The concept of 'Organisational stability' suggests that:
Signup and view all the answers
What are the primary responsibilities of a maintenance team?
What are the primary responsibilities of a maintenance team?
Signup and view all the answers
Which concept suggests that system upgrades should introduce consistent changes over time?
Which concept suggests that system upgrades should introduce consistent changes over time?
Signup and view all the answers
What is the impact of unstructured code on software maintenance?
What is the impact of unstructured code on software maintenance?
Signup and view all the answers
Why is the maintenance team often considered to have a "second-hand" status within an organization?
Why is the maintenance team often considered to have a "second-hand" status within an organization?
Signup and view all the answers
Which concept emphasizes the need for constant functional enhancement to maintain user satisfaction?
Which concept emphasizes the need for constant functional enhancement to maintain user satisfaction?
Signup and view all the answers
What are some common causes of maintenance problems?
What are some common causes of maintenance problems?
Signup and view all the answers
The 'Declining quality' concept highlights the need to address what challenge in systems?
The 'Declining quality' concept highlights the need to address what challenge in systems?
Signup and view all the answers
How do maintenance costs typically relate to development costs?
How do maintenance costs typically relate to development costs?
Signup and view all the answers
Which of the following is NOT a question raised regarding system maintenance?
Which of the following is NOT a question raised regarding system maintenance?
Signup and view all the answers
The concept of a 'Feedback system' is vital for:
The concept of a 'Feedback system' is vital for:
Signup and view all the answers
Which of the following statements accurately describes the 'Feedback system' concept?
Which of the following statements accurately describes the 'Feedback system' concept?
Signup and view all the answers
When considering system maintenance, which of the following factors is NOT directly related to its decline?
When considering system maintenance, which of the following factors is NOT directly related to its decline?
Signup and view all the answers
Which of the following is NOT explicitly mentioned as a factor contributing to system decline?
Which of the following is NOT explicitly mentioned as a factor contributing to system decline?
Signup and view all the answers
Study Notes
Software Maintenance
- Software change is unavoidable due to emerging new requirements, changing business environments, error correction, new equipment, and performance/reliability improvements
- A key issue for organizations is managing change to legacy systems
- Software maintenance strategies include:
- Software Maintenance: Changes are made in response to changing requirements, but the fundamental software structure remains stable. Maintenance does not typically involve major architectural changes.
- Software Re-engineering: The software is restructured and reorganized without adding new functionality, facilitating future changes.
- Architectural Transformation: The system's architecture is modified, often from a centralized to a distributed architecture.
- These strategies can be applied separately or together
Program Evolution Dynamics
- Program evolution dynamics is the empirical study of the process of system changes
- Lehman and Belady's research proposed "laws" applicable to all evolving systems, which show sensible observations rather than strict laws
- The observed laws are mostly applicable to large systems developed by large organizations. Observed laws might have lesser applicability in other cases
Lehman's System Types
- S-system: Formally defined, derivable from a specification (e.g., matrix manipulation)
- P-system: Requirements based on approximate solutions to problems, remaining stable in the real world (e.g., chess)
- E-system: Embedded in the real world, and changes as the world does (e.g., software to predict economic functions)
Changes During System Life Cycle
- S-system: Unchanged
- P-system: Incremental change (approximate solution, change with identified discrepancies or omissions)
- E-system: Constant change
Examples of Change During Software Development
- The text lists various development activities (e.g., requirement analysis, system design, program implementation) and the associated artifacts that need changes as a result
Lehman's Laws
- Continuing change: Programs used in real-world environments often need changes to remain useful
- Increasing complexity: Program structure tends to become more complex as the program evolves
- Large program evolution: System attributes (size, release time) are approximately constant across releases
- Organizational stability: The rate of program development is relatively constant over its lifetime
- Conservation of familiarity: Incremental change in each release is approximately constant throughout the program's life
- Continuing growth: System functionality needs to continually increase to maintain user satisfaction
- Declining quality: System quality appears to decline without adaptation to operational changes
- Feedback system: Evolution incorporates multi-agent, multi-loop feedback systems to improve the program
System Maintenance vs. Decline
- Issues that indicate a system needs maintenance or is declining:
- Cost of maintenance is too high
- System reliability is unacceptable
- System cannot adapt to changes in a reasonable time frame
- System performance is beyond acceptable constraints
- System functions have limited usefulness
- Other systems can perform the same job better, faster, or cheaper
- Hardware replacement costs exceed the system maintenance cost
Nature of Maintenance Types
- Corrective: Maintains control over day-to-day tasks
- Adaptive: Maintains control over system modifications
- Perfective: Improves existing functions
- Preventive: Prevents system performance from degrading to unacceptable levels
Who Performs Maintenance
- Separate maintenance team: More objective, better at distinguishing intended functionality from actual functionality
- Development team part: Will build the system in a way that makes maintenance easier (but, sometimes ignore documentation)
Skills of the Maintainer
- Novice: Basic language expertise and program understanding
- Expert: Has language expertise, domain expertise, comprehension strategies, and specific program expertise
Information Needs
- Domain expert's view: Concepts of the domain, relations, scope, and boundaries, and program goals
- User's view: Constraints, size, timing, operations, installation
- Programmer's view: Dependencies, program parts, algorithms, representations, resource allocation
Information Sources
- Programmer's knowledge
- Code
- Documentation
- Colleagues on the project
Maintenance Team Responsibilities
- Program Comprehension: Understand the system
- Traceability: Locate information in system documentation
- Performing required changes: Extending existing functions, adding new functions, locating failures/problems, correcting faults, restructuring/rewriting design/code, deleting components
- Keeping system documentation up-to-date
- Answering questions about the way the modified system works
Maintenance Problems
- Staff problems: Limited understanding, management priorities, morale issues related to maintenance teams
- Technical problems: System/code structure and paradigms (e.g., legacy code, non-object-oriented code), testing challenges
Causes of Maintenance Problems
- Unstructured code
- Insufficient knowledge about the system and its domain
- Insufficient documentation
- A bad image of the maintenance department
Maintenance Costs
- Usually greater than development costs
- Affected by both technical and non-technical factors
- Increases as software is maintained (software structure decays due to modifications making further maintenance more difficult)
- Ageing software has high support costs (e.g., old languages, compilers)
Development/Maintenance Costs
- Development costs tend to be lower but increase over time than maintenance costs
- Maintenance costs are typically higher than development costs
Development/Maintenance Costs (Specific Research)
- Parikh and Zvegintzov study noted development times of two years and maintenance time of 5-6 years
- Fjedstad and Hamlen's study found development effort to be at 39% and maintenance effort at 61%
- 80/20 rule: ~80% of effort in maintenance and ~20% in development
Maintenance Cost Factors
- Team stability: Involves the same staff contributing to avoid higher maintenance costs
- Contractual responsibility: Developers might lack responsibility, leading to poor design for future changes
- Staff skills: Often, maintenance staff are inexperienced and lack domain knowledge
- Program age and structure: Older programs often have degraded structures, making them harder to understand and modify
Factors Affecting Maintenance Effort
- Application type
- System novelty
- Turnover and maintenance staff ability
- System life span
- Dependence on a changing environment
- Hardware characteristics
- Design quality
- Code quality
- Documentation quality
- Testing quality
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore the vital aspects of software maintenance and the dynamics of program evolution. This quiz covers strategies such as software maintenance, re-engineering, and architectural transformation, as well as the empirical study of system changes. Understand how organizations manage changes to legacy systems effectively.