Systems Quality and Maintenance Principles Quiz
28 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Which of the following factors contribute to the declining quality of systems?

  • Lack of adaptation to changes in the operational environment (correct)
  • Maintaining a constant rate of development
  • Adapting to changes in the operational environment
  • Continually increasing functionality
  • What is the primary characteristic of the 'Conservation of Familiarity' principle?

  • System size, release frequency, and error reports remain stable across releases.
  • System releases exhibit consistent incremental changes over time. (correct)
  • Functionality must continuously expand to maintain user satisfaction.
  • The development rate remains constant despite changes in resources.
  • The 'Feedback System' principle suggests that:

  • System development should focus on individual components rather than the entire system.
  • User satisfaction is solely determined by the functionality provided by the system.
  • Multiple agents and loops interact within the evolution process to improve product quality. (correct)
  • System development should be independent of organizational stability and resources allocated.
  • Which of these suggests the need for system maintenance?

    <p>The cost of maintaining the hardware is too high to justify replacement. (B)</p> Signup and view all the answers

    According to the principles stated, what is a key driver for continued user satisfaction?

    <p>Continuously expanding functionality offered by the system (A)</p> Signup and view all the answers

    Which system type relies on approximate solutions to problems, with the assumption of a stable real-world environment?

    <p>P-system (C)</p> 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?

    <p>Program code (A)</p> Signup and view all the answers

    Which system type undergoes incremental changes throughout its lifecycle?

    <p>P-system (B)</p> 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?

    <p>Increasing complexity (B)</p> Signup and view all the answers

    Which system type is primarily defined by formal specifications and is thus considered stable and unchanging?

    <p>S-system (B)</p> Signup and view all the answers

    What is an example of an E-system?

    <p>A program that predicts the stock market (D)</p> 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?

    <p>Removing outdated or unused code (A)</p> Signup and view all the answers

    Which of Lehman's Laws highlights the inherent self-regulating nature of program evolution?

    <p>Large program evolution (C)</p> Signup and view all the answers

    What is a primary reason why the maintenance team's work is often considered 'second-hand'?

    <p>The focus on immediate market needs often prioritizes new development over system upkeep. (D)</p> Signup and view all the answers

    Which of the following is NOT a technical challenge faced by maintenance teams?

    <p>The lack of motivation and dedication within the maintenance team. (C)</p> Signup and view all the answers

    What is a key contributing factor to increasing maintenance costs over time?

    <p>The growing complexity of software systems as they are maintained and modified. (D)</p> Signup and view all the answers

    What is a key challenge in understanding a software system for maintenance purposes?

    <p>The difficulty in tracing the origins of code changes and modifications. (A)</p> Signup and view all the answers

    Which of these is NOT a responsibility of the maintenance team?

    <p>Designing new features and functionalities. (A)</p> Signup and view all the answers

    Which type of maintenance focuses on perfecting existing functions?

    <p>Perfective (C)</p> Signup and view all the answers

    Which of the following is a potential advantage of having a separate maintenance team?

    <p>They may have a better understanding of how a system should work compared to its actual operation. (C)</p> Signup and view all the answers

    What is a key skill for a maintenance expert?

    <p>An in-depth understanding of the specific program's code and functionalities. (C)</p> Signup and view all the answers

    Which of the following is NOT considered a programmer's view on information needs for maintenance?

    <p>User-specific constraints and limitations of the system. (C)</p> 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?

    <p>Domain expertise is crucial for understanding the program's purpose and how it interacts with its environment. (C)</p> Signup and view all the answers

    Which of the following is NOT a reason for software changes?

    <p>The software needs to be completely rewritten. (C)</p> Signup and view all the answers

    What is the main characteristic of the software maintenance strategy?

    <p>It aims to preserve the fundamental software structure while addressing changes. (D)</p> Signup and view all the answers

    What is the primary goal of software re-engineering?

    <p>Making the system easier to maintain and adapt in the future. (D)</p> Signup and view all the answers

    Which of the following is NOT considered a 'law' in program evolution dynamics?

    <p>All systems are subject to the same laws of evolution. (C)</p> Signup and view all the answers

    What is the key difference between software maintenance and re-engineering?

    <p>Re-engineering is more drastic in its changes compared to maintenance. (C)</p> 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.

    Quiz Team

    Related Documents

    Software Maintenance PDF

    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.

    More Like This

    Laboratory QA/QC Full Review
    242 questions
    System Analysis and Design Quality Assurance Quiz
    19 questions
    Radon Mitigation System Maintenance
    5 questions
    Use Quizgecko on...
    Browser
    Browser