|
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.
Joseph
Yoder's site has many object oriented resources including an OO/RDBMS
mapping technology resources, with many more links to other important
object technologies.
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
Smalltalk Links
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
Subject
Oriented Programming is an IBM research site with materials related to Aspect
Programming. Both are state of the art methods for developing large scale
object oriented systems.
Jex is a Java exception
handling evaluation environment created by
Martin Robillard
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.
Web Development
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.
e-Engineer This site is
owned and maintained by
Nathan Wallace.
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
|