Designing a Digital Service application


As a developer, when you develop a Digital Service application by using the BMC Helix Innovation Studio SDK, follow the best practices and techniques used by development organizations to build any type of application:

  • User-centered design
  • Deep understanding of user stories
  • Agile development methodology
  • Use of configuration management and collaborative requirements
  • Source code management tools

Before developing an application, understand some distinctive aspects of the BMC Helix Innovation Studio SDK. BMC Helix Innovation Studio provides the following powerful built-in capabilities for 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

Process overview

The following image gives an overview of the process for designing a digital service application:

221_Designing a digital service app.png

Analyze requirements

Use any methodology and tools to identify the requirements. The best practices include a complete understanding of the user requirements and the problems. Map the user requirements to the business goals of the application. Us a mature design process that is based on research and testing with actual target users at every phase of the application development.  

Identify the following design requirements:

  • Business process needs and rules
  • Data entities such as the number of record definitions and fields required in the records
  • Users
  • Number of bundles such as Application and Library
  • Dependency of bundles
  • Bundles that need to be deployed together in a package
  • API design
    • Transactions
    • Performance

Design the application wireframe

The common elements of an application 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:

Design artifact

Description

Flow diagrams

Use a flow diagram to describe the business process. 

Consider the process for resolving a request. Depending on the type of request and different scenarios, the process can involve different elements such as:

  • Notifications
  • Assignments
  • Approvals
  • Manual steps
  • Automated steps
  • Integrations
  • Conditional branching
  • Calling other processes

Important records and fields

Make a note of the important objects that are identified for the process such as requests, assets, locations, attributes, and common patterns in the data model.

Constraints

Define the constraints and conditions needed to allow the users to modify the data model and process as part of tailoring the application. 

The following situations are some examples:

  • Employees below grade 20 should not be assigned an office when they are onboarded.
  • HR data is accessible only to employees in the HR organization.

Key user experience

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

Modularity

Consider the following points when you divide an application into modules:

  • Deployment packages in BMC Helix Innovation Studio can contain their own namespace code, data, and definitions, and can describe all their dependencies.
  • If the application design is complex or contains different functional areas over time, it is critical to organize the solution elements for easy maintenance and make sure that the entire solution is as robust as possible.
  • To create new solutions with minimal coding, create reusable modules.

Prepare an inventory of functionality

Make a list of the required functional modules and the types of artifacts that the modules describe. Prepare a worksheet that includes the functionalities for specific deployment packages and determine whether any existing libraries meet the requirements.

The following table shows an example of an inventory of functionalities:

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

NA

NA

NA

Map new design objects to the application

Use the inventory of functionalities to decide the tools required for coding and developing the definitions. The following table shows an example:

New design object

BMC Helix Innovation Studio 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

Not applicable

  • 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

Where to go from here

Developing-applications-by-using-BMC-Helix-Innovation-Studio

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*