Archive for the 'Business' Category

Genetibase Software Development Services - System Design and Specifications/Hardware and Software System Requirements Analysis

Tuesday, November 7th, 2006

Our design specifications typically involve analysis for:

• Classification:

o The kind of component/application, such as a subsystem, module, class, package, function, files, etc….

• Definition:

o The specific purpose and semantic meaning of the component/application. This may need to refer back to the requirements specification.

• Responsibilities:

o The primary responsibilities and/or behavior of this component/application. What does this component/application accomplish? What roles does it play? What kinds of services does it provide to its clients? For some components/applications, this may need to refer back to the requirements specification.

• Constraints:

o Any relevant assumptions, limitations, or constraints for this component/application. This should include constraints on timing, storage, or component/application state, and might include rules for interacting with this component/application (encompassing preconditions, postconditions, invariants, other constraints on input or output values and local or global values, data formats and data access, synchronization, exceptions, etc.)

• Composition:

o A description of the use and meaning of the subcomponents that are a part of this component/application.

• Uses/Interactions:

o A description of these components/applications collaborations with other components/applications. What other components/applications is this entity used by? What other components/applications do the entities use (this would include any side-effects this entity might have on other parts of the system)? This concerns the method of interaction as well as the interaction itself. Object-oriented designs will include a description of any known or anticipated subclasses, superclasses, and metaclasses.

• Resources:

o A description of any and all resources that are managed, affected, or needed by this entity. Resources are entities external to the design such as memory, processors, printers, databases, or a software library. This should include a discussion of any possible race conditions and/or deadlock situations, and how they might be resolved.

• Processing:

o A description of precisely how these components/applications go about performing the duties necessary to fulfill their responsibilities. This should encompass a description of any algorithms used; changes of state; relevant time or space complexity; concurrency; methods of creation, initialization, and cleanup; and handling of exceptional conditions.

• Interface/Exports:

o The set of services (resources, data, types, constants, subroutines, and exceptions) that are provided by this component/application. The precise definition or declaration of each such element should be present, along with comments or annotations describing the meanings of values, parameters, etc…. For each service element described, include (or provide a reference) in its discussion a description of its important software component attributes (Classification, Definition, Responsibilities, Constraints, Composition, Uses, Resources, Processing, and Interface).

Genetibase Software Development Services - System Tradeoff Analysis

Tuesday, November 7th, 2006

Genetibase, Inc. employs the SEI’s Architecture Tradeoff Analysis Method® (ATAM®). This is the leading method in the area of software architecture evaluation. An evaluation using the ATAM method typically results in:

• Clarified quality attribute requirements
• Improved architecture documentation
• Documented basis for architectural decisions
• Identified risks early in the life-cycle
• Increased communication among stakeholders

Business drivers and the software architecture are elicited from project decision-makers. These are refined into scenarios and the architectural decisions made in support of each one. Analysis of scenarios and decisions results in identification of risks, non-risks, sensitivity points, and tradeoff points in the architecture. Risks are synthesized into a set of risk themes, showing how each one threatens a business driver.

The most important results are improved architectures. The output of an ATAM is an out-brief presentation and/or a written report that includes the major findings of the evaluation. These are typically:

• The architectural styles identified
• A “utility tree” - a hierarchic model of the driving architectural requirements
• The set of scenarios generated and the subset that were mapped onto the architecture
• A set of quality-attribute specific questions that were applied to the architecture and the responses to these questions
• A set of identified risks
• A set of identified non-risks

Genetibase Software Development Services - Systems Prototyping and Performance Evaluation

Tuesday, November 7th, 2006

The prototyping model is a software development process that begins with requirements collection, followed by prototyping and user evaluation. Often the end users may not be able to provide a complete set of application objectives, detailed input, processing, or output requirements in the initial stage. After the user evaluation, another prototype will be built based on feedback from users, and again the cycle returns to customer evaluation. The cycle starts by listening to the user, followed by building or revising a mock-up, and letting the user test the mock-up, then back.

