140 likes | 509 Views
Product Line Architecture for a Family of Meshing Tools. María Cecilia Bastarrica, Nancy Hitschfeld-Kahler, Pedro O. Rossel Computer Science Department, Universidad de Chile {cecilia|nancy|prossel}@dcc.uchile.cl. Agenda. Meshing Tools Software Product Lines Product Line Architecture
E N D
Product Line Architecture for a Family of Meshing Tools María Cecilia Bastarrica, Nancy Hitschfeld-Kahler, Pedro O. Rossel Computer Science Department, Universidad de Chile {cecilia|nancy|prossel}@dcc.uchile.cl
Agenda • Meshing Tools • Software Product Lines • Product Line Architecture • Our Proposal: A Meshing Tool PLA • Product Instantiation • Future Work and Conclusions
Meshing Tools • Meshing tools manage discretizations of certain application domains. • Independently of the application domain, all meshing tools share functionality: • Read the domain geometry and physical values • Generate an initial mesh • Refine, improve, derefine or smooth the mesh according to a quality criterion • Store the mesh into a file
Domain Application Software assets Engineering Engineering Software applications Management Software Product Lines • A software product line (SPL) is a collection of products that serve the needs of a market segment, and that are built from a set of reusable assets.
Domain Engineering:Typical Reusable Assets • Executable software components • Software source code • Reusable libraries • Test sets and test cases • …and the Product Line Architecture
PLA for the Meshing Tool SPL • Flexibility and interchangeability as the main goals, so we propose a layered architecture: • User Interface • Algorithms • Model • Input/output
xADL PLA specification: • Primitives for optional elements (dashed components and connectors) • Graphical intuitive representation • Tool support for modeling and code generation
Application Engineering: Product Instantiation • Generating products using the proposed PLA implies two steps: • Component type selection • Implementation selection
Conclusions • SPL are specially suited for meshing tools • Having a tested PLA helps defining new family products • Clearly defining the PLA brought multiple benefits: • Basis for communication • Possibility of consistency analysis • Potential for instance meshing tool generation
Conclusions (cont.) • Formally defining the PLA makes it possible to (semi) automate the process of instance tool generation: • The PLA can be considered as a high abstraction level model • The component type selection is a model transformation into another one where there are no optional elements • The implementation selection precisely determines which pieces of code form part of the specific tool • In a last transformation, all pieces are put together to generate the tool code
Work in Progress • Refine the PLA definition so that it includes all the guard conditions required for each transformation step. • Meshing tool component adaptation so that they comply with the interfaces defined by the PLA. • Implement a framework that supports all the tool generation process using MDE concepts.