INF3705 Assignment 2 (COMPLETE QUESTIONS & ANSWERS) 2024 - DUE 6 September 2024
Question 1 [15 marks] Explain the difference between Development testing and Test-driven development. Question 2 [09 marks] What are the strategic options for legacy system evolution? When would you normally replace al...
INF3705 Assignment 2
Question 1 [15 marks] Explain the difference between Development
testing and Test-driven development.
Development Testing: Development testing refers to the process of testing software during its
development phase. It involves testing individual units or components of the software to ensure
they function correctly in isolation before integrating them into larger parts of the system. The
main goal of development testing is to identify defects early in the development lifecycle,
allowing developers to fix them before they propagate to later stages, thereby reducing the cost
and effort of fixing defects later on.
Test-Driven Development (TDD): Test-Driven Development is a software development process
where developers write automated test cases before writing the code to implement the desired
functionality. The TDD process typically follows these steps:
1. Write a Test: Developers first write a test case that defines the desired behavior of the
software.
2. Run the Test: Execute the test case, which should fail initially since the functionality
hasn't been implemented yet.
3. Write Code: Write the minimum amount of code necessary to pass the test.
4. Run All Tests: Execute all tests, including the new one, to ensure the new code didn't
break any existing functionality.
5. Refactor Code: Refactor the code to improve its design while ensuring all tests continue
to pass.
Key differences:
● Focus: Development testing focuses on verifying individual components or units, while
TDD focuses on writing tests that specify the desired behavior of the software.
● Timing: Development testing occurs after the code is written, while TDD requires tests
to be written before the code is implemented.
● Approach: Development testing is reactive, aiming to find and fix defects, while TDD is
proactive, aiming to prevent defects by ensuring that code meets specified requirements
from the outset.
In summary, development testing and Test-Driven Development differ in their timing, focus, and
approach to ensuring software quality during the development process.
, Question 2 [09 marks] What are the strategic options for legacy system
evolution? When would you normally replace all or part of a system rather
than continue maintenance of the software?
Strategic Options for Legacy System Evolution:
1. Reengineering (or Re-architecting): This involves restructuring or rewriting the existing
system to improve its maintainability, performance, or alignment with current business
needs. It may involve adopting new technologies or architectures while preserving
existing functionality.
2. Componentization: Breaking down the monolithic legacy system into modular
components, which can be individually updated, replaced, or enhanced without affecting
the entire system. This approach improves flexibility and facilitates incremental
upgrades.
3. Integration: Enhancing the legacy system by integrating it with newer systems or
services, leveraging modern APIs or middleware to extend functionality or enhance
interoperability.
4. Migration: Gradually moving the functionality of the legacy system to a new platform or
technology stack, often through phases, to minimize disruption and risk.
5. Maintenance and Support: Continuously maintaining and supporting the existing
system to ensure it remains operational and secure, while addressing critical issues and
occasional enhancements.
When to Replace All or Part of a System:
The decision to replace part or all of a system rather than continuing maintenance depends on
several factors:
1. Technological Obsolescence: When the existing technology stack or platform is no
longer supported or viable for future development.
2. Performance Issues: If the system's performance significantly degrades, impacting user
experience or business operations.
3. Scalability and Flexibility: When the current system cannot scale to meet increasing
demands or lacks flexibility to adapt to new business requirements.
4. Cost of Maintenance: If the cost of maintaining and supporting the system outweighs
the benefits derived from its functionality.
5. Strategic Alignment: If the system does not align with the organization's long-term
strategic goals or inhibits innovation and growth.
6. Security Concerns: When the system poses security risks due to outdated technologies
or lack of support for security patches.
In summary, the decision to replace all or part of a legacy system involves weighing technical,
operational, financial, and strategic factors to ensure that the chosen approach supports the
organization's objectives effectively.
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through EFT, credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying this summary from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller wahabali. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy this summary for R46,98. You're not tied to anything after your purchase.