Prototypes are mock-ups of the screens of an application which allow users to visualize the application that is not yet constructed. Prototypes help users get an idea of what the system will look like, and make it easier for users to make design decisions without waiting for the system to be built. When they were first introduced the initial results were considered amazing. Major improvements in communication between users and developers were often seen with the introduction of prototypes. Early views of the screens led to fewer changes later and hence reduced overall costs considerably.

Genetibase Software Development Services - Database Design

Tuesday, November 7th, 2006

Genetibase, Inc follows a predefined rigid process for Database Design, typically consisting of the following in order:
   
• Determine the purpose of your system
• Determine the tables that you need in your system
• Determine the fields that you need in the tables
• Identify fields with unique values
• Determine the relationships between tables
• Refine the design
• Add data (populate tables) and create other system objects

Some of the listed steps (determining tables, data fields and relationships) may cross and be repeated a few times when designing a relational database.
Building a database is a process of examining the data that is necessary and useful for an application, then breaking it down into a relatively simple row and column format.

Genetibase Software Development Services - Software Localization and Translation Services

Tuesday, November 7th, 2006

The most basic reason for a software company to localize its software products is to increase revenue and net income. The logic is very simple: Higher total revenue compensates larger costs on research and development, and product marketing costs. Larger budgets allow creating better products and better chances of dominating the market’s niche.

Typical software localization follows these steps:

• Extracting the user interface elements:

o We analyze the program source to locate all translatable elements and prepare them for translation. A typical application includes many types of text elements —strings, menus, command, and dialog boxes— but also bitmaps, icons, and even sound or video clips. During the analysis, we also verify that there is no “hard coding” left, that all the interface elements have been separated from the code, and that any concatenation is clearly marked.

• Rebuilding the original interface:

o During the analysis, we rebuild the entire user interface to verify that all the elements are available. We also verify that the installation module and all other on-line elements have been considered (demo versions, on-line samples and tutorials).

• Building pseudo-translated application:

o Software localization usually takes place during the last stage of the development, when the original product is undergoing final revisions. To verify that all internationalization guidelines have been followed, we can quickly produce a pseudo-translated version of the user interface. This version is tested by the QA division to locate potential problems and address them before they affect the localization process.

• Preparing the translation kit:

o Each element of the user interface is prepared according to the tools that will be used by the translators. Translation memories are applied to the text elements to leverage existing translations and increase the consistency between different products from the same family.

• Translating the user interface:

o Our software translators use industry-standard terminology and client specific glossaries to achieve a high level of acceptance within the target market. During the translation process, they work with the engineering team to ensure that the locale conventions are followed.

• Resizing the dialogs and other UI elements:

o After translation, a localization engineer resizes the dialog boxes and verifies that all elements of the new user interface display correctly.

• Building and testing the localized application:

o When all the resources have been resized, the application is compiled and a team of language testers verify that the translated interface is accurate and displays correctly on the localized version of the operating environment.

• Delivering the localized application:

o When the localized interface has been tested and all the last minute changes incorporated, the localized resources are delivered to the client. Our entire team stays “on call” and fully available to ensure a smooth product release.

Genetibase Software Development Services - Software Porting

Tuesday, November 7th, 2006

• Analysis of existing code and/or architecture (scope definition)

• Evaluation of available tool options (e.g. conversion libraries, emulators)

• Design work for UI/functional changes

• Implementation work for UI/functional changes

• Build the software for the target platform

• Debug on the target platform

• Perform final test and Quality Assurance (QA) functions on the target platform

• Integration of source patches back into the main build tree for archiving and revision control

• Upgrade of documentation relative to the new platform

Software Development Services or Retail Software Products?

Monday, October 16th, 2006

Recently I was asked this question: Does Genetibase sell development services or products?

Good question, one we may need to clarify. Our business model incorporates both Development Services and Products. Due to the nature of NDA’s and confidentiality within contractual development, showcasing skills to potential clients based solely on a services record can be difficult. Therefore, by producing products for related markets, we showcase skill sets, interests and intern gain clients for our software development services. Simply, it has proven to be a viable marketing method.

Anthony Nystrom, CDA - Genetibase, Inc. 

Future Computing within medical informatics/bioinformatics and Genetibase’s current offerings

