This documentation supports the 20.02 version of BMC Helix Platform. 
To view an earlier version, select 19.11 from the Product version menu.

Designing a Digital Service Application

When you are preparing to develop a Digital Service application using the BMC Helix Platform SDK, follow the best practices and techniques used by development organizations to build any type of application. For example, a user-centered design, deep understanding of user stories, agile development methodology, use of configuration management and collaborative requirements and source code management tools.

There are some distinctive aspects of the BMC Helix Platform SDK that are helpful to understand before application development. BMC Helix Platform provides the following powerful built-in capabilities that you can be use to match the functional requirements:

  • Business Process Orchestration and Automation
  • Configurable rule engine

  • Flexible data model

  • Codeless UI tailoring

  • Powerful built-in services

  • Custom services

  • Modular deployment

Requirements Analysis

You can use any methodology and tools to identify the requirements. The best practices typically include a complete understanding of the user requirements and the problems. You can map the user requirements to the business goals of the application. This can be achieved by a mature design process, informed by research and testing with actual target users at every phase of the application development.  

Identify the following design requirements:

  • Business process needs and the rules required for the business process
  • Data entities required to build the application
    For example: Number of record definitions and fields required in the records
  • Users
  • Number of bundles required
    • Application bundles
    • Library bundles
  • Dependency of bundles
  • Bundles that need to be deployed together in a package
  • API design
    • Transactions

    • Performance

Sketching solution

 The common elements of a solution usually involve identifying user experiences, key data to be tracked, behavior of the system as the data changes, and tailoring the solution without code changes.

These can be captured as a set of the following design artifacts:   

Flow diagrams

A business process flow is a graphical way of representing the behavior of the system, users, and external entities. There is usually a primary object that is the focus of any business process.

 For example:

Process for resolving a request - Depending on the type of request, and different scenarios, the process can involve notifications, assignments, approvals, manual steps, automated steps, integrations, conditional branching, calling other processes, and so on.

 You can use a flow diagram to describe the process. You may not require to use industry standard notation like BPMN, but using standard notations can help in defining the process clearly and implementing it using the BMC Helix Platform built-in process engine.

Important record and fields

You can make a list of the following points:

  • Important objects identified (like requests, assets, locations) and their attributes for the process
  • Common patterns in the data model.

Constraints

You can make a note of the constraints and conditions required for the data model and process.

For example:

  • Employees below grade 20 should not be assigned an office when they are on-boarded.

  • HR data is only accessible to employees in the HR organization

 You can decide the constraints that you need to allow the users to modify as part of tailoring of the application.

Key user experience

 You should identify the user interface elements required for the user interaction, type of interactions, and tailorable views required for the UI.

Modularity

When you divide the application design in modules, you consider the following points:

  • Deployment packages in BMC Helix Platform can contain their own namespaced code, data, and definitions, and can describe all their dependencies.
  • If the application design is much complex or contains different functional areas over time, then it is critical to organize the solution elements so they can be maintained separately over time and the entire solution is as robust as possible.

  • To create new solutions with minimal coding, create reusable modules.

Identifying inventory of functionality required

You should have a list of the required functional modules and the types of artifacts that modules describe. You may prepare a worksheet that includes the functionalities for specific deployment packages and determine if any existing libraries meet the requirements.

For example:

Package

Functional area

Leverage existing libraries

Custom services

New record definitions

New business logic

New user interface

Task Management Library

Track task resolution

Approval,

Notification,

Assignment,
 
Foundation

Outlook connector

Custom @Action for Task Routing

Task,
Task Note,
Task Part

Task Tracking Process

Task Validation Rules

Custom Task Submit Client

Task Console View,
Task Update View

Task API Library

REST API for Tasking

Task Management

Task Domain Object

   

Mapping new design objects to the application

Using the inventory, you can decide on the tools required for coding and developing definitions.

For example:

New design object

BMC Helix Platform SDK artifact type

Tool

Task Management Library

Deployment package and library bundle project

Maven archetype

Outlook connector

Custom service

Eclipse

Custom @Action for Task Routing

Custom service

 

Task,

Task Note,

Task Part

Record definition

BMC Helix Innovation Studio

Task Tracking Process

Process definition

BMC Helix Innovation Studio

Task Validation Rules

Rule definition

BMC Helix Innovation Studio

Custom Task Submit Client

Client code

Eclipse or favorite IDE for JavaScript. Grunt for debugging

Custom Task Map View Component

Client code

Eclipse or favorite IDE for JavaScript. Grunt for debugging

Task Console View,

Task Update View

View definition

BMC Helix Innovation Studio

Task API Library

Deployment package and library bundle project

Maven archetype

Task REST Domain Object

Custom service

Eclipse IDE

Was this page helpful? Yes No Submitting... Thank you

Comments