Department of Innovation IT University of Copenhagen March 2004 Kernel Design I: Design of a configurator product Henrik Reif Andersen.

Slides:



Advertisements
Lignende præsentationer
Præsentation på M3UG 2011.
Advertisements

Social media marketing: Position of the Nordic Consumer Ombudsmen EU Consumer Summit 1 and 2 April 2014 Henrik Øe Consumer Ombudsman Denmark.
Hej.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Database Normalization without Mathmatics
Giv medarbejderne adgang til centrale systemer – lige ind i Office Inspirationsseminar 31. oktober 2006.
Intro Variabler - datatyper. 2. forelæsning Hvad skete sidste gang Hvad er PHP? Kursussammensætning: læse – newsgroup – forelæsning – øvelsestime – aflevering.
CUSTOMER JOURNEYS 12/9.
Beskyt & bevar kontrol med information CRM LOB ERP Find information, viden & øget indsigt i forretning Enklere samarbejde mellem mennesker Reducerede.
Disposition Hvad er et ERP system Hvem er Oracle Hvordan virker Oracle
Microsoft Dynamics – synergi mellem forretningsområder Susanne Christoph Dynamics Sales Lead
Issue 1: Which technologies and strategies is needed to develop solutions to realize the long-term goals of making the whole building stock independent.
Kristian F. Thomsen infrastructure specialist i edgemo Claus Egeberg-Gjelstrup infrastructure specialist i edgemo
Reliable Architecture Ved Henrik Bærbak Christensen Reflective Architectures Emne: reflective architecture overview 11 december 2009.
Stig Irming-Pedersen ASP.NET MVC Partner Copenhagen Software.
Tekst starter uden punktopstilling For at få punkt- opstilling på teksten, brug forøg indrykning For at få venstre- stillet tekst uden punktopstilling,
Intro Evaluering De sidste to gange?. HTTP, cookies og sessions Forelæsning nr 10 Tilbage til trafikken mellem server – client Sende HTTP-request og respons.
Electric power is electric particles moving through metal, semiconductor or graphite and special fluids (electrolysis). Some kind of gas are able to conduct.
Aalborg University – Department of Production Introduction to Industry Foundation Classes (IFC) Kaj A. Jørgensen Aalborg Universitet, Institut for Produktion.
CORBA/e CORBA and Embedded Systems OOMI 27. November 2006.
Institut for Sprog, Kultur og Æstetik Engelsk, semester, Tekstanalyse og -historie Jens Kirk Session One: "An Introduction to the Analysis,
Informationssøgning Eksempler på nyttige hjemmesider.
 Learning happens away from your desk!  Succeed and fail!  Start small!  ”Opportunities is missed by most people because it is dressed in overalls.
Forretning og Ledelse – Lektion 7
Usability ITU, forår 2008 Usability ITU Forår 2008 ’Teori 2’ 3. kursusgang, 14. februar 2008.
Velkommen Vi starter kl Hvis du vil vide mere om Microsoft BI... Spørg en af os ved standen i foyéen Se kursustilbud og data sheet i din deltagermappe.
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester 6, kursusgang Databaser (1) Kjeld Svidt
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 11.
Intro Evaluering De sidste to gange?. HTTP, cookies og sessions Forelæsning nr 10 Tilbage til trafikken mellem server – client Sende HTTP-request og respons.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Interview service in Statistics Denmark Structure and Surveys.
Unified Modeling Language
DB analyse og modellering Jesper Tørresø DAB1 F Februar 2008.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 7.
Sted og dato (Indsæt --> Diasnummer) Dias 1 Navn på enhed (Indsæt --> Diasnummer) Davenport et al. (2000) Vs Adelman et. Al (2002) Possible states for.
Slides for: Software requirements - Styles and techniques Soren Lauesen 6. Quality requirements January 2007 © 2002, Pearson Education retains the copyright.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 4.
Project Management Managing The Progress of Projects.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Algoritmer og Datastrukturer 1 DAIMI Greylisting Gerth Stølting Brodal Aarhus Universitet.
 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.
