Software Engineering Resources

Key Points


References

Reference_description_with_linked_URLs____________________Notes_______________________________________________________________________________


https://docs.google.com/spreadsheets/d/1SM5tSoCQ0KzjLB7zkqug5HR29yxoUVPQ
JHUHCEB1vYE/edit#gid=1638013988
My Work Tickets - GSheet


TechNotesMy Confluence


https://github.com/jmason90My Github
https://guides.github.com/activities/hello-world/Github training



Eclipse

Java  Open JDK

Spring



Nodejs

npm



Groovy

Grails

BIRT

Grafana


https://blog.eduonix.com/software-development/top-10-coding-games-kids-learn-programming/?utm_source=udemy&utm_medium=email-announcement&utm_campaign=se-cc-web-linux&utm_content=educational&utm_campaign=2019-05-29&utm_source=email-sendgrid&utm_term=598757&utm_medium=47806

Coding games online to learn programming

https://github.com/jmason90

github notes - jmason90

https://www.freecodecamp.org/

good intro level courses for full stack, algorithms, mongo, mysql

certs available

https://github.com/cefjoeii/developer-notebook

general software dev roadmaps, tips, articles from cj

https://codingthesmartway.com/

free articles, tutorials on full stack, analytics, cloud

https://aws.amazon.com/training/learning-paths/?nav=tc&loc=4

Free AWS training online

https://creately.com/blog/diagrams/uml-diagram-types-examples/

UML diagrams examples

https://en.wikipedia.org/wiki/Unified_Modeling_Language

UML

https://wolandscat.net/2019/03/07/the-long-slow-death-of-uml/

UML - why it’s limited

https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation

BPM diagrams




Mark Volkmann tech slides on JS, JEE etc

BPM modeling 

use Libre Draw for BPM objects ( or billable draw.io, lucidchart )


Conceptual Solution Diagram -

actors to conceptual environment model and BPM flows mapped to action diagram blocks with sequence numbers

https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation#Scope

BPM wikipedia

https://www.process.st/bpmn-tutorial/BPM Tutorial
https://camunda.com/bpmn/reference/BPMN Notation

https://www.lucidchart.com/blog/diagrams-for-dummies-a-BPMN-tutorial

BPM tutorial

https://solutionsreview.com/business-process-management/the-top-15-free-and-open-source-bpm-software/

bpm-software-2019-solutionsreview.com-The Top 15 Free and Open Source BPM Solutions.pdf

BPM tools review - 2019

https://www.goodfirms.co/blog/best-free-open-business-process-management-software

9 Best Free and Open Source Business Process Management Software.pdf

BPM tools review - 2020 **


https://camunda.com/bpmn/

Camunda BPM

provides a good free cloud version and a billable enterprise modeler option

https://camunda.com/learn/videos/Camunda provides full range of BPM design, modeling and run time options to execute BPM processes
https://camunda.com/bpmn/?utm_campaign=Cawemo%20
-%20WF&utm_medium=email&_hsmi=79337759&_hsenc=p2ANqtz–1eYNtBhyl1ufhhsNqd8Goi_eU43rmbqC1O5Z3KTeGtTJH84574Mk0_S0_7TyWG_jk
RsxsW1bLKW9uDmIDKv_on0dnKg&utm_content=79337759&utm_source=hs_automation

Camunda online tutorial with Cawemo with examples


BPMN-Real-Life_BPMN_Book_Excerpt.pdf

https://drive.google.com/file/d/1U7lZ010xqalgxCtmM_CyFvvFBqHyan2q/view?usp=sharing

Real-Life BPMN book excerpt **

covers all the basics - Camuda links

https://camunda.com/products/cawemo/

https://cawemo.com/

Camunda online BPM design tool

free registration - login

https://en.wikipedia.org/wiki/Camunda

Camunda java runtime workflow engine ***

Camunda is open-source with workflow tooling and a workflow engine that can in Java apps using REST api

https://docs.camunda.org/manual/7.8/Camunda docs
https://camunda.com/best-practices/invoking-services-from-the-process/Camunda best practices

https://www.grails.org/plugin/camunda?skipRedirect=true

https://plexiti.github.io/camunda-grails-plugin/

https://github.com/plexiti/camunda-grails-plugin/issues

https://www.google.com/search?q=grails+bpm+example&sa=N&biw=
1310&bih=635&sxsrf=ALeKk01k4iBntPuy76xFo5m_rdmfFQ5yg:1605237014
590&tbm=isch&source=iu&ictx=1&fir=bGj3BckjS1EYHM%252C8XHmXne_bggPmM
%252C_&vet=1&usg=AI4_-kSjFqNd2QHaTOBF29RnFl6-lfX-aQ&ved=2ahUKEwjlpqPwxf7sAhWKjVkKHaHWDbc4ChD1AXoECAoQBg#
imgrc=wT0c5mxenjUusM

Grails Camunda plugin - is it still valid? from 2015

works in Grails v2x only


grails camunda images

jBpm

https://www.jbpm.org/

https://docs.jboss.org/jbpm/release/7.45.0.Final/jbpm-docs/html_single/

