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/