Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Tools and approaches for developing data-intensive Web applications: a survey
ACM Computing Surveys (CSUR)
The role of IS personnel in Web-based systems development: the case of a health care organization
SIGCPR '00 Proceedings of the 2000 ACM SIGCPR conference on Computer personnel research
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Proceedings of the first conference on Software product lines : experience and research directions: experience and research directions
Model-driven development of Web applications: the AutoWeb system
ACM Transactions on Information Systems (TOIS)
Component-based software engineering: putting the pieces together
Component-based software engineering: putting the pieces together
Achieving extensibility through product-lines and domain-specific languages: a case study
ACM Transactions on Software Engineering and Methodology (TOSEM)
A semantical approach to method-call interception
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
A framework for automatic generation of web-based data entry applications based on XML
Proceedings of the 2002 ACM symposium on Applied computing
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
JSP: Javaserver Pages
Struts in Action: Building Web Applications With the Leading Java Framework
Struts in Action: Building Web Applications With the Leading Java Framework
Design and development of data-intensive web sites: The Araneus approach
ACM Transactions on Internet Technology (TOIT)
VLDB '97 Proceedings of the 23rd International Conference on Very Large Data Bases
Design Patterns: Abstraction and Reuse of Object-Oriented Design
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Designing software for ease of extension and contraction
ICSE '78 Proceedings of the 3rd international conference on Software engineering
The Struts Framework Practical Guide for Java Programmers
The Struts Framework Practical Guide for Java Programmers
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
Using XForms to simplify Web programming
WWW '05 Proceedings of the 14th international conference on World Wide Web
Using aspect-oriented PHP to implement crosscutting concerns in a collaborative web system
SIGDOC '06 Proceedings of the 24th annual ACM international conference on Design of communication
Semantic web services: from OWL-S via UML to MVC applications
Proceedings of the 2009 ACM symposium on Applied Computing
Toward semantic web services as mvc applications: from owl-s via uml
Journal of Web Engineering
Hi-index | 0.00 |
Web application development cuts across the HTTP protocol, the client-side presentation language (HTML, XML), the server-side technology (Servlets, JSP, ASP, PHP), and the underlying resource (files, database, information system). Consequently, web development concerns including functionality, presentation, control, and structure cross-cut, leading to tangled and scattered code that is hard to develop, maintain, and reuse. In this paper we analyze the cause, consequence, and remedy for this crosscutting. We distinguish between intra-crosscutting that results in code tangling and inter-crosscutting that results in code scattering. To resolve inter-crosscutting, we present a new web application development model named XP that introduces extension points as place-holders for structure-dependent code. We present another model named DDD that incorporates XP into the Model-View-Controller (MVC) model to resolve both intra- and inter-crosscutting. WebJinn is a novel domain-driven web development framework that implements the DDD model. WebJinn has been used to develop web applications at several web sites. Domain driven web development with WebJinn benefits from a significant improvement in code reuse, adaptability, and maintainability.