Developing Industrial Cases for Teaching Software Engineering – A Lesson Learned

Software engineers are provided with an enormous choice of technology for improving the quality of software. Being intangible, software products tend to be more intricate to build than any other artifacts. The selection of technology can thus become a critical factor for the success of software development. Software engineers are expected to be well-versed in various technologies to enable them to decide the best one for a particular development project. Sensible decisions however require not only understanding but also active minds, which can be achieved through meaningful learning. Being a discussion-based learning approach that encourages students to exploit knowledge and understanding of the subject matter, the Case Method seems to be a practical teaching and learning option. This method entails developing specific cases that promote exploration and critical thinking. To ensure the developed cases are useful, they should be evaluated. This paper presents a practical methodology for developing as well as evaluating industrial cases for teaching software engineering through the Case Method. It also shares some important lessons learned from the process. These lessons act as a guideline for future case developers to compose useful cases and motivate software engineering instructors to use cases in teaching.


Introduction
Software Engineering (SE) incorporates facets of software production from its initiation to implementation (Sommerville 2010).Fundamentally, SE applies engineering principles to software.It refers to the organised, restricted and measurable approaches concerning software construction.This includes the development of tools, methods and theories to support software production and management (IEEE, 2004).
An SE course encompasses the core principles of software construction and maintenance.These are requirements engineering and design; development; validation and verification; evolution; and management.The course aims to produce knowledgeable software engineers for the future.As software continues to rapidly evolve, the SE community is obliged to introduce a variety of software technologies over time.Software engineers therefore have to deal with a range of options during development and maintenance.They must be wise enough to select and use the most suitable technology for a situation at hand.To be competent software engineers that are relevant to the industry, SE students should thus be equipped with strong fundamentals and regularly exposed to practical approaches and technology (Wohlin & Regnell, 1999).
Due to the fact that SE mainly concerns principles, the bearing of SE course currently appears to be conservative and unidirectional.The learning process is arid and less interactive, as SE topics are usually presented using conventional lecture-based methods.Students appear to be trained as followers rather than decision makers.As a result, they are not creative and innovative enough in generating solutions.This practice is unhealthy and counterproductive.It is hence imperative to find an alternative method that can make the teaching and learning of SE be more meaningful (Varma & Garg, 2005).Meaningful learning can only be carried out when students are actively involved in the process (Sivan et al., 2000).
Case Method (CM) has been introduced as one possible approach for meaningful learning.CM consists of presenting students with a case, in this way putting them in the role of a decision maker facing a problem (Hammond, 1987).This approach enables students to learn by doing and teaching others through discussions of actual situations (Leenders et al., 2001;Naumes & Naumes, 2011).By using cases, students analyse the thoughts and decision-making process of real people who faced real problems in real settings.They are indirectly being trained to confront real issues and be accountable in proposing practical solutions.
There are two main activities in CM: developing cases, and teaching and learning with cases.This paper presents a practical methodology for developing industrial cases for teaching SE through CM.The methodology includes not only case preparation, but also case evaluation.Besides the methodology, the paper aims to share some important lessons learned from the process.The paper is organised as follows.The next section provides related work using CM.Section 3 explains the methodology used in preparing and evaluating the case, whereas Section 4 discusses the lessons learned.Finally, Section 5 concludes the paper with a summary of the main findings and the potential for future work.