jBpm

jBPM is a toolkit for building business applications to help automate business processes and decisions.

jBPM originates from BPM (Business Process Management) but it has evolved to enable users to pick their own path in business automation. It provides various capabilities that simplify and externalize business logic into reusable assets such as cases, processes, decision tables and more.







https://www.visual-paradigm.com/tutorials/how-to-create-bpmn-diagram/

Visual Paradigm BPM

https://www.google.com/search?q=bpmn+diagram+example&sxsrf=ALeKk00DbfW
_tp8UJc4qQXwHSTleoeu8Dg:1594040442064&tbm=isch&source=iu&ictx=1&fir=
asW0bAfrogp6SM%252CIoPrz_qHo7qRcM%252C_&vet=1&usg=AI4_-kQV4zg2eVjfoSUYefuhFdv5dGNm0w&sa=X&ved=2ahUKEwiW5rmy17jqAhXRm
OAKHbRkBI4Q9QEwAXoECAgQJw#imgrc=asW0bAfrogp6SM
Sample BPM images

UML2 in Eclipse
https://sysml.org Sysml = Smalltalk xuc or Groovy DSL

sysml-sysml.org-SysML Open Source Project - What is SysML Who created SysML.pdf

https://drive.google.com/file/d/16IM1iIycYuFlw1NU0mW4YWdFAU_PjwKC/view?usp=sharing

Sysml overview doc
https://app.lucidchart.com/user/145292726#/Lucidchart.io - free online acct for 3 projects only - print- no export  jmswt$Syn


BPMN tools and BPEL

https://bpmnmatrix.github.io/

tools-bpmnmatrix.github.io-BPMN Tool Matrix.pdf

BPMN tools - some free

https://design.inf.usi.ch/bpmn-sketch-miner/tutorial/index.html

bpmn-examples-design.inf.usi.ch-BPMN Sketch Miner.pdf

BPM Sketch Miner

Confluence BPM tool ( free ? )






online courses


https://www.freecodecamp.org/news/data-science-course-for-beginners/

free 6 hour video course on all basics


https://www.freecodecamp.org/news/650-free-online-programming-
computer-science-courses-you-can-start-this-summer/

catalog of 650 free online courses for 2019







billable courses


https://www.eacoe.org/enterprise-architecture-certification-workshops?fbclid=
IwAR1lcOsr6KHNIzJzieeKha-HsaqpQCFqv0j8AG6TStuzKoMuaKZNECBcprQ

Enterprise Architecture certification prep course from eacoe.org





Other reference links
https://sites.google.com/site/prahladswiki/tutorials/libreoffice-base-connect-to-any-database

Prahlad's Knowledge Wiki

free resource links on java, linux, python, libre



https://www.youtube.com/playlist?list=PLSrosSYVDPYKWADY1ddNMXOG_Bog8THNhIBM Meetup Topics - good youtube meeting videos



Key Concepts


BPM - Business Process Modeling

https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation


Lucidchart diagrams

https://www.lucidchart.com/pages/solutions/it/architects

Has templates, libraries for UML and BPM diagrams


free account for 3 online projects only 

https://app.lucidchart.com/user/145292726#/

jmswt


Enterprise Architecture certification prep course from eacoe.org

  • Our Signature Quick-Start Toolkit, Including Templates, Analysis Tools, & More
  • Project Management
  • Phases of Implementing an Enterprise Architecture Strategy
  • How to Create Models for Managing the Enterprise, including Process Models, Organization Models, and More
  • How EA Provides Value to the Enterprise
  • Establishing the Architecture Scope & Deliverables
  • Exploring Real World Examples of Enterprise Architecture Models
  • How to create an “Evergreen “ Model That Will Serve The Organization For Years To Come
  • The Components Needed for A Successful Transition Strategy
  • How to Prepare for Ongoing Architecture Refinement & Usage
  • How to Address Organizational Resistance to Change
  • Short Term Approaches for Long Term Success
  • Conducting a Successful Review & Verification Session
  • Architecting the Cloud
  • And More!



BPM diagrams can simplify design models for parties 


BPM diagram basics - examples

m Design#BPMmodelingmethods


https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation#Scope

BPM wikipedia

https://www.lucidchart.com/blog/diagrams-for-dummies-a-BPMN-tutorial

BPM tutorial

https://camunda.com/bpmn/

Camuda BPM

https://www.visual-paradigm.com/tutorials/how-to-create-bpmn-diagram/

Visual Paradigm BPM

https://www.google.com/search?q=bpmn+diagram+example&sxsrf=ALeKk00DbfW
_tp8UJc4qQXwHSTleoeu8Dg:1594040442064&tbm=isch&source=iu&ictx=1&fir=
asW0bAfrogp6SM%252CIoPrz_qHo7qRcM%252C_&vet=1&usg=AI4_-kQV4zg2eVjfoSUYefuhFdv5dGNm0w&sa=X&ved=2ahUKEwiW5rmy17jqAhXRm
OAKHbRkBI4Q9QEwAXoECAgQJw#imgrc=asW0bAfrogp6SM


