Integrative Educational Approach Oriented Towards Software And
Total Page:16
File Type:pdf, Size:1020Kb
PAPER INTEGRATIVE EDUCATIONAL APPROACH ORIENTED TOWARDS SOFTWARE AND SYSTEMS DEVELOPMENT Integrative Educational Approach Oriented Towards Software and Systems Development http://dx.doi.org/10.3991/ijep.v3i1.2345 A.J. Stoica1 and S. Islam2 1 Uppsala University, Uppsala, Sweden 2 University of East London, London, United Kingdom Abstract—The paper is based on our academic teaching and between conceptual and operational aspects in software research work in software and system engineering to effec- engineering education. tively develop modern, complex real-life Web application In our educational work, we are guided by: i) lifelong systems. It bridges the gap between academic education and learning preparing our students for applications-oriented industry needs and illustrates how such collaboration can be careers, working in all levels of computer systems engi- successfully developed in the IT area where technology neering in particular software and systems engineering development is rapid. Its scope covers the processes, models, domain; ii) contributions Harlan D. Mills award recipi- technologies, people, and knowledge that have the capability ents: Bertrand Meyer for practical and fundamental con- to contribute to developing such systems. The paper also tributions to object-oriented software engineering, soft- relates to contributions of some of Harlan D. Mills award ware reuse, and the integration of formal methods into the recipients for software engineering achievement, to address above; Barry Boehm for developing empirical software the needs to: i) improve the engineering education in an engineering models that consider cost, schedule, and academic setting, and ii) develop real-life software and quality, as well as software process spiral model, Theory system projects. Hybrid educational methods are applied for student learning that combine class room approach of W and the MBASE approach; Lionel Briand for his work teaching fundamental theoretical concepts and practice via on model-based testing and verification; David Parnas for real world complex projects embedding intelligence in fundamental contributions to large-scale system develop- software and systems products. System thinking demanded ment by establishing software engineering as an engineer- by modern design philosophies is applied to interlink prod- ing discipline. ucts, software, and people. Student groups are developing This paper is structured as follows. Section II presents their projects in an interactive and collaborative manner. software and systems engineering in the academia. Sec- tion III provides our curriculum approach and educational Index Terms—software and system engineering education; strategies. Section IV is dedicated to our activity related to software theories and methods; teaching and learning applied methods for software and system development: a) strategies; systems platforms and architectures; Web-based theoretical concepts, models, and tools; b) practical pro- software; teamwork jects having real customers. Section V presents experience gained and lessons learned. Finally, discussions and conclusions are presented in Sections VI and VII. I. INTRODUCTION The increasing pace of change in information technol- II. SOFTWARE AND SYSTEMS ENGINEERING IN ogy (IT) and the needs to globally address these changes THE ACADEMIA in the engineering education have guided us to improve Software engineering is the engineering discipline con- the engineering education in an academic setting taking cerned with the application of theory, knowledge, and also into account the companies needs to apply these practice to build effectively and efficiently quality soft- methods for real life software projects. Therefore, teach- ware that satisfy the stakeholders’ requirements. The ing software and systems engineering is a complex and development can be associated to large, medium or small difficult task due to great deal of materials in variety of systems intended for use in production environments, over concepts and methods and demonstrate the applicability of a possibly long period, worked on by possibly many the methods in a real project context. Thus learning and people, and possibly undergoing many changes. Software teaching through class room teaching is necessary to be system development includes management, maintenance, further developed for the students to gain knowledge and validation, documentation, and so forth. Software profes- skills from practical understanding. sionals certainly play an important role for producing and The paper is based on our experience related to the the- maintaining the final software product throughout the ory and practice of computer engineering education, software life cycle. focusing at educational methods for Web Application Systems engineering here is concerned with the plat- Systems (WAS) development applied for i) projects form (infrastructure) on which the application software is designed in an academic environment for educational developed, hardware components that are needed, net- purpose, as well as for ii) real-life (company-related) work and communication hardware and software as well projects. The paper presents the concepts, models, and as the integration of the above with the developed applica- tools integrated in a systemic approach and the lessons tion software. Security, dependability, cost, schedule, and learned from teaching by doing, maintaining the balance high performance are also included [17, 24]. Software and 36 http://www.i-jep.org PAPER INTEGRATIVE EDUCATIONAL APPROACH ORIENTED TOWARDS SOFTWARE AND SYSTEMS DEVELOPMENT system engineering consider both the business and the projects. Architectural models for development of sophis- technical aspects of all customers with the goal of provid- ticated Internet applications are also included. In conclu- ing a quality product that meets the user needs [19, 24, 25, sion, our software engineering curriculum maintains 26, 27]. balance between the principles and the techniques or The academic institutions role is: i) to produce com- between conceptual and operational areas in order to be: i) puter engineering professionals who will build and main- scientifically founded; ii) technically up to date; iii) firmly tain these systems to the satisfaction of their beneficiaries; rooted in the field’s practice. ii) to provide active learning environment in particular encourage teamwork so that students will be more likely B. Software and System Development Courses to understand the concepts and practice; iii) to train people Our undergraduate program in computer engineering who will belong to the top tier, taking into account that contains courses that cover the previously mentioned software engineering literature confirms that ratios of 20 goals: principles, practices, applications, tools, and are not uncommon between the quality of the work of the mathematics. Specific software and systems development best and worst developers in a project, distinguishing the classes scheduled in the last two years of the undergradu- true software professional from the occasional program- ate computer engineering program are: mer. Furthermore the academic institutions should also Software Engineering basic course - discusses a com- teach the students fundamental modes of thought that will prehensive spectrum of software engineering topics and accompany them throughout their careers and help them techniques. grow in an ever-changing field. As in hardware design, Analytical Methods in Software Engineering – ad- the technology evolves, but the concepts remain. vanced level course on analytical models and methods used to study how the software factors interplay with III. CURRICULUM APPROACH AND EDUCATIONAL economic and human factors in the context of various STRATEGIES approaches to the software process. IT Project Management, Models, Processes, and Tools A. Goals of Software Engineering Curriculum – provides theoretical knowledge connected to IT project Based on [11] and our practical and academic experi- management of modern, complex, n-tier, Internet-based ence, we present the following goals of a Software Engi- applications and systems. neering curriculum: IT Project Development – practical project develop- Principles - lasting concepts that underlie the whole ment work performed in parallel with other courses during field, such as: abstraction; distinction between specifica- periods 2 and 3 in the last year of undergraduate studies. tion and implementation; recursion; information hiding; The course is based on the application of knowledge and reuse; complexity; scaling up; designing for change; skills acquired by students through their undergraduate classification; typing; exception handling program in computer engineering in order to develop real- Practices - problem-solving techniques that good pro- life complex team projects connected either to applica- fessionals apply consciously and regularly such as: con- tions in the academia or to applications generated in figuration management; project management; metrics; collaboration with IT companies. ergonomics and user interfaces; documentation; user These projects are completed before the final individual interaction; high-level system analysis; debugging graduation thesis work in period 4. Applications - areas of expertise in which the principles Our basic course follows the Software Engineering and practices find their best expression like traditional Curriculum Report specified by IEEE Computer Soci- specific areas of software