IT-Universitetet i København Rued Langgaardsvej 7 DK-2300 København S ESP-Net The ESP Company Network Yvonne Dittrich IT-University in Copenhagen Software.
ANALYSE AF WEBADFÆRD - OAW OAW – LEKTIONSGANG 4. ANALYSE AF WEBADFÆRD - OAW SUMMARY, LECTURE 3 (Extended) Common Log File Format Host, Ident, Authuser,
Learning Set 3 : Lesson 1 : Slide 1 Proteins Move Based on Size lactase tyrosinase.
Mikkel deMib Svendsen Duplicate Content & Multiple Site Issue Mikkel deMib Svendsen
Standarder og ISO 9001 som ledelsesværktøj
EERA Design Tool for Offshore wind farm Cluster (DTOC) Peter Hauge Madsen. Director Charlotte Hasager. Senior scientist DTU Wind Energy Support by EERA.
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
1 (c) W. J. Dally Digital Design: A Systems Approach Lecture 12: Timing.
Ole Kjeldsen Direktør, Platform & Udviklere Microsoft Danmark … a.k.a. Software + Services Hvorfor, Hvordan &
System & Metode Præsenterer for GS Gruppen Brædstrup den 7. december 2004.
Underoverskrift 17 pkt bold hvid Maks. 2 linjer med respekt for evt logo Indsæt billede >Klik på billedikonet og indsæt billede Efter indsættelse >Højreklik.
Indsæt nyt billede: Format: B 254 x 190,5 mm Efter indsættelse, højreklik på billedet og placér det bagerst. Delete det gamle foto Geodata for Everyone.
1 Finn Jensen CEO Password for iSeries COMMON præsentation 5.feb
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Drug/Device Combination Products IFF erfagruppemøde
Integrated Control Panels - Udnyt de digitale muligheder
Dorte, Ida, Janne, Nikolaj, Alexander og Erla
DB analyse og modellering
Sense My City Develco A/S.
Compositional Design Principles “SemiCiv”
Software Testing Software testing.
MaaS i Europe Rasmus Lindholm.
Hvor er værdien af intern kommunikation?
Hot work Planning: 01.Februar 2008 Outdoor: 01.Februar 2008
Ændring af IR M&R Styrelsen for Dataforsyning og Effektivisering
Algoritmer og Datastrukturer 1
Smart Data Tool (SDT) In Sales
Præsentationens transcript:

Department of Innovation IT University of Copenhagen March 2004 Kernel Design I: Design of a configurator product Henrik Reif Andersen

Goal: To design a software product for developing configurators to be used in various areas of applications Plan: 1. The configuration problem: examples & basic theory 2. Kernel architecture 3. Platforms & implementation technologies 4. Licensing 5. Extensions Overall goal & plan for lecture

Plan: 1. The configuration problem: examples & basic theory 2. Kernel architecture 3. Platforms & implementation technologies 4. Licensing 5. Extensions

Examples: * 8 queens ( ) * bikes ( ) * othershttp://localhost/configit/Queen/queen.asp

Theory

Det interaktive konfigurationsproblem Alle mulige konfigurationer Alle gyldige konfigurationer En (interaktiv) konfigurator skal: 1.Sikre man ender med en gyldig konfiguration 2.Guide brugeren frem mod målet

Interaktive konfiguratorer baseret på produktmodeller Produktmodel: x 1,..., x n parametre / variable D 1,..., D n værdier / domæner r 1,..., r m regler / formler Svarer til een stor formel φ( x 1,..., x n ) som angiver de gyldige konfigurationer En bruger vælger en parameter og en (gyldig) værdi x = v Konfiguratoren svarer med de gyldige værdier V 1,..., V n for alle parametrene

Eksempel: Mærkelige t-shirts... color: [ black | white | red | blue ]; size: [ S | M | L | XL ]; print: [ MiB | StW ]; if print = MiB then color = black; if print = StW then size = L or size = XL; [] black[] S[] MiB [] white[] M[] StW [] red[] L [] blue[] XL

color: [ black | white | red | blue ]; size: [ S | M | L | XL ]; print: [ MiB | StW ]; if print = MiB then color = black; if print = StW then size = L or size = XL; [] black[] S[] MiB [] white[] M[] StW [] red[] L [] blue[] XL Bruger vælger: color = white Eksempel: Mærkelige t-shirts... √

color: [ black | white | red | blue ]; size: [ S | M | L | XL ]; print: [ MiB | StW ]; if print = MiB then color = black; if print = StW then size = L or size = XL; [] black[] S[] MiB [] white[] M[] StW [] red[] L [] blue[] XL Bruger vælger: color = white, konfiguratoren konkluderer... Eksempel: Mærkelige t-shirts... √√

color: [ black | white | red | blue ]; size: [ S | M | L | XL ]; print: [ MiB | StW ]; if print = MiB then color = black; if print = StW then size = L or size = XL; [] black[] S[] MiB [] white[] M[] StW [] red[] L [] blue[] XL Bruger vælger: size = S, konfiguratoren konkluderer... Eksempel: Mærkelige t-shirts... √

color: [ black | white | red | blue ]; size: [ S | M | L | XL ]; print: [ MiB | StW ]; if print = MiB then color = black; if print = StW then size = L or size = XL; [] black[] S[] MiB [] white[] M[] StW [] red[] L [] blue[] XL Bruger vælger: size = S, konfiguratoren konkluderer... Eksempel: Mærkelige t-shirts... √√√

Hvor svært er det? Lad os antage værdierne kun er boolske {0,1} og regler kun kan angives ud fra variable, not, og and (SAT) Spørgsmålet findes x 1,..., x n så φ( x 1,..., x n ) er sand er NP-fuldstændigt (Cook 1972). Essensen er: Det er nemt at checke en løsning Det er svært at finde en løsning

Interaktiv konfiguration: Rigtig mange SAT- problemer! Når en bruger har valgt x 1,...,x k skal man beregne de gyldige værdier for x k+1,..., x n. Det svarer til et SAT-problem for hver mulig værdi x i = v. Nogle konfiguratorer undgår at løse SAT-problemer, ved 1.Kun at tillade valg i fast rækkefølge 2.At begrænse regler så de kun taler om værdier der er kendte 3.Kun at beregne gyldige værdier for x k+1 Det giver dog problemer med anvendeligheden: 1.Dead-ends kan ikke undgås 2.Svært at lave og vedligeholde produktmodellen 3.Fasttrådet rækkefølge giver dårlig brugergrænseflade

Interaktiv konfiguration: Der skal løses rigtig mange SAT-problemer! Der findes ingen algoritme som altid løser SAT effektivt! Alle algoritmerne kan tage eksponentiel tid. Det er ubehageligt! (2 n vokser hurtigt, n=10 2 n =1024, n=40 2 n =1 billion, n=600 2 n =antal elementarpartikler i universet) Man må anvende algoritmer som "oftest" virker godt. Eksempler: Constraint propagation Virtual Tabulation

rules complex search software rules VT generation VT lookup offlineonline configurator constraint propagation virtual tabulation Interactive Configuration: Virtual Tabulation NP-fuld. P

Gyldige domæner Produktmodel: x 1,..., x n parametre / variable D 1,..., D n værdier / domæner r 1,..., r m regler / formler Kerne-operation: givet værditildeling l = [xi1 = vi1, xi2 = vi2,..., xik = vik] beregn (V1,..., Vn) = valid_domains(l)

Eksemplerne igen * 8 Queens: produktmodel og valid domains? * Bikes: produktmodel og valid domains?

Plan: 1. The configuration problem: examples & basic theory 2. Kernel architecture 3. Platforms & implementation technologies 4. Licensing 5. Extensions

Summary: Build configurator tool based on Virtual Tabulation (VT) with the two key-ingredients: - a VT generator - a VT runtime (with valid_domains(l) ) Questions: 1. Overall structure? 2. Interfaces? 3. Components? Kernel architecture (I)

Kernel, two parts: 1) VT generator VTgen: XML (product model) -> XML (VT) 2) VT runtime load: XML (VT) -> () valid_domains: XML (l, choices) -> XML (V1,...,Vn) Kernel architecture (I)

Plan: 1. The configuration problem: examples & basic theory 2. Kernel architecture 3. Platforms & implementation technologies 4. Licensing 5. Extensions

Platforms for: * Development environment? (Notepad, eller anden teksteditor, alt...) * VT generator? (Windows, command line (.exe)) * VT runtime? (Java,.NET – kerne måske i C) * Web-server functionality? (ASP.NET, Servlets ok, php: måske?) Platforms & implementation technologies

Plan: 1. The configuration problem: examples & basic theory 2. Kernel architecture 3. Platforms & implementation technologies 4. Licensing 5. Extensions

What of the licensing models from the book can be used and how? 1: Hosting-model, VT-generator og VT-runtime hostes undtaget evt selve ASP-siden 2: Salgs-model med to elementer VT- generator, VT-runtime 3: Pay-per VT-generation, baseret på størrelse 1. pay-per VT-generation, gratis runtime + engangsfee 2. perpetual på VT-runtime 3. rental 4. transaktionspris pr valid-domains ved hosting 5. størrelse af modellerne Licensing

Plan: 1. The configuration problem: examples & basic theory 2. Kernel architecture 3. Platforms & implementation technologies 4. Licensing 5. Extensions

Extensions 1. Multi-language 2. Force-functionality 3. Computations (e.g. prices) 4. Embedded configurator 5. Database Integration

Extensions 1. Multi-language ( ) 2. Force-functionality 3. Computations (e.g. prices) 4. Embedded configurator 5. Database Integrationhttp://localhost/configit/Tshirt/tshirt.asp

Extensions 1. Multi-language 2. Force-functionality (revisit 8 queens, bike) 3. Computations (e.g. prices) 4. Embedded configurator 5. Database Integration

Extensions 1. Multi-language 2. Force-functionality 3. Computations (e.g. prices) (Psion) 4. Embedded configurator 5. Database Integration

Sales Configurator Case:  Psion Teklogix is a global provider of customizable solutions for mobile computing and wireless data collection  Use Configit as its configuration-based sales support solution in N. American and EU operations, ensuring sales staff are working with complete, accurate product configurations in a standard web browser  Benefits:  offline and online configuration  customer needs are addressed faster  greater accuracy in orders and quotes  increased customer satisfaction  substantial improvement in efficiency and productivity for sales operations  Configit provides a unique extraction tool for Baan ERP systems, and is fully integrated with Psion’s CRM system

Prices: * How are prices computed for a product? * How should we support them?

Extensions 1. Multi-language 2. Force-functionality 3. Computations (e.g. prices) 4. Embedded configurator 5. Database Integration

Extensions 1. Multi-language 2. Force-functionality 3. Computations (e.g. prices) 4. Embedded configurator 5. Database integration