Wednesday, September 27th, 2006

As we are sure you know, the software and computing hardware industries are incredibly fast forward moving markets. In fact, some analysts suggest that the next 3 years will easily incorporate the last 30 years of information technology advances put together.

What does that mean for you?

Well, it means that both the hardware and the software will be increasingly complex, fantastically feature rich, and technology platforms such as Microsoft .Net will become standards for software development on the PC device. Users will demand that applications utilize all of their computer’s hardware potential, as well expect applications they purchase will exploit everything their operating system has to offer. Windows Vista for example, hopefully to be available by early 2007, represents the biggest change in operating system technology since Windows 95 replaced Windows 3.1. We have chosen to exclude internet, web services and xml technology from this introduction simply because it would create 20 additional pages. Rather, the reality is that the advancements expected will absolutely integrate global exchange in various forms using the internet. The software of the future will and must consume and exploit this global exchange technology, as users will both expect and demand it be integrated. This includes all users: casual, business, medical professionals and students, to list a few.

From a medical informatics/bioinformatics perspective, medical devices and equipment such as digital radiography, ultrasound and imaging devices are becoming ever more available to both practitioners and institutions. And with drastically reduced prices from just a few years ago, to the multitude of actual technologies and devices available, the curve seems to mimic the general computing technology curve. Its application integration will as well become an expectation. Finally, since we are discussing the future, what is ‘coming’ isn’t always known. All businesses within a technology market must ask themselves the following questions, and should be doing it regularly.

Is and will my solution be ready for the future in whatever form it manifests itself? Is it based on a language and or environment designed to incorporate new technology quickly? Is it still supported? Will my market grow to other regions of the world? And, can I easily internationalize my solution? Do I want to always be in front of the technology curve when compared to my competitors? If not in front, where should I be positioned?

Assuming your users will be satisfied with your offerings without constantly striving and implementing technology changes is an incorrect assumption, and has been shown to disperse users to other viable alternatives. And, as we move forward those alternatives are becoming increasingly available more than ever before.

Genetibase, Inc. has been on the leading edge of software technology since its inception. We regularly review competitor offerings, adjust our development strategies, adopt new standards and test with the newest hardware, operating system software and or frameworks. All while maintaining and continually developing an extensive and feature rich product showcase. Please take your time reviewing our software and service offerings via Genetibase.com. At anytime, feel free to give us a call or email so we can discuss how we can help you achieve your needs and or goals.

Thank You,

Genetibase, Inc.

Moving forward…

Monday, September 25th, 2006

We are proud to announce our membership with Silicon Graphics Developer Plus program. Which gives us some exclusive access with current and new development technologies from SGI. We are planning on making a strong push towards high end visualization technologies both on the IRIX and LINUX Platforms, targeting SGI hardware. We feel confident with product offerings starting late 2007. We that said, we acquired a couple SGI Prisms and Fuel workstations (seen below) to complement our Octane 2’s and Cluster hardware. Our development upon other platforms will not cease, as we are simply broadening our horizon and potential as a software development company.

Let’s get on with it…

Very exciting hardware!!!

NuGenDVM - Model change…

Wednesday, September 6th, 2006

Yes, it is true… We have stopped selling NuGenDVM. And, we have no plans to sell it retail in the future. Many years of work went in to it and it is by far the most technologically advanced system. Probably will be for many years to come. Current clients continue to be supported both with call support and updates. We made a strategic decision to stop the efforts being put in to NuGenDVM in order to focus on contract development, as well as other product development that encompass more of our interests and expertise, as well as being more profitable. Current availability for NuGenDVM is source code and binary rights for in-house and a few specific regions of the world. If you find you are interested and desire more information, please feel free to contact us here.

Silicon Graphics Restructuring

Tuesday, September 5th, 2006

Interesting letter in the mail today. As you may well know Silicon Graphics, http://www.sgi.com is in the middle of bankruptcy proceedings. According to the letter, we being Genetibase, Inc. is listed as a creditor… After careful review of our records they owe us approximately zero dollars. Actually their bankruptcy is a good thing. We can’t wait to see them rise to the top once again!