380 likes | 398 Views
The Mass Customization of Software. Ken Orr The Ken Orr Institute. A Word from a Guru?. What kept you, I’ve been waiting for you?. A Question. “We can already produce mass customized jeans, bicycles, and dozens of other products—why not software?”. An Answer. WE CAN!
E N D
The Mass Customization of Software Ken Orr The Ken Orr Institute
A Word from a Guru? • What kept you, I’ve been waiting for you?
A Question • “We can already produce mass customized jeans, bicycles, and dozens of other products—why not software?”
An Answer • WE CAN! • After more than two decades of focusing on reusable objects, components and now services, software will begin to concentrate increasingly on the computer-aided requirements, computer-aided design, and computer-aided systems, not programs.
1. The Future of Software: Agile, Semantic-aware, Platform-agnostic Applications Ken Orr
1. The Future of Software: Agile, Semantic-aware, Platform-agnostic Applications 1.1 Where are we now? 1.2 Where are we going? 1.3 The Requirements for Future Systems 1.4 There are semantic patterns that we can employ today. 1.5 Are there different "semantic models"? 1.6 Where does the AMO Model come from?
1.1 Where are we now? • Today, organizations are sitting upon large numbers of monolithic, legacy applications whose infrastructure is built upon languages, databases, communications and other components that constantly degrading. • Currently, our existing systems are "brittle" in that they don't "understand/recognize" anything (e.g. people, products, etc.)...this is because they are hard-wired (hard coded). • Currently, our existing systems don't take advantage of what we know about the world in general, business in particular, semantics, ontology, etc. • Unfortunately, many of the new applications replacing the aging ones are equally brittle and built on increasingly complex, fragile infrastructures themselves
1.2 Where are we going? • Future systems will have to be more flexible, more intelligent and more business oriented • Semantics, ontology and epistemology can help us create smarter, more agile systems that are: • Much easier to use • Much easier to adapt • Much easier to interface to • The Key will be the Integration of Semantic-based Methods and Tools
1.3 The Requirements for Future Systems 1.3.1 Agile Applications 1.3.2 Semantically-aware Applications 1.3.3 Platform-agnostic Applications
1.3.1 Agile Applications • Agile applications are ones that can be built and maintained in small increments • Tools for building agile applications will dynamically "refactor" changes in requirements into the operational system
1.3.2 Platform-agnostic Applications • An application is "platform agnostic", if it can be automatically generated for different platforms, databases and infrastructure without changing the business requirements • Business Management and Users should not care about what platform an application is generated for…they should care only that it runs the same way and gives identical results!
1.3.3 Semantically-aware Applications • "An application is semantically aware to the degree the application designer imbued the application with semantic precision and veracity." Dave McComb • "It will probably be at least 10 to 20 years before applications are really semantically aware." Dave McComb • Maybe not...SUPPOSE THAT EARLY VERSIONS ARE ALREADY HERE!!!
1.4 There are semantic patterns that we can employ today. 1.4.1 Grasping big semantic patterns 1.4.2 If we get the basic semantics right, there are huge benefits to be had 1.4.3 If the get the basics semantics right, we can create smarter and smarter tools. 1.4.4 Velocity Matters: Tools and semantics make it possible to be more and more agile
1.4.1 Grasping big semantic patterns • "All the good solutions to the same problem look alike, only the bad solutions have a lot of variety." Ken Orr • After a while, you start to notice what's important • After a while, you find ways of collapsing the complexity
1.4.2 If we get the basic semantics right, there are huge benefits to be had • Business Architecture • Data Architecture • Application Architecture
Business Architecture • Business (Semantic) Context – Who is involved, what do they communicate, what is their communication about • Value Chains -- What business are we in, who are our customer, what are out products? • Value Streams - What are the big end-to-end processes? • Business Processes - How do we get our work done?
Data Architecture • Enterprise Data Models -- High level models of our most important data assets • Enterprise Data Flow Models -- Treating all of our data as a single distributed database • Enterprise Meta-data -- The metadata for the highest level of the enterprise
Application Architecture • User Portals -- A common way for our users to work with out systems • User In-boxes -- A common way to manage our business processes • Services -- A common way to define modular business components • Interfaces -- A common way to manage our electronic intra- and inter-enterprise data communications
1.5 Are there different "semantic models"? You bet ... 1.5.1 First of all there is the "semantic web" 1.5.2 Second, there is XML 1.5.3 Third there is UDEF 1.5.4 Fourth, there are smart agents 1.5.4 Finally, there are High Level Semantic Models
There are the 6 journalistic (=semantic) questions: • Who? • What? • When? • Where? • Why? • How?
There is the Resource, Event, Activity Model • Resources • Events • Agents • REA is aconstraint-basedmodel
What I’ve been focusing on is similar to the REA Model (AMO) The Actor, Message, Object (AMO) Semantic Model • This is the one we're going to pursue • It works in most domains • It is very simple • It is very powerful • It is also intuitive, if you know what to look for
1.6 Where does the AMO Model come from? 1.6.1 Very high level semantic models 1.6.2 Twenty-five hundred years of theory and practice 1.6.3 Thirty+ years of theory and practice creating agile, semantic-aware, platform-agnostic applications
1.6.2 Twenty-five hundred years of theory and practice • Starting with Aristotle (384-322 BCE)– The Father of Ontology and Logic • Carl Linnaeus (1707-1778)– The Father of Biological Taxonomy • Jean-Dominique Warnier (1920-1990) – The Father of Data Structured Database Design • Ted Codd (1923-2003) – The Father of Relational Database
1.6.3 Thirty+ years of theory and practice creating agile, semantic-aware, platform-agnostic applications • Manual process, database, application design • Automatic (Computer-aided) "agile" database design • Automatic (Computer-aided) code generation • Automatic (Computer-aided) business (workflow) process design • Automatic (Computer-aided) data warehouse design. • Leveraging Business Semantics in Application (ERP) framework
1950 2000 1800 1850 1900 1700 Custom Manufacturing (tailored) Division of Labor (batch processing Standardized Parts Mass Production Just-in-time Production Mass Customization (CAD, CAM, Configurators) CAD CAM CAE CAM Models Concurrent Engineering)
1950 2000 1800 1850 1900 1700 1960 1980 1990 2000 Custom Manufacturing (tailored) Division of Labor (batch processing Standardized Parts Mass Production Just-in-time Production Mass Customization (CAD, CAM, Configurators) Custom Programming Division of Labor (Waterfall Methods) Standardized Parts (Objects, Components) Mass Production (Software Factory) Just-in-time Production (Agile Development) Mass Customization (Agile Framework Based) Concurrent Engineering)
Implementation in my Domain + semantics All Applications Trade Terms Taxes Purchase Order Invoice Plan – Execution Tolerencies Event – Sequence of Events Levels of Execution, References Events Kinds of Documents, DatesNumeración Entities Components, Form of Input Transactions Attributes, Keys, Parameters Attributes/Dependencies Fnc.
Implementation in my Domain Analysis & Modeling + semantics Specification in GX All Applications With GeneXus 8.0 Purchase Order Invoice Plan – Execution Event – Sequence of Events Events Entities Transactions Attributes/Dependencies Fnc.
Implementation in my Domain Analysis & Modeling + semantics Specification in GX Specification using K2 Patterns All Applications Con GeneXus 9.0 y K2B Patterns Purchase Order Invoice Plan – Execution Event – Sequence of Events Events Entities Transactions Attributes/Dependencies Fnc.
Implementation in my Domain Analysis & Modeling + semantics Specification in GX All Applications With GeneXus X and K2B Patterns Purchase Order Invoice Plan – Execution Event – Sequence of Events Events Entities Transactions Attributes/Dependencies Fnc.
Implementation in my Domain Analysis & Modeling + semantics Specification in GX Specification using K2 Patterns All Applications Con GeneXus 9.0 y K2B Patterns Purchase Order Invoice Plan – Execution Event – Sequence of Events Events Entities Transactions Attributes/Dependencies Fnc.
Benefits - 2nd Stage Run Time More Semantical Business Expertise Less Complete Technical Expertise Design Time Less Semantical More Complete Applications in my Domain All Applications
Benefits - 2nd Stage Applications in My Domain Applications Business Experts Extensions of Semantic Models (Patterns, DSL) Technological Experts GENEXUS X All Applications