Modeling in Industry DTU 27 April 20 Version:.0 Status: Final Author: Esben Erland 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page
Agenda Introduction About Netcompany About me The Netcompany development process - Phases - Modelling - A case - Case introduction - The model - Leveraging the model - Summary - Key points - Model Driven Development a wish list Please ask questions both during and after the lecture 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 2
About Netcompany Facts 250+ employees Offices in Copenhagen, Aalborg, Aarhus and Warszawa Established in 999 What do we do? We develop business critical IT solutions Portals, integration platforms, business applications, SOA Technologies: Java J2EE and Microsoft.Net We support the full application life-cycle: Inception Implementation Maintenance Projects Size: From 2 to 00 people (client and Netcompany) Time: From 2 months to 5 years Principles We deliver projects, not people Everybody can code (The CEO holds a PhD in Computer Science) 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 3
About Netcompany focus areas Process optimization & BPM Front end applications Portals & Co-operation (Internet, Intranet, Extranet) Self-service, Digital service, E-trade Document management Enterprise Content Management (ECM) Workflow System Integration & SOA Business applications CRM Business Intelligence Back end applications 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 4
About Netcompany - clients Client base: Large danish and international companies Public Pharmaceuticals Finance Media IT and Telco Service/consulting Production Energy 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 5
About me Name: Esben Erland Rank: Manager Education: M.Sc. in Computer Systems Engineering from DTU (2006) Thesis: Robust and Efficient Boolean Operations on Triangular Meshes Experience: 4½ years in Netcompany Industries: Energy, Telecommunications, Finance (Pension and Insurance) Projects in Java J2EE and Microsoft.Net Developer, Architect, Team-lead, Project manager Currently project manager (and developer) on a 5 man project. 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 6
Agenda Introduction About Netcompany About me The Netcompany development process - Phases - Modelling - A case - Case introduction - The model - Leveraging the model - Summary - Key points - Model Driven Development a wish list 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 7
The development process We do IT the old fashioned way Agile methods are GREAT If you don t know how your application is supposed to work! 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 8
The development process Pre- Analysis Analysis Design Build Test Operation Classical waterfall-model 6 phases 4 main phases Pre-Analysis : Determine what the customer wants and needs (decision point) Analysis : Define requirements and high-level design. Design : Define functional and technical design to a level where implementation can begin Build : Implement an executable application Test : : Clear the application for all critical and functional errors Operation : Release the application for production 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 9
The development process How the waterfall process really works Phases (over time) Task category Analysis Change Requests Design Detailed Design Build Test Operation Analysis Design Detailed Design Build Test Operation 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 0
The development process - details When do we do the modeling? Analysis Design Why do we use models? They create a visual abstraction Models are easier to understand than a physical representation (code, xml, etc.) A proper model says more than a 000 words They can be leveraged e.g. code generation Requirements Are specified during pre-analysis detailed during analysis Models help support a pragmatic requirements: Avoid a 7000 page requirement specification! The test phase The analysis and design and their models are input to the test phase Use cases Test cases 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page
The development process - modeling Analysis Objective: Create high-level design. Define requirements and detail the scope of the project. Models Use case model Business process model Domain model Component/Architecture model Component diagram Use case diagram Business process 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 2
The development process - modeling Design Objective: Create a detailed design of all components, incl. both functional and technical architecture Models: Physical data model Logical data model Detailed component design (Activity, sequence, class diagrams) Physical data model But remember: Models are an abstraction Do not design or model what you could just as well implement Sequence diagram (detailed component design) 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 3
The development process modeling Modeling languages UML 2.x BPMN 2.0 Flowcharts The language is not always important The purpose of most of the diagrams is communication Tools Paper and white boards! Enterprise Architect : Complex models, models for generation Visio : Diagrams and models for deliverables only Modeling tools are often cumbersome and expensive (5.000+ $) 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 4
Agenda Introduction About Netcompany About me The Netcompany development process - Phases - Modelling - A case - Case introduction - The model - Leveraging the model - Summary - Key points - Model Driven Development a wish list 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 5
The case - introduction THE CASE A set of business processes needs to be supported by IT at a Danish pension company A new IT architecture needs to be established including modernization of existing backend-systems The first process to be supported is the transfer of pensions to the pension company ( 4 transfers) Simplified setup: The reel setup: 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 6
The case the model Problem: Several systems having each their data model Many interfaces between the systems Solution: One model to rule them all Models the business domain and all system interfaces used in the system Model coverage The model 3 parts Domain model Information model detailing the domain model Service model uses the information model 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 7
The case domain model Domain model Purpose: Describes the relations between all central business entities Supported by a vocabulary describing central business terms Created in collaboration with key business resources approved by the business Phase: Analysis Model type: Simple UML class diagram aftaler4..* aftaler4 Arbejdsgiverforening Fagforening Overenskomst medlem af 0.. ejer..* består af..* Arbejdsgiver Indbetaler tilknyttet Arbejdssted..* har..* 0..* medlem af Kunde..* Pensionskasse administrerer 0..* PenSam Forbrugergruppe 0.. Omvalgsprioritering Overførselsprioritering 0.. varetager4..* udbyder4 0..* 0.. anvendes til4 anvendes til4..* Pensions- og Forsikringsmodel anvendes til4..* har4 bidrager til definition af4 Tilbud 3 deltager i..*..* Overslag defineres for4 Pensionsmodel (privat) Forsikringsmodel defineres for4 effektueres effektueres til4 til4 Arbejdsmarkedspensionsordning operationaliseres i..* Pensionsmodel (arbejdsmarked)..* oprettes under..* 0..* Kundeforhold afgiver4 består af..* 0..* Lov..* 3 regulerer Helbredsoplysning opgøres Navn Afledt Anden Begunstiget Arbejdsgiver Arbejdsgiverforening Arbejdsmarkedspensionsordning Arbejdssted Barn Bidrag (ordinær) Beskrivelse Synonymt med Pårørende, se Pårørende. Ydelsesmodtager, som kan være andet end Pårørende. I så fald skal der foreligge et Testamente, som har højere prioritet end Arvelovens Virksomhed, som foretager Indbetalinger til Kunders Kundeforhold. Forening dannet af Arbejdsgivere, Kommunernes Landsforening eller Danske Udgør en del af en Overenskomst og varetages af en Pensionskasse. Pensionskassen kan videregive administration af pensionsordningerne til et En Kunde kan have flere Arbejdssteder (geografisk lokation af arbejdspladsen; kan være forskellig fra Arbejdsgiverens lokation/adresse) Kundens barn, som kan være Ydelsesmodtager af Udbetalinger fra visse Løbende indbetaling til Kundeforhold, som foretages af Indbetaler. Indbetaling foretages med jævne mellemrum, typisk månedligt, som en procentdel af månedsløn evt. et fast kronebeløb som defineret i foretager4 Andet pensionsselskab fra 0..*..* Overførsel (ind) Indbetaling..*..* foretages på4 ProduktAftale indeholder Depot Vocabulary til Bidrag (ordinær)..* 0..* Overførsel (ud) 0..* i form af Indskud Frivilligt bidrag (privat) Tegningsenhed indeholder summerer til YdelsesModtager 3 udbetales til FortsættelsesForsikring..* 3 giver Udbetaling..* Dækning har Reserve 0..* Pårørende registreret på 0..* 0.. 0..* Simple class diagram Ægtefælle / samlever Barn Anden Begunstiget 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 8
The case information model Information model Purpose : Details all business entities including properties and data types Phase: Design Model type: UML class diagram Class diagram 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 9
The case service model Service model Purpose: Describes the usage of interfaces between the systems Contains all service.operations (interfaces) provided by the systems Phases: Analysis Design Model type: Lists and data sheets a pragmatic service repository Service list Service details The service model enables load analysis, impact analysis, etc. 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 20
The case leveraging the model The UML information model is used to generate physical models: Xml schemas for service.operations Classes for implementation Database descriptions (DDL) for persistence 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 2
The case leveraging the model The generation is automated using a build server ) The model is changed 2) Physical models are generated 3) Applications are build and verified Model generation combined with continuous integration 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 22
Agenda Introduction About Netcompany About me The Netcompany development process - Phases - Modelling - A case - Case introduction - The model - Leveraging the model - Summary - Key points - Model Driven Development a wish list 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 23
Summary Key points The case: What was generated Interfaces Model classes Data storage Behavior/logic Model validation Modeling behavior Behavior often requires details details are hard to abstract Model driven development the good stuff Transition: Eases the transition from design to implementation Documentation The model is both the documentation and (part of) the implementation Helps keeping the documentation alive! - no one likes writing or updating documentation Life-cycle: Enables detailed models to live across project phases and across projects 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 24
Summary MDD wish list ) Tool support Usable tools that fully support leveraging the model Affordable, non-bloated tools Currently: Generation is partly scripted Setting up the generation and automation is time consuming 2) Behavior modeling Methods and languages for detailing behavior at an appropriate level Combining abstract models with behavior Currently: It takes longer to model behavior than to implement it Action languages (like OAL) are similar to programming languages, but are limited in functionality 3) Executable models Why generate if you could execute the model! Currently: Programming languages have a high maturity level Executable model languages (like Executable UML does not). Discussion: Is it possible to create an abstract model of something that can be executed? Are 2) and 3) realistic? 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 25
Agenda Introduction About Netcompany About me The Netcompany development process - Phases - Modelling - A case - Case introduction - The model - Leveraging the model - Summary - Key points - Model Driven Development a wish list Agenda done - Any questions? 20 Netcompany A/S Netcompany A/S Grønningen 9 270 København K Tlf. 703440 Page 26