Web development: Difference between revisions

Content deleted Content added
m typo
m Replaced VE ref names using RefRenamer
Line 6:
{{Manual|date=December 2023}}
}}
'''Web development''' is the work involved in developing a [[Web site|website]] for the [[Internet]] ([[World Wide Web]]) or an [[intranet]] (a private network).<ref name=":0Techopedia.com">{{Cite web |title=What is Web Development? - Definition from Techopedia |url=https://www.techopedia.com/definition/23889/web-development |access-date=2018-12-07 |website=Techopedia.com |language=en}}</ref> Web development can range from developing a simple single [[Static Web page|static page]] of [[plain text]] to complex [[web application]]s, [[electronic business]]es, and [[social network service]]s. A more comprehensive list of tasks to which Web development commonly refers, may include [[Web engineering]], [[Web design]], [[Web content development]], client liaison, [[Client-side scripting|client-side]]/[[server-side scripting]], [[Web server]] and [[network security]] configuration, and [[e-commerce]] development.
 
Among Web professionals, "Web development" usually refers to the main non-design aspects of building Web sites: writing [[Markup language|markup]] and [[Computer programming|coding]].<ref>{{Cite book |last=Campbell |first=Jennifer |title=Web Design: Introductory |publisher=Cengage Learning |year=2017 |pages=27}}</ref> Web development may use [[content management system]]s (CMS) to make content changes easier and available with basic technical skills.
 
For larger organizations and businesses, Web development teams can consist of hundreds of people ([[Web developer]]s) and follow standard methods like [[Agile software development|Agile methodologies]] while developing Web sites.<ref name=":0Techopedia.com" /> Smaller organizations may only require a single permanent or contracting developer, or secondary assignment to related job positions such as a [[graphic designer]] or [[information systems]] technician. Web development may be a collaborative effort between departments rather than the ___domain of a designated department. There are three kinds of Web developer specialization: [[Front-end Web development|front-end developer]], back-end developer, and full-stack developer.<ref>{{Cite book |last=Northwood |first=Chris |url=https://books.google.com/books?id=vvd6DwAAQBAJ&q=%22full+stack+Web+development%22+-wikipedia |title=The Full Stack Developer: Your Essential Guide to the Everyday Skills Expected of a Modern Full Stack Web Developer |date=2018-11-19 |publisher=Apress |isbn=978-1-4842-4152-3 |language=en}}</ref> Front-end developers are responsible for behavior and visuals that run in the user browser, while back-end developers deal with the servers.<ref>{{Cite web |title=Discover The Difference Between Front-End Vs. Back-End Developer – Forbes Advisor |url=https://www.forbes.com/advisor/education/front-end-vs-back-end-developer |date=May 30, 2023 |website=forbes.com |language=en}}</ref> Since the commercialization of the Web, the industry has boomed and has become one of the most used technologies ever.
 
== Evolution of the World Wide Web and web development ==
Line 19:
The primary goal in the development of the Web was to fulfill the automated information-sharing needs of academics affiliated with institutions and various global organizations. Consequently, [[HTML]] was developed in 1993.<ref>{{Cite web |title=WebD2: A Brief History of HTML |url=https://www.washington.edu/accesscomputing/webd2/student/unit1/module3/html_history.html#:~:text=The%20first%20version%20of%20HTML,official%20standard%20in%20December%201999. |access-date=2023-12-10 |website=www.washington.edu}}</ref>
 
Web 1.0 is described as the first paradigm wherein users could only view material and provide a small amount of information.<ref name=":02Soni-2023">{{Cite journal |last1=Soni |first1=Anuj |last2=Gupta |first2=Sachin |last3=Talwandi |first3=Navjot Singh |date=September 2023 |title=Evolution Of Web Technologies in Recent Years |url=https://www.jetir.org/papers/JETIR2309347.pdf |journal=Journal of Emerging Technologies and Innovative Research |volume=10 |issue=9 |issn=2349-5162}}</ref> Core protocols of web 1.0 were [[HTTP]], HTML and [[Uniform Resource Identifier|URI]].<ref name=":1Jazayeri-2007">{{Cite book |title=Future of Software Engineering (FOSE '07) |url=https://ieeexplore.ieee.org/document/4221621 |access-date=2023-11-30 |doi=10.1109/fose.2007.26 |date=2007 |last1=Jazayeri |first1=Mehdi |chapter=Some Trends in Web Application Development |pages=199–213 |isbn=978-0-7695-2829-8 |s2cid=7279594 }}</ref>
 
=== Web 2.0 ===
[[Web 2.0]], a term popularised by Dale Dougherty, then vice president of O'Reilly, during a 2004 conference with Media Live, marks a shift in internet usage, emphasizing interactivity.<ref>{{Cite web |title=Web 2.0 |url=http://www.paulgraham.com/web20.html |access-date=2023-12-10 |website=www.paulgraham.com}}</ref><ref>{{Cite web |date=2007-12-28 |title=How Web 2.0 Works |url=https://computer.howstuffworks.com/web-20.htm |access-date=2023-12-10 |website=HowStuffWorks |language=en-us}}</ref>
 
Web 2.0 introduced increased user engagement and communication. It evolved from the static, read-only nature of Web 1.0 and became an integrated network for engagement and communication. It is often referred to as a user-focused, read-write online network.<ref name=":02Soni-2023" />
 
In the realm of Web 2.0 environments, users now have access to a platform that encourages sharing activities such as creating music, files, images, and movies.<ref>{{Cite web |last=Hall |first=Heather |date=2022-05-01 |title=Web 2.0 Explained: Everything You Need To Know |url=https://history-computer.com/web-2-0/ |access-date=2023-12-10 |website=History-Computer |language=en-US}}</ref> The architecture of Web 2.0 is often considered the "backbone of the internet," using standardized [[XML]] (Extensible Markup Language) tags to authorize information flow from independent platforms and [[online database]]s.<ref name=":02Soni-2023" />
 
=== Web 3.0 ===
Web 3.0, considered the third and current version of the web, was introduced in 2014. The concept envisions a complete redesign of the web. Key features include the integration of [[metadata]], precise information delivery, and improved [[user experience]]s based on preferences, history, and interests.{{Citation needed|date=December 2023}}
 
Web 3.0 aims to turn the web into a sizable, organized database, providing more functionality than traditional search engines. Users can customize navigation based on their preferences, and the core ideas involve identifying data sources, connecting them for efficiency, and creating user profiles.<ref name=":02Soni-2023" />
 
This version is sometimes also known as [[Semantic Web]].<ref>{{Citation |last1=Du |first1=Xiaofeng |title=Semantic Service Description Framework for Address |date=2009 |url=http://link.springer.com/10.1007/978-0-387-78578-3_35 |work=Information Systems Development |pages=1033–1045 |editor-last=Barry |editor-first=Chris |access-date=2023-11-30 |place=Boston, MA |publisher=Springer US |language=en |doi=10.1007/978-0-387-78578-3_35 |isbn=978-0-387-78577-6 |last2=Song |first2=William |last3=Munro |first3=Malcolm |editor2-last=Lang |editor2-first=Michael |editor3-last=Wojtkowski |editor3-first=Wita |editor4-last=Conboy |editor4-first=Kieran}}</ref>
Line 54:
* [[Artificial intelligence|AI]] and [[Machine learning|Machine Learning]] Integration (2010s - present)
 
Web development in future will be driven by advances in  browser technology, Web internet infrastructure, protocol standards, software engineering methods, and application trends.<ref name=":1Jazayeri-2007" />
 
== Web development life cycle ==
Line 64:
 
=== Analysis ===
Debra Howcraft and John Carroll proposed a methodology in which web development process can be divided into sequential steps. They mentioned different aspects of analysis.<ref name=":2Howcroft-2000">{{Cite journal |last1=Howcroft |first1=Debra |last2=Carroll |first2=John |date=2000 |title=A proposed methodology for web development. |journal=Ecis 2000 Proceedings |url=https://aisel.aisnet.org/ecis2000/73/}}</ref>
 
Phase one involves crafting a web strategy and analyzing how a website can effectively achieve its goals. Keil et al's research<ref>{{Cite journal |last1=Keil |first1=Mark |last2=Cule |first2=Paul E. |last3=Lyytinen |first3=Kalle |last4=Schmidt |first4=Roy C. |date=November 1998 |title=A framework for identifying software project risks |journal=Communications of the ACM |volume=41 |issue=11 |pages=76–83 |doi=10.1145/287831.287843 |issn=0001-0782|doi-access=free }}</ref> identifies the primary reasons for software project failures as a lack of top management commitment and misunderstandings of system requirements. To mitigate these risks, Phase One establishes strategic goals and objectives, designing a system to fulfill them. The decision to establish a web presence should ideally align with the organization's corporate information strategy.
Line 83:
* '''Risk analysis:''' Examination of any major risks associated with site development.
 
Following this analysis, a more refined set of objectives is documented. Objectives that cannot be presently fulfilled are recorded in a Wish List, constituting part of the Objectives Document. This documentation becomes integral to the iterative process during the subsequent cycle of the methodology.<ref name=":2Howcroft-2000" />
 
=== Planning: sitemap and wireframe ===
Line 97:
Following the analysis phase, the development process moves on to the [[Web design|design]] phase, which is guided by the objectives document. Recognizing the incremental growth of websites and the potential lack of good design architecture, the methodology includes iteration to account for changes and additions over the life of the site. The design phase, which is divided into [[Information design|Information Design]] and [[Graphic design|Graphic Design]], results in a detailed Design Document that details the structure of the website, [[Data structure|database data structures]], and [[Common Gateway Interface|CGI]] scripts.*
 
The following step, design testing, focuses on early, low-cost testing to identify inconsistencies or flaws in the design. This entails comparing the website's design to the goals and objectives outlined in the first three steps. Phases One and Two involve an iterative loop in which objectives in the Objectives Document are revisited to ensure alignment with the design. Any objectives that are removed are added to the Wish List for future consideration.<ref name=":2Howcroft-2000" />
 
Key aspects in this step are-
Line 139:
The web development process goes beyond deployment to include a variety of post-deployment tasks.
 
Websites, in example, are frequently under ongoing maintenance, with new items being uploaded on a daily basis. The maintenance costs increases immensely as the site grows in size. The accuracy of content on a website is critical, demanding continuous monitoring to verify that both information and links, particularly external links, are updated. Adjustments are made in response to user feedback, and regular support and maintenance actions are carried out to maintain the website's long-term effectiveness.<ref name=":2Howcroft-2000" />
 
== Traditional development methodologies ==
Debra Howcraft and John Carroll discussed a few traditional web development methodologies in their research paper:<ref name=":2Howcroft-2000" />
 
* '''Waterfall:''' The [[Waterfall model|waterfall]] methodology comprises a sequence of cascading steps, addressing the development process with minimal iteration between each stage. However, a significant drawback when applying the waterfall methodology to the development of websites (as well as information systems) lies in its rigid structure, lacking iteration beyond adjacent stages. Any methodology used for the development of Web-sites must be flexible enough to cope with change.<ref name=":2Howcroft-2000" />
* '''Structured Systems Analysis and Design Method (SSADM):''' [[Structured systems analysis and design method|Structured Systems Analysis and Design Method]] (SSADM) is a widely used methodology for systems analysis and design in information systems and software engineering. Although it does not cover the entire lifecycle of a development project, it places a strong emphasis on the stages of analysis and design in the hopes of minimizing later-stage, expensive errors and omissions.<ref name=":2Howcroft-2000" />
* '''Prototyping:''' [[Software prototyping|Prototyping]] is a software development approach in which a preliminary version of a system or application is built to visualize and test its key functionalities. The prototype serves as a tangible representation of the final product, allowing stakeholders, including users and developers, to interact with it and provide feedback.
* '''Rapid Application Development:''' [[Rapid application development|Rapid Application Development]] (RAD) is a software development methodology that prioritizes speed and flexibility in the development process. It is designed to produce high-quality systems quickly, primarily through the use of iterative prototyping and the involvement of end-users. RAD aims to reduce the time it takes to develop a system and increase the adaptability to changing requirements.
Line 182:
 
==== Front-end frameworks ====
A [[Web framework|framework]] is a high-level solution for the reuse of software pieces, a step forward in simple library-based reuse that allows for sharing common functions and generic logic of a ___domain application.<ref name=":3">{{Cite journal |last1=Salas-Zárate |first1=María del Pilar |last2=Alor-Hernández |first2=Giner |last3=Valencia-García |first3=Rafael |last4=Rodríguez-Mazahua |first4=Lisbeth |last5=Rodríguez-González |first5=Alejandro |last6=López Cuadrado |first6=José Luis |date=May 2015 |title=Analyzing best practices on Web development frameworks: The lift approach |journal=Science of Computer Programming |language=en |volume=102 |pages=1–19 |doi=10.1016/j.scico.2014.12.004|doi-access=free }}</ref>
 
Frameworks and [[Library (computing)|libraries]] are essential tools that expedite the development process. These tools enhance developer productivity and contribute to the maintainability of large-scale applications. Some popular front-end frameworks are: