Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.

Similar presentations


Presentation on theme: "1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100."— Presentation transcript:

1 1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100 College Dr., North Bay, ON P1B 8L7, Canada,

2 2 Lecture 13 Web Engineering and WebApp Design Ref. Chapters 13 & 20

3 3 Web Applications WebApps WebApps encompass: complete Web sites Simple information Web sites Complex e-Commerce of other sites with embedded functionality and data retrieval Complex Web sites that are interoperable with other legacy software and systems specialized functionality within Web sites information processing applications that reside on the Internet or on an intranet or ExtraNet.

4 4 WebApp Attributes—I Network intensiveness. A WebApp resides on a network and must serve the needs of a diverse community of clients. Network intensiveness. A WebApp resides on a network and must serve the needs of a diverse community of clients. Concurrency. A large number of users may access the WebApp at one time; patterns of usage among end- users will vary greatly. Concurrency. A large number of users may access the WebApp at one time; patterns of usage among end- users will vary greatly. Unpredictable load. The number of users of the WebApp may vary by orders of magnitude from day to day. Unpredictable load. The number of users of the WebApp may vary by orders of magnitude from day to day. Performance. If a WebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere. Performance. If a WebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere.

5 5 WebApp Attributes—II Availability. Although expectation of 100 percent availability is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis. Availability. Although expectation of 100 percent availability is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis. Data driven. The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user. Data driven. The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user. Content sensitive. The quality and aesthetic nature of content remains an important determinant of the quality of a WebApp. Content sensitive. The quality and aesthetic nature of content remains an important determinant of the quality of a WebApp. Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically- spaced releases, Web applications evolve continuously.

6 6 WebApp Attributes—III Immediacy. WebApps often exhibit a time to market that can be a matter of a few days or weeks. Immediacy. WebApps often exhibit a time to market that can be a matter of a few days or weeks. With modern tools, sophisticated Web pages can be produced in only a few hours. With modern tools, sophisticated Web pages can be produced in only a few hours. Security. In order to protect sensitive content and provide secure modes of data transmission, strong security measures must be implemented throughout the infrastructure that supports a WebApp and within the application itself. Security. In order to protect sensitive content and provide secure modes of data transmission, strong security measures must be implemented throughout the infrastructure that supports a WebApp and within the application itself. Aesthetics. When an application has been designed to market or sell products or ideas, aesthetics may have as much to do with success as technical design. Aesthetics. When an application has been designed to market or sell products or ideas, aesthetics may have as much to do with success as technical design.

7 7 WebApp Categories informational—read-only content is provided with simple navigation and links informational—read-only content is provided with simple navigation and links download—a user downloads information from the appropriate server download—a user downloads information from the appropriate server customizable—the user customizes content to specific needs customizable—the user customizes content to specific needs interaction—communication among a community of users occurs via chatroom, bulletin boards, or instant messaging interaction—communication among a community of users occurs via chatroom, bulletin boards, or instant messaging user input—forms-based input is the primary mechanism for communicating need user input—forms-based input is the primary mechanism for communicating need transaction-oriented—the user makes a request (e.g., places an order) that is fulfilled by the WebApp transaction-oriented—the user makes a request (e.g., places an order) that is fulfilled by the WebApp service-oriented—the application provides a service to the user, e.g., assists the user in determining a mortgage payment service-oriented—the application provides a service to the user, e.g., assists the user in determining a mortgage payment Portal—the application channels the user to other Web content or services outside the domain of the portal application Portal—the application channels the user to other Web content or services outside the domain of the portal application database access—the user queries a large database and extracts information database access—the user queries a large database and extracts information data warehousing—the user queries a collection of large databases and extracts information data warehousing—the user queries a collection of large databases and extracts information

8 8 The WebE Process Must accommodate: Incremental delivery Incremental delivery Frequent changes Frequent changes Short timeline Short timelineTherefore, An incremental process model (Chapters 3 and 4) should be used in virtually all situations An incremental process model (Chapters 3 and 4) should be used in virtually all situations An agile process model (Chapter) is appropriate in many situations An agile process model (Chapter) is appropriate in many situations

9 9 The WebE Process

10 10 The WebE Process Framework—I Customer communication Customer communication Business analysis defines the business/organizational context for the WebApp. Formulation is a requirements gathering activity involving all stakeholders. The intent is to describe the problem that the WebApp is to solve Planning The “plan” consists of a task definition and a timeline schedule for the time period (usually measured in weeks) projected for the development of the WebApp increment.

11 11 The WebE Process Framework—II Modeling Modeling Analysis model—establishes a basis for design Analysis model—establishes a basis for design Content Analysis. Content Analysis. Interaction Analysis. Interaction Analysis. Functional Analysis. Functional Analysis. Configuration Analysis. Configuration Analysis. Design model—represents key WebApp elements Design model—represents key WebApp elements Content design Content design Aesthetic design Aesthetic design Architectural design Architectural design Interface design Interface design Navigation design Navigation design Component design Component design

