How to learn CBD / CBSE?
Author: Yu Jia
Email: jia_yu@263.net
[All rights reserved of any form of copying and reference must be licensed]
With regard to how to learn CBD / CBSE (Component-based Development / Component-based Software Engineering, component-based software development / component-based software engineering), I also touched the stone crossing the river, just mention a few words, for reference only:
I. Knowledge Basics:
First you have to master software engineering knowledge, especially new theories, new methods and new technologies, new methods, and new technologies, and traditional software engineering, I think computer majors have learned, in fact, most Chinese textbooks can be used as entry, here I recommend Roger S. Pressman's Software Engineering, A Practitioner's Approach, Fourth Edition. (China's domestic mechanical industrial version "Software Engineering - Practitioner Research Method", Huang Bai Sui and other translations), content is more than a textbook New. If you want to fully understand the latest theory and practice of software engineering, it is a "modern software project" of Zhou Zhiying. Although I think this book can be improved in the depth, and because it is compiled from some papers, some chapter content Some scattered, but in general, there is no omission, and a one in this book must be very hard. Gossip less, I think you can at least learn some of the following knowledge: object-oriented, software architecture, software multiplexing, field projects, may also: demand engineering, design mode, software process control (CMM, individuals and Group process), formal method (recommended to learn a Z language), is it to be exhausted, no way to let you do this hard work, and it's also happy, let you consciously take advantage of it.
Recommended document:
- "The Future Of Software Engineering" is very good, almost all aspects of software engineering, can read you are interested in the field, and the online resources recommended in the article are also very good.
- a Comparison Of Object Oriented Development Methodologies, http://www.toa.com/smnn? Mcr.html, object-oriented party jurisprus, you can find various OO methods, and comparison with them.
-Software Architecture
Rick Kazman, Software Architecture, Handbook of Software Engineering and knowledge introduces the concepts and views of the main SA, you can look at the article "The Future of Software Engineering".
Felix Bachmann et al, Techitecture Based Design Method, Technical Report CMU / SEI-2000-TR-001 and Len Bass et al, Architecture-Based Development Technical Report CMU / SEI-99-TR-007 These two CMU technical report The system describes the design and development methods of the SA, which gives the operational method of SA engineering.
Mary Shaw, Some Patternals for Software Architectures, introduced a variety of architectural style, here more comprehensive, standardized in her monograph Software Architectures, this part is the original essence, which is very inspiring. - Software multiplexed
Software Reuse Initiative, http://dii-sw.ncr.disa.mil/reuseic/pol-hist/primer/ entry-level textbook
Hafedh Mili et al, Reusing Software: Issues and research Directions is full, profound view, strong guidance, but unfortunately illustrations can't see.
Department of Defense Software Reuse Initiative Technology Roadmap Version 2.2 http://dii-sw.ncr.disa.mil/reuseic/pol-hist/roadmap/cover.html fully introduced the reuse principle and technology, condition, direction analysis is very thorough .
There are no two close to other fields, but you can also introduce it later, otherwise it will win.
Second. Practice
Software engineering has theoretical, but more important is practical. Its method can only experience in the actual project. I have no work experience around me. When I have no work, I have no use, I can only have nose.
You must at least master a target-oriented programming language, preferably Java, then do a project (you can "questions"). You need to learn CORBA, COM / DECOM (now MS Web Service) and JavaBean / EJB (seemed that J2EE] is simple, you can say this), try to write some distributed objects, pay attention, the contents of components More than object-oriented, it is moving towards component technology, such as CORBA CCM. It is recommended that you learn CORBA and development tools can use Visibroker. You still have to learn a little UML, now someone puts the UML as a CBD modeling tool, no matter what purpose, UML will definitely help you; as for Web Service, if you are interested, you will not have a new thing in SOAP ( It is not involved, and I don't dare to say).
Recommended document:
- CORBA
Sams Teach Yourself Corba in 14 Days, entry textbook
The Common Object Request Broker: Architecture and Specification, OMG's CORBA specification, very thick large head, is also very boring, and has a Chinese translation, in fact, the original text is more accurate, and the English technical manual is not very difficult.
Corba Comparison Project: Final Report compares the CORBA development tools of Germany and Czech Republic, introducing Orl Omniorb, Iona Orbix, and Interprise Visibroker, very good.
There are too many information in Corba, you can go to the Omg website: http://www.omg.org/.
- J2EE
Zhang Zhiwei and other translations, J2EE component enterprise system, Tsinghua University Press, very comprehensive, but unfortunately no electronic version. If you look at the original J2EE technology Blue book will work hard.
- COM / DCOM I am not familiar, I have recommended a set of .NET and Web Service articles, you can read it. - UML
The first "UML User Manual", Shao Weizhong, etc., "The" Unified Modeling Language UML "is also very good.
UML Application on the component Please see Desmond D'Souza's Catalysis - Objects, Components and Frameworks With UML, the book does not have an electronic version, but the relevant papers can be found online.
The development tools are better, Visibroker and Delph 6 are available. If you need it, I can upload the download URL, and the CORBA has the highest level.
Three. Common terms and concepts of CBD
CBD learning is of course starting with the concept, because it is a new discipline (or can only be called a new direction), the relevant concept is sometimes can't touch the head, and there are some, for your reference:
Component, Software Architecture, Framework, Component Framework / Component Infrastructure, Object / Distributed OO, Interface / Interface Description Language (Interface / IDL), Application Engineering, Domain Engineering, Contract, COTS (I translated into "Business Finished Components", how?), Middleware (Middleware, Connector / Port / Role (CONNECTOR / Port / Role), Product Line / Product Family, Subsystem, Service / Web Service, Component AdapTation / Configuration / CONTATION deployment), component containers (container), the object request broker ORB (Object request Broker), design pattern (design pattern), SOC / AOP / SOP (separation of concerns / Aspect-Oriented Programming / subject-Oriented Programming), the synthesis and generation Compositional / Generative Reuse, Reusable asserts, Heritage System (Legacy), Enterprise Application Integration, Packaging (WRAP), Granularity ......
Then understand the purposes, tasks, and activities of each process of CBD / CBSE: Members Acquisition-Component Evaluation - Components Adaptation - Components Deployment - System Integration - System Run - Components Maintenance - Components Upgrade. I summarized the CBD research direction: (a) component model and component representation; (b) software framework technology; (c) component library and component acquisition; (d) evaluation and metric; (e) adaptation and evolution of components; (F) The integration and connection of the component; (g) CBD procedure and management, if you want to study, you can pick a direction you interested in the direction, if you want to apply, then these knowledge is like software engineering and programming languages Relationship, practice is to see everyone.
Recommend a few papers.
(1) Getting started
Considering Chinese reading some, the first special report "Software Reuse" on March 15, 1999, is a very good set of entry-level articles. There is also an exclusive interview with Li Jing, Chinese Academy of Sciences, is also very good: "New Progress in Distributed Object Technology" (Microcomputer World 2000 33).
"11 steps based on component development" (11 steps to component based breakline "http: //www.flashline.com/content/steps/steps.jsp? SID = 986880017671-3396000210-150); Popularity information set The content is very rich and is biased in the technical introduction.
Faisal Siddiqui, CBSE: a Look at Reusable Software Components; Summary Overview.
Component Software Glossary; Component Software Glossary, now new software terminology is endless, go there to see if you can find explanation.
Alan Brown, an Introduction To Component-Based Development; speech, learning CBD snacks. Brown wrote a lot about component papers and monograph, to find: http://www.alanbrown.net/online.html.
(2) Improve
Mälardalen University's Component Based Software Engineering - State of the Art Report, a very good papers, which is concerned about CBD researchers, the school has a Ph.D. in CBD, about the teaching of CBD, that is, learning problem They give a comprehensive system program.
1998 ~ 2000 International Workshop on Component-Basent Software Engineering; Meeting Papers, there are dozens of short languages (I will pick some comments).
Description:
(1) The above recommended literature is some practical papers, and it does not depends on its authority, some classic papers, such as software architecture, you should see David Garlan and Mary Shaw's Software Architecture: perspection on an Emerging Discipline, And Dewayne E. Perry and Alexander L. Wolf's Foundations for The Study of Software Architecture, but they do not have new Software Architecture in rick kazman, comprehensive, and shortcoming. (2) Except for special instructions, all articles are taken from the Internet, some I have uploaded, no, if anyone needs to tell me.
(3) If the netizen requested the rush into the text, I will constantly revise, the right to version 1.0, please DX more comments.