. . Web Application Development, Web Engineering: Definition/Meaning & Principles (Wikimedia Foundation, Inc. Minor edits by Eric Gondwe) Contents * 0 Introduction * 1 Risk of Web Applications * 2 Technologies of Web Application Development * 3 Lifecycle Model * 4 Testing of Web Applications * 5 Tools of Web Application Development * 6 Web Application Frameworks and Reuse * 7 See also * 8 References * 9 Further reading Introduction Web application development is the process and practice of developing web applications. In software engineering, a web application is an application (software, program) that is accessed via a web browser over a network such as the Internet or an intranet. The term web application may also mean a computer software application that is hosted in a browser-controlled environment (e.g. a Java applet)[citation needed] or coded in a browser-supported language (such as JavaScript, combined with a browser-rendered markup language like HTML) and reliant on a common web browser to render the application executable. Risk of Web Applications Just as with a traditional desktop application, web applications have varying levels of risk. A personal home page is much less risky than, for example, a stock trading web site. For some projects security, software bugs, etc. are major issues. If time to market, or technical complexity is a concern, documentation, test planning, change control, requirements analysis, architectural description and formal design and construction practices can mitigate risk. Technologies of Web Application Development * Ajax * ASP * ASP.NET * CSS * ColdFusion * Java EE * JavaScript * Perl * PHP * Ruby, including Ruby on Rails * CGI * ISAPI/NSAPI * Django * Wt - a Qt-ish C++ Web Toolkit Library Lets You Write Scripting-Independent Web Apps
Lifecycle Model of Web Application Development Time to market, company-growth and requirements churn, three things that are emphasized in web-based business, coincide with the principles of the Agile practices. Some agile lifecycle models are: * Extreme Programming * Scrum * Timebox development * Feature Driven Development
Testing of Web Applications Web applications undergo the same unit, integration and system testing as traditional desktop applications. But because web application clients vary so greatly, teams might perform some additional testing, such as: * Security * Performance, Load, and Stress * HTML/CSS validation * Accessibility * Usability * Cross-browser
Many types of tests are automatable. At the component level, one of the xUnit packages can be a helpful tool. Or an organization can create its own unit testing framework. At the GUI level, Watir or iMacros are useful. Tools of Web Application Development In the case of ASP.NET, a developer can use Microsoft Visual Studio to write code. But, as with most other programming languages, he/she can also use a text editor. Notepad++ is an example.
For ColdFusion and the related open source CFML engines, there are several tools available for writing code. These include Adobe Dreamweaver CS4, the CFEclipse plugin for Eclipse (software) and Adobe CF Builder. You can also use any text editor such as Notepad++ or TextEdit.
For PHP, the Zend Development Environment provides numerous debugging tools and provides a rich feature set to make a PHP developer's life easier.
Several code generation tools such as dbQwikSite or M-Power are available to automate the development of code. Using such tools, non-technical users can produce working code, and experienced coders can accelerate the development cycle.
Other tools include various browsers, FTP clients, etc. See Category:Web development software. Wiki letter w.svg This section requires expansion. Web Application Frameworks and Reuse (See Web application framework for more info) Practicing code reuse and using web application frameworks can greatly improve both productivity and time to market (McConnell 1996:537). Reusing externally developed components can allow an organization to reap the above benefits, while potentially saving money. However, for smaller components, it might be just as easy to develop your own components as it would be to learn new APIs. Also, if a component is essential to the business, an organization might want to control its development. See also * Web Engineering Education * Device Independence * List of Web based applications * Web Interoperability * Web application framework
References * McConnell, Steve (June 2004). Code Complete, Second Edition. Microsoft Press. p. 960. ISBN 0-7356-1967-0. * McConnell, Steve (July 2, 1996). Rapid Development. Microsoft Press. p. 680. ISBN 1-55615-900-5. * Rozanski, Nick; Eóin Woods (April 20, 2005). Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives. Addison-Wesley Professional. p. 576. ISBN 0-321-11229-6. * Leffingwell, Dean; Don Widrig (May 16, 2003). Managing Software Requirements: A Use Case Approach, Second Edition. Addison-Wesley Professional. p. 544. ISBN 0-321-12247-X.
Further reading * Whittaker, James A.; Mike Andrews (February 2, 2006). How to Break Web Software: Functional and Security Testing of Web Applications and Web Services. Addison-Wesley Professional. p. 240. ISBN 0-321-36944-0.g Source/Author: Wikimedia Foundation, Inc., Wikipedia, “Web Engineering,” (accessed February 12, 2010). Minor edits by Eric Gondwe. |