Component-Based Software Development: The Evolution of Reusable Software Units - Prof. Ye , Study notes of Engineering

This document, authored by dr. Ye wu, provides an in-depth exploration of the challenges and solutions in the software industry, focusing on the importance of reuse in creating more reliable, efficient, maintainable, and effective software. The history of software reuse, from structure-oriented to component-based development, and discusses the benefits and features of software components. It also compares popular commercial component models, such as j2ee and .net, and outlines the engineering process for component-based software.

Typology: Study notes

Pre 2010

Uploaded on 02/12/2009

koofers-user-6am
koofers-user-6am 🇺🇸

10 documents

1 / 14

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Introduction to Component-based
Software Development (CBSD)
Ye Wu
http://www.ise.gmu.edu/~wuye
SWE 645
Component-based Software Development
1/22/2004 © Dr. Ye Wu 2
Challenges to Software Industry
More reliable software
More efficient software
More maintainable software
More effective software development
More, More, More… ...
GREEDY
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Partial preview of the text

Download Component-Based Software Development: The Evolution of Reusable Software Units - Prof. Ye and more Study notes Engineering in PDF only on Docsity!

Introduction to Component-based

Software Development (CBSD)

Ye Wu http://www.ise.gmu.edu/~wuye SWE 645 Component-based Software Development

Challenges to Software Industry

  • More reliable software
  • More efficient software
  • More maintainable software
  • More effective software development

More, More, More… ... GREEDY

1/22/2004 © Dr. Ye Wu 3

Solutions?

REUSE!!!

Why Reuse?

  • Minor Reason
    • Design, implementation and testing are expensive
    • Reuse can save design, coding and testing cost.
  • Major Reason
    • Maintenance (two-thirds of the overall cost)

1/22/2004 © Dr. Ye Wu 7

First Generation of Software Reuse

— Structure-oriented software development

  • Basic Reusable Unit – Module
  • Scope – In a particular application of system
  • Implicit dependency on specific technology and a operational system environment
  • Reusable function library
  • Structured analysis and design approaches
  • Structured programming languages and traditional testing approaches.

Second Generation of Software Reuse

— Object-oriented software development

  • Basic Reusable Unit – Class
  • Scope – In a particular domain
  • Implicit dependency on specific technology and a operational system environment
  • Reusable object-oriented class library, design pattern and etc.
  • Objected-oriented analysis and design approaches
  • Objected-oriented programming languages and testing approaches.

1/22/2004 © Dr. Ye Wu 9

Third Generation of Software Reuse

— Midlleware-oriented software development

  • Basic Reusable Unit – Class
  • Scope – In a particular domain
  • Less dependency on specific technologies and operational system environments
  • Reusable middleware
  • Objected-oriented analysis and design approaches
  • Objected-oriented programming languages and testing approaches.

Forth Generation of Software Reuse

— Component-based software development

  • Basic Reusable Unit – Component
  • Scope – In any domain
  • No dependency on specific technologies or specific operational system environments
  • Reusable components
  • Component-based analysis, design, development, assembly and deployment process.

1/22/2004 © Dr. Ye Wu 13

Software Component

  • A software component is a software element that confirms to a component model and can be independently deployed and composed without modification according to a composition standard. -- Bill Councill and George T. Heineman

Advance Features of Software

Components

  • Component model conformity
  • Interoperability
  • Customizability and packaging
  • Deployability

1/22/2004 © Dr. Ye Wu 15

Component-based software

Component-based software system is an assembly of software components, which follows an engineering process that conforms to component- based software engineering principles.

Properties of CBS

  • Heterogeneity
  • Source code availability
  • Evolvability
  • Distribution
  • Reusability

1/22/2004 © Dr. Ye Wu 19

Comparison between J2EE and .Net

  • Portability/interoperability
  • Reliability, scalability
  • Development environment
  • Ownership
  • Training

Comparison between J2EE and .Net

Only J2EE 41%

Both 34%

Only .Net 20%

Others 5%

Only J2EE Only .Net Both Others

Source: Giga Information Group Inc., Cambridge Mass

1/22/2004 © Dr. Ye Wu 21

Comparison between J2EE and .Net

Neither 30%

Both 7%

Not Sure 15%

.Net 22%

J2EE 26%

J2EE .Net Both Not Sure Neither

Source: Giga Information Group Inc., Cambridge Mass

Q: Is your company more likely to commit to J2EE or .Net as its Web service foundation?

Engineering process for traditional

software

Analysis Design Coding Testing Maintenance

1/22/2004 © Dr. Ye Wu 25

Challenges

  • How to design a CBS? Design Pattern?
  • How to select, customize components?
  • What are the issues during the component composition?
  • How to test CBS?
  • How to maintain CBS?
  • How to … …

References

  • [1] Szyperski, Clemens, Component Software – Beyond Object- Oriented Programming, Addison-Wesley 1999.
  • [2] Cheesman, John, and John Daniels, UML Components. A Simple Process For Specifying Component-Based Software, Addison-Wesley,
  • [3] Wallnau, Kurt C., Scott A. Hissam and Robert C. Seacord, Building Systems From Commercial Components, Addison-Wesley,
  • [4] Heineman, George T., and William T. Councill, Component-Based Software Engineering. Putting The Pieces Together, Addison-Wesley,

1/22/2004 © Dr. Ye Wu 27

References

  • [5] Pressman, R, “Software Engineering: A Practitioner’s Approch”, McGraw-Hill, 2001
  • [6] Jacobson, I., Booch G. and Rumbaugh J. “The Unified Software Development Process”, Addison-Wesley, 1999.
  • Communications of ACM", October 2000, Vol 43, No 10.

References

  • CORBA: http://www.corba.org
  • EJB: http://java.sun.com/products/ejb
  • JDBC: http://java.sun.com/products/jdbc
  • RMI: http://java.sun.com/products/jdk/rmi/index.html
  • Object Management Group: http://www.omg.org
  • J2EE:http://java.sun.com/j2ee/
  • .Net:http://www.microsoft.com/net/
  • Java Web Services:http://java.sun.com/webservices/