Traditional Component Design for WebApp Functional Components

StunnedChicago avatar
StunnedChicago
·
·
Download

Start Quiz

Study Flashcards

18 Questions

What is a key difference between traditional components and object-oriented (OO) components?

Traditional components encapsulate data differently than OO components.

In traditional component-level design, what governs the design of processing logic?

Basic principles of algorithm design.

What is a benefit of Component-Based Software Engineering (CBSE) mentioned in the text?

Reduced costs by purchasing components rather than developing in-house.

How does Component-Based Software Engineering (CBSE) contribute to leveraging costs?

By reusing components across multiple projects.

What guides the design of interfaces in traditional component-level design?

Collaborations that a component must effect.

What determines whether commercial off-the-shelf (COTS) components are suitable for implementation in Component-Based Software Engineering (CBSE)?

The compatibility of component interfaces within the system architecture.

What is a component according to the Object Management Group (OMG) Unified Modeling Language Specification?

A deployable part of a system encapsulating implementation and exposing interfaces.

What does component-level design in software engineering focus on?

Defining the characteristics and communication of each software component.

In traditional component design, what does a component typically contain?

Processing logic and internal data structures.

How does the Object Management Group (OMG) view a component in terms of software engineering?

As a part of the system that encapsulates implementation and exposes interfaces.

What is the primary focus of component-based software engineering?

Building systems using pre-built software components.

What aspect is NOT represented at the level of abstraction during architectural design?

Internal data structures of components.

What is one of the risks associated with component selection in component-based applications?

Difficulty predicting component behavior for black-box components

Which risk is associated with quality in component-based applications?

Impacts on system safety, performance, and reliability

What can be a consequence of failing to document changes when refactoring components?

Increased technical debt

Which statement best describes the challenge with convincing management to refactor components?

Hard to justify resources on fixing working components

What is a common issue related to component integration risks in component-based software engineering?

Lack of standards for component interoperability

How can security risks manifest in a system using components?

Unintended system use and vulnerabilities from untested combinations

Study Notes

Component-Based Software Engineering (CBSE)

  • CBSE involves designing and constructing WebApp functional components identical to software components for conventional software.
  • Traditional components focus on functions and data structures, whereas OO components encapsulate data.

Traditional Component Design

  • Design of processing logic is governed by the principles of algorithm design and structured programming.
  • Design of data structures is defined by the data model developed for the system.
  • Design of interfaces is governed by the collaborations that a component must effect.

Component-Based Software Engineering (CBSE) Benefits

  • Reduced lead time: building complete applications from a pool of existing components is faster.
  • Greater return on investment (ROI): purchasing components can be more cost-effective than redeveloping the same functionality in-house.
  • Leveraged costs of developing components: reusing components in multiple applications allows costs to be spread over multiple projects.
  • Enhanced quality: using existing components can improve overall system quality.

Component Level

  • Component-level design defines the data structure, algorithm, interface, characteristics, and communication to each software component.
  • A complete set of software components is defined during architectural design.

Component Definition

  • According to the Object Management Group (OMG) Unified Modeling Language Specification, a component is a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.
  • An object-oriented view of a component contains a set of collaborating classes.
  • A traditional view of a component contains processing logic, internal data structures, and an interface.
  • A process-related view of a component involves building systems out of reusable software components or design patterns selected from a catalogue.

Component Diagram

  • A component diagram breaks down the actual system under development into various high levels of functionality.
  • Components are reused and tested in many different applications.
  • Maintenance of component-based applications involves replacing obsolete components with new or enhanced components.

CBSE Risks

  • Component selection risks: predicting component behavior for black-box components or poor mapping of user requirements to component architectural design.
  • Component integration risks: lack of interoperability standards between components.
  • Quality risks: unknown design assumptions made for components, affecting system safety, performance, and reliability.
  • Security risks: system vulnerabilities caused by integrating components in untested combinations.
  • System evolution risks: updated components may be incompatible with user requirements or contain additional undocumented features.

Component Refactoring

  • Refactoring components to improve quality is a good practice, but it can be challenging to convince management to expend resources on it.
  • Changing software without documenting changes can lead to increasing technical debt.

Learn about designing and constructing traditional components for WebApp functional components following the principles of software architecture. Understand the differences between traditional components and object-oriented components.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free
Use Quizgecko on...
Browser
Browser