Skip to main content

Data & Intelligence

Prototyping and Practical TM1 Architectural Concepts

bridge

“An Architect is the drawer of dreams”…Grace McGarvie

 IBM Cognos TM1 gives us the ability to quickly and effectively prototype a business solution demonstrating to users proposed functionalities and capabilities of a system design rather than relying on only discussions and theory. 

In some cases, it may seem like a good idea for your prototype to become the first iteration of the delivered system. However, once the “ah ha” moment has passed, it is critical to understand the difference between “It can do this” and “It will do this”. 

Prototype or Develop?

proto2

 

During prototyping, concepts are rapidly explored to determine “if” or “how” requirements can be meet; during development, architectural best practices should be followed to insure that what is built and delivered “will” meet or exceed requirements. 

Practical Architectural Concepts 

Here are some basic architectural best practice concepts that should be kept in mind when developing any solution. 

Appropriate Abstraction

When solving any business problem, you should always look for “natural joints”. These will be your “break points” which will allow you to “modularize” the solution into “simple solution steps”. 

For example: 

  • Identify  (a “view of data” to be processed)
  • Process (an identified view of data)
  • Present  (the results of processing an identified view of data) 

Encapsulation and Information Hiding

Solution modules should not “know about the internals of another”. Using the above example, the solution module responsible for processing (a view of data) should not “care about” or “in any way be connected to” the modules that identify or present data. 

Each module should specialize in solving its “own problem”! 

Coupling

Solution modules should use a single, common “interface point” – that is, you should design modules to exchange information with other modules (or other applications) through one common “gateway” – removing any complexity of “translation of information” from the solution module – solve that problem once. For example, if it’s common occurrence for applications to interface with an enterprise data warehouse, than build a reusable interface module with that purpose in mind. 

Scope & Life of Variables

Programming commonly requires the use of variables. It is important to have a strict policy governing the definition and use of all implemented variables. Some guidelines are: 

  • Know “when” and “when not” to initialize a variable
  • Use naming conventions – to indicate the variable “scope” (public/private, global/local, etc.)
  • Know its “role” – counter, comparator or accumulator? 

Understand Murphy’s Law

Always practice “defensive programming” – especially in a distributed environment! Solution modules should never “assume”. Make sure each module in your solution can handle a “less than perfect” state. That is, that it performs an appropriate interrogation of all information it consumes, processes or presents and “knows what to do” with any exceptions.

Close

Remember, application requirements will almost always change and so will your application – but by using architectural best practices, you’ll be adjusting and not starting over.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Jim Miller

Mr. Miller is an IBM certified and accomplished Senior Project Leader and Application/System Architect-Developer with over 30 years of extensive applications and system design and development experience. His current role is National FPM Practice Leader. His experience includes BI, Web architecture & design, systems analysis, GUI design and testing, Database modeling and systems analysis, design, and development of Client/Server, Web and Mainframe applications and systems utilizing: Applix TM1 (including TM1 rules, TI, TM1Web and Planning Manager), dynaSight - ArcPlan, ASP, DHTML, XML, IIS, MS Visual Basic and VBA, Visual Studio, PERL, Websuite, MS SQL Server, ORACLE, SYBASE SQL Server, etc. His Responsibilities have included all aspects of Windows and SQL solution development and design including: analysis; GUI (and Web site) design; data modeling; table, screen/form and script development; SQL (and remote stored procedures and triggers) development and testing; test preparation and management and training of programming staff. Other experience includes development of ETL infrastructure such as data transfer automation between mainframe (DB2, Lawson, Great Plains, etc.) systems and client/server SQL server and Web based applications and integration of enterprise applications and data sources. In addition, Mr. Miller has acted as Internet Applications Development Manager responsible for the design, development, QA and delivery of multiple Web Sites including online trading applications, warehouse process control and scheduling systems and administrative and control applications. Mr. Miller also was responsible for the design, development and administration of a Web based financial reporting system for a 450 million dollar organization, reporting directly to the CFO and his executive team. Mr. Miller has also been responsible for managing and directing multiple resources in various management roles including project and team leader, lead developer and applications development director. Specialties Include: Cognos/TM1 Design and Development, Cognos Planning, IBM SPSS and Modeler, OLAP, Visual Basic, SQL Server, Forecasting and Planning; International Application Development, Business Intelligence, Project Development. IBM Certified Developer - Cognos TM1 (perfect score 100% on exam) IBM Certified Business Analyst - Cognos TM1

More from this Author

Follow Us