750 likes | 935 Views
Day 2: Hands-on UML. Using UML to put MITA to work to solve the immediate process improvement needs of states. 8:30 – 10:00 Hands-on Exercises: Business Processes Set up model structure Simple business process (trigger, inputs, output, activities, decisions, business objects
E N D
Day 2: Hands-on UML Using UML to put MITA to work to solve the immediate process improvement needs of states
8:30 – 10:00 Hands-on Exercises: Business Processes Set up model structure Simple business process (trigger, inputs, output, activities, decisions, business objects Activity diagrams for Provider Enrollment 10:15 – 12:00 Hands-on Exercises: System Integration Sequence Diagrams (options, alternatives) Capabilities as interface Service specifications for business and infrastructure processes 13:00 – 14:30 Artifact Generation and Tools Using the UML model to generate WSDL and XSDs: UML-to-WSDL configuration Using hyperModel for constrained Using MIF import to re-use HL7 models Integration with Subversion for version control 14:45 – 16:00 Hands-on: Using the HL7 and Fox tools MITA Project for MITA models Version control with Subversion HL7 information Model Change Control Fox Portal for project files MITA UML Training – Day 2Hands-on Training
Tooling Overview • IBM Rational Software Architect/Modeler • Websphere Business Modeler • Free plugins compatible with Eclipse 3.2 • hyperModel 3.0: http://download.xmlmodeling.com/hyperModel/updates/site.xml • HL7 MIF, HL7 UML Profile, Abstract Datatypes http://download.xmlmodeling.com/updates/hl7/site.xml • Version Control (SVN) http://polarion.org/projects/subversive/download/1.1/update-site/ • HL7 Web-based Tools • Wiki • MITA Project on HL7 Homebase
Rational Software Modeler/Architect • Eclipse-based • Uses the underlying EMF (Eclipse Modeling Framework)
Websphere Business Modeler • Integrated with RSA/RSM • Eclipse based • Open-source alternatives available
UML vs. BPMN , BPEL WSDL • WSDL is the target representation of MITA-based messages and tools are widely available • Business Process Automation is a relatively new and very appropriate for new development Eclipse based tools are available to add business process automation as needed: • http://www.eclipse.org/bpel/ • http://download.eclipse.org/technology/bpel/update-site/ • Eclipse and Eclipse Modeling Framework provides integration
BPMN BPEL <sequence name="main" xmlns:ns="http://eclipse.org/bpel/sample" xmlns:ns0="http://www.xmethods.net/sd/CATrafficService.wsdl"> <receive name="receiveInput" operation="initiate" partnerLink="client" portType="ns:Traffic2" variable="input"/> <assign name="Assign" validate="no"> <copy> <from part="payload" variable="input"> <query><![CDATA[/tns:input]]></query> </from> <to part="hwynums" variable="trafficRequest"/> </copy> </assign> <invoke inputVariable="trafficRequest" name="Invoke" operation="getTraffic" outputVariable="trafficResponse" partnerLink="traffic" portType="ns0:CATrafficPortType"/> <assign name="Assign1" validate="no"> <copy> <from part="return" variable="trafficResponse"/> <to part="return" variable="trafficResponse"/> </copy> </assign> <invoke inputVariable="output" name="callbackClient" operation="onResult" partnerLink="client" portType="ns:Traffic2Callback"/> </sequence>
Eclipse is a framework for IDEs (integrated development environments) In Eclipse, the layout of the user interface can be totally changed at the click of a button by changing “perspective” These layouts are called "perspectives" and they have various purposes. RSM includes a “Modeling” perspective. To view the SVN repository you need the SVN perspective In order to open a perspective select WindowOpen Perspective Other... and then select the perspective. In order to modify a perspective WindowShow View Eclipse Perspective
Add-on tools, open-source Help Software Updates Find and Install Search for new features New Remote Site… Plugins and Features
File New Project File New UML Model Right-click in any tool to open context-sensitive menu Getting Started…
RSA provides default projects “Blank.emx” The MITA styleguide will provide a consistent structure for each project … using the style guide
Model contents vs. Views Diagrams Packages Activity Actions Diagram Structured Activities Select a package and right-click context-specific menu Add Delete … Project Browser
Model Elements • Workspace • Project (NewProject • Diagrams (by model) • Models (separate .emx files) (New Model) • Model • Packages: name space for the various model elements (classes, interfaces, associations, actors) • Diagrams • Structure • Behavior • UML elements
Overview • Reviewing the core modeling components • Activity Diagrams • Class Diagrams (and Packages) • Sequence Diagrams
Model-driven Approach • As requirements change, we change the UML model • re-generate user documentation • re-generated WSDL • re-generated XSD • Diagrams provide views on the model • an element change is automatically reflected in all diagrams that use the element
Tooling Capabilities • Modeling • Includes WSDL and XSD generation • Managed in MITA Project Repository • Configuration management portal • Developers check in / check out Model artifacts • Available to all as Read-Only with downloadable viewer • Wiki for brainstorming, co-editing documentations, collaboration
Summary of Project Artifacts • Model Artifacts • Business Process (Activity diagram) • MITA “to be” • Minnesota specific business rules • Business Triggers, system boundaries • Information Model (Class Diagram ) • HL7-based, standardized vocabulary • Interactions (Sequence Diagram) • Operations expose business capabilities • Modeling realization artifacts • Service Specifications • Ports, interfaces, business rules • User documentation and runtime artifacts • WSDL • XSD
Pre-defined structure Selected notation Certain diagrams/views Default MITA structure and local extensions Style Guide
Create new UML project File New Project UML Project Re-use style guide or start from “blank” RSA: Create a new project
Logical Model Overview (using Classes and Packages) Enroll Provider System Enroll Provider Provider Registry Manage Provider InfoInquire Provider Info Enroll Provider Demo
Detailed Information Model: Healthcare Provider (Role) • Reuse reference HL7 class names, attributes, data types, code sets • Reuse internal HL7 code sets, where appropriate • Reuse standard coding systems (ICD, SNOMED, X12, NCPDP, etc.) as necessary • Additional Medicaid codes may be submitted to Standard Development Organizations for adoption • Benefit: Industry-standard code sets can be used in place of state-specific codes to enable semantic interoperability • The HL7 Reference Information Model is extensive and includes a variety of contributions (industry, government, international) and it meets the needs of the Medicaid
Select package Add UML model element or a diagram Context-sensitive dialog Adding …
Action & Information Input Output Reference other process Control Edges – information and process control Process description using activities
“Enroll Provider” Process Input Data Trigger Result
MITA Business Process Enroll Provider
RSA: Add “Description” Diagram (empty)
PM Enroll Provider Tier 3: Enroll Provider Item Details Links TriggerEvent Description Control flow[condition] Trigger Event Result Business Process Steps Shared Data Decision Predecessor Failures Successor Constraints Failures Performance Measures Actions Reused Process Object flow[condition] Result Activity Diagram of Business Process 1 1
Information Model Class Diagrams provide a view of the shared data HL7 as the starting point Import MIF-based HL7 models into UML Modify Input Messages Output Messages Shared Data
Class Diagram • Provides a view of Information and structure of message content or service performed • Class diagrams are grouped into packages that represent a type of message or a service. • Class • Message content (attributes) • Interface • Implemented by components/services • Operations • Enumeration • Define value sets • Coded literals
Share Information: Healthcare Provider (Role) Primitive type Default value Multiplicity HL7 Datatype Attribute/Property of the this type of object Enumeration
Detailed Information Model: Healthcare Provider (Role) Class Object Name Section Stereotype { Class Name { Attribute Name Attribute Multiplicity Attribute Value Attribute Section Attribute Name
Add diagrams Class diagram Add classes Root class of input message Root class of the response RSA: Add shared data
RSA: Create a simple activity • Create information model package • Create activity diagram • Triggers • Drag-and-drop input message • Draw control flow • Draw object flow to object node • If the object flow cannot be created, an input pin is missing
Data store: data flow in which the data is persistent Central buffer: consolidates data from several sources and destinations. They do not connect directly to actions Input/Output pins Object nodes
Edges/Connectors • Control flow • Process control passed from one action to the next • Object flow • information “in”/”out”
Simple actions Fork/join process flows Re-used activities/processes Actions
Information Model • The information model is used to describe message content and structure. • Unlike a data model which is used to represent permanent information, the data model is used to represent a snapshot of information at an instance in time for sharing information. • The structures in information models represent how a message is composed to share information – not how data is stored within or retrieved from data structures. • The source of the data captured for a message may include several data structures and data stores. The use of the data included in a message is various and can include parsing the information into one or more data stores. • Data is manipulated from data stores for inclusion in messages, reports, or displays. • Data within data stores may be in any format required by the application. Data is extracted from one or more data stores for composition of a message according to the schema for that message and will require transformation unless the data stores are XML representations of the schema. Conversely data is stored into one or more data stores from the message according to the usage requirements for that data beyond messaging – e.g. repositories for reporting and querying, updates to data stores based upon use of information in messages, • It is important to note that only the source data for a message can be an authoritative source because data cannot be validated or verified for accuracy, authenticity, or authority after it has been put into a message. Message validation only ensures that data uses valid structures with valid values
Re-usable Allows us to avoid platform compatibility issues HL7 Data Types
HL7 Terminology Intended for Code Sets Validation of messages Allowed values
Use cases • Use case diagram identifies the business actors • Use cases elaborated using other views • Scenarios • Basic • Alternate • Error