COURSE 8 Introduction to Web Engineering.pdf
Document Details
Uploaded by LionheartedWisdom4273
Tags
Full Transcript
Web and mobile system Chapter 8: Introduction to Web Engineering What is Mobile Application Development ? • Mobile application development is the process by which application software is developed for small low-power handheld devices such as mobile phones. • These applications are either pre-inst...
Web and mobile system Chapter 8: Introduction to Web Engineering What is Mobile Application Development ? • Mobile application development is the process by which application software is developed for small low-power handheld devices such as mobile phones. • These applications are either pre-installed on phones during manufacture, downloaded by customers from various mobile software distribution platforms, or web applications delivered over HTTP which use server-side (e.g. ASP.NET or C#) or client-side processing (e.g. JavaScript) to provide an "application-like" experience within a Web browser. The importance of Mobile App • Applications play a important role in the success of a mobile platform. It is critically important that a platform provides developers with efficient tools for all stages of application development, from writing the code, to publishing the app. • Different platforms have varying degrees of success in this area, and their success is reflected in the health of their app ecosystems. • Moreover, developers need to master new tools every time they switch to a new platform. Programming Language There is generally no common programming language that can be used on all platforms: • iOS apps are written using Objective-C (a superset of C influenced by Smalltalk) • Android and BlackBerry use different dialects of Java as their main programming languages • Windows Phone apps are developed using C#, which is part of .NET framework • Symbian^3, Bada and BREW support commonly-used C and C++ languages • webOS uses JavaScript together with HTML/CSS as its primary development language. Development Environment There is generally no common development environment either: • iOS apps can only be developed using Apple XCode tools running on Mac OS computers • Windows Phone apps have to be developed with Microsoft Visual Studio tools using a Windows PC; Windows is the de facto platform for enterprise software developers. • Symbian^3 development uses the Qt environment. • WebOS apps are developed using the Ares browser-based development environment that is used in combination with Eclipse IDE. Mobile Application Lifecycle Management • As a mobile developer, we should know which tools can help us to be productive, and what other challenges we'll encounter during various application development stages. • The following table is a summary about mobile app lifecycle. What is Web Engineering? • “The application of systematic and quantifiable approaches to costeffective analysis, design, implementation, testing, operation, and maintenance of high-quality Web applications.” – Kappel et al. • Extends Software Engineering to Web applications, but with Webcentric approaches. Defining Web Applications • A Web application is a system that utilizes W3C standards & technologies to deliver Web-specific resources to clients (typically) through a browser. • A strict definition that ensures software and UI aspects of the Web are examined carefully • Technology + interaction. • Web site with no software components? • Web services? The Case for Web Engineering • Application development on the Web remains largely ad hoc. • Spontaneous, one-time events • Individual experience • Little or no documentation for code/design • Short-term savings lead to long-term problems in operation, maintenance, usability, etc. • Because Web apps are so interdependent, the problem is compounded. The Case for Web Engineering (cont.) • Root Causes of poor design • • • • Development as an authoring activity Development is “easy” Techniques that should not be used are misapplied. Techniques that should be used are not. • Particularly alarming given… • Most projects are now Web-based • More “mission-critical” apps moving to the Web The Case for Web Engineering (cont.) • Top project pitfalls (Cutter, 2000) • • • • 84% - Failure to meet business objectives 79% - Project schedule delays 63% - Budget overrun 53% - Lack of functionality • Web Engineering’s solution: • • • • Clearly defined goals & objectives Systematic, phased development Careful planning Iterative & continuous auditing of the entire process Categories of Web Applications Ubiquitous Complexity Collaborative Workflow Based Transactional Social Web Portal Oriented Interactive Doc-Centric Development History Semantic Web Document-Centric Web sites • Precursors to Web applications • Static HTML documents • Manual updates • Pros • Simple, stable, short response times • Cons • High management costs for frequent updates & large collections • More prone to inconsistent/redundant info • Example: static home pages Interactive & Transactional • Come with the introduction of CGI (computer-generated image ) and HTML forms • Simple interactivity • Dynamic page creation • Web pages and links to other pages generated dynamically based on user input • Content updates -> Transactions • Decentralized • Database connectivity • Increased complexity • Examples: news sites, booking systems, online banking Workflow-Based Applications • Designed to handle business processes across departments, organizations & enterprises • Business logic defines the structure • The role of Web services • Interoperability • Loosely-coupled • Standards-based • Examples: B2B & e-Government • High complexity; autonomous entities Collaborative & Social Web • Unstructured, cooperative environments • Support shared information workspaces to create, edit and manage shared information • Interpersonal communication is paramount • Classic example: Wikis • The Social Web • • • • Anonymity traditionally characterized WWW Moving towards communities of interest Examples: Blogs, collaborative filtering systems, social bookmarking (e.g., del.icio.us) Integration with other forms of web applications (e..g, NetFlix) Portal-Oriented • Single points-of-entry to heterogenous information • Yahoo!, AOL.com, portal.kfupm.edu.sa • Specialized portals • Business portals (e.g., employee intranet) • Marketplace portals (horizontal & vertical) • Community portals (targeted groups) Ubiquitous • Customized services delivered anywhere via multiple devices • HCI is critical • Limitations of devices (screen size, bandwidth?) • Context of use • Still an emerging field; most devices have single focus: • Personalization • Location-aware • Multi-platform delivery Semantic Web • Berners-Lee: Information on the Web should be readable to machines, as well as humans. • Using metadata and ontologies to facilitate knowledge management across the WWW. • Content syndication (RSS, Atom) promotes re-use of knowledge • Is the Semantic Web even possible? Characteristics of Web Apps • How do Web applications differ from traditional applications? • Or, another way, what Software Engineering methods & techniques can be adapted to Web Engineering? • 3 dimensions of the ISO/IEC 9126-1 standard • Product • Usage • Development Characteristics - Product • Product-related characteristics constitute the “building blocks” of a Web application • Content • Document character & multimedia (# of dimensions?) • Quality demands: current, exact, consistent, reliable • Navigation Structure (Hypertext) • Non-linearity • Potential problems: Disorientation & cognitive overload • User interface (Presentation) • Aesthetics • Self-explanation Characteristics - Usage • Much greater diversity compared to traditional non-Web applications • Users vary in numbers, cultural background, devices, h/w, s/w, location etc • Social Context (Users) • Spontaneity - scalability • Heterogeneous groups • Technical Context (Network & Devices) • Quality-of-Service • Multi-platform delivery • Natural Context (Place & Time) • Globality • Availability Characteristics - Development • The Development Team • Multidisciplinary – print publishing, s/w devt, marketing & computing, art & technology • Community (including Open Source) • Technical Infrastructure • Lack of control on the client side • Immaturity • Process • Flexibility • Parallelism • Integration • Internal – with existing legacy systems • External – with Web services • Integration issues: correct interaction, guaranteed QoS Thank you for your attention