12 12 The WebE Process Framework—III Construction Construction WebE tools and technology are applied to construct the WebApp that has been modeled Testing of all design elements Delivery and Evaluation (Deployment) Delivery and Evaluation (Deployment) configure for its operational environment configure for its operational environment deliver to end-users, and deliver to end-users, and Evaluation feedback is presented to the WebE team Evaluation feedback is presented to the WebE team the increment is modified as required (the beginning of the next incremental cycle) the increment is modified as required (the beginning of the next incremental cycle)

13 13 Design & WebApps When should we emphasize WebApp design? When should we emphasize WebApp design? when content and function are complex when content and function are complex when the size of the WebApp encompasses hundreds of content objects, functions, and analysis classes when the size of the WebApp encompasses hundreds of content objects, functions, and analysis classes when the success of the WebApp will have a direct impact on the success of the business when the success of the WebApp will have a direct impact on the success of the business “There are essentially two basic approaches to design: the artistic ideal of expressing yourself and the engineering ideal of solving a problem for a customer.” Jakob Nielsen

14 14 Design & WebApp Quality Security Security Rebuff external attacks Rebuff external attacks Exclude unauthorized access Exclude unauthorized access Ensure the privacy of users/customers Ensure the privacy of users/customers Availability Availability the measure of the percentage of time that a WebApp is available for use the measure of the percentage of time that a WebApp is available for use Scalability Scalability Can the WebApp and the systems with which it is interfaced handle significant variation in user or transaction volume Can the WebApp and the systems with which it is interfaced handle significant variation in user or transaction volume Time to Market Time to Market

15 15 Quality Dimensions for End-Users(I) Time Time How much has a Web site changed since the last upgrade? How much has a Web site changed since the last upgrade? How do you highlight the parts that have changed? How do you highlight the parts that have changed? Structural Structural How well do all of the parts of the Web site hold together. How well do all of the parts of the Web site hold together. Are all links inside and outside the Web site working? Are all links inside and outside the Web site working? Do all of the images work? Do all of the images work? Are there parts of the Web site that are not connected? Are there parts of the Web site that are not connected? Content Content Does the content of critical pages match what is supposed to be there? Does the content of critical pages match what is supposed to be there? Do key phrases exist continually in highly-changeable pages? Do key phrases exist continually in highly-changeable pages? Do critical pages maintain quality content from version to version? Do critical pages maintain quality content from version to version? What about dynamically generated HTML pages? What about dynamically generated HTML pages?

16 16 Quality Dimensions for End-Users(II) Accuracy and Consistency Accuracy and Consistency Are today's copies of the pages downloaded the same as yesterday's? Close enough? Are today's copies of the pages downloaded the same as yesterday's? Close enough? Is the data presented accurate enough? How do you know? Is the data presented accurate enough? How do you know? Response Time and Latency Response Time and Latency Does the Web site server respond to a browser request within certain parameters? Does the Web site server respond to a browser request within certain parameters? In an E-commerce context, how is the end to end response time after a SUBMIT? In an E-commerce context, how is the end to end response time after a SUBMIT? Are there parts of a site that are so slow the user declines to continue working on it? Are there parts of a site that are so slow the user declines to continue working on it? Performance Performance Is the Browser-Web-Web site-Web-Browser connection quick enough? Is the Browser-Web-Web site-Web-Browser connection quick enough? How does the performance vary by time of day, by load and usage? How does the performance vary by time of day, by load and usage? Is performance adequate for E-commerce applications? Is performance adequate for E-commerce applications?

17 17 WebApp Design Goals(I) Consistency Consistency Content should be constructed consistently Content should be constructed consistently Graphic design (aesthetics) should present a consistent look across all parts of the WebApp Graphic design (aesthetics) should present a consistent look across all parts of the WebApp Architectural design should establish templates that lead to a consistent hypermedia structure Architectural design should establish templates that lead to a consistent hypermedia structure Interface design should define consistent modes of interaction, navigation and content display Interface design should define consistent modes of interaction, navigation and content display Navigation mechanisms should be used consistently across all WebApp elements Navigation mechanisms should be used consistently across all WebApp elements

18 18 WebApp Design Goals(II) Identity Identity Establish an “identity” that is appropriate for the business purpose Establish an “identity” that is appropriate for the business purpose Robustness Robustness The user expects robust content and functions that are relevant to the user’s needs The user expects robust content and functions that are relevant to the user’s needs Navigability Navigability designed in a manner that is intuitive and predictable designed in a manner that is intuitive and predictable Visual appeal Visual appeal the look and feel of content, interface layout, color coordination, the balance of text, graphics and other media, navigation mechanisms must appeal to end-users the look and feel of content, interface layout, color coordination, the balance of text, graphics and other media, navigation mechanisms must appeal to end-users Compatibility Compatibility With all appropriate environments and configurations With all appropriate environments and configurations

19 19 WebE Design Pyramid

20 20 WebApp Interface Design Where am I? The interface should Where am I? The interface should provide an indication of the WebApp that has been accessed provide an indication of the WebApp that has been accessed inform the user of her location in the content hierarchy. inform the user of her location in the content hierarchy. What can I do now? The interface should always help the user understand his current options What can I do now? The interface should always help the user understand his current options what functions are available? what functions are available? what links are live? what links are live? what content is relevant? what content is relevant? Where have I been, where am I going? The interface must facilitate navigation. Where have I been, where am I going? The interface must facilitate navigation. Provide a “map” (implemented in a way that is easy to understand) of where the user has been and what paths may be taken to move elsewhere within the WebApp. Provide a “map” (implemented in a way that is easy to understand) of where the user has been and what paths may be taken to move elsewhere within the WebApp.

21 21 Interface Design Principles-I Anticipation—A WebApp should be designed so that it anticipates the use’s next move. Anticipation—A WebApp should be designed so that it anticipates the use’s next move. Communication—The interface should communicate the status of any activity initiated by the user Communication—The interface should communicate the status of any activity initiated by the user Consistency—The use of navigation controls, menus, icons, and aesthetics (e.g., color, shape, layout) Consistency—The use of navigation controls, menus, icons, and aesthetics (e.g., color, shape, layout) Controlled autonomy—The interface should facilitate user movement throughout the WebApp, but it should do so in a manner that enforces navigation conventions that have been established for the application. Controlled autonomy—The interface should facilitate user movement throughout the WebApp, but it should do so in a manner that enforces navigation conventions that have been established for the application. Efficiency—The design of the WebApp and its interface should optimize the user’s work efficiency, not the efficiency of the Web engineer who designs and builds it or the client-server environment that executes it Efficiency—The design of the WebApp and its interface should optimize the user’s work efficiency, not the efficiency of the Web engineer who designs and builds it or the client-server environment that executes it.

22 22 Interface Design Principles-II Focus—The WebApp interface (and the content it presents) should stay focused on the user task(s) at hand. Focus—The WebApp interface (and the content it presents) should stay focused on the user task(s) at hand. Fitt’s Law—“The time to acquire a target is a function of the distance to and size of the target.” Fitt’s Law—“The time to acquire a target is a function of the distance to and size of the target.” Human interface objects—A vast library of reusable human interface objects has been developed for WebApps. Human interface objects—A vast library of reusable human interface objects has been developed for WebApps. Latency reduction—The WebApp should use multi-tasking in a way that lets the user proceed with work as if the operation has been completed. Latency reduction—The WebApp should use multi-tasking in a way that lets the user proceed with work as if the operation has been completed. Learnability— A WebApp interface should be designed to minimize learning time, and once learned, to minimize relearning required when the WebApp is revisited. Learnability— A WebApp interface should be designed to minimize learning time, and once learned, to minimize relearning required when the WebApp is revisited.

23 23 Interface Design Principles-III Maintain work product integrity—A work product (e.g., a form completed by the user, a user specified list) must be automatically saved so that it will not be lost if an error occurs. Maintain work product integrity—A work product (e.g., a form completed by the user, a user specified list) must be automatically saved so that it will not be lost if an error occurs. Readability—All information presented through the interface should be readable by young and old. Readability—All information presented through the interface should be readable by young and old. Track state—When appropriate, the state of the user interaction should be tracked and stored so that a user can logoff and return later to pick up where she left off. Track state—When appropriate, the state of the user interaction should be tracked and stored so that a user can logoff and return later to pick up where she left off. Visible navigation—A well-designed WebApp interface provides “the illusion that users are in the same place, with the work brought to them.” Visible navigation—A well-designed WebApp interface provides “the illusion that users are in the same place, with the work brought to them.”

24 24 Interface Design Workflow-I Review information contained in the analysis model and refine as required. Review information contained in the analysis model and refine as required. Develop a rough sketch of the WebApp interface layout. Develop a rough sketch of the WebApp interface layout. Map user objectives into specific interface actions. Map user objectives into specific interface actions. Define a set of user tasks that are associated with each action. Define a set of user tasks that are associated with each action. Storyboard screen images for each interface action. Storyboard screen images for each interface action. Refine interface layout and storyboards using input from aesthetic design. Refine interface layout and storyboards using input from aesthetic design.

25 25 Mapping User Objectives

26 26 Interface Design Workflow-II Identify user interface objects that are required to implement the interface. Identify user interface objects that are required to implement the interface. Develop a procedural representation of the user’s interaction with the interface. Develop a procedural representation of the user’s interaction with the interface. Develop a behavioral representation of the interface. Develop a behavioral representation of the interface. Describe the interface layout for each state. Describe the interface layout for each state. Refine and review the interface design model. Refine and review the interface design model.

27 27 Aesthetic Design Don’t be afraid of white space. Don’t be afraid of white space. Emphasize content. Emphasize content. Organize layout elements from top-left to bottom right. Organize layout elements from top-left to bottom right. Group navigation, content, and function geographically within the page. Group navigation, content, and function geographically within the page. Don’t extend your real estate with the scrolling bar. Don’t extend your real estate with the scrolling bar. Consider resolution and browser window size when designing layout. Consider resolution and browser window size when designing layout.

28 28 Content Design Develops a design representation for content objects For WebApps, a content object is more closely aligned with a data object for conventional software Represents the mechanisms required to instantiate their relationships to one another. analogous to the relationship between analysis classes and design components described in Chapter 11 A content object has attributes that include content-specific information and implementation-specific attributes that are specified as part of design

29 29 Design of Content Objects

30 30 Architecture Design Content architecture focuses on the manner in which content objects (or composite objects such as Web pages) are structured for presentation and navigation. The term information architecture is also used to connote structures that lead to better organization, labeling, navigation, and searching of content objects. The term information architecture is also used to connote structures that lead to better organization, labeling, navigation, and searching of content objects. WebApp architecture addresses the manner in which the application is structured to manage user interaction, handle internal processing tasks, effect navigation, and present content. Architecture design is conducted in parallel with interface design, aesthetic design and content design.

31 31 Content Architecture Hierarchical structure Grid structure Linear structure Network structure

32 32 MVC Architecture The model contains all application specific content and processing logic, including The model contains all application specific content and processing logic, including all content objects all content objects access to external data/information sources, access to external data/information sources, all processing functionality that are application specific all processing functionality that are application specific The view contains all interface specific functions and enables The view contains all interface specific functions and enables the presentation of content and processing logic the presentation of content and processing logic access to external data/information sources, access to external data/information sources, all processing functionality required by the end-user. all processing functionality required by the end-user. The controller manages access to the model and the view and coordinates the flow of data between them. The controller manages access to the model and the view and coordinates the flow of data between them.

33 33 MVC Architecture

34 34 Navigation Design Begins with a consideration of the user hierarchy and related use-cases Each actor may use the WebApp somewhat differently and therefore have different navigation requirements As each user interacts with the WebApp, she encounters a series of navigation semantic units (NSUs) NSU—“a set of information and related navigation structures that collaborate in the fulfillment of a subset of related user requirements”

35 35 Navigation Semantic Units Navigation semantic unit Navigation semantic unit Ways of navigation (WoN)— Ways of navigation (WoN)—represents the best navigation way or path for users with certain profiles to achieve their desired goal or sub-goal. Composed of … Navigation nodes (NN) connected by Navigation links NN 1 NN 2 NN 4 NN 3 link 13 link 12 link 34 link 24 NSU

36 36 Creating an NSU

37 37 Component-Level Design WebApp components implement the following functionality WebApp components implement the following functionality perform localized processing to generate content and navigation capability in a dynamic fashion provide computation or data processing capability that are appropriate for the WebApp’s business domain provide sophisticated database query and access establish data interfaces with external corporate systems.

38 38 Design Metrics Does the user interface promote usability? Does the user interface promote usability? Are the aesthetics of the WebApp appropriate for the application domain and pleasing to the user? Are the aesthetics of the WebApp appropriate for the application domain and pleasing to the user? Is the content designed in a manner that imparts the most information with the least effort? Is the content designed in a manner that imparts the most information with the least effort? Is navigation efficient and straightforward? Is navigation efficient and straightforward? Has the WebApp architecture been designed to accommodate the special goals and objectives of WebApp users, the structure of content and functionality, and the flow of navigation required to use the system effectively? Has the WebApp architecture been designed to accommodate the special goals and objectives of WebApp users, the structure of content and functionality, and the flow of navigation required to use the system effectively? Are components designed in a manner that reduces procedural complexity and enhances the correctness, reliability and performance? Are components designed in a manner that reduces procedural complexity and enhances the correctness, reliability and performance?

39 39 Summary Web Engineering Web Engineering WebApp Attributes WebApp Attributes WebApp Categories WebApp Categories WebE Process WebE Process WebApp Designs WebApp Designs Interface, Aesthetic, Content, Navigation, Architecture, Component Interface, Aesthetic, Content, Navigation, Architecture, Component


Download ppt "1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100."

Similar presentations


Ads by Google