Background
Social sciences such as Law, Psychology, and Sociology, have employed CM for decades as a pedagogical tool in teaching and learning.CM began in Harvard Law School in 1870, and was later adopted by Harvard Business School (Corey, 1998).The most essential asset of CM is the cases that are being used in teaching and learning a particular course.A case is actually a narrative that describes or simulates a certain real event (Ellet, 2007), which took place at a real organisation.It usually contains information about a specific organisation, its business and the people involved.
There are three primary characteristics of a case: a significant issue to be addressed, adequate information that can be the basis for generating solutions or decisions for the issue, and finally, the solutions are not obvious.The case is normally accompanied by teaching notes, which guide instructors in using the case for teaching purposes (Erskine et al., 1998).A good case stimulates debates and discussions among students and urges them to think laterally.Such cases would encourage students to use their analytical and synthesising skills.To achieve this, case developers need to properly plan and craft cases to tailor the audience as closely as possible, localising and personalising them to some extent.The developed cases must deeply integrate with the curriculum content, as well as meet the course objectives in order to be useful (Bolinger et al., 2011).In addition, the cases must also relate to the students in a manner consistent with the theory and abstractions they are learning.In this way, students are able to develop their own experience as the course progresses (Fuller et al., 2002).
The concept behind learning by using cases is that students put themselves virtually into the shoes of the key actors or so called protagonists.The protagonists are real people who have faced critical issues and desperately need solutions.There are two main phases in using CM: individual preparation, and group discussion.The former requires students to meticulously analyse the situations at hand, develop alternatives, and later select the best possible solutions.The latter involves communication, and defending the proposed solutions through group discussions.In general, individual preparation helps students to think independently, whilst group discussion improves their self-confidence and collaboration with others (Leenders et al., 2001).SE as a profession is practical in nature.To create relevance to the industry, the source of information for SE cases should be from the industry itself.Several SE instructors have made efforts to build cases themselves, rather than reusing the available cases provided by textbooks.For example, Burge and Troy (2006) developed cases by using information obtained from their institution's alumni.The alumni, who came from various domains, shared real problems that their organisations faced.In return, the organisations received unbiased problem assessments and creative solutions that were generated by students through the developed cases.The cases that they built were suitable for a six-week project, with the writing process taking 3 to 4 months.When implemented in the course, the instructors found that their students improved significantly in analysing problems, as well as in communicating findings, both in writing and orally.
Another case development effort collaborated with industrial partners, which were the sources for the cases as well as their sponsors (Bolinger et al., 2010).The instructors believed that to be successful in producing students who are technically competent and skilled problem solvers, there is a need for integrating business knowledge with technical, legal, and cultural awareness.They jumped at the opportunity to gain as much information as possible from their students, who participated in industry-sponsored and funded-research projects.Due to the abundance of possible issues to be considered as cases from the industry, they created a systematic, repeatable, and measurable method for transforming the above mentioned projects into course materials (Bolinger et al. 2011).They used a pattern-based approach that supports not only the creation of course materials, but also communication with students.The approach helped case contributors to explicitly and coherently share their experiences, provide examples, and highlight their creativity as case authors themselves.Hilburn and Towhidnejad (2007) developed a set of mini cases that covers the complete software development life cycle.This work was a continuation from an earlier study (Hilburn et al., 2006), when the authors first advocated the use of the case study approach in training and educating software engineers.The cases evolved from one case that taught the building of a single software product.Their initial use of cases in teaching and learning had made students enjoy the course, and kept them motivated.The cases addressed a wide range of issues in SE.They could be used throughout the course as well as customised according to multiple courses and teaching techniques (Salamah et al., 2011).
In another work by Clarke et al. (2005), cases were developed to educate first year university students in Java programming.The authors used guidelines by Searle and Clarke (2000) in developing the cases.Similar to other case developers, they developed their cases based on real events, which made students highly motivated and contributed to the enjoyment of developing real-world applications.
Based on the reviews of previous studies, it can be seen that not many SE instructors developed their own cases to be used in teaching.SE instructors in general tend to use case studies provided by the textbooks that they use for the course.Although convenient, the provided cases are sometimes superfluous, artificial, and not localised.Moreover, thus far, the studies on SE case development mainly describe the cases and their success stories.The methodology used and the experience faced by the case developers were not explicitly articulated.This paper intends to address this gap.

