Reflecting current industry trends, most computer science and software engineering degree programs place strong emphasis on the Unified Modelling Language (UML) as a graphical approach to software design and requirement analysis. To a lesser extent, formal methods utilizing languages like Z are found within many degree programs, but often only as a recommended elective as suggested by IEEE Computing Curricula 2001. Data flow diagrams (DFDs) and other graphical techniques are also included in the curricula of many programs. The various approaches are often taught in isolation, with little connection demonstrated between them. We describe the benefits of an integrated approach when teaching these design formalisms to undergraduate students. A significant educational benefit of an integrated approach is that it fosters a deeper understanding of the notational semantics available in any one technique. Co-development utilizing multiple techniques empowers the student to exploit the strengths of alternate representations of the same model. It also provides a rigorous means to analyse the correctness and consistency of graphical design representations by utilizing more formal methods.
['B.R. von Konsky', 'Mike Robey', 'S. Nair']
Integrating design formalisms in software engineering education