The Object Engineering Workbench - OEW Professional Software Engineering with C++ C++ is used mainly in professional software engineering projects where the engineers requirements are very high. So, it's obvious to use an professional software engineering tool. The Object Engineering Workbench for C++ and the Object Relationship Modeler (in short: OEW/ORM) provides all the necessary tools to remove the drudgery and let you concentrate on the creative part of your work. The Object-Oriented Analysis During this software engineering phase, the intuitive OEW screens help the analyst to easily create and edit classes and relationships. Data members and function members, in OEW called slots, can be created and maintained by mouse-clicks. OEW provides two graphs: the inheritance graph and the relational graph. The inheritance graph shows the tree of classes and sub-classes and their inheritance relelationships. The relational graph models both user-defined and whole-part-relationships between the classes. Boths graphs may be easily manipulated by mouse-click. The display may be set to analysis, design, or C++ notation. In addition you can choose various display options and of course overview windows. You can also creates views (subsets) of the classes and relationships to manage larger projects. Documentation can be entered in at any time for all parts of the project, this as well as various reports can be printed out. So, within minutes or hours, even complex class structures can be developed and documented. OEW is not just a simple class hierarchy browser. In contrast, the classes developed during the analysis phase may be dynamically changed without having to write a single line of C++ code. On the other hand OEW is also not a simple "drawing-and-checking" tool because it can handle the code of the whole project. The idea is strikingly easy: The analyst is guided to "Thinking in Objects" from the very first step. It's hard to develop "non OO programs" in OEW. So, getting used to object-oriented thinking and working does not grow to be a problem. Everyone, who is moving from C to C++ will find this invaluable. At the end of the object-oriented analysis using OEW, there is a truely object-oriented model of the problem domain - frozen in classes and class-hierarchies that can be automatically transformed into a C++ based application. The Object-Oriented Design During this development phase, you have to transform the analysis results into a good C++ design. The particular strengh of OEW is the support of this transformation. OEW provides, for example, templates, container classes, local and global type declarations, access types, inlines, const, static, virtual functions, and abstract classes. In the class hierarchies, you easily find and manipulate parameter lists, return types of member functions, and public, private, and virtual inheritance modi. Even syntactical add-ons of C++ may be processed with OEW, e.g. Borland's DDVTs and Microsoft's ClassWizard macros. In short: C++ is completely supported, not just the AT&T 3.0 , but the additions that are needed to build real applications. A very important design step is to handle sets of data, for instance in a 1:many relationship. We support the mapping of these cardinalities onto your container classes for slots and relationships. For example, in OEW a list of elements of the class CUSTOMER is described as "CUSTOMER [m]" which is later on in the phase of code generation translated into "List ". The relationship from [m] or other cardinalities to a container class (template or not) is defined by the user. You can use all the classes from your favorite class libraries. That means, reuse of existing software at the design level. Moreover, OEW provides various module and file handling functions, because nobody wants to do this by hand. Automated generation and maintenance of #include, module filenames, and the definition of deault headers (for instance a copyright notice). Of course there are things that you might want to change yourself, for instance the ordering of classes in a module or the slots in a class. OEW provides you the freedom to design the way you want to, but you don't have to do the hard work of coding and organizing any longer. When developing software based on the object-oriented databases ObjectStore or POET, OEW comes in strong. You can use one of the extended versions of OEW to creates complete database schemes of applications based on the description of the class hierarchies. Thus, OEW is the best schema designer for these OODBMS - and we are of course proud to be member of the Object Design Partner Program. The Object-Oriented Programming After you have completed you design we won't leave you without further assistance during the implementation phase. Going from design to implementation is no longer like jumping into cold water. OEW won't leave you alone in the incremental process of implementing and re-designing. The next step is the coding of the function bodies and the generation of the entire program. This also covers the automatic generation of Project- and Make-Files for the various compilers. The code generation is supported by so-called schemata in which for example additional includes or global C functions are provided. OEW offers support in both C++ and C development at this level. Now, the compiler must reveal its strength. The project file which was generated in the last step is now loaded and the C++ files are compiled. But quite frankly: Who is capable to generate a bug-free code in the first try? Regularly, now the phase of compiling, debugging, and testing starts - and nothing supports this phase better than the IDE of the compiler. The developer will change the source code, of course, in the compiler's IDE. On the other hand, the C++ program should not be developed independent of the OEW design files. What happens when you add/edit/delete source code outside the enviroment? You have to maintain two copies of your project, but one is quite enough. OEW provides an import from source code option. Just push the parse source code button, and your selected files (header and source) are read. Your design file and documentation can be kept always up to date! Can you imagine how much time and effort especially of you and your best people this can save? Reverse Engineering and Re-Usability The reverse engineering which we just described above opens up even more applications to OEW. Existing and purchased class libraries and other external source codes may be re-imported into OEW, analysed, and re-used. At a first glance, this sounds far fetched. But it really works. Whoever has experienced his favorite class library (OWL, MFC, Zinc, StarView, zApp, Booch Components, etc. all in all more than 100 classes) on the screen, with complete access to the functions, parameters and hierarchies, sometimes better documented by OEW than by the vendor, will never work without it again. Whoelse else gives you the capability to derive subclasses from let's say TWindow with point and clicks? Summary How can you classify OEW? It is very hard, because we blur the boundrys between many tools. On one hand it is a graphical IDE. But unlike other enviroments, it's repository based. When you for instance change a class name, it is changed throughout the system. No more search and replace through twenty modules of a project! On the other hand, OEW is a "real" CASE tool. It supports the phases of analysis, design, code gerneration and reverse engineering. Moreover, it contains an elaborate usergroup management and powerful documentation facilities. Depending from an individual point of view, you can see OEW as an extension of IDEs of modern compilers or as an integrated CASE tool. However, untimately, this classification into traditional concepts is not so important. In contrast, it is much more important that you can professionally develop software with OEW. Available for Windows, OS/2, Windows NT and SUN Solaris (others will follow). Please note that V1.3 is not only a patch. It has been fully re-developed using object-oriented techniques and - of course - OEW. In addition to OEW's powerful OOA and OOD support the following new features have been added to the tool: New features in OEW V1.3: * Graphical OOA and OOD support * New Microsoft-like user interface for analysis, design and implementation * Multi-Project-Management and MDI, non-modal dialogs * Encyclopedia-based for integrity and consistency checking * User-and project-bound, persistent Workplace Shell * New syntax-highlighting editor and edit controls * Automatic generation of AT&T C++ 3.0 code including Templates and Exceptions * New symbolic parser for full reverse engineering of any AT&T C++ 3.0 code * Direct access to method implementations even from analysis and design views * Cross referencing in the editor * Check for non-overwritten virtual functions * Global search&replace * New module concept with a module browser * New Quick Reference and multiple overviews * Multi platform concept and single sourcing, on every platform the same OEW V1.3 functionality * Multi compiler concept, use OEW V1.3 with the C++ compiler you have * Enhanced documentation facilities, additional RTF- und ASCII-Output * Multi library support, compatible to: MFC 2.5, OWL 2.0, Zinc, StarView, XVT, zApp, C++/Views, Open Interface, Rogue Wave class libs, Booch Components, and many more. * New easy-to-read 450 page manual including Introduction in Object-Orientation, Tutorial from OOA to OOD and OOP, and "OEW meets Stroustrup's C++" * Case-sensitive online help * Built-in POET und ObjectStore schema generation and parsing, Versant soon * Optional: PVCS support for versioning control and configuration management. Innovative Software GmbH Vendor of OEW/ORM is Innovative Software GmbH, Frankfurt, Germany. Founded in 1989, this software house has concentrated from the very beginning only on the development of C++ software. OEW originally was developed to support our own developers in making C++ applications. Since 1991, Innovative Software GmbH sells OEW/ORM all over the world and is the only German partner of Object Design, the vendor of the new object-oriented database system ObjectStore which is applied in the distributed application architecture of IBM. Innovative Software GmbH Phone: ++49 69 236929 Fax: ++49 69 236930 CompuServe: 100272,515 If you're interested in getting a free Small Project Version for evaluation purposes (instead of downloading) and pricing information, please send a message to 100272,515 or one of the following distributors: USA BSO Tasking Phone: (617) 320 9400 Fax: (617) 320 9212 CompuServe: 73602,2737 Germany Innovative Software GmbH Phone: ++49 69 236929 Fax: ++49 69 236930 CompuServe: 100272,515 Australia/Asia Object Software Engineering Pty. Ltd. Phone: ++61 52 377064 Fax: ++61 52 377054 CompuServe: 100026,1004 UK Silicon River Ltd. Phone: ++44 81317 7777 Fax: ++44 81316 7778 Internet: acourt@cix.compulink.co.uk BENELUX (Europe) ProTools Software Phone: ++31 20 6455023 Fax: ++31 20 6403341 CompuServe: 72633,204