INF3705 Assignment 2 (Questions & Answers) DUE 6 September 2024
11 views 0 purchase
Course
Advanced Systems Development
Institution
University Of South Africa
Book
Advanced Systems Design with Java, UML and MDA
Featuring well-organized sections and illustrative examples, this document caters to various learning styles, making it accessible to a wide range of students.
The questions presented encompass a broad spectrum of software engineering principles and
practices essential for the successful development and maintenance of software systems. From
examining the intricacies of software testing methodologies to exploring the strategic options for
legacy system evolution, each query delves into critical aspects of the software engineering
domain. As the Software Engineering Manager within an organization, addressing these
questions necessitates a comprehensive understanding and application of fundamental concept
taught in courses like INF3705. Concepts such as requirements engineering, software design,
testing, and maintenance emerge as pivotal pillars guiding the endeavors of software engineerin
teams. By harnessing these concepts effectively, teams can navigate the complexities of system
construction, evolution, and management, ensuring the delivery of robust and reliable software
solutions that meet the ever-evolving needs of stakeholders and users.
In pursuit of excellence in software engineering endeavors, it is imperative to dissect and analyz
each question with a disciplined and methodical approach. The inquiry into fault-tolerant
architectures or the intricacies of system construction by composition demands a meticulous
examination of underlying principles, methodologies, and best practices. As the custodian of
software engineering teams, leveraging insights gleaned from courses like INF3705 becomes
imperative in fostering a culture of innovation, collaboration, and excellence. Through the diligen
application of software engineering concepts, teams can navigate the challenges posed by
system evolution, mitigate risks, and deliver software solutions that stand the test of time.
, Question 1 [15 marks]
Explain the difference between Development testing
and Test-driven development.
Development Testing:
Definition: Development testing is a process where developers test individual units or components of software
during the development phase to ensure they function correctly.
Timing: It typically occurs after coding but before integration and system testing.
Approach: Developers write tests to verify the behavior of their code, including edge cases and expected
outcomes.
Purpose: Its primary aim is to catch defects early in the development process, reducing the cost of fixing them
later.
Test-driven Development (TDD):
Definition: Test-driven development is a software development approach where tests are written before the cod
is implemented.
Timing: Tests are written before writing the code, following a "Red-Green-Refactor" cycle.
Approach: Developers start by writing a failing test (Red), then implement the code to make the test pass
(Green), and finally refactor the code to improve its design while ensuring all tests still pass.
Purpose: TDD aims to improve code quality, maintainability, and design by focusing on small, testable units of
code.
Question 2 [9 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:
●
Reengineering: Rewriting or restructuring the existing system to improve its maintainability, scalability, or
functionality.
●
Integration: Integrating legacy systems with newer technologies or platforms to extend their lifespan and
enhance their capabilities.
●
Migration: Moving parts of the legacy system to modern architectures or platforms, such as cloud-based
solutions.
●
Componentization: Breaking down the monolithic legacy system into modular components for easier
maintenance and updates.
●
Maintenance: Continuously maintaining and updating the existing system to meet changing business needs.
When to Replace:
●
Obsolete Technology: When the technology stack of the legacy system becomes outdated and unsupported.
●
Scalability Issues: When the system struggles to handle increasing loads or fails to adapt to changing busine
requirements.
●
Security Risks: If the system poses significant security vulnerabilities that cannot be adequately mitigated.
●
Cost of Maintenance: When the cost of maintaining the system outweighs the benefits it provides.
●
Competitive Advantage: If replacing the system with modern alternatives offers a competitive advantage in th
market.
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 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 these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller GeniusGears. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $2.77. You're not tied to anything after your purchase.