Methodology
The authors have developed a case that is currently used for teaching SE in the faculty.The case was developed by referring to a real local organisation in Malaysia.The case was written in two languages: English and Bahasa Melayu.It is five pages in length on A4 sized paper.The case concerns the requirements engineering, particularly those needed in the elicitation process.It concerns project establishment and people management matters.
The methodology used for developing the case is divided into two stages, namely Case Preparation, and Case Evaluation.The latter is the last activity of the former.The details of each phase are as follows.

Case Preparation
There were three major phases involved during this stage, namely Setting-up, Execution and Wrapping-up, as shown in Figure 1 below.In the first phase, the instructors, who were also the authors, discussed SE issues and identified the specific theme to be written as a case.To ensure the course objectives were met, the theme was aligned with SE topics.The potential organisation that could be the source of information for the case was later determined based on the identified theme.For example, the case developed in this study was intended to address people management issues during the requirements elicitation process.The selected organisation must therefore have a dedicated requirements team that captures the requirements of its software systems in-house, where such issues are often experienced.At the outset, those at the highest level of management of the selected organisation were contacted in a bid to obtain access to their resources.Once approved, management assigned specific personnel to take part in the case project.The personnel would then be the main contacts of the authors writing the case.In order to establish a professional relationship between the two parties, the authors produced a plan on how the case project would be conducted, which was reviewed by the organisation's personnel.This included the handling of ethical and confidentiality matters.
The information included in the case was collected during the second phase by interviewing the identified personnel.Occasionally, unpublished documents in the organisation were reviewed whenever permitted.Some data was gathered from publicly available materials such as from the organisation's portal.The interview and review sessions were iterative.The interviews were open-ended and done via face-to-face meetings.To generate stories, the collected data was analysed by using the grounded theory approach (Strauss & Corbin 2008).Once completed, the case was given to the organisation for review and approval as public domain material.Several revisions were needed before the case could be released.
Finally, the third phase involved the preparation of teaching notes and a case teaching plan so that instructors could use the case in the classroom environment.The notes related the case to the pedagogy.Lastly, the prepared case was tested via a pilot study in a real class setting.The detailed explanation of this activity is explained in the next section.

Case Evaluation
Thirty-two students were purposefully sampled to participate in the pilot study.These were Executive Undergraduates who had enrolled in the SE course for one semester.'Executive' refers to part-time and mature students who have careers outside of university.They suited the population of the study, as they had experience learning SE using CM.Moreover, they had had industrial exposure with which to verify the practicality of the case.Figure 2 illustrates the steps involved in this activity.
On the 6th week of the 14-week semester, the case and the related questions regarding the case were given to the students.This particular week was chosen because it was at this point that the topics concerning the case had been covered in lectures.The instructor allocated two weeks for the students to prepare answers for the questions in the form of an individual assignment report.During the discussion session, selected students presented their solutions, while the rest discussed theirs under the guidance of the instructor.At the end of the session, the instructor summarised the discussion to ensure the learning outcomes were met.This procedure was documented in the teaching notes and case teaching plan prepared in the earlier stage.Before leaving, each student completed a reflection survey regarding the case.Besides aiming to improve the content of the case, the survey was intended to investigate whether the case was accepted as a teaching and learning method among SE students.The students were asked about their preferences towards CM, its usefulness in learning SE, and its suitability for inclusion in examinations.As a reward, marks were given to the students based on the prepared report, class participation, and usefulness of the feedback given.These covered 10% of the total course marks.

Discussion
The experience of preparing and evaluating the case were invaluable to the authors.They learned a number of important lessons during the process at each stage.The lessons may guide future SE case developers to produce cases, as well as encourage case instructors to use cases as a tool in teaching SE.They may take the necessary actions in advance to avoid similar encounters.As mentioned previously, the lessons were grouped into Case Preparation and Case Evaluation as follows.

Case Preparation
The authors found deciding on the right topic(s) to be the theme(s) of a case to be important.To include all SE topics in one case seemed too ambitious, expensive, and risky.This may cause the case development to be unnecessarily complex.The case developed in this study, for example, took 3 months to complete, despite containing only one topic with two themes.On the other hand, the omissions of some trivial topics should not jeopardise the learning outcomes of the course.Case developers therefore have to carefully select SE issues that are noteworthy enough to be considered as themes for a case.One possible indicator is to choose topics that are difficult for students to grasp, or that they seldom have the chance to experience.As a costly effort, the themes should be significant and relevant to SE students for a fairly long period.The cases should therefore not be too technologically-dependent or contain sensational and seasonal issues that may change over time.
Choosing and handling subject-matter experts is another challenge that case developers face.The experts are normally busy software engineers who have other priorities and work according to strict schedules.They are also task-oriented people with designated tasks, which may vary from one project to another.As such, engineers need to be selected based on their main field of expertise and interests they are able to share.To ensure better commitment from them, the support from top management is required.
Case developers also need to respect and secure the organisation's private information.Only permitted information can be included in the case.Private information is sometimes vital to preserve the utility of a SE case.Case developers have to be creative in composing the stories without directly revealing the organisation's private information.Good writing skills are required to address this concern.In any situation, formal consent from the organisation should be obtained, as the case would become a public domain material.SE issues normally cover three aspects: people, process, and product.Although SE concerns technical matters, it is unnatural to separate the three aspects in SE cases.Case developers must create a balance between these aspects in order to produce realistic cases.In fact, too much technical details may cause cases to be tedious.

Case Evaluation
As stated in the earlier section, case evaluation was done by means of a reflection survey.The results of the survey would give an indication of whether the case, as well as the method of teaching, was acceptable, thus inferring the feasibility of the case.In general, the survey results indicated that the students favour CM more than the lecture-based teaching method.The majority of students preferred the method due to the realism imposed by the case.Furthermore, CM can improve their knowledge in SE and expose them to real decision making processes and applications.During the class discussion, students found that they could share and exchange ideas freely through brainstorming without being constrained by theories.
In terms of including cases in formal examinations, 60% of the students liked the idea.There is no ideal answer or solution in cases; students thus believed that this would allow them to gain marks easily.Cases also allow them to answer questions using previous knowledge, creativity, logic, critical thinking, and most importantly, not from memorisation.Two students accepted the idea conditionally.They thought that it is realistic to include cases in examinations only if they were not too long.30% of students were against the idea because it could be time consuming to read and understand cases.A student highlighted the issue about the objectivity of the answering scheme, as different students might have different views and perceptions.The student was also annoyed by the fact that irresponsible students may give nonsense answers during discussion, and hence, waste the time.A student suggested that cases were better discussed rather than written in examinations because they require extensive thinking and elaboration.
With regard to the case developed by the authors, 94% of students like the stories in the case.They could imagine and feel the scenarios, as if they were the protagonists in the case.On the other hand, one student mentioned that the scope was not wide enough, even though he or she had consumed a lot of time in preparing the answers.Only one student found the case complicated and confusing.The findings of this evaluation were then used to further improve the case.

Conclusions and Future Work
Cases are able to establish a bridge between reality and the theories students learn.The reality of the workplace is effectively brought into the classroom, where cases demonstrate how basic theories are applied in the real world.Students are exposed to real situations and learn how to manage uncertainties and complexities within case settings.Students learn to understand from cases that there are no absolute right or wrong answers, which corresponds more or less to the real world they live in.This would make for more meaningful learning that would assist students once they enter the industry.This paper presented the methodology used and the lessons learned in preparing and evaluating a case for teaching SE.The lessons may be used by future case developers to compose useful cases, and motivate SE instructors to use cases in teaching.For future work, more localised industrial cases about SE should be developed and tested in real classrooms to better understand how the method can be effectively implemented.

Figure 1 .
Figure 1.The phases in case development (preparation and evaluation)

Figure 2 .
Figure 2. The steps in evaluation phase