Business Process Model and Notation (BPMN) is a well-known modeling standard to use in business process modeling. It’s often created to aid business process analysis, business process improvement or reengineering. BPMN visualizes business processes from the beginning to the end, showing the sequence of process activities and the information flow between the participants.

sample BPM for an application for leave shows:

  • start and end points for the process
  • swim lanes for the actors
  • process events, actions and decision points ( gateways )
  • events used often to model asynchronous processing.
    synchronous processing shown as standard message flows between actions ( or process blocks )
  • artifacts produced or consumed by process blocks or actions
  • if useful, related data stores can be referenced from the process blocks as input, output or both arrows
  • complex processes can be simplified using off page connectors that define related processes


BPMN diagram example


Purpose of BPMN Diagram

BPMN symbols are so simple that they can be understood by everyone, including business analysts who create and improve business processes, technical developers who implement the process changes, business managers who are monitoring changes, and even non-technical people like stakeholders who want to understand how the future process will look like. BPMN is an effective communication tool as it provides a common and simple visual language for specifying business processes, which eliminates miscommunication between the different parties.


Understanding BPMN Diagrams

In BPMN, the processes are described using diagrams with a series of graphic elements. Such a visual presentation makes it easy for users to understand the logic of a process. BPMN has been primarily developed to design and read both simple and complex diagrams of business processes.

For that, the BPMN standard classifies the graphic elements by categories: as a result, the elements are easily recognized by the users who work with business process diagrams.


BPMN symbols

There are five basic categories of BPMN elements. Each of them represents a unique aspect of the business process.

Swimlane

Swimlanes are graphical containers that represent participants of a process. There are two types of swimlanes — pools, and lanes.

Flow Elements

Flow elements are elements that connect to form business workflows. Flow elements are the primary elements that define the behavior of a process.

There are three kinds of flow elements: Events, Activities, and Gateways.

Connecting Objects

Flow objects are not isolated, but rather connected to form a flow. The connectors that connect the flow objects are called connecting objects.

There are four kinds of connecting objects: Sequence flows, message flows, associations and data associations.

Data

Data is mainly information needed or produced when executing a business process.

There are four kinds of data: Data objects, data inputs, data outputs and data stores.


BPMN Notation


Camunda BPMN summary

https://camunda.com/bpmn/reference/

BPMN-symbols-camunda.com-BPMN 20 Symbol Reference.pdf



BPMN Tutorial


Real Life BPMN book excerpt

https://drive.google.com/file/d/1U7lZ010xqalgxCtmM_CyFvvFBqHyan2q/view?usp=sharing

Covers all the concepts

Defines process models, events, abstractions, interfaces

instead of diagrams DSL models 

  • flexible, understandable, extendable, abstractions, interfaces
  • groovy expando models with bound property listeners for events
  • clarifies dynamic behavior with messaging sequences
  • add non-functional features where needed as annotations
  • models decisions and gateways as well
  • supports RDD with decentralized intelligence
  • JEPL supports async, event-driven flows
  • processing relations:  composition, association, collaboration
  • model actors, objects, resources
  • name paths - happy and alternate scenarios
  • automate with workflow engine
  • automate rules with decision engine
  • thoughts on goal, incentive-based dynamic optimizations on:
    • decisions
    • workflow
  • more





UML mappings for BPM 


The BPM diagrams are easily consumed by a broader audience than UML diagrams.

The advantage of UML diagrams is the easy mapping to software constructs ( modules, classes ( or actors ), methods and events )

At a simple level, a BPM diagram may:

  1. be contained by a subsystem class or the requirements test case
  2. the swim lanes map to known actor classes
  3. the process blocks or actions map to methods
  4. the events map originate from asynchronous event producers in a process and show links to the event listeners ( usually a dotted line ) 
  5. the pre-process setup for a BPM would include the registration of the event listeners for an event 
  6. the related data sources to the actor classes can be mapped as a request - response collaboration association for independent data sources ( services ) 
    or mapped as a composition for internal state ( with a hidden persistence service assumed )


Potential Value Opportunities



Potential Challenges



Candidate Solutions


JBPM - process workflow toolkit and runtime engine for Java environments

https://www.jbpm.org/

https://docs.jboss.org/jbpm/release/7.45.0.Final/jbpm-docs/html_single/

jBPM is a toolkit for building business applications to help automate business processes and decisions.

jBPM originates from BPM (Business Process Management) but it has evolved to enable users to pick their own path in business automation. It provides various capabilities that simplify and externalize business logic into reusable assets such as cases, processes, decision tables and more.

  • Eclipse-based developer tools to support the modeling, testing and debugging of processes

  • Remote API to jBPM engine as a service (REST, JMS, Remote Java API)

  • Integration with Maven, Spring, OSGi, etc.

can be combined with Drools

jBPM is not just an isolated jBPM engine. Complex business logic can be modeled as a combination of business processes with business rules and complex event processing. jBPM can be combined with the Drools project to support one unified environment that integrates these paradigms where you model your business logic as a combination of processes, rules and events.

Step-by-step guide for Example



sample code block

sample code block
 



Recommended Next Steps