1 / 23

Software Engineering with Reusable Components

Software Engineering with Reusable Components. RiSE’s Seminars Sametinger’s book :: Chapters 8, 9 and 10 Eduardo Cruz. Software Engineering with Reusable Components. Summary. Chapter 8 - Component Attributes Chapter 9 - Component Taxonomy Chapter 10 - Component Examples.

Download Presentation

Software Engineering with Reusable Components

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 8, 9 and 10 Eduardo Cruz

  2. Software Engineering with Reusable Components Summary • Chapter 8 - Component Attributes • Chapter 9 - Component Taxonomy • Chapter 10 - Component Examples

  3. Software Engineering with Reusable Components Previous chapter: platform, composition, interoperation Chapter 8 – Component Attributes Better Classification • Functionality • Interactivity • Interaction • Concurrency • Distribution • Forms of Adaptation • Quality Control

  4. Software Engineering with Reusable ComponentsChapter 8 – Component Attributes Functionality • Applicability • It is likelihood to be a reuse candidate in the range of software systems for which it was designed to be reused • Generality • High generality of a component means also high applicability of this component. However, care has to be taken not to over generalize a component. Excessive generality leads to complex components and unnecessary overhead in both execution time and resource consumption • Completeness • A component is complete when it offers the functionality expected by reusers in its intended reuse scenarios

  5. Functions Transform initial state to a final state Complexity by computation cost Do something Self-destruction after completed invocation Objects React to messages Complexity of interaction Are something Persist while reaching to multiple invocations by clients Software Engineering with Reusable ComponentsChapter 8 – Component Attributes InteractivityInteractive components have unpredictable inputs from a external environment.

  6. Software Engineering with Reusable ComponentsChapter 8 – Component Attributes Interaction • Component interaction • High cohesion - Does one thing and does it well • Loose coupling - Low dependencies • User interaction • User interface decrease reusability

  7. Software Engineering with Reusable ComponentsChapter 8 – Component Attributes ConcurrencyThe textual order of the computations does not define the order of execution • Gain in execution speed • Elimination of potential processor idle time • Inappropriateness sequential model • Synchronization • Is necessary if two components, for example, share any kind of resource

  8. Software Engineering with Reusable ComponentsChapter 8 – Component Attributes Distribution • Distributed components are logically and sometimes geographically separate • The main reasons are not cost considerations but increased capabilities, greater flexibility of incremental expansion, and choice of vendors • Networks, multiprocessors, multicomputers ...

  9. Software Engineering with Reusable ComponentsChapter 8 – Component Attributes Forms of Adaptation • Adaptation • What happens to a component between the time a decision is made to reuse it and the time it becomes part of the software systems • Customization. • Modification

  10. Software Engineering with Reusable ComponentsChapter 8 – Component Attributes Quality Control • A market of reusable software components will not evolve without some sort of guaranteed quality • Pre and post conditions • Fault tolerant software • Distributed Components • Partial Failure and deadlocks • Unreliable communication channels

  11. Software Engineering with Reusable ComponentsChapter 8 – Component Attributes Summary

  12. Software Engineering with Reusable Components Chapter 9 – Component Taxonomy Component categories make it easier to determine the reuse potential of specific components • Taxonomy • Interfaces • Composition Techniques • Platforms • Related Work

  13. Software Engineering with Reusable ComponentsChapter 9 – Component Taxonomy User and data interfaces User and data interface may be used when components do not provide explicit reuse support • User interface • Level 2: Graphical user interface • Level 1: Command-line interface • Level 0: None • Data Interfaces • Level 3: Database I/O • Level 2: Specific file I/O • Level 1: Textual I/O • Level 0: Nome

  14. Software Engineering with Reusable ComponentsChapter 9 – Component Taxonomy Composition and Interoperation Programming interfaces represent the most important aspect for reuse Level 8: Open platform composition Level 7: Specific platform composition Level 6: Object model composition Level 5: Subsystem composition Level 4: Object-oriented composition Level 3: Modular composition Level 2: Functional composition Level 1: Textual Composition Level 0: None

  15. Software Engineering with Reusable ComponentsChapter 9 – Component Taxonomy Platforms and Attributes In order to support systematic reuse, we have to overcome the boundaries of component platforms • Platform categories • Level 4: Programming languages • Level 3: Libraries • Level 2: Programming system • Level 1: Operating system • Level 0: Hardware • Some attributes are platform specific The standardization of platforms is important for increased reusability of components. For example, the definition of virtual machineis one step in this direction

  16. Structures Denote objects or classes of objects (abstract data type) Tools Denote algorithmic targeted to structures Subsystems Denote logical collections of cooperating structures and tools Scope Capture the characteristics of the problem Purpose Domain /technology Granularity Abstraction General / Specific Software Engineering with Reusable ComponentsChapter 9 – Component Taxonomy Related Work

  17. Active Operating system Passive Classes, functions State Inheritance Concurrency Distribution Software Engineering with Reusable ComponentsChapter 9 – Component Taxonomy Related Work

  18. Software Engineering with Reusable Components Chapter 10 – Component Examples • Visual Basic: Reuse of Visual Controls • Java: Reuse on the World Wide Web • Unix Filters: Reuse based on ASCII Pipes • FrameMaker: Reuse of an Application • Field: Reuse in a Programming Environment

  19. Platform Event Handling Between Object-oriented composition and subsystem composition Software Engineering with Reusable ComponentsChapter 10 – Component Examples Visual Basic: Reuse of Visual Controls • Steps • Create the user interface • Ser Properties • Write code • Consists of • Forms modules • Code modules • Custom controls

  20. Java designers addressed many problems of today's software developer JavaBeans Extensive libraries with support for graphical user interface Characteristics Simplicity Object-orientedness Robustness and reliability Security Portability High Performance Heterogeneity and distributed networks Architecture neutrality Dynamic adaptability Software Engineering with Reusable ComponentsChapter 10 – Component Examples Java: Reuse on the World Wide Web

  21. Software Engineering with Reusable ComponentsChapter 10 – Component Examples Unix Filters: Reuse based on ASCII Pipes • Pipelines • Are linear sequences of filters • Bounded pipes • Have the amount of data restricted • Typed pipes • Have a type defined for their data • dir *.* | more input output pipe pipe Filter Filter Filter

  22. Software Engineering with Reusable ComponentsChapter 10 – Component Examples Framemaker: Reuse of a Desktop Publishing Application • Complex commercial application for publishing • Word processor, spell checking, cross-reference, • API - Write C programs to control Framemaker • FDE – Framemaker Development Environment • Communicate with the user • Add functionality • Modify user interface

  23. Software Engineering with Reusable ComponentsChapter 10 – Component Examples Field: Reuse in Programming Environment • Integrated Programming environment on Unix platforms • Simplicity • Base for existing tools • Black box • Wrappers send and receive messages and also communicate with the tools to be reused • White box • Integrate tools into a message-based environment

More Related