Niwot Ridge Resources
A Source of Information for Mission Critical Systems, Management Processes, and Strategies
Programming, Web Development, and Object Oriented Topics
The design of Object–Oriented systems is fraught with problems. First the concept of OO Design is not very well understood at the theoretical level. There are some texts and many papers (listed in the Resources section). The technology of OO design is not practiced on many projects. Too little time is given to thinking about the problem before the design and coding starts. The following links are a starting point for the underlying OO technologies.
The home page for the Arcus Project which was used to research architecture for business information systems with a focus on Object–Oriented architectures. This site contains the published results of the project, which ended in September, 1997. The project was a collaboration between the Technical University of Munich, SD&M, and the German Insurance Industry. Many of the papers deal with subjects that are current in today's OO world: OO to RDBMS databases, error handling, forms processing, decoupling objects in a distributed system. This site is a valuable resource for building the foundation of robust OO systems.
Scott Ambler's web site. Scott is the author of two books that must be in every OO engineers library. Process Patterns and More Process Patterns. These books describe the processes needed to successfully develop complex software systems.
Kyle Brown's site. Brown focuses on the development of Smalltalk and relational database design.
Components Systems is a consulting company specializing in large scale Corba system design and development.
The Law of Demeter more precisely the "Law of Demeter for Functions/Methods" (LoD-F). It is a design-style rule for object-oriented programs. Its essence is the "principle of least knowledge" regarding the object instances used within a method. The idea is to assume as little as possible about the structure and properties of instances and their subparts.
Adaptive Programming is a programming technology where programs are split into cross-cutting building blocks in a novel way to control tangling and redundancy. In AP, at least one of the building blocks is represented by a graph and other building blocks refer to subgraphs of the graph without revealing the details of the subgraphs. This is a form of succinct specification of graphs similar to the hierarchical specification of graphs widely used in hardware and software designs. A succinct specification can be expanded to a flat representation that is usually much larger than the succinct representation.
Distributed Object Computing with CORBA is a site for CORBA information
Ward Cunningham's site. Cunningham focuses on Smalltalk and object design patterns. Much of the original CRC work can be found at this site.
Alistair Cockburn's (pronounced "Coburn", as in "James") site. Cockburn provides resources in OO design as well as the development process.
Allen I. Holub is a software architect (in the sense of a designer of software), programmer, educator, and author specializing in object-oriented design and languages (including Java and C++).
Ratio is a UK based object consultancy with a quarterly newsletter with useful information.
Jeff Sutherland's site. Jeff collects other Object–Oriented design issues as well as leading the Business Object activities at OPPSLA.
The Wiki Wiki Web is a fabulous set of links and pages dedicated to the concepts of eXtreme Programming and OO topics. The content is continuously being updated so frequent visits are needed.
Object Relational Mapping and Object Role Modeling
Ozone Object database is a fully featured, object-oriented database management system completely implemented in Java and distributed under an open source license. The ozone project aims to evolve a database system that allows developers to build pure object-oriented, pure Java database applications. Just program your Java objects and let them run in a transactional database environment.
ozone includes a fully W3C compliant DOM implementation that allows you to store XML data. You can use any XML tool to provide and access these data. Support classes for Apache Xerces-J and Xalan-J are included.
Besides the native API, ozone provides a ODMG 3.0 interface. Although not fully ODMG compliant it helps you to port applications to/from ozone.
ozone does not depend on any back-end database or mapping technology to actually save objects. It contains its own clustered storage and cache system to handle persistent Java objects.
Object Role Modeling is a method of designing and querying database model at a conceptual level. Microsoft provide an unsupported Visio tool for ORM, it can be found at Vis
Why Smalltalk is a site with many resources for Smalltalk programmers as well as OO developers
Java Links, Software Development Resources
There are endless numbers of Java sites all easy to find. Here are some that are a bit more rare
http://www.junit.org/ is Java Unit testing site with many resources for eXtreme Programming style unit testing.
Dave Central is a site full of freeware and other interesting stuff.
IBM's Developer Works provides numerous links for state of the art development resources
Jmetrics is a site for Java metrics
Refactoring is a technique to restructure code in a disciplined way. This site is the home for Fowler's book Refactoring: Improving the Design of Existing Code.
There are numerous books, sites, and consulting firms for web site development. The process of developing a site is made more complex by the various styles of the actual web pages.
Jakob Nielsen provides a good starting point with his book Designing Web Usability, and his web site www.useit.com.
Connecting On Line is an online book about Public Relations and web sites. It also contains many links to other sites and resource material.
Enhydra.org project today encompasses a large range of projects much like the Apache organization. The mission of all of these projects is to provide a blanket of open source technologies for e-business.
Toby Braun provides a unique set of concepts for defining information architecture and web site design.
System Concepts is a site for User Interface design on the web.
The Electronic Performance Support System site is a useful place to start for information, ideas and opinions on building EPSS Software.
Techjourney is a resource site for web developers.
ASP Industry Consortium is an information center for Application Service Providers, their customers and delivery partners
Zope.org is Open Source wed site with a unique object oriented bent.
University of Maryland's Guide to Usability for Software Engineers is a resource for web designers.
37 Signals is a web design site
Kottke.org is the personal web site of Jason Kottke
evolt.org is a web development site