skip to main content
Software component design-for-reuse: a language-independent discipline applied to ADA
Publisher:
  • Ohio State University
  • Computer and Information Science Dept. 2036 Neil Avenue Columbus, OH
  • United States
Order Number:UMI Order No. GAX92-38192
Bibliometrics
Skip Abstract Section
Abstract

In an attempt to improve software quality and programmer productivity, software engineers have focused on improving the software development process. Another approach to the quality and productivity problem, similar to but crucially different from the software-process approach, is improving the design and implementation of individual components of a system. In order to achieve improvements one component at a time, this research applies software engineering principles to individual component design.

Engineering principles alone are not enough, however. A "software discipline" comprising goals, properties, principles and local certification techniques is needed. "Goals" are concerned with improvement in the overall software process (e.g., improved programmer productivity). The "properties" are those characteristics each component should possess in order to achieve the goals (e.g., composability). The "principles" are very detailed language-dependent guidelines that lead the engineer to high-quality component designs and implementations. "Certification techniques" are specific methods that permit one-time certification of component possession of the properties. "Local" certification techniques permit certification for component C without knowledge of any of C's clients, and without knowledge of implementation details of any component used in C's implementation.

The RESOLVE/Ada Discipline--for constructing components in Ada--is defined with the goals of improved programmer productivity and systems that are easier to maintain. There are four component properties: correctness, composability, reusability and understandability. There are 41 specific principles governing component construction. Finally, all four properties are shown to be locally certifiable.

Locally certifying correctness of component C (i.e., certifying that C's implementation meets its specification) is the biggest problem. In the proposed discipline, it requires examining C's package specification (including embedded comments formally specifying C's behavior) and the package specification of each component used in C's implementation--but nothing else.

Examination of several existing component libraries and frameworks for constructing components show that some implicitly define parts of a discipline (e.g., some have goals and properties while others have properties and principles). However, none explicitly defines a discipline and more importantly none even mentions the need for certification, local or not.

Numerous certified RESOLVE/Ada components (package specifications and bodies) are provided as examples.

Cited By

  1. ACM
    Ducasse S, Nierstrasz O, Schärli N, Wuyts R and Black A (2006). Traits, ACM Transactions on Programming Languages and Systems (TOPLAS), 28:2, (331-388), Online publication date: 1-Mar-2006.
  2. ACM
    Ramachandran M (2005). Software reuse guidelines, ACM SIGSOFT Software Engineering Notes, 30:3, (1-8), Online publication date: 1-May-2005.
  3. ACM
    Hollingsworth J, Blankenship L and Weide B Experience report Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications, (11-19)
  4. ACM
    Hollingsworth J, Blankenship L and Weide B (2000). Experience report, ACM SIGSOFT Software Engineering Notes, 25:6, (11-19), Online publication date: 1-Nov-2000.
  5. ACM
    Long T, Weide B, Bucci P, Gibson D, Hollingsworth J, Sitaraman M and Edwards S Providing intellectual focus to CS1/CS2 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education, (252-256)
  6. ACM
    Long T, Weide B, Bucci P, Gibson D, Hollingsworth J, Sitaraman M and Edwards S (1998). Providing intellectual focus to CS1/CS2, ACM SIGCSE Bulletin, 30:1, (252-256), Online publication date: 1-Mar-1998.
  7. Edwards S (1997). Representation Inheritance, IEEE Transactions on Software Engineering, 23:2, (83-92), Online publication date: 1-Feb-1997.
  8. Frakes W and Fox C (1996). Quality Improvement Using A Software Reuse Failure Modes Model, IEEE Transactions on Software Engineering, 22:4, (274-279), Online publication date: 1-Apr-1996.
  9. ACM
    Davis M Adaptable, reusable code Proceedings of the 1995 Symposium on Software reusability, (38-46)
  10. ACM
    Davis M (1995). Adaptable, reusable code, ACM SIGSOFT Software Engineering Notes, 20:SI, (38-46), Online publication date: 1-Aug-1995.
  11. ACM
    Whittle B (1995). Models and languages for component description and reuse, ACM SIGSOFT Software Engineering Notes, 20:2, (76-89), Online publication date: 1-Apr-1995.
  12. ACM
    Weide B, Heym W and Hollingsworth J Reverse engineering of legacy code exposed Proceedings of the 17th international conference on Software engineering, (327-331)
  13. Zweben S, Edwards S, Weide B and Hollingsworth J (1995). The Effects of Layering and Encapsulation on Software Development Cost and Quality, IEEE Transactions on Software Engineering, 21:3, (200-208), Online publication date: 1-Mar-1995.
  14. Weide B, Edwards S, Harms D and Lamb D (2019). Design and Specification of Iterators Using the Swapping Paradigm, IEEE Transactions on Software Engineering, 20:8, (631-643), Online publication date: 1-Aug-1994.
  15. ACM
    Levine T (1994). Reusable software components, ACM SIGAda Ada Letters, XIV:4, (23-27), Online publication date: 1-Jul-1994.
  16. ACM
    Poulin J and Tracz W (1994). WISR'93: 6th annual workshop on software reuse, ACM SIGSOFT Software Engineering Notes, 19:1, (55-71), Online publication date: 1-Jan-1994.
  17. ACM
    Levine T (1994). Reusable software components, ACM SIGAda Ada Letters, XIV:6, (41-52), Online publication date: 1-Nov-1994.
  18. ACM
    Sitaraman M and Gray J Software reuse Proceedings of the conference on TRI-Ada '93, (137-146)
Contributors
  • Rose Hulman Institute Technology

Recommendations