Characterizing Student Proficiency In Software Modeling In Terms of Functions, Structures, and Behaviors
Software modeling is an integral practice for software engineers especially as the complexity of software solutions increase. There is precedent in industry to model information systems in terms of functions, structures, and behaviors. While constructing these models, abstraction and systems thinking are employed to determine elements essential to the solution and how they are connected. However, both abstraction and systems thinking are difficult to put in practice and difficult to teach due to the, often, ill-structured nature of real-world IT problems. Unified Modeling Language (UML) is the industry standard for software modeling but unfortunately it is often used incorrectly and misunderstood by novices. This has also been observed in educational contexts where students encounter difficulty in employing the appropriate level of abstraction in modeling and programming contexts and not necessarily being able to view or treat software systems as being interconnected.
The researcher detailed a multi-methods approach, through the lens of pragmatism, towards understanding patterns of student proficiency with abstraction and software modeling in terms capturing the functional, structural, and behavioral aspects of an information system, as given by the Structures-Behaviors-Function framework. The quantitative strand involved the development of rubrics to analyze functional, structural, and behavioral models given by UML activity diagrams, class diagrams, and sequence diagrams, respectively. The subjects of this study were students enrolled in a sophomore-level systems analysis and design class. Descriptive analysis revealed patterns of modeling proficiency. Students were generally proficient in modeling the system in terms of functions but there was an overall drop-off in proficiency when modeling the system in terms of structures and behaviors. The results of the clustering analysis revealed underlying profiles of students based on abstract thinking and systems thinking ability. Two distinct clusters – high performing students and moderate performing students – were revealed with statistically significant differences between the groups in terms of abstract thinking and systems thinking ability. Further correlational analysis was performed on each cluster. The results of the correlational analyses pointed to significant positive associations between software modeling proficiency and the constructs of abstract thinking and systems thinking. Logistic regression analysis was then performed, and it could be inferred from the regression model that abstract thinking in terms of behaviors and systems thinking in terms of aligning sequence diagrams with activity diagrams were the most important predictors of high performance.The qualitative strand of this study involved a case study approach using the think-aloud protocol centered around exploring how students utilized abstract thinking and systems thinking while constructing software models. The participants of this study were students who had completed the sophomore-level systems analysis and design course. Thematic analysis was utilized to identify themes of abstract thinking and systems thinking within the epistemic games of structural, functional, and process analyses. Two different approaches towards modeling information systems were identified and chronological visualizations for each approach were presented. Overall, it could be inferred from the results and findings of the study that the learning design of the sophomore-level course was successful in equipping students with the skills to proficiently model information systems in terms of functions. However, the students were not as proficient in modeling information systems in terms of structures and behaviors. The theoretical contribution of this study was centered around the application of the SBF framework and epistemic forms and games in the context of information systems. The methodological contributions pertain to the rubrics that were developed which can be used to evaluate software modeling proficiency as well as abstract thinking and systems thinking. Abstract thinking and systems thinking were successfully characterized in the context of information systems modeling. The results of this study have implications in computing education. The suggested instructional approaches and scaffolds can be utilized to improve outcomes in terms of structural and behavioral modeling proficiency.