1 / 21

Domain Engineering

Domain Engineering. Arie van Deursen May 2001. Software Product Line. SAP, Baan, PeopleSoft. Group of products sharing a common, managed set of features to satisfy the needs of a selected market Examples: Telephone switches: 5ESS Mortgage / insurance portals

toby
Download Presentation

Domain Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Domain Engineering Arie van Deursen May 2001

  2. Software Product Line SAP, Baan, PeopleSoft • Group of products • sharing a common, managed set of features • to satisfy the needs of a selected market • Examples: • Telephone switches: 5ESS • Mortgage / insurance portals • Customer Relation Management • On line banking

  3. Object-OrientedApplication Framework • Framework: • Set of cooperating classes embodying an abstract design • For solutions to a family of related problems • Supporting reuse beyond the class level. • Building an appliction consists of adding class specializations • Inverse control

  4. Product Line Savings • Economies of scale • Savings from using technology to • produce a greater volume of a single output • with the same or less inputs • Economies of scope • Savings from using technology to • build a greater diversity of outputs • with the same or less inputs

  5. Domain / ApplicationEngineering • Domain engineering: • Systematic approach to construct reusable assets in a given problem domain • Application engineering: • Use the assets to build specialized software systems in the given domain. • ( Product / customer development )

  6. What is a Domain? • Domain as the “real world” • Adopted in OO / AI community • Domain as a set of systems: • Systematic software reuse community • Domain criteria • Mature, stable, economically viable • Use legacy systems to understand domain.

  7. Domain Engineering • Activity of • collecting, organizing and storing past experience in building (parts of) systems • in a particular domain • in the form of reusable assets • as well as providing means for resuing these assets (retrieve, adapt, assemble, ...) • when building new systems

  8. ODM: Organization Domain Modeling 1. Plan Domain: • Set objectives, analyze stakeholders • Scope domain: selection criteria • Define domain: boundary conditions, examples, counter examples, main features, • relations to other domains.

  9. ODM (2) 2. Model Domain • Acquire domain information: experts, legacy systems, literature, prototyping, ... • Describe domain: lexicon of terms, commonality & variability: feature diagrams • Refine domain: build overall domain, analyze trade offs, innovative feature combinations

  10. ODM (3) 3. Engineer Asset Base • Scope: correlate features and customers, prioritize, select. • Architect: external and internal constraints, components, domain-specific languages, generators, framework, ... • Implement: OO, code generation, ...

  11. Transmission Electric Gasoline Manual Automatic Car Feature Diagram Car Car body Engine Pulls trailer

  12. Car Class Diagram CarBody Car[transmission] Trailer O..1 O..1 ElectricGasolineCar [transmission] ElectricCar [transmission] GasolineCar [transmission] ElectricEngine GasolineEngine

  13. Transmission Manual Automatic Feature Diagrams Car Engine Pulls trailer • Node types: • Mandatory / Optional • Alternatives / Or-features • Diagram generates instances • Commonality: feature in all instances • Variation point: optional, alternative, or. • Find variation dependencies. • No implementation bias

  14. Imperative Lists List Length Counter Tracing Ownership Morphology Mono morphic Poly morphic External Reference Owned Reference Copy

  15. Interest Rate Products Product Swap Deposit Fixed Deposit Floating Deposit Interest Amount Principle Amount Period Convention Rate Start Date Maturity Date Currency Simple, Dutch, 360, ... DEM, USD, EUR, ...

  16. Finding Features • Use feature starter sets • Record similarities between instances • Record differences between instances • Organize features into hierarchies • Analyze feature combinations • Record additional feature information • Identify more features than needed

  17. Generative Programming • A software engineering paradigm in which • given a particular requirements specification • a highly customized and optimized intermediate or end-product • can be automatically manufactured on demand • from elementary, reusable implementation components • by means of configuration knowledge

  18. Domain-SpecificLanguages • Expressive over variable features • Composition, defaults, dependencies, pragma’s, illegal combinations • Common features built-in / in compiler. • Expression DSL: • Domain-specific computations • Configuration DSL: • Specify a concrete program family member

  19. Further Reading • ODM Guide Book • Generative programming chapter 2 + 4, and examples in chs 12, 13, 14. • From the Transform Wiki: • Annotated Bibliography • Little Languages: Little Maintenance? • Draco transformation system and domain engineering methodology.

  20. Domain engineering Product Line Economy of Scope Domain ODM Variability Commonality Feature Diagrams Class Diagrams Generative Programming Domain Specific Languages Summary

  21. Project • Tool support for feature diagrams • Design language • apply to simple examples • analyze consequences of realistic examples • Implement normalizations • Generate pictures • Suggest class diagram options

More Related