In the Web Engineering area, many methods and frameworks to support Web Information Systems (WISs) development have already been proposed. Particularly, the use of frameworks and container-based architectures is state-of-the-practice. In this chapter, we present a method for designing frameworkbased WISs called FrameWeb, which defines a standard architecture for framework-based WISs and a modeling language that extends UML to build diagrams that specifically depict framework-related components. Considering that the Semantic Web has been gaining momentum in the last few years, we also propose an extension to FrameWeb, called S-FrameWeb, that aims to support the development of Semantic WISs.
The World Wide Web (also referred to as WWW or simply Web) was created as a means to publish documents and make them available to people in many different geographical locations. However, the advent of the Common Gateway Interface (CGI), in 1993, allowed for authors to publish software instead of documents and for visitors to execute them, producing dynamic results.
The evolution of Web development technology and the emergence of high-level languages (such as PHP, ASP, JSP, etc.) and platforms (such as Microsoft .NET and Java Enterprise Edition) allowed for more complex applications to be built on the Web. Soon enough, a handful of large B2C (business-to-consumer, such as online stores) and B2B (business-to-business, such as supply chain management systems) applications were being deployed on the Internet.
Thus, the concept of Web Applications (WebApps) was born. WebApps consist of a set of Web pages or components that interact with the visitor, providing, storing and processing information. WebApps can be informational, interactive, transactional, workflow-based, collaborative work environments, online communities, marketplaces or web portals (Ginige & Murugesan, 2001).
In this chapter, however, we focus on a specific class of Web Applications, called Web-based Information Systems (WISs). WISs are just like traditional information systems, although deployed over the Internet or on an Intranet. These systems are usually data-centric and more focused on functionality rather than content and presentation. Examples are online stores, cooperative environments, and enterprise management systems, among many others.
Although many Software Engineering principles have long been established before the creation of the Web, first-generation WebApps were constructed in an ad-hoc manner, with little or no concern for them. However, with the increase of complexity of the WebApps, which is especially true for WISs, the adoption of methodologies and software processes to support the development team becomes crucial.
Thus, a new discipline and research field was born. Web Engineering (or WebE) can be defined as “the establishment and use of engineering principles and disciplined approaches to the development, deployment and maintenance of Web-based Applications” (Murugesan et al., 1999, p. 2). Pressman (2005) complements this definition stating that WebE borrows many conventional Software Engineering fundamental concepts and principles and, in addition, incorporates specialized process models, software engineering methods adapted to the characteristics of this kind of application and a set of enabling technologies.
In this field, a lot of methods and modeling languages have been proposed. Some well known works are WebML (Ceri et al., 2000), WAE (Conallen, 2002), OOWS (Fons et al., 2003), UWE (Koch et al., 2000), and OOHDM (Schwabe & Rossi, 1998), among others.
Parallel to the academic research, the industry and the developer community have also proposed new technologies to provide a solid Web infrastructure for applications to be built upon, such as frameworks and container-based architectures. Using them we can improve productivity at the coding phase by reusing software that has already been coded, tested and documented by third parties. As their use becomes state-of-the-practice, methods that focus on them during software design could provide a smoother transition from models to source code.
This has motivated us to develop a WebE design method that focuses on frameworks. The Framework-based Design Method for Web Engineering (FrameWeb) (Souza & Falbo, 2007) proposes a basic architecture for developing WebApps and a UML profile for a set of design models that brings concepts used by some categories of frameworks, which are applied in container-based architectures as well.
Meanwhile, many researches have been directed to the construction of what is being considered the future of the WWW: the Semantic Web. Coined by Berners-Lee et al. (2001), the term represents an evolution of the current WWW, referred by some as the “Syntactic Web”. In the latter, information is presented in a way that is accessible only to human beings, whereas in the former data is presented both in human-readable and machine-processable formats, in order to promote the development of software agents that would help users carry out their tasks on the Web.