180 likes | 369 Views
Ontology-based Software Engineering. Shao-yen Cheng. Date. Software “ Engineering ”. Are you calling yourself an ENGINEER ? Based on what? SE is NOT a genuine engineering discipline, yet. Lack of fundamental principles Strongly relies on engineering practice instead of science.
E N D
Ontology-based Software Engineering • Shao-yen Cheng Date
Software “Engineering” • Are you calling yourself an ENGINEER? Based on what? • SE is NOT a genuine engineering discipline, yet. • Lack of fundamental principles • Strongly relies on engineering practice instead of science
Software • Essential Difficulties by Frederick Brooks: • Intangibility • Complexity • Conformity • Changeability • “Software is a knowledge repository. The knowledge that is stored in software largely relates to the application domain, and not to software as an entity itself.” - Phillip G. Armour
Software Engineers’ Job • Mostly, communications • Human-to-Human • Human-to-Machine • Machine-to-Machine
Conceptual Modeling • E/R Model • UML
Conceptualization • C = (D, W, R) • D: a set of all elements in a domain • W: a set of all possible worlds in the domain • R: a set of conceptual relations in the domain space <D, W>
Ontology • Ontology • is introduced by Aristotle, the study of being qua being • studies the essence of existence • An ontology • is a artifact developed to express the meaning of a vocabulary. • must be valid in all possible worlds of the domain. • A good ontology limits possible interpretation of a vocabulary
Goals • Knowledge Sharing • Knowledge Reuse
Languages • First Order Logic • OWL • Modal Logic • Higher Order Logic • Logic Programming Language • UML
Application of Ontologies • Neutral Authoring • Specification • Common Access to Information • Ontology-based Search
In Software Engineering Context • Analysis • Domain Ontologies • Design • Component Reuse • Implementation • Coding support • Documentation support
In SE Context (cont.) • Deployment • Semantic Web Services • Maintenance • Traceability
Potentials • Open Ontology • Domain Ontology Libraries • Domain Specific Languages Generation • Model Transformation • Model Driven Engineering
Contribution to 577 • Build a shared knowledge base • Reduce time to learn domain knowledge • Ontology-based search on components
Reference • [1] V. Devedzić, "Understanding ontological engineering," Communications of the ACM, vol. 45(4), pp. 136-144, 2002. • [2] R. d. A. Falbo, G. Guizzardi and K. C. Duarte. An ontological approach to domain engineering. Presented at Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering. 2002, Available: http://doi.acm.org/10.1145/568760.568822. • [3] G. Guizzardi, R. d. A. Falbo and J. G. P. Filho. Using objects and patterns to implement domain ontologies. Presented at 15th Brasilian Symposium on Software Engineering (SBES 2001). 2001, Available: http://doc.utwente.nl/66755/. • [4] G. Guizzardi, G. Wagner and M. S. van. A formal theory of conceptual modeling universals. Presented at Workshop on Philosophy and Informatics (WSPI), Cologne, Germany, 2004. 2004, Available: http://doc.utwente.nl/49866/. • [5] H. Happel and S. Seedorf. Applications of ontologies in software engineering. Presented at In 2nd International Workshop on Semantic Web Enabled Software Engineering (SWESE 2006), Held at the 5th International Semantic Web Conference (ISWC 2006). 2006. • [6] T. S. Dillon, E. Chang and P. Wongthongtham. Ontology-based software engineering- software engineering 2.0. Presented at Software Engineering, 2008. ASWEC 2008. 19th Australian Conference on Title={Ontology-Based Software Engineering- Software Engineering 2.0. 2008, . DOI: 10.1109/ASWEC.2008.4483185.
References • [7] P. Kruchten, "An ontology of architectural design decisions in software intensive systems," In 2nd Groningen Workshop on Software Variability, pp. 54-61, Dec. 2004. • [8] W. Hesse. Ontologies in the software engineering process. Presented at In (R. Lenz Et Al., Ed.): EAI 2005 - Proceedings of the Workshop on Enterprise Application Integration. 2005. • [9] P. G. Armour. Software: Hard data. Commun ACM 49(9), pp. 15-17. 2006. Available: http://doi.acm.org.libproxy.usc.edu/10.1145/1151030.1151043. DOI: 10.1145/1151030.1151043. • [10] D. Gašević, N. Kaviani and M. Milanović, "Ontologies and software engineering" in staab, S. & studer, R. (eds.) , , 2009, pp. 593-615," in Handbook on Ontologies, S. Staab, Ed. Berlin-Heidelberg, Germany: Springer, 2009, pp. 593-615. • [11] N. Guarino, D. Oberle and S. Staab. What is an ontology? pp. 1-17. 2009. Available: http://dx.doi.org.libproxy.usc.edu/10.1007/978-3-540-92673-3_0. DOI: 10.1007/978-3-540-92673-3_0.