0% found this document useful (0 votes)
4 views4 pages

Assignment BITAR

The document discusses component-based development (CBD) in software engineering, highlighting its principles, advantages, and challenges compared to traditional methodologies. It emphasizes the importance of reusability, maintainability, and scalability, while also addressing design patterns like Factory and Singleton that support component development. Additionally, it covers integration methods, the role of APIs and middleware, and best practices for ensuring effective communication between components.

Uploaded by

hannahsardua36
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views4 pages

Assignment BITAR

The document discusses component-based development (CBD) in software engineering, highlighting its principles, advantages, and challenges compared to traditional methodologies. It emphasizes the importance of reusability, maintainability, and scalability, while also addressing design patterns like Factory and Singleton that support component development. Additionally, it covers integration methods, the role of APIs and middleware, and best practices for ensuring effective communication between components.

Uploaded by

hannahsardua36
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

STATE UNIVERSITY OF NORTHERN NEGROS

Main Campus, Brgy. Rizal, Sagay City, Negros Occidental


(034) 722-4120 / www.sunn.edu.ph

COLLEGE OF INFORMATION COMMUNICATION TECHNOLOGY AND ENGINEERING

SYSTEM INTEGRATION AND


ARCHITECTURE 2
Assignment

Submitted By:
Bitar, John Mark V. BSIT -3A

Submitted To:
MR. Antonio B. Celis, MIT
Course Instructor

2nd Semester, Academic Year 2024 – 2025


1. What are the key principles of component-based development (CBD)?
-Component-based development is all about building software using reusable
parts. Each part, or component, works on its own but can also connect with
others. The idea is to make software easier to manage by keeping everything
modular, reusable, and easy to update.

2. How does component-based development differ from traditional


software development methodologies?
-Traditional software development usually builds everything as one big unit,
while CBD breaks it down into smaller, independent pieces. This makes it
easier to update or replace parts without affecting the whole system. It’s a
more flexible and efficient way to develop software.

3. What are the advantages of using component-based development in


software engineering?
-The biggest advantage is saving time because you don’t have to build
everything from scratch. It also makes the software easier to maintain and
scale, since you can swap out or improve individual components without
touching the rest of the system.

4. How does component reuse improve software maintainability and


scalability?
-Reusing components means you don’t have to rewrite the same functionality
over and over. This not only speeds up development but also makes updates
easier. If a component needs improvement, you can fix it in one place without
breaking the entire software.

5. What challenges might arise when implementing a component-based


approach in a software project?
One challenge is making sure all components work well together, especially if
they come from different sources. Sometimes, performance issues can come
up if components aren’t optimized properly. Also, managing dependencies
between components can be tricky.

6. How do object-oriented principles (e.g., encapsulation, inheritance,


polymorphism) support component reusability?
-Encapsulation keeps each component self-contained, making it easier to
reuse without affecting other parts of the software. Inheritance allows new
components to be built from existing ones, saving time. Polymorphism makes
components more flexible by letting them adapt to different situations.
7. What are some common design patterns used in component-based
development? Provide examples.
-Some common patterns include the Factory Pattern, which helps create
objects without specifying their exact type, and the Singleton Pattern, which
ensures only one instance of a component exists. Another example is the
Observer Pattern, which allows components to react to changes in other
components.

8. Explain how the Factory Pattern and Singleton Pattern contribute to


reusable component development.
-The Factory Pattern makes it easier to create objects without directly
specifying their type, which keeps things flexible. The Singleton Pattern
ensures that only one instance of a component exists, which is useful for
managing shared resources like database connections.

9. How can you ensure that a software component is loosely coupled and
highly cohesive?
-To keep a component loosely coupled, it should only interact with others
through well-defined interfaces instead of relying on direct dependencies.
High cohesion means a component should focus on one task, making it easier
to understand and reuse.

10. What factors should be considered when designing a reusable software


component?
-A reusable component should be simple, flexible, and independent. It should
have a clear interface, be easy to integrate with other components, and avoid
unnecessary dependencies. It should also be well-documented so others can
use it easily.

11. What are the different ways components can be integrated into a
software system?
-Components can be integrated directly by linking them in the code, through
APIs that allow them to communicate, or by using middleware to bridge
different systems. Some systems also use microservices, where each
component runs independently and communicates over a network.

12. How do APIs facilitate component integration? Provide examples of


commonly used APIs.
-APIs act as messengers between components, allowing them to send and
receive data. Common examples include REST APIs for web services, JDBC
for database connections, and GraphQL for retrieving specific data efficiently.
13. What role does middleware play in integrating software components?
-Middleware helps different components talk to each other, even if they’re built
using different technologies. It handles communication, data translation, and
security, making integration smoother and more efficient.

14. Compare service-oriented architecture (SOA) with microservices in


terms of component integration.
-SOA uses larger, reusable services that interact through a central system,
while microservices break everything into smaller, independent services.
Microservices are more flexible and scalable, while SOA is better for
integrating older systems with newer ones.

15. What are the best practices for ensuring seamless communication
between integrated components?
-The best practices include using well-defined APIs, handling errors properly,
keeping data formats consistent, and using middleware when needed. Proper
testing and documentation also help prevent issues during integration.

You might also like