Web application development

Last updated

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]

Contents

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.

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 (software) 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

Related Research Articles

An application server is a server that hosts applications.

Eclipse (software) Java software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

Web application Application that uses a web browser as a client

A web application is application software that runs on a web server, unlike computer-based software programs that are run locally on the operating system (OS) of the device. Web applications are accessed by the user through a web browser with an active internet connection. These applications are programmed using a client–server modeled structure—the user ("client") is provided services through an off-site server that is hosted by a third-party. Examples of commonly-used web applications include: web-mail, online retail sales, online banking, and online auctions.

WebObjects Java web application server and framework originally developed by NeXT Software

WebObjects is a Java web application server and a server-based web application framework originally developed by NeXT Software, Inc. As of 2009 the software has been independently maintained by a volunteer community.

Delphi (software)

Delphi is a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.

Hibernate ORM is an object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object-relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

StarTeam

StarTeam is a revision control system used in software development, especially when a project involves multiple teams in different locations. StarTeam is an SCM and SDLC software application, created by Starbase Corporation, which was acquired by Borland in January 2003 which was acquired by Micro Focus in July 2009. The application is client-server, backed by a relational database that retains all changes made to a project during its evolution as well as the project requirements, task assignments, threaded discussions and bug tracking. Microsoft SQL Server and Oracle database are supported database servers.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

Uniface (programming language) Low-code development platform

Uniface is a low-code development and deployment platform for enterprise applications that can run in a large range of runtime environments, including mobile, mainframe, web, Service-oriented architecture (SOA), Windows, Java EE and .NET. Uniface is a model-driven, Rapid Application Development (RAD) environment used to create mission-critical applications.

Selenium is a portable framework for testing web applications. Selenium provides a playback tool for authoring functional tests without the need to learn a test scripting language. It also provides a test domain-specific language (Selenese) to write tests in a number of popular programming languages, including C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala. The tests can then run against most modern web browsers. Selenium runs on Windows, Linux, and macOS. It is open-source software released under the Apache License 2.0.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

The Microsoft Enterprise Library is a set of tools and programming libraries for the Microsoft .NET Framework. It provides APIs to facilitate proven practices in core areas of programming including data access, logging, exception handling and others. Enterprise Library is provided as pluggable binaries and source code, which can be freely used and customized by developers for their own purposes. It also ships with test cases and quickstarts.

Scaffolding, as used in computing, refers to one of two techniques: The first is a code generation technique related to database access in some model–view–controller frameworks; the second is a project generation technique supported by various tools.

PTC IntegrityLifecycle Manager is a software system lifecycle management (SSLM) and application lifecycle management (ALM) platform developed by MKS Inc. and was first released in 2001. The software is client/server, with both desktop (java/swing) and web client interfaces. It provides software development organizations with a collaborative environment in which they can manage the end-to-end processes of development, from requirements management, engineering change management, revision control, and build management to test management and software deployment as well as associated reports & metrics.

Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. Continuous testing was originally proposed as a way of reducing waiting time for feedback to developers by introducing development environment-triggered tests as well as more traditional developer/tester-triggered tests.

Test Studio

Telerik Test Studio is a Windows-based software testing tool for web and desktop functional testing, software performance testing, load testing and mobile application testing developed by Telerik. The tool ships with a plugin for Visual Studio and a standalone app that use the same repositories and file formats. Test Studio supports HTML, AJAX, Silverlight, ASP.NET MVC, JavaScript and WPF. Test Studio supports test execution in Internet Explorer, Firefox, Safari and Chrome.

References

  1. 1 2 3 Thomas, Michael; Schmid, Euline (2009). Interactive Whiteboards for Education: Theory, research, and practice. Hershey, PA: IGI Global. p. 1700. ISBN   9781605669823.
  2. 1 2 Grove, Ralph (2009). Web Based Application Development. Boston: Jones & Bartlett Learning. p. 218. ISBN   978-0763759407.

Further reading