Architecture
Definition ATC has helped many organizations
in examining how object-oriented analysis and design (OOAD) methodologies can be used to
provide a better approach to developing their software systems.
As part of that process, we can assist you through your
transition from legacy technologies and development methodologies to object technologies
and OOAD methodologies.
When considering object and component-based technologies,
the architectural framework to support the implementation of an object-oriented design is
an important part of the process. We embrace the three-tier (or n-tier) client/server
architecture.
The architecture consists of a presentation
layer, business logic layer, and a database layer:
a) The goal of this architecture is to achieve logically and functionally independent
components. Because each layer is insulted from the other layers, components can be
modified or replaced without any of the other components being revised or rewritten.
b) This software architecture goes hand in hand with an object-oriented design. In
fact, the architecture facilitates the implementation of the object-oriented design
regardless of whether each layer is physically distributed on separate processors.
c) This architecture promotes the building of smaller reusable components that are more
maintainable and extensible. The architecture, however, is not limited to a single
technology or database. Software can be implemented in languages such as Java, C++,
PowerBuilder, Visual Basic, Smalltalk, Delphi, and Object Cobol.
Since not all software can be rewritten or replaced overnight, we frequently assist
clients in accessing various legacy software components through wrapper components.
Wrapper components expose functionality so that other
systems or components can easily access it. The wrapper adapts the interface of the legacy
component to an object interface. By doing so, the internal implementation of the wrapper
component can be transparently replaced as legacy software is rewritten without affecting
other components in the system.
We identify, document, and promote best practice
techniques in order to build a software development environment where all
software is produced in the same manner and thus can be maintained and extended by just
about any member on the team.
This involves drawing out the strengths of every member on
the team and making the best practice or technique a standard that the entire team adopts.
The focus of individual creativity is in the identification and development of the best
practices, techniques, and best development tools so that all the members benefit.
We do not want to produce software that is
"good", yet is not maintainable and extendable by other members on the team.
Architecture Definition | Development Frameworks | Planning
Requirements | Construction | Training | Mentoring |