Journal of Software Engineering and Applications, 2013, 6, 543-553 http://dx.doi.org/10.4236/jsea.2013.610065 Published Online October 2013 (http://www.scirp.org/journal/jsea) 543 Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective Zakarya A. Alzamil Software Engineering Department, King Saud University, Riyadh, Saudi Arabia. Email: zakarya@ksu.edu.sa Received August 5th, 2013; revised September 4th, 2013; accepted September 12th, 2013 Copyright © 2013 Zakarya A. Alzamil. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. ABSTRACT Software engineering has been taught at many institutions as individual course for many years. Recently, many higher education institutions offer a BSc degree in Software Engineering. Software engineers are required, especially at the small enterprises, to play many roles, and sometimes simultaneously. Beside the technical and managerial skills, soft- ware engineers should have addition al intellectual skills such as domain-specific abstract thinking. Therefore, software engineering curriculum should help the students to build and improve their skills to meet the labor market needs. This study aims to explore the perceptions of software engineering students on the influence of learning software modeling and design on their domain-specific abstract thinking. Also, we explore the role of the course project in improving their domain-specific abstract thinking. The study results have shown that, most of the surveyed students believe that learn- ing and practicing modeling and design concepts contribute to their ability to think abstractly on specific domain. However, this finding is influenced by the students’ lack of the comprehension of some modeling and design aspects (e.g., generalization). We believe that, such aspects should be introduced to the students at early levels of software en- gineering curricu lum, which certainly will improve their ability to think abstractly on specific domain. Keywords: Domain-Specific Abstract Thinking; Software Modeling; Software Design; Teaching Modeling and Design; Software Engineering Education 1. Introduction Software engineering disciplines have been taught for many years as individual courses within the curriculum of computing areas such as computer science and infor- mation system, which caused the lack of software engi- neering graduates. Recently, many universities have es- tablished an undergraduate (BSc) and/or graduate pro- grams (MSc) in software engineering, among which is the King Saud University (KSU) in Riyadh, Saudi Arabia that has founded BSc and MSc programs. The BSc in software engineering at KSU was approved in June 2007, and the first batch of students have started the program on the second semester of the academic year 2008/2009. Software engineering community has recognized the importance of software engineering education and has organized several conferences and workshops that are specialized on the software engineering education. Ex- amples of such conferences are the Conference on Soft- ware Engineering Education and Training (CSEET), education track of the International Conference on Soft- ware Engineering (ICSE), and Frontiers in Education conference (FIE). There are a number of software engi- neering education’s studies that have been published in the literature. These studies can be categorized into many fields, such as investigating new teaching methods, inte- grating ethics into computing, approaches to software engineering course project, and enhancements to the software engineering curricula. Professional organiza- tions such as ACM and IEEE have developed a guide- lines handbook for the BSc program in software engi- neering [1]. Software engineering educators face many challenges in delivering the software engineering knowledge and skills that are needed in the labor market. Unfortunately, most of the researches in the area of software engineering concentrate on the practical and managemental issues, and few have investigated how to teach these aspects. The joint IEEE/ACM software engineering 2004 cur- ricula [1] emphasizes the importance of integrating the- ory and practice, so that students can recognize the im- portance of abstraction and modeling, and their influence Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 544 on understanding the domain knowledge beyond the computing discipline. Although the software engineering 2004 curricula provide important information for the instructors to consider for modeling and design courses as well as the course project, most of the instructors need more guidance on how to teach the software engineering disciplines. Moreover, most of the international organi- zations’ standards, such as ABET and SWEBOK, did not provide practical guidelines for teaching software engi- neering disciplines and the capstone project, e.g. [1-3]. Teaching software modeling and design is a major chal- lenge to software engineering educators because of the complexity of software modeling and design concepts when compared to other aspects of software engineering. Also, many software modeling and design techniques and approaches are evolving, and at the same time, not enough practical and only small examples are available for classroom use to illustrate these techniques and ap- proaches [4] . Among the basic design concepts that are taught to the software engineering’s students are abstraction, separa- tion of concerns, and modularity [5]. Abstraction can be defined as the process of forgetting information so that things that are different can be treated as if they were the same [6]. The software engineering’s students were taught two basic rules in abstraction: look at details and abstra ct up to con cepts, and /or ch oose concep ts, then add detailed substructures to move down. Based on this premise, abstraction focuses on two aspects: removing unnecessary details and the process of generalizing con- cepts and finding patterns [7]. Abstraction is very impor- tant and has been considered a “key skill” in computing, that a software engineer should master [8]. A key point that enhances the abstraction in domain analysis is sepa- ration of concerns. Separation of concerns means divid- ing the problem under analysis into independent parts, such as separating system components from their con- nectors. Modularity is a general system concept, typi- cally defined as a continuum describing the degree to which system’s components may be separated and re- combined [9]. So it means that the system is divided into functional units (modules) that make up a larger applica- tion representing the whole system. Abstract thinking is defined in [10] as the ability to use concepts and to make and understand generalizations, such as the properties or pattern shared by a variety of specific items or events. In [11] the abstract thinking is defined as the final, most complex stage in the develop- ment of cognitive thinking, in which thought is charac- terized by adaptability, flexibility, and the use of con- cepts and generalizations. Usually, abstract thinking is compared with concrete thinking which can be defined as predominance of actual objects and events and the ab- sence of concepts and generalizations [10], in which thinking about objects, ideas, or events is within their attributes and relationships. In contrast, abstract thinking is conceptualized or generalized thinking that under- stands each concept in multiple meanings, in which ob- jects, ideas, or events are separated from their attributes and relationships to think “outside of the box” to come up with creative solutions. In this paper we present the perspective of a set of software engineering’s students on the influence of learning software modeling and design on their domain- specific abstract thinking. Software modeling and design in this research is used within the context of system’s software architecture. In this context software design is an activity that creates part of a system’s architecture in which a set of design decisions that are related to the system’s structure, its primary components and their in- teractions, system’s behavior, non-functional properties, etc., are made. In addition, software design considers stakeholder issues, decision about use of COTS compo- nent, architecture styles, and deployment issues. The software modeling is an artifact that captures some or all of the design decisions that comprise a system’s archi- tecture using specific notation. The software model should depict the major element of the architectural de- sign such as components, connectors, interfaces, and configurations [5]. The aim of this study is to understand the impact of learning software modeling and design in improving the students’ ability to think abstractly within specific prob- lem domain, e.g. developing a specific software system. The proposed study was conducted by studying the perception of 107 software engineering’s students at King Saud University, representing 4 batches (levels). The following section presents the motivation of this work, next section describes the related work, then the study’s questions and research methodology are illus- trated, after that the study results are discussed, and fi- nally the conclusion s are presented in the last section. 2. Motivations Most of the computing curriculums start with introduce- tory programming courses that are introduced to the stu- dents using a traditional approach. These courses are taught to students using a so-called late-object approach e.g., [12,13], in which the students learn the basic ele- ments of a programming language, and then they start thinking of the system as real world objects. We have observed that, when teaching software modeling and design, students tend to think about the details of the system components such as the source code and the con- tent of the system’s components, rather than thinking at a high level of abstraction. Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 545 Ideally, we assumed that, abstract thinking should contribute to the students’ skills in mode ling and design- ing software systems. On the other hand, the assumption is that, learning the modeling and design may improve the students’ ability to think abstractly about the domain problem. Software modeling and design introduces the students to the conceptual understanding of domain problem, in which the domain concepts are generalized and separated from their attributes, properties and rela- tionships shared by different objects or events. In addi- tion, abstract thinking may improve the students’ systems thinking by viewing the domain problem as parts of an overall system. Also, it has been reported that, using analogy in teaching can help the students to build a con- ceptual bridge between what they knew and what they are about to learn [14], which may lead to improve their conceptual understanding of the domain problem. Our observation of using analogy of physical buildings with software systems has shown that, students were able to think of the software system as blueprint of the system big picture as they do when thinking about the physical building’s bl ueprint. It has been observed that, in order for students to be competent and skilled in certain subject, they should practice what they have learned in the classroom within a real or semi-real world environment. One of the teaching approaches that expose the students to the real world environment is the course project. Course project is a course work assignment during an academic semester requiring the students to work as a team to develop a software system solution for a specific domain problem. Course project is very important tool that provides the students with the practical modeling and design skills that may lead to abstract thinking toward creating solu- tions for real world problems. There have been many research studies that had shown the benefits of employ- ing the course project to gain the occupational skills nee d ed f or software development, e.g., [15-20]. A l th ou g h , some studies [16] measured the time that students spend on each phase of the project and have shown that most of the time has been consumed in the meetings, students’ involvement in brainstorming with project team’s mem- bers during the early stages of th e system development is a good technique that prov ides them with the oppo rtunity to improve their way of thinking including domain-spe- cific abstract thinking. We believe that, course project as a tool of teaching practical software modeling and design impacts the students’ learning and comprehension of modeling and design and as a result will contribute to abstract thinking. Therefore, we would like to understan d the students’ perspective on the influence that software modeling and design may have on their domain-specific abstract thinking in terms of learning modeling and de- sign in genera l an d course project as a tool in specific. 3. Related Work Software engineering education, relatively, is a new re- search track, in which, teaching software modeling and design has been recognized recently. In [4], a finite-state model has been adapted for classroom teaching of soft- ware modeling. A research study has been performed to determine whether there is a link between the abstraction skills of students and their success in object-oriented modeling [7]. This study has shown that students with high scores in an abstraction test achieve better results in an object-oriented analysis and design module than those with lower scores. In [21], the authors emphasis on the importance of the abstraction and information hiding as fundamental and essential principles in software devel- opment, and should be taught in the early computer sci- ence courses such as computer programming I and com- puter programming II courses, so that educators can use different techniques to provide th e students with th e tools they need to develop their abstract thinking. The authors support their claim with two examples one for computer programming I and another for computer programming II. An iterative teaching approach to teaching object-ori- ented programming has been presented in [22] using modeling languages, in particular UML, to support ab- stract thinking to understand the basic object-oriented concepts. This approach applies constant cycling be- tween design and code, i.e., high and low abstraction levels, by visualizing the concepts, discussing their rela- tion to the abstraction, generating and changing the im- plementation (code), and iterating the process. A visuali- zation model has been proposed in [23] that can be com- bined in teaching process to build a reasonable model for abstract concepts’ teaching to improve teaching. The results of surveying 200 software engineering’s students showed that, students can use and manage knowledge easier and can improve the learning efficiency. In [24], a Model-Driven Engineering (MDE) has been integrated into the software design course through the course project to observe how MDE helps the students to understand modeling concepts and the tools that support them. The results of this study have shown a positive impact on helping students to better understand how models can be used during software design. In [25], a guideline within the context of an Aspect-Oriented proc- ess support has been proposed f or enabling an I ntegrated Development Environment (IDE) to promote abstract thinking. In this stud y lab activities have been conducted within Eclipse environment, in which thirty-three stu- dents studied the abstract thinking, and worked on real- life development task s, where their development steps as Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 546 well as their visible thinking processes were logged by observers, and a reflection on the activity was collected. The authors concluded with that, concrete IDE support for abstract thinking is practical and suggest two kinds of such support, one is concerned with a positive feedback from the IDE in cases where abstraction is used, and the second with cases where the developer is encouraged to use abstract thinking. In [26], an approach has been pre- sented to improve the student’s engineering ability by shifting the engineering education from the simple pres- entation of knowledge toward computational thinking, in which the knowledge and the develop ment are integrated in all courses teaching via training and practice. The pre- sented approach focuses on extraction of fundamental discipline concept of engineering ability development, problem solving-centered organization of courses of soft- ware development tools, initiate the courses of software engineering as soon as possible, and continual training of abstract logical thinking for the purpose of software ab- stract thinking. An experience of teaching modeling at the high school level has been presented in [27], in which the abstract thinking processes involved in modeling are introduced to the students prior to teaching programming and embedded control. A UML modeling has been used to teach students to analyze various applications, systems and problem domains. The study tried to answer if the modeling should be introduced to the high school stu- dents or first year college. The study has shown that, students are learning to model and are finding abstrac- tions for elements in the application domain rather than jumping into implementation too quickly. Also, the data modeling comes naturally, in which students were able to identify the classes, attributes, associations, and state machines involved in sev eral simple systems. In addition students find abstraction is much easier to understand than implementation syntax. An experience of using ab- straction to teach software engineering human aspects has been presented in [28]. The authors suggested intro- ducing reflective and abstract thinking processes into courses that focus on improving students’ analytical skills and problem-solving abilities. Although some of the aforementioned studies have investigated the impacts of modeling and design on ab- stract thinking, many of them are conducted on a focus group of students attending specific courses that were established for such research. However, we would like to study the impact of regular software modeling and soft- ware design courses on students’ ability to think ab- stractly on specific domain without any justification of such courses. Therefore, the purpose of this paper is to investigate the students’ perception of the influence of learning software modeling and design on their domain- specific abstract thinking. 4. Study Questions The purpose of this study is to understand the students’ perspectives on the influence of learning software mod- eling and design on their domain-specific abstract think- ing. As described earlier, hypothetically, learning soft- ware modeling and design as well as involving in a course project may improve the students’ ability to think abstractly. Understanding the students’ perception on such matter will help to validate such hypothesis. There- fore, we have identified two questions that help in und er- standing the students’ viewpoint. The study questions are: 1) In the viewpoint of the students, to what extent learning software modeling and design enhances their domain-specific abstract thinking? 2) In the viewpoint of the students, to what extent the course project improves their domain-specific abstract thinking? 5. Research Methodology and Tool In order to answer the study questions to understand the students’ perceptions, we have developed a questionnaire as a study tool based on abstraction aspects that contrib- ute to domain-specific abstract thinking; namely: gener- alizations (5 statements), separation of concerns (1 state- ment), and modularity (3 statements, including a shared statement with generalization), as well as analogy (1 statement). Also, we have injected one statement as an alarm statement to be used for filtering out the inaccurate responses (e.g., randomly filled questionnaire). In addi- tion, 3 statements (with respect to abstraction) were added to serve the second question of the study. The questionnaire, see the Appendix, consists of 13 state- ments with three choices for each statement (agree, may be, and d isagree), in which 9 statements are d esigned for answering the first question of the study, 3 statements for the second question, and 1 statement as an alarm state- ment. In this questionnaire, we have used a three-point scale instead of the famous five-point scale; because the respondents, in many cases, avoid using extreme re- sponses such as “strongly agree” and “strongly disagree”. In addition, sometimes during responses analysis, the agree responses (“strongly agree” and “agree”) and dis- agree responses (“strongly disagree” and “disagree”) of the five-point scale are combined into two categories of “accept” and “reject” respectively, for normalization pur- poses that leads to three-point scale. The questionnaire’s language has been simplified by substitu ting some words with others for the sake of making it understandable to non-English speaking students. The questionnaire has been used as a tool to under- stand the students’ perspectives on the influence of the Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 547 software modeling and design in building their skills for domain-specific abstract thinking. Students’ perception has been used because learning is very difficult to be measured by standard measurement techniques; therefore, understanding the students’ opinion is the closest way in measuring the influence of learning software modeling and design on improving their domain-specific abstract thinking skill. In order to understand the influence of software mod- eling and design on the students’ domain-specific ab- stract thinking, we have considered a sample of software engineering’s students who finished the modeling and design courses at KSU, namely; SWE313 (Software Process and Modeling) and SWE321 (Software Design and Architecture). The students in these two courses learned and practiced different techniques of software modeling and design via lectures, laboratories, and teamwork project assignments with several practical examples that concentrate on different abstraction as- pects. The targeted sample consists of 107 students rep- resenting 4 batches/gr oups that were admitted to the pro- gram (i.e., their study level in the program, in which batch (1) is the most advanced group in the BSc pro- gram). We were able to get the feedback from 81 stu- dents, in which the questionnaire’s statements were re- cited and explained to the students to assure that they understand them clearly to get a precise feedback. The data was collected and analyzed. Table 1 displays the study sample properties. In order to assure that the questionnaire statements correlate to the study questions, we have computed the correlation co-efficiency of the statements of the study questionnaire to the qu estion that th ey belong to. In addi- tion, we have computed the correlation co-efficiency of each study question to the total score of all study ques- tions. Table 2 displays the correlation co-efficiency of the study’s questions. As can be seen, the study questions are correlated to the total scores of all questions with more than 0.20 which means that the statements of each question belong to th at question with a good correlation. In addition, we have performed a reliability analysis test to assure whether a group of statements that belong Table 1. Study sample properties. Batch# (Group#) Frequency Perc e n t Cumulative Percent Batch (1) 28 34.6 34.6 Batch (2) 8 9.9 44.4 Batch (3) 32 39.5 84.0 Batch (4) 13 16.0 100.0 Total 81 100.0 to a question measure that question. A Cronbach’s alpha has been used to measures how well a set of items (statements) measures a single one-dimensional latent construct (question). When the value of Cronbach’s al- pha is low, it means that the statements measure multi- dimensional construct; however, when such value is high it means that the statements measure one-dimensional construct (the designated question), which indicate the reliability of the study questions. Table 3 shows the value of Cronbach’s alpha for the questionnaire’s state- ments for all study questions. The value of Cronbach’s alpha is high enough to indicate that the questionnaire’s statement s me asure the study quest i ons. We have used other statistical test to understand the variations between the respondents. Analysis of variance (ANOVA) is a general method for studying sampled-data relationships [29]. The method enables the difference between two or more sample means to be analyzed, achieved by subdividing the total sum of squares. We have used the one way ANOVA test (f test) to study the relations between the study samples (4 batches/groups) in terms of their responses variations to identify whether such variation is statistically significant. In case we de- tect any variation between the study samples’ responses, we use Scheffe test to identify the source of such varia- tion. In the following section, we will discuss the results findings. 6. Result Discussion In order to understand the students’ perceptions on the influence of learning software modeling and design in building their domain-specific abstract thinking, we will answer the study questions by analyzing and discussing the students’ responses to the questionnaire’s statements that are related to the abstraction aspects (generalization, separation of concerns, and modularity). As described earlier, five statements are based on generalization, three on modularity (including the shared one with generaliza- tion), one on separation of concerns, one on analogy, and three on abstraction related to the course project. In the following subsections we discuss the students’ responses related to the study’s questions. Table 2. Correlation of the two questions to the total score. Study Question Correlati on Coefficient Number of Statements Q1 0.992 9 Q2 0.917 3 Table 3. Cronbach’s Alpha for the study’s questions. N of Items Cronbach’s Alpha 13 0.957 Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 548 6.1. First Question In the viewpoint of the students, to what extent learning software modeling and design enhances their domain- specific abstract thinking? To answer this question, let us first discuss the re- sponses on the questionnair e’s statements that are related to generalization. Consider Table 4, as can be seen at statement S11, the majority of the students (64.2%) be- lieve that learning modeling and design techniques im- prove their comprehension of different modeling and design concepts such as generalization and decomposi- tion, and 28.4% believe it may help so. Also, when the students were asked about whether focusing on the con- cepts of the system under development would contribute in understanding the system big picture (statement S8), the majority of the students (55.6%) agree on such hy- pothesis whereas 40.7% believe it may do so. These re- sults are supported by the responses of the stu dents when asked whether thinking abstractly contributes to model- ing the big picture of the problem domain, as can be seen at statement S7, 48.1% of the respondents agree on such premise whereas 39.5% think it may contribute to mod- eling the big picture of the problem domain. Additionally, Table 4 shows the students’ responses regarding using the simple-machine approach in describing the problem Table 4. Students’ response s to statements related to gener- alization. Statement Agree Maybe DisagreeMissing S11: Learning modeling and design techniques improves my comprehension of modeling and design concepts such as generalization, decomposition, abstraction, projection/views, and explicitness 64.2 28.4 7.4 0 S8: Focusing o n the concepts of the system under development contributes in unders ta ndin g the system big picture 55.6 40.7 2.5 1.2 S7: Thinking abstractly contributes to modeling the big picture of the problem domain 48.1 39.5 11.1 1.2 S1: Using simple-machine to describe the problem domain simplifies problem understanding 45.7 50.6 3.7 0 S6: Lear ning and applying modeling and design makes me focused on the big picture of the system without thinking in the details 34.6 54.3 11.1 0 domain to simplify problem understanding (statement S1). Simple machine was described to the responden ts as an abstraction of a potential system that will perform a required task. The result shows that 45.7% of the stu- dents believe that using simple machine helps them to understand the problem domain whereas 50.6% of them are not sure. As can be noticed, very few students dis- agree with the aforementioned hypotheses. Such result describes what the students believe as a first impression when learning and applying software modeling and de- sign techniques. However, such results are disturbed with the students’ responses when asked whether modeling and design techniques make them focused on the big picture of the system without thinking in the details. As shown at statement S6, 34.6% of the students agree with such ar- gument, and the majority of the students (54.3%) are not sure of such premise. We believe that, the reluctantly responses come from the fact that, most of the students tend to think in details when modeling and designing a software system, therefore, when asked about being fo- cused on the big picture without thinking about the de- tails, the answer may be rephrased as “well we have been taught to think about the details”. It has been noticed that, most of the computing curriculums, including software engineering curricula, start with programming courses, in which the students learned to look at details to develop the design and then implement it using a selected pro- gramming language. Regardless o f the suitability of such curriculum approach, it certainly, influences the way that students comprehend and practice generalization. We believe that, the students should learn and practice gen- eralization and how to identify the levels between ab- straction and details, in which they can think abstractly about the domain problem without going into very low level of details. Although such responses may be interpreted differ- ently, we believe that, such results can be interpreted as evidence of the advantage of using software modeling and design techniques in learning generalization to im- prove the students’ ability to think abstractly for specific domain problem. As a natural response of the students when exposed to modeling and design techniques, they believed that such techniques may help them to think abstractly about specific domain; however, due to the lacks of enough practical and/or tutorials for software modeling and design, they are likely to look into the de- tails. The second aspect of abstraction is related to modular- ity, which is discussed through the responses of the statements shown in Table 5. But before discussing these responses, let us consider the responses to statement S11 in Table 4, as described earlier, 64.2% of the students Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 549 believe that learning modeling and design techniques improve their comprehension of different modeling and design concepts such as decomposition (i.e., modularity), and 28.4% believe it may help so, which is considered as a positive response towards answering the study’s first question. This response is supported by the responses to statement S2 shown in Table 5, which states whether using diagrams as modeling and design tool helps in modeling and designing the big picture of the system. As noticed, most of the respondents (86.4%) agree on the benefit of using diagrams as a tool for modeling and de- signing the big picture of the system. Also, Table 5 shows the responses to statement S9 on whether the availability of many choices of modeling and design techniques contributes in improving their ability in thinking and co mparin g abstractly, in wh ich 43 .2 % of the responses agree on such premise whereas 37% state it may contribute to thinking and comparing abstractly. Such result indicates that learning modeling and design techniques, most likely, contribute to improving the modularity skill, in which the students can divide the system into functional modules. We believe that, such result is achieved because modularity, unlike generaliza- tion, requires more leve l of details, in which several sys- tem components can be constructed to make up a larger application representing the whole system. The third aspect of abstraction is separation of con- cerns, which is represented by statement S12 that is shown in Table 6. The software component was de- scribed to the respondents as an architectural element that captures a subset of the system’s function ality and/or data. In addition, the software connector was described to the respondents as an architectural element that models and regulates the interactions among components. As can be seen, 43.2% of the students’ responses agree on the hypothesis that learning modeling and design make them able to separate component from connectors, whereas 49.4% believe it may do so. Such result is encouraging towards the influence of the software modeling and de- Table 5. Students’ responses to statements related to mo- dularity. Statement AgreeMaybe DisagreeMissing S2: Using d iagrams as modeling and design tool helps in modeling and design the big picture of the system 86.412.3 1.2 0 S9: The availability of many choices of modeling and design techniques contributes in improving my ability in thinking and com paring abstractly 43.237.0 19.8 0 sign techniques on the abstraction in which almost half of the students believe su ch techniques improve th eir ability of separating different system’s concerns. Another aspect that has been used widely in modeling and design is analogy which has been taught to the stu- dents in the SWE321 course. We have designed one statement to understand the students’ perception on the influence that analogy may have on domain-specific ab- stract thinking. Consider Table 7, which shows the stu- dents’ responses to statement S13 on whether using ana- logy is a good tool to improve their domain-specific ab- stract thinking skill. As can be seen, 74.1% of the re- spondents agree on such premise, whereas 21% think it may do so. We have studied the variations between the respon- dents’ answers to the statements of this question with respect to the students’ batch/group using ANOVA to identify whether such variation is statistically significant. Table 8 shows the variations between the study samples responses to this question’s statements in which f value and the significance is displayed. As can be noticed, there is no significant variations between the responses of the study sample to this question with respect to their batch/group i.e., their study level. The results of this part of the study show that, teaching and learning software modeling and design techniques such as analogy help the students to improve their do- main-specific abstract thinking, however, such improve- Table 6. Students’ responses to the statement related to separation of concerns. Statement Agree Maybe DisagreeMissing S12: Learning modeling and design makes me able to separate component from connectors 43.2 49.4 7.4 0 Table 7. Students’ responses to the statement related to analogy. Statement Agree Maybe DisagreeMissing S13: Using analogy is a good tool to improve my abstract thinking skill 74.1 21.0 3.7 1.2 Table 8. Variations of students’ responses to statements related to the first question. Source of Variance Sum of Squares df Mean Square F ValueSig. Between Groups33.349 3 11.116 0.4720.703 Within Groups1813.491 77 23.552 Total 1846.840 80 Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 550 ment suffers from the students’ lack of a very important aspect of abstraction which is the generalization aspect as has been dis cussed earlie r . 6.2. Second Question In the viewpoint of the students, to what extent the course project improves their domain-specific abstract thinking? It has been recognized that students should be exposed to the real world problems, so that, they can practice what they have learned in a real world environment. Course project has been considered to be one of the most important means in which the students can practice, im- prove, and test their skills. As described earlier, course project is a course work assignment during an academic semester requiring the students to work as a team to de- velop a software system solution for a specific domain problem. In this part of study we investigate whether the course project improves the students’ domain-specific abstract thinking. We have designed three statements, within the study questionnaire, that are related to the in- fluence that the course project may have on improving the students’ domain-specific abstract thinking. In the following paragraphs we will discuss the responses to these statements. Consider Table 9, which shows the students’ re- sponses to statements related to course project. The re- sponses of the students to statement S4 on whether the course project improves the way they think about a problem domain, show that, the majority of the students (61.7%) agree on such hypothesis whereas 30.9% believe it may do so. Also, the students’ responses to statement S3 on whether dealing with real world problem in the course project improves their conceptual thinking about the problem solution, most of the students (77.8%) agree on such premise, whereas 21% think it may do so. In addition, when the students were asked, whether a teamwork and brainstorming with their colleagues make them think abstractly about the system (statement S5), the majority of the students (72.8%) agree with such ar- gument, whereas 24 .7% think it may do so. We have studied the variations between the respon- dents’ answers to this question with respect to the stu- dents’ batch/group using ANOVA to identify whether such variation is statistically significant. Table 10 shows the variations between the study samples responses to this question’s statements in which f value and the sig- nificance is displayed. As can be seen, there is a signify- cant variation at 0.05 between the respondents’ answers to the statements of this question with respect to their batch/group. In ad dition, we have performed Scheffe test to identify the source of such variation and found that there is a significant variation at 0.05 between respon- Table 9. Students’ responses to the statements related to second question. Statement Agree Maybe DisagreeMissing S4: The course project improves the way I think about a problem domain 61.7 30.9 6.2 1.2 S3: Dealing with real world problem in the course project improves my conceptual thinking about the problem solution 77.8 21.0 0 1.2 S5: Teamwork and brainstorming with m y colleagues makes me think abstractly about t he system 72.8 24.7 2.5 0 Table 10. Variations of students’ responses to statements related to the second que stion. Source of Variance Sum of Squares df Mean Square F ValueSig. Between Groups18.104 3 6.035 2.751.048 Within Groups168.884 77 2.193 Total 186.988 80 dents with respect to their batch/group to the favor of batch (1), which is the most advanced group in the BSc program. Such result is understandable because the first batch had experienced more courses’ projects than later batches due to their advancement in the study program, which may contribute to their domain-specific abstract thinking improvement. Although such results show that, most of the students believe that the course project may improve their do- main-specific abstract thinking, we believe that utilizing the course project to improve the students’ domain-spe- cific abstract thinking depends on the nature of the do- main problems that the students work on as well as the activities that associated with the course project such as teamwork, brainstorming, reviewing one another work, and so on. As mentioned earlier, we have inserted one statement (statement S10) as an alarm statement, which states an opposite meaning of statement S9, and has been used to filter out the falsely filled questionnaire. We have exam- ined all responses looking for any randomly filled ques- tionnaire to filter it out as false response, and find noth- ing. 7. Research Findings We can summarize the perceptions of the surveyed stu- dents regarding the influence of the software modeling and design on their domain-specific abstract thinking in Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 551 the following points: 1) Students’ believe that learning modeling and design techniques improve their comprehension of different modeling and design concepts such as generalization and decomposition. 2) Although, focusing on the concepts of the system under development would contribute in understanding the system big picture, most of the students tend to think in details when modeling and designing a software sys- tem which influences the way they comprehend and practice generali za t ion. 3) Students find that, using diagrams as a tool for mod- eling and designing the system under development helps them in comprehending the system big picture. 4) Students think that, the availab ility of many choices of modeling and design techniques contributes in im- proving their ab ility in thin king and co mparing abstractly for specific domain. 5) Students find that the software modeling and design techniques improve their ability in separating different system’s component from their connectors. 6) Students find that, using analogy is a good tool to improve their domain-specific abstract thinking skill. 7) We have found that the course project improves the way they think about a problem domain, which may lead to improving their con ceptual think ing about the problem solution. Additionally, the teamwork and brainstorming with colleagues may help the students to look at the do- main problem differently, which may contribute to their problem-domain abstract thinking. Although such findings show that, learning and prac- ticing software modeling and design concepts contribute to the student ability to think abstractly on specific do- main, students should learn by practice some modeling and design aspects (e.g., generalization) at early levels of software engineering curriculum (e.g., programming and introductory software engineering courses), which cer- tainly will improve their domain-specific abstract think- ing. Although of the encouraging results of the influen ce of modeling and design on students’ domain-specific abstract thinking, this study has been conducted on small software development projects during an academic se- mester. Therefore, more investigation is needed to better understand the influence of software modeling and de- sign on improving domain-specific abstract thinking on larger domains within the real world software develop- ment. 8. Conclusions In this paper, we have presented a study of the students’ perception on the influence of learning software model- ing and design on their domain-specific abstract thinking. This study is designed to answer whether the students think that learning software modeling and design en- hances their domain-specific abstract thinking. In addi- tion, we investigate the students’ perspective on the role of the course project in improving their abstract thinking for specific domain. The study has been performed by surveying groups of software engineering’s students who studied or are studying the software modeling and soft- ware design courses. A questionnaire has been developed to serve as the study tool to answer the study questions. The results of the study have shown that, most of the surveyed students believed that learning and practicing software modeling and design techniques improve their domain-specific abstract thinking. However, such im- provement is suffered by the students’ lack of some basic skills related to modeling and design such as some ab- straction aspects. Therefore, more emphasis has to be considered on teaching and practicing abstraction aspects such as generalization. Although students’ perception on the influence of software modeling and design on im- proving their domain-specific abstract thinking are opti- mistic, many practical modeling and design aspects have to be embedded within the software engineering curricu- lum. Specifically, the course project and the course labo- ratory should offer the students the opportunities to ob- serve practical aspects that improve their domain-specific abstract thinking. In spite of the encouraging results of this study, more investigations are needed to better understand the influ- ence of software modeling and design on abstract think- ing of larger domains. In addition, we believe that, the perception of the software engineering practitioners on the influence of software modeling and design to improve their domain-specific abstract thinking is another dimen- sion that may contribute not only to software modeling and design education, but to the software engineering education in general. Therefore, we plan to investigate the software engineering practitioners’ perceptions on practicality of software design and architecture curricu- lum on their daily tasks, which may help us better under- stand the industry perspectives as well as closing the gap between the industry and academia. REFERENCES [1] IEEE/ACM, Software Engineering, “Curriculum Guide- lines for Undergraduate Degree Programs in Software Engineering, a Volume of the Computing Curricula Se- ries,” 2004. http://sites.computer.org/ccse/ [2] ABET, “Criteria for Accrediting Computing Programs, Computing Accreditation Commission,” 2004. http://www.abet.org [3] A. Abran, J. Moore, P. Bourque, R. Dupuis and L. Tripp, “Guide to the Software Engineering Body of Knowledge (SWEBOK),” IEEE Computer Society Professional Prac- Copyright © 2013 SciRes. JSEA
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective Copyright © 2013 SciRes. JSEA 552 tices Committee, 2004. http://www.computer.org [4] S. Kundu, “Teaching Software Modeling and Design Bas- ed on the Science of Design and Science of Learning,” Proceedings of the IEEE International Conference on Frontiers in Education: Computer Science & Computer Engineering, Las Vegas, 14-17 July 2008, pp. 434-438. [5] R. Taylor, N. Medvidovic and E. Dashofy, “Software Architecture: Foundations, Theory, and Practice,” John Wiley & Sons, Hoboken, 2010. [6] B. Liskov and J. Guttag, “Program Development in Java: Abstraction, Specification, and Object-Oriented Design,” Addison-Wesley, Boston, 2001. [7] P. Roberts, “Abstract Thinking: A Predictor of Modeling Ability?” Proceedings of the ACM/IEEE 12th Interna- tional Conference on Model Driven Engineering Langu- ages and Systems: Educators’ Symposium, Denver, 4-9 October 2009. [8] J. Kramer, “Is Abstraction the Key to Computing,” Com- munications of the ACM, Vol. 50, No. 4, 2007, pp. 36-42. http://dx.doi.org/10.1145/1232743.1232745 [9] M. Schilling, “Towards a General Modular Systems The- ory and Its Application to Inter-Firm Product Modular- ity,” Academy of Management Review, Vol. 25, 2000, pp. 312-334. [10] “The American Heritage Medical Dictionary,” Houghton Mifflin Company, Harcourt, 2007. [11] “Mosby’s Medical Dictionary,” Elsevier, Amsterdam, 2009. [12] P. Deitel and H. Deitel, “Java How to Program: Late Ob- jects,” 8th Edition, Prentice Hall, Upper Saddle River, 2009. [13] C. Horstmann, “Big Java Late Objects,” Wiley, Hoboken, 2012. [14] S. Glynn, “Methods and Strategies: The Teaching-with- Analogies Model,” Science and Children, Vol. 44, No. 8, 2007, pp. 52-55. [15] Z. Alzamil, “Towards an Effective Software Engineering Course Project,” Proceedings of the ACM 27th Interna- tional Conference on Software Engineering (ICSE05), St. Louis, 15-21 May 2005, pp. 631-632. [16] J. Tuyal and J. Garcia-Fanju, “Effort Measurement in Student Software Engineering Projects,” Proceedings of the 30th ASEE/IEEE Frontiers in Education Conference, Kansas City, 18-21 October 2000, pp. F1A-3-F1A-6. [17] T. Reichlmayr, “The Agile Approach in an Undergradu- ate Software Engineering Course Project,” Proceedings of the 33rd ASEE/IEEE Frontiers in Education Conference, Boulder, 5-8 November 2003, pp. S2C13-S2C18. [18] J. Hayes, “Energizing Software Engineering Education through Real-World Projects as Experimental Studies,” Proceedings of the IEEE 15th Conference on Software Engineering Education and Training, (CSEET.02), Cov- ington, 25-27 February 2002, pp. 192-206. [19] P. Robillard, “Teaching Software Engineering through a Project-Oriented Course,” Proceedings of the IEEE 9th Conference on Software Engineering Education (CSEE), Daytona Beach, 22-24 April 1996, p. 85. [20] S. Ludi and J. Collofello, “An Analysis of the Gap be- tween the Knowledge and Skills Learned in Academic Software Engineering Course Projects and Those Requir- ed in Real Projects,” Proceedings of the 31st ASEE/IEEE Frontiers in Education Conference, Reno, 10-13 October 2001, pp. T2D-8-T2D-11. [21] P. Bucci, T. Long and B. Weide, “Do We Really Teach Abstraction?” Proceedings of the ACM 32nd SIGCSE Technical Symposium on Computer Science Education, Charlotte, 21-25 February 2001, pp. 26-30. [22] I. Hadar and E. Hadar, “Iterative Cycle for Teaching Ob- ject Oriented Concepts: From Abstract Thinking to Spe- cific Language Implementation,” Proceedings of the 10th Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts, Nantes, 3-7 July 2006. [23] H. Wei and L. Yao, “Research in Visualization Teaching Method of Program Design,” Proceedings of the IEEE 2nd International Conference on Communication Systems, Networks and Applications, Hong Kong, 29 June-1 July 2010, pp. 180-183. [24] P. Clarke, Y. Wu, A. Allen and T. King, “Experiences of Teaching Model-Driven Engineering in a Software De- sign Course,” Proceedings of the ACM/IEEE 12th Inter- national Conference on Model Driven Engineering Lan- guages and Systems: Educators’ Symposium, Denver, 4-9 October 2009. [25] O. Mishali, Y. Dubinsky and I. Maman, “Towards IDE Support for Abstract Thinking,” Proceedings of the ACM 2nd International Workshop on the Role of Abstraction in Software Engineering, Leipzig, 11 May 2008, pp. 9-13. http://dx.doi.org/10.1145/1370164.1370167 [26] D. Zhenrong, H. Wenming, D. Rongsheng and W. Peizhi, “Exploration of Ability Development of Engineering and Computational Thinking Skills in Software Engineering Majors,” Proceedings of the IEEE 4th International Con- ference on Computer Science & Education, Nanning, 25- 28 July 2009, pp. 1665-1668. [27] C. Starrett, “Teaching UML Modeling before Program- ming at the High School Level,” Proceedings of the IEEE 7th International Conference on Advanced Learning Tech- nologies, Niigata, 18-20 July 2007, pp. 713-714. [28] O. Hazzan and J. Tomayko, “Reflection and Abstraction in Learning Software Engineering’s Human Aspects,” IEEE Computer Magazine, No. 6, 2005, pp. 39-45. [29] G. Clarke and D. Cooke, “A Basic Course in Statistics,” Arnold, London, 1998.
Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective 553 Appendix Study Questionnaire Dear SwE Student This is a questionnaire to take your opinion in the knowledge and skills that you have learned in the soft- ware design and software modeling courses to improve your domain-specific abstract thinking. This question- naire is part of an academic study for the research pur- poses, and doesn’t aim to any trade purposes. The goal of this study is to evaluate whether the approaches that have been applied to your classroom, laboratory, as well as the course project when studying these two courses have provided you with the knowledge and skills needed to improve your domain-specific abstract thinking. Your opinion is very important in this study, so please be pre- cise when selecting th e answer in the following questions. I thank you so much for the time that you have given to fill this questionn aire, and appreciate your cooperation in supporting the scientific research. My best wishes to you in a delight future. Researcher Statement No Using simple-machine to des cribe the problem domain simplifies problem understanding S1 Using diagrams as m o de li ng and design tool helps in modeling and designing the bi g p i ct ure of the system S2 Dealing with real world problem in the cours e project improves my conceptual thi nkin g about the problem solut ion S3 The course project improves the way I think about a problem domain S4 Teamwork and brainstorming with my colleagues makes me think abstractly a bo u t th e s ystem. S5 Learning and applying modeling and design makes me focused on the big picture of the system without thinking in the details S6 Thinking abstractly c o n t ributes to modeling the big picture of the problem d omain. S7 Focusing on the concepts o f the system under development contributes in unde rstanding the system big picture. S8 The availability of many modeling and design tec h niques contributes in improving my ability in thinking and comparing abstractly. S9 The availability of many modeling and design tec h niques confuses me in thinking and comparing abstractly. S10 Learning modeling and desi gn techniques improves my comprehension of modeling and design concepts such as generalization, decomposition, abstraction, projection/views, a n d explicitness. S11 Learning modeling and desi gn makes me able to separate component from connectors. S12 Using analogy is a good tool to improve my abstract thinking skill S13 Copyright © 2013 SciRes. JSEA
|