Communication Use Cases Object model Object Model Object model Sequence Diagram Sequence Diagram Sequence Diagram

We approach business problems with a systems perspective. This requires a focus on the business environment as an ecosystem that is composed of interelated subsystems; not unlike a distributed computer based processing system. From a theoretical perspective systems thinkingĀ is considered the art and science of making reliable inferences about ecosystem behavior by developing an increasingly deep understanding of underlying structure.

The TOGAF standard from the Open Group aligns nicely with systems thinking by breaking organizations into 4 interrelated subsystems of which we are able to provide assistance with three; Business, Data, and Software. We also have acquired a great deal of experience with life cycle methodologies whether waterfall, spiral, rapid delivery, or agile (SCRUM).

Business Architecture

Business architecture captures the business strategy, governance, organization, and key business processes in a coherent structure.

We are very experienced with structuring business analysis that will result in a comprehensive set of deliverables that are dependent on whether we are conducting a feasibility analysis, a comparative analysis of COTs, or engaging in full blown requirements engineering for a new system. We deliver models using either UML or Archimate depending on your preference.

Data Architecture

Data architecture captures the structure of an organization's logical and physical data assets and data management resources. it provides insights as to hat may be missing as well as opportunity for optimization to better leverage the corporate information

We have many years of experience modeling organizations and then providing comprehensive data models to support the organization at the operational, tactical, and strategic levels. This includes supporting BI initiatives whether for complex reporting or generating summarized set of data for big data initiatives using open source tools and commodity hardware. EWe can deliver a solution that meets your needs and depending on the engagement can be extended as the needs change.

Application Architecture

Application architecture provides a blueprint for the applications of an organization, their interactions, and their relationships to the core business processes of the organization. This can also be considered application portfolio management.

We are able to design solutions for just about any business problem. Whether you need a highly availabile distributed transactional system, a new batch process, or a reporting platform; we can deliver a solution. Our experience includes resource and service oriented architectures, various types of stream processing, as well as synchronous and asynchronous processing models. We have designed transactional, workflow, and reporting systems all based on standard architectural patterns.
Over the years we have gathered experience in several languages including Java, C++, C#, Python, Java Script, and various implementations of SQL. We have worked with various flavors of Unix, Microsoft, and OS X. Environments include most recently Visual Studio, Eclipse, Net Beans, and Xamarin. We have also built solutions on various types of data stores inculding hierarchical, relational, and document oriented NoSQL. We can implement designed solutions in any language on whichever platform meets your needs or complies with the guidelines of your organization.

Life Cycle Processes

Many approaches have been developed over the years to manage the software development process. These approaches have been referred to as methodologies.. A methodology in software engineering is commonly defined as a framework that is used to structure, plan, and control the process of developing an information system. Each methodology has been shown through experience to have advantages and disadvantages. These methodologies can be broadly divided into those that are structured and those that are agile.

We have gathered experience with several methodologies that all attempt to achieve the same objective. It is important to understand the problem to be solved, design an approptriate solution, implement the solution and then ensure that it still solves the problem. This can be done using numerous "SDLC" approachesincluding waterfall, spiral, or one of the many agile methodologies. The selection of a methodology should be because it matches the needs of the initiative. In some cases a more engineering based approach is required where for other initiatives, an agile methodology is a better fit. We can help you select and use the methodology that best meets your needs.