Web application development

From HandWiki

Web application development is the process and practice of developing web applications. There is a consensus that the processes involved are extensions of standard software engineering processes.[1] Considering this, along with its unique characteristics, popular frameworks used include the spiral approach and business-oriented approach to application development, among other models that address the requirements for an iterative process.[1]

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

A study conducted involving web engineering practice revealed that web application development has several characteristics that have to be addressed and these include: short development life-cycle times; different business models; multi-disciplinary development teams; small development teams working on similar tasks; business analysis and evaluation with end-users; explicit requirement and rigorous training against requirements; and, maintenance.[1]

Some of the technologies used include: Ajax, ASP, ASP.NET, ActionScript, CSS, ColdFusion, CGI, HTML, Java, JavaScript, Visual LANSA, Lasso, Node.js, OSGI, Perl, PHP, Python, Ruby, Xojo.

Lifecycle model

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:

Testing

Web applications undergo the same unit, integration and system testing as traditional desktop applications. It has the same goals, which involve: 1) the determination that the application is working correctly; and, 2) the identification of errors that need correction. The testing process of web applications, however, has some special characteristics, making it a little different from a test used for a software. These include the fact that web applications tend to have a great deal of information that could contain mistakes, omissions, incorrect labels, redundancy, and so on.[2] They can also entail multiple layers of web applications and multiple, dynamic configurations.[2] Testing and finding errors, therefore, involves more complex process such as the inclusion of operational analysis for each layer or configuration.

Web application clients vary greatly, hence teams might perform some additional testing, such as: Security, Performance, Load, and Stress, HTML/CSS validation, Accessibility, Usability, and 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

In the case of ASP.NET, developers can use Microsoft Visual Studio to write code. But, as with most other programming languages, they can also use a text editor (Notepad++ for example). WebORB Integration Server for .NET can be used to integrate .NET services, data and media with any web client. It includes developer-productivity tools and APIs for remoting, messaging and data management.

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 and Adobe CF Builder. One can also use any text editor, such as Notepad++ or TextEdit.

Many tools support the Java programming language. The most popular include Apache Tomcat, GlassFish, JDeveloper and Netbeans, but there are numerous others.

For PHP, the Zend Development Environment provides numerous debugging tools and provides a rich feature-set to make PHP development easier. WebORB Integration Server for PHP can be used to integrate PHP classes and data with any web client. It includes developer productivity tools and APIs for remoting, messaging and data management. Tools such as Hammerkit abstract PHP into a visual programming environment and utilise component-based software methods to accelerate development.

Other tools include various web development applications, browsers, and FTP clients.

Frameworks and use

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

References

  1. 1.0 1.1 1.2 Thomas, Michael; Schmid, Euline (2009). Interactive Whiteboards for Education: Theory, research, and practice. Hershey, PA: IGI Global. pp. 1700. ISBN 9781605669823. 
  2. 2.0 2.1 Grove, Ralph (2009). Web Based Application Development. Boston: Jones & Bartlett Learning. pp. 218. ISBN 0763759406. 

Further reading