offers a wide range of services. We capture the requirements and features for your project with object-oriented analysis and design using the Unified Modeling Language (UML). We design databases to store your valuable data. Using designs we create or designs of your own, ToftWare will develop applications or software systems to meet your needs ranging from reporting applications to client/server and n-tier systems. Whether you want a custom software application to improve productivity, automate your form-filled documents or communicate with an instrument or telephone system, ToftWare has a solution to meet your needs.


can also work with your current software applications. We will add new features, make modifications to improve performance, or track down and fix bugs. If you have an on-going project and need an additional team member, a ToftWare developer can join your software team.

MS Windows UNIX  Solaris  Linux
C++ Visual Basic XML UML

Analysis and Design

We offer analysis and design services for your project using the methodology of your choice (e.g. RUP, EUP, XP, FDD). We work with your domain experts independently or as part of your design team. The degree of formality of the process depends upon your requirements and the scope of the project. For example, at a high level of formality, we conduct analysis and design using the Unified Process (UP) and the Unified Modeling Language (UML). If your project does not require that level of formality, we will apply more agile techniques; for example, we use only those parts of UP and UML that lead to achieving your goals, plus simpler tools such as whiteboards and index cards. We are adversaries of “analysis paralysis”! At any level of formality, we make use of documented analysis and design patterns, saving you time and money.



Object-Oriented Development

Object-orientation is a natural approach to software development because people think in terms of objects and the way that objects interact. We offer services for object-oriented development throughout the software development process: analysis, design, implementation, unit testing, and system testing. Object-orientation facilitates an iterative approach to development. Typically the development process begins with inception, elaboration, and planning phases, followed by iterative construction that adds groups of features at a time. Iterations consist of design, implementation, unit testing, and integration for selected features in short time intervals. This produces a working and testable product early in the development process that grows steadily over time. Requirements can be refined early when changes are easier and less expensive to make and the status of the project can be evaluated objectively at all times.



Problem Solving

We at ToftWare are all about real solutions to real problems. We listen as you describe your needs and ask clarifying questions to make sure we are in sync. We then work to define the mix of products and services that best fits into your constraints of time, budget, and other resources without over or under engineering the solution. So whether solving problems for you involves a fully custom solution from the ground up, or the integration of readily available off-the-shelf components, we address your needs with a strategy tailored just for your situation that will maximize your benefit.


Problem solving takes on many forms during software development, ranging from building an application to meet your business needs to designing an algorithm that produces correct results within a reasonable time within a program. In between is the ability to sort out and understand code in existing programs to find ways to improve performance or fix bugs. Our goals are to provide you with solutions on all levels and to resolve problems that affect your productivity.


We excel at problem solving, relying on our experience, logical thinking, and creativity. We make use of the many information technology resources available – Internet sources, books, professional journals, and colleagues – to research problems and find the best answers quickly.



GUI Design

We strive to provide you with a graphical user interface (GUI) that is both effective and pleasant to use. We work with end-users to discover the tasks they need to accomplish and how they like to work. Then we take a step back to identify the user goals. By emphasizing goals, we can design a user interface that effectively meets the user’s needs, and, in many cases, simplifies the user’s tasks. The result is high end-user satisfaction!


We respect the people who use our software and know that they want to be productive and accurate, not frustrated. The software messages we compose are polite and decipherable and provide guidance if further action is needed.



Database Design

At ToftWare we know that a well-designed database results in higher performance, lower storage requirements, reduced application development time, and easier maintenance of both the database and applications that use it. Our database design process includes requirements analysis through interviews with domain experts, logical design using a modeling notation, physical design based on the relational database system of your choice, and creation of the database at the point of use. Depending upon your preference, we model your data using Unified Modeling Language (UML) or Entity-Relationship notation. We follow best practices, such as judicious normalization of database tables, to ensure data integrity and database scalability as your data needs grow.




We develop software that communicates with instruments through, for example, serial or ethernet interfaces. We design an easy to use, graphical user interface for controlling instrument settings and data acquisition. Data acquired in real-time are manipulated according to your specifications and can be displayed in text and/or graphical form. Data may be saved to disk for further processing off-line.




We have worked on a number of computer telephony (CT) applications and understand them well. If you need to create, enhance, or trouble-shoot CT products, ToftWare can help. We possess a wide variety of expertise in voice processing, auto-attendant, call routing, and messaging systems. We have a good understanding of both the hardware and software used within the telephony industry. We have experience with Brooktrout, Rhetorex, Dialogic, Intel, and Cisco hardware and software interfaces. If you have telephony needs, ToftWare has the answer.



Real-Time Processing

We develop software that processes data in real time, for example, applications that interact with instruments or telephone systems. We also integrate third party tools, such as debuggers, with real-time embedded systems.



Science Applications

Nancee Toft has a B.Sc. in Biometry from Iowa State University, giving her a background in statistics and computer science. She has a Ph.D. in Plant Physiology from the University of California at Davis, with a specialty in physiological plant ecology. With this expertise, Nancee has developed scientific applications, such as modeling of leaf energy balance and spatial analyses of desert shrubs.



Toft, N.L. (1983) Comparative Ecophysiology of a Winter-Active and a Summer-Active Desert Annual. Chapter 4, Ph.D. Dissertation, University of California, Davis.

Toft, C.A. and Fraizer, T.  (2003)  Spatial dispersion and density dependence in a perennial desert shrub (Chrysothamnus nauseosus : Asteraceae).  Ecological Monographs 73: 605-624.