Designing a Digital Service application
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:
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:
|
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:
|
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:
|
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 |
|
|
|
|
|
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 |
| 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 |
|
Custom Task Map View Component | Client code |
|
| 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