Software Federation, Inc.
Custom Application Development
Direct Manipulation Interfaces
Software Architecture
Training & Mentoring
Object Technology
Outsourcing
Consulting
Innovative software solutions to complex problems
Key Sections:
Background
Software Federation is an outsourcing services provider located in Boulder,
Colorado. We deploy small, high-performance teams that excel in developing
complete software solutions to fulfill our clients' needs. We are specialists
in object technology, Java, C++, innovative user interfaces employing direct
manipulation techniques, application frameworks, UNIX, and Windows NT/2000/XP.
Our well stocked laboratory is staffed by senior software scientists, each
with a minimum of 10 years professional development experience. We develop
serious applications from business requirements through deployment. Delivered
application software is robust and implemented in a straightforward, easily
maintained, easily extended fashion.
Software Federation is committed to finding the best solutions for our
clients. We provide a friendly referral service so that if we are not the
right contractors for the job, we will direct our clients to those who are.
[Background] [Methodology]
[Current Projects]
[Expertise]
[Technology]
[Partners]
[Contact Information]
Methodology
Engineering
Our approach to software design and development is to create very high
quality, easy to use applications by using our knowledge about:
- Object-Oriented Analysis and Design: The proven concepts of
object-oriented decomposition and use-case scenarios are employed to accurately
describe the application domain and system requirements. We also strive for
high quality in our implementations according to proven principles of good
OO design. In fact, one of our partners teaches the Object-Oriented Programming
and Design course (CS 4448) at the University of Colorado. The course
notes are published on-line:
CS 4448 Home Page
.
- Innovative user interfaces: 2-D direct manipulation graphics
are often selected for applications that are traditionally text-based. Benefits
include optimization of user work flows and reduction of cognitive overhead.
- Knowledge-based systems: Expert system technology is employed
to aid in the solution of complex problems or to provide decision support.
- Application frameworks: Frameworks make large projects manageable
and can evolve as business needs change.
- Software design patterns: Using published techniques enhances
quality of implementation and facilitates technology transfer.
- Research results: The latest ideas and techniques derived from
academic and commercial research are applied as appropriate.
- Industry standards: We are committed to an open systems approach.
Your product will be able to communicate and exchange data with other software
packages as needed.
- Market trends: Trends in industry and in given applications
domains are evaluated with an eye toward longevity, then applied as appropriate.
Projects
Our approach to the software life cycle is guided by the ideas presented
above. More or less emphasis is placed upon particular areas as appropriate.
An iterative approach is often employed.
- Planning and project management: Small teams of senior engineers
are used to optimize development and reduce communication overhead. A plan
is produced for each phase to ensure clarity of vision and common expectations.
- Requirements analysis: Clear project requirements are key to
success. Our checklist-based approach addresses business, system and functional
requirements.
- User interface design and usability testing: Interfaces are
designed given requirements gathered during the analysis phase. Look-and-feel
and workflow are documented, then evaluated using paper prototypes and small,
operational software prototypes. User testing and heuristic evaluation are
used in the evaluation process.
- Architectural design: The overall structure of the application
is designed using general as well as domain specific design patterns and
frameworks. We design layered, modular architectures where common services
are abstracted into the framework.
- Prototyping: Designs are often prototyped prior to implementation
to verify engineering and user interface design decisions, investigate alternatives
and mitigate risk. Demonstrable prototypes may also be built at this time.
- Development and unit test: Production development is undertaken
using standard libraries and tools selected based on the project requirements.
Test drivers are attached to larger modules and testing is performed at computer
speeds using simulated data.
- System and integration test: A test plan is produced and the
system is validated in the delivery environment.
- Release management: Product releases are staged at regular
intervals over the course of the project and into the maintenance phase.
- Technology transfer: Design details and implementation specifics
are communicated to client staff using presentations plus project and training
documentation, augmented with hands-on walkthroughs.
- Mentoring: Guidance in the how and why of various flavors of
software technologies is available on an ongoing basis.
[Background]
[Methodology] [Current Projects]
[Expertise]
[Technology]
[Partners]
[Contact Information]
Current Projects
Software Federation's current projects include:
UCAR: Visual Meteorology Tool (VMET)
- We are actively involved in the Object-Oriented design and Java implementation
of VMET
.
UCAR: Object Oriented Community-Information Tools
Innovative Research, Inc.: EAPaDS
Software Federation has just delivered
EAPaDS
, the Environment for Analysis of Parallel and Distributed Systems, to
Innovative Research, Inc.
, Denver, CO. EAPaDS is a very flexible and general capacity planning and
performance analysis tool for computer systems and networks. It provides
a direct manipulation interface that supports the definition of hardware
architectures and software applications, then allows the analyst to map software
parts to hardware parts and analyze the results. EAPaDS is written in Java
and uses the Mica Graphics Framework
from Software Farm, Inc
.
[Background]
[Methodology]
[Current Projects] [Expertise]
[Technology]
[Partners]
[Contact Information]
Expertise
Software Federation has completed projects in the following areas:
- Electronic CAD
- Weather Visualization
- Call Centers
- Health Care Support
- Telecommunications
- Web development
- Resource Management
- Decision Support
[Background]
[Methodology]
[Current Projects]
[Expertise] [Technology]
[Partners]
[Contact Information]
Technology
Software Federation has experience in the following areas:
- Application architecture
- Business process (re-)engineering
- Client-server technology
- Data modeling
- Database design, development and optimization
- Direct manipulation graphics
- Embedded systems
- AI and Expert systems
- Hardware/software interfaces
- Object technology
- System architecture
- User interfaces
- 2D & 3D graphics
We also have experience with the following tools and platforms:
- Java
- C/C++
- X Windows
- OSF/Motif
- OpenLook
- UNIX
- WindowsNT
- Object Interface
- Galaxy
- Versant
- Oracle
- Sybase
- SQL Server
- Informix
- Sun hardware
- Intel hardware
[Background]
[Methodology]
[Current Projects]
[Expertise]
[Technology] [Partners]
[Contact Information]
Partners
Software Federation is a Software Farm Development Partner.
Software Farm
continues to improve Mica
, a modern, object oriented 2D graphics user interface library with a heavy
emphasis on ease of use, portability, and the ability to mix common user-interface
widgets with not-so-common widgets and graphs. Mica is free, and written entirely
in Java.
[Background]
[Methodology]
[Current Projects]
[Expertise]
[Technology]
[Partners] [Contact Information]
Contact Information
Postal Mail: 211 High View Drive, Boulder, CO 80304
General Information: info@softwarefederation.com
Sales Inquiries: sales@softwarefederation.com
Web Comments: webmaster@softwarefederation.com
[Background]
[Methodology]
[Current Projects]
[Expertise]
[Technology]
[Partners]
[Contact Information]
© 1996-2002 Software Federation, Inc. All Rights Reserved