Web Engineering Education, Web Engineering Training:
Definition/Meaning & Principles
(By Said Hadjerrouit, Designing a Pedagogical Model for Web Engineering Education:
An Evolutionary Perspective, in the Journal of Information Technology Education)
* Executive Summary
* Web Engineering Skills
In contrast to software engineering, which relies on relatively well established development approaches, there is a lack of a proven methodology that guides Web engineers in building reliable and effective Web-based systems.
Currently, Web engineering lacks process models, architectures, suitable techniques and methods, quality assurance, and a systematic approach to the development process. As a result, Web engineering is still struggling to establish itself as a reliable engineering discipline. The cost of poor reliability and effectiveness has serious consequences for the acceptability of the systems.
One of the main reasons for the low acceptance of Web-based applications is the large gap between design models and the implementation model of the Web. It is therefore not surprising that Web engineering education still focuses on technologies, rather than on critical skills that facilitate engineers to solve real-world problems effectively.
To meet the challenges of Web engineering, current education must be aligned with a pedagogical model capable of empowering and supporting the acquisition of critical skills. To do this, a new learning environment must be created that promotes change in both pedagogy and course material, in effect, altering the role of the teacher, the expectations for students, and many other educational aspects.
This article describes a learner-centered pedagogical model rooted in the constructivist learning theory for teaching students the skills they need to construct Web-based applications more effectively and collaboratively. The model is iterative and encompasses two types of components: the learning management process and learning phases. The learning management process is concerned with monitoring learning activities, such as providing information, assessing project work, etc.
The learning phases are an orderly set of interdependent activities moving from context analysis to the communication of learning results. The approach described in this paper is a result of 5 years of teaching Web engineering. The process of designing a pedagogical model can be characterized as an evolutionary process that progresses through a series of experimentations, evaluations, and redesigns.
In evaluating the approach after many years of experience, the instructor can draw the following conclusions:
* First, applying the constructivist learning theory is clearly a challenge for instructors as it requires making a radical shift in their thinking in order to translate the philosophy of constructivism into practice.
* Second, it takes time and considerable effort to make significant pedagogical changes. Yet constructivism holds important lessons for how to design environments to support active learning. It gives teachers a framework for understanding students’ needs and motivations. It helps teachers to expose students to many aspects of the subject matter that are of crucial importance for the profession of Web engineering. It allows focus on what really matters for students – the acquisition of critical skills, authentic tasks, motivational aspects, teamwork, collaboration and negotiation, reading and writing skills, formative assessment, and self-evaluation.
Keywords: Constructivism, Learning Environments, Objectivism, Object-Oriented Modeling,
Pedagogical Model, Unified Modeling Language, Web Engineering, Web Technology.
Since the first workshop on Web Engineering in 1998, the construction of Web applications has made a lot of improvements, but there is still a lack of a disciplined engineering approach for building Web-based systems.
According to the Web Engineering Community Portal (http://www.webengineering.org), the Web “has gone far beyond presenting information of research groups as in its early beginning. Although the applications become increasingly complex, the development process still remains ad-hoc. A large gap between design models and the implementation model of the Web has been recognized to be one of the main reasons for the low acceptance of disciplined development in the Web.
It becomes clear that the construction and evolution of applications for the World Wide Web requires support such as is available for traditional applications through process models, architectures, methods and principles of software engineering.
This new discipline that has been established during the previous years, is therefore seen as: Web Engineering - The application of systematic, disciplined and quantifiable approaches to the costeffective development and evolution of high-quality applications in the World Wide Web.”
However, even if Web engineering requires support from traditional applications, it has a broader context than traditional software engineering. It is a combination of software engineering, hypermedia and multimedia engineering, marketing, graphic design, cognitive science, and humancomputer interaction (Balasubramaniam, Pries-Heje, & Baskerville, 2003; Escalona & Koch, 2004; Murugesan, Deshpande, & Hansen, 1999a, 1999b; Murugesan & Ginige, 2001; Whitehead, 2004).
Hence, Web engineering needs a multidisciplinary approach that must rely on knowledge and expertise from different disciplines, such as software engineering, hypermedia engineering, human-computer interaction, cognitive science, marketing, ethics, etc. Thus, Web engineering encompasses inputs from diverse areas that can be divided into three categories: (a) Technological dimensions; (b) Engineering dimensions; and (c) Esthetical, ethical, legal, cognitive, organizational, and cultural dimensions.
Second, the construction of Web-based systems is affected by engineering issues, e.g. process models, such as waterfall, evolutionary prototyping, spiral model or a combination of them; object-oriented approaches; hypermedia and multimedia engineering, usability engineering, Web design guidelines, software reuse, design patterns, architectural frameworks, and modeling languages (Bleek, Jeenicke, & Klischewski, 2004; Conallen, 1999; Hadjerrouit, 2001; Lowe & Eklund, 2002; Pressmann, 2001).
Finally, Web Engineering is affected by marketing, cognitive, ethical, legal, and cultural issues (Murugesan & Ginige, 2001). Many Web-based systems are indeed marketing channels both for private and public organizations. Hence, it is important to consider how to present the information that supports marketing. Then, cognitive issues play a central role in Web applications due to the cognitive effort required for users to manage the information space in the Web.
In addition, Web-based systems are more user-oriented than traditional software systems. Thus, a significant part of any Web application concerns esthetical issues to produce look and feel of Web pages. Web engineering is also affected by legal constraints, ethical conventions, security against manipulation, copyright, disability discrimination, etc.
Finally, many Web applications transcend the national boundaries. They become much more widespread in their use than traditional software systems. Thus, engineering for the Web should relate to diverse cultural contexts.
Web Engineering Skills
Given the state of Web engineering, the most influential factor for the success of Web engineering projects is the skill level required from Web engineers to master the development process.
Thus, an important step in teaching Web engineering consists of identifying the skills that one expects Web engineers to possess (Reichgelt et al., 2004). According to (Seffah & Grogono 2002), three groups of skills are required for any software engineer. Likewise, Web engineers are expected to possess three groups of skills:
(This group of skills), prerequisite skills, is required for any student entering the field of Web engineering. The skills must be acquired at an early stage, because the learning of Web engineering depends on.
1) Object-oriented modeling and programming with UML and Java, or similar languages.
2) Database development with the JDBC, MySQL and Java Servlets, or similar languages.
4) Deployment of specialized authoring tools and Web editors, such as FrontPage and Macromedia Dreamweaver for the design and implementation of Web-based applications.
(This group of skills) is concerned with specific Web engineering skills. It provides the ability to perform key tasks of the Web engineering development process.
1) Understanding Web engineering as a multidisciplinary field incorporating technical, engineering, social, political, marketing, legal, ethical, cultural, esthetical, and pedagogical issues.
2) Understanding the Web engineering development philosophy.
3) Understanding the context and system scope of Web engineering applications.
4) Analysis modeling: understanding the problem requirements; specifying users’ requirements using use cases and scenarios; specifying data requirements using classes and other analysis modeling techniques; and general quality attributes for Web-based applications.
5) Design modeling: architecture design; component, logical, and deployment design; cohesion and coupling issues; elaboration of requirements and design criteria.
6) Web design: site design using linear, grid, hierarchical, and network Web structures; page design; interface design; navigation design, visual design; design of typography, editorial style, screen, colors, graphics, and multimedia.
7) Prototyping, incremental, evolutionary, and iterative development; program coding, unit and integration testing, evaluating and debugging of the evolving code solution, and consistency checking.
9) Reflecting, evaluating, explaining, and justifying Web engineering solutions.
(This group of skills), generic skills, is concerned with writing, reading, communication, dialogue, teamwork, and project planning. These skills are essential for Web engineers in a work situation.
1) Project planning and management.
2) Reuse of design principles, frameworks, architectures, and toolkits (class libraries); modifying and reusing existing analysis, design and program code solutions and patterns; comparing, contrasting, recognizing similarities and differences between new problems and previous solutions.
3) Writing and reading skills: writing and formatting technical documentation and reports, reading texts and documents.
4) Dialogue and communication with stakeholders. Working in teams with developers, system designers, programmers, end-users, and clients.
This is a partial article. For more info you can download the full article by Said Hadjerrouit.
Source/Author: By Said Hadjerrouit, Designing a Pedagogical Model for Web Engineering Education: An Evolutionary Perspective, in the Journal of Information Technology Education, Volume 4, 2005 (under the Informing Science Institute, informingscience.org)