Podcast
Questions and Answers
Which of the following factors contribute to the declining quality of systems?
Which of the following factors contribute to the declining quality of systems?
What is the primary characteristic of the 'Conservation of Familiarity' principle?
What is the primary characteristic of the 'Conservation of Familiarity' principle?
The 'Feedback System' principle suggests that:
The 'Feedback System' principle suggests that:
Which of these suggests the need for system maintenance?
Which of these suggests the need for system maintenance?
Signup and view all the answers
According to the principles stated, what is a key driver for continued user satisfaction?
According to the principles stated, what is a key driver for continued user satisfaction?
Signup and view all the answers
Which system type relies on approximate solutions to problems, with the assumption of a stable real-world environment?
Which system type relies on approximate solutions to problems, with the assumption of a stable real-world environment?
Signup and view all the answers
Which of the following is NOT an artifact that may require changes during the system life cycle due to changes in requirement analysis?
Which of the following is NOT an artifact that may require changes during the system life cycle due to changes in requirement analysis?
Signup and view all the answers
Which system type undergoes incremental changes throughout its lifecycle?
Which system type undergoes incremental changes throughout its lifecycle?
Signup and view all the answers
Which of Lehman's laws describes the tendency for a program's structure to become more complex over time?
Which of Lehman's laws describes the tendency for a program's structure to become more complex over time?
Signup and view all the answers
Which system type is primarily defined by formal specifications and is thus considered stable and unchanging?
Which system type is primarily defined by formal specifications and is thus considered stable and unchanging?
Signup and view all the answers
What is an example of an E-system?
What is an example of an E-system?
Signup and view all the answers
Which of the following is NOT a factor that contributes to the increasing complexity of a program as it evolves?
Which of the following is NOT a factor that contributes to the increasing complexity of a program as it evolves?
Signup and view all the answers
Which of Lehman's Laws highlights the inherent self-regulating nature of program evolution?
Which of Lehman's Laws highlights the inherent self-regulating nature of program evolution?
Signup and view all the answers
What is a primary reason why the maintenance team's work is often considered 'second-hand'?
What is a primary reason why the maintenance team's work is often considered 'second-hand'?
Signup and view all the answers
Which of the following is NOT a technical challenge faced by maintenance teams?
Which of the following is NOT a technical challenge faced by maintenance teams?
Signup and view all the answers
What is a key contributing factor to increasing maintenance costs over time?
What is a key contributing factor to increasing maintenance costs over time?
Signup and view all the answers
What is a key challenge in understanding a software system for maintenance purposes?
What is a key challenge in understanding a software system for maintenance purposes?
Signup and view all the answers
Which of these is NOT a responsibility of the maintenance team?
Which of these is NOT a responsibility of the maintenance team?
Signup and view all the answers
Which type of maintenance focuses on perfecting existing functions?
Which type of maintenance focuses on perfecting existing functions?
Signup and view all the answers
Which of the following is a potential advantage of having a separate maintenance team?
Which of the following is a potential advantage of having a separate maintenance team?
Signup and view all the answers
What is a key skill for a maintenance expert?
What is a key skill for a maintenance expert?
Signup and view all the answers
Which of the following is NOT considered a programmer's view on information needs for maintenance?
Which of the following is NOT considered a programmer's view on information needs for maintenance?
Signup and view all the answers
From the provided content, which of the following can be inferred about the role of domain expertise in maintenance?
From the provided content, which of the following can be inferred about the role of domain expertise in maintenance?
Signup and view all the answers
Which of the following is NOT a reason for software changes?
Which of the following is NOT a reason for software changes?
Signup and view all the answers
What is the main characteristic of the software maintenance strategy?
What is the main characteristic of the software maintenance strategy?
Signup and view all the answers
What is the primary goal of software re-engineering?
What is the primary goal of software re-engineering?
Signup and view all the answers
Which of the following is NOT considered a 'law' in program evolution dynamics?
Which of the following is NOT considered a 'law' in program evolution dynamics?
Signup and view all the answers
What is the key difference between software maintenance and re-engineering?
What is the key difference between software maintenance and re-engineering?
Signup and view all the answers
Study Notes
Software Maintenance
-
Software change is unavoidable due to evolving requirements, changing business environments, error corrections, new equipment needs, and performance/reliability improvements.
-
Legacy systems pose a significant challenge in implementing and managing changes.
Software Change Strategies
-
Software Maintenance: Modifications are made in response to changes in requirements, but the underlying software structure remains stable. Maintenance typically doesn't involve significant changes to the system architecture.
-
Software Re-engineering: No new functionality is added, but the system is restructured and reorganized to ease future changes.
-
Architectural Transformation: The system's architecture is modified, often from centralized to distributed.
-
These strategies can be used separately or together.
Program Evolution Dynamics
-
Program evolution dynamics studies the empirical process of system changes.
-
Lehman and Belady's research identified several "laws" applying to system evolution, but these laws are more observations than strict rules, particularly for large systems developed by large organizations. Applicability may be limited to other cases.
Lehman's System Types
-
S-system: Formally defined, derived from specifications (e.g., matrix manipulation).
-
P-system: Requirements based on approximate solutions, with a stable real-world environment (e.g., Chess).
-
E-system: Embedded in a real-world environment that continuously changes, with incompletely understood elements (e.g., software predicting economic functions).
Changes During the System Life Cycle
-
S-system: Unchanged.
-
P-system: Incremental change (e.g., fixing discrepancies).
-
E-system: Constant change.
Examples of Changes During Software Development
- Changes in requirements analysis, system design, program design, program implementation, unit testing, system testing, and system delivery will require updates to artifacts such as requirements, architectural specifications, technical specifications, program code and documentation, test plans, user documentation, operator documentation, system guides, and training materials.
Lehman's Laws
-
Continuing Change: A program in a real-world environment needs to constantly adapt or become progressively less useful.
-
Increasing Complexity: As a program evolves, its structure generally becomes more complex.
-
Large Program Evolution: System attributes (e.g., size, release timing, error reports) are roughly constant during a system's evolution.
-
Organizational Stability: The rate of development over a system's lifetime is often constant and independent of the resources devoted.
-
Conservation of Familiarity: Incremental changes in each release are roughly consistent.
-
Continuing Growth: Systems' functionality generally must increase to maintain user satisfaction.
-
Declining Quality: The quality of a system can seem to decline unless it's appropriately adapted to environmental changes.
-
Feedback System: Evolution processes incorporate multi-agent, multi-loop feedback mechanisms that must be considered as system components for significant improvement.
System Maintenance vs. Decline
- Is the maintenance cost too high?
- Is the system's reliability unacceptable?
- Can the system adapt to further changes within a reasonable timeframe?
- Is the system's performance still within prescribed constraints?
- Are the system functions useful enough?
- Are other systems better, faster, or cheaper choices?
- Is maintaining the hardware cost-effective compared to replacing it?
Types of Maintenance
-
Corrective: Controlling day-to-day functions.
-
Adaptive: Controlling system modifications.
-
Perfective: Improving existing functions.
-
Preventive: Preventing performance degradation.
Who Performs Maintenance
-
Separate maintenance team: More objective view; distinguish intended system behavior from actual.
-
Part of development team: Easier to integrate with the system but potential for ignoring documentation.
Skills of the Maintainer
-
Novice: Basic skills.
-
Expert: Language, domain, comprehension strategies, program expertise are critical.
Information Needs
-
Domain expert's view: Domain concepts, relationships, program scope/boundaries, goals.
-
User's view: Constraints (e.g., size, timing), program operations, installation requirements.
-
Programmer's view: Dependency graphs, program components, algorithms, representations, resource allocation.
Information Sources
- Programmer's knowledge, code, documentation, colleagues.
Maintenance Team Responsibilities
-
Program comprehension
-
Traceability (locating information)
-
Perform required changes (extending, adding functions, resolving failures)
-
Locating and correcting faults
-
Restructuring, rewriting, and deleting design/code components
-
Keeping documentation up-to-date
-
Answering questions about the modified system.
Maintenance Problems
- Staff problems (limited understanding, conflicting priorities, low morale).
- Technical problems (legacy artifacts, testing difficulties.)
Causes of Maintenance Problems
- Unstructured code
- Insufficient system/domain knowledge
- Poor documentation
- Negative perception of the maintenance team.
Maintenance Costs
- Usually greater than development costs.
- Affected by technical and non-technical factors.
- Increases as software is maintained due to the corrupting effects of maintenance.
- Ageing software often results in high support costs.
Development/Maintenance Costs
- Costs for Systems 1 and 2 are presented in a bar chart.
- Development cost is significantly compared to maintenance costs in System 1 and System 2.
Development/Maintenance Effort Ratios
- Parikh and Zvegintzov (1983): Development = 2 years; Maintenance = 5–6 years.
- Fjedstad and Hamlen (1979): 39% of effort is typically in initial development; 61% is in maintenance.
- 80–20 rule: 20% of effort in devlopement, 80% in maintanance.
Maintenance Cost Factors
- Team stability: Reduced costs with consistent staff.
- Contractual responsibility: No incentive to design for future change.
- Staff skills: Experienced staff with domain knowledge crucial.
- Program age and structure: Degraded structure increases maintenance complexity.
Factors Affecting Maintenance Effort
- Application type
- System novelty
- Turnover of maintenance staff
- System lifespan
- 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
Test your knowledge on key principles affecting the quality of systems, including the 'Conservation of Familiarity' principle and the various types of systems. Explore concepts such as system maintenance, user satisfaction drivers, and Lehman's laws. This quiz will challenge your understanding of system dynamics and lifecycle changes.