310 likes | 325 Views
Learn about web engineering and how it differs from normal software engineering. Explore the formulation, planning, analysis, design, and testing processes for web apps. Understand the importance of communication, requirements analysis, and delivery in web engineering. Discover the roles of different team members in web application development and support. Learn about creating web apps with outsourcing or in-house, and the analysis and design processes involved. Gain insights into testing web applications, including content, interface, navigation, component, configuration, security, and performance testing. Compare the planning and design stages in software engineering and web engineering.
E N D
Software Engineering of Web Applications SE Team 6 & SE Team 13 4-28-05
Introduction of Team Members • Chris Gaul • Ruth Miller • Jefferson Hanifah • Ryan Dunn • Evan Tritsch • Amanda Jantz
Overview • What is Web Engineering? • Formulation and Planning for Web Engineers • Analysis Modeling for Web Apps • Design Modeling for Web Apps • Testing Web Apps • Comparison Between Normal Software Engineering vs. Web Engineering
Methods • Communication • Requirements Analysis • Design • Testing
Processes • Delivery • Change • Timelines
Customer Communication • Business Analysis • Formulation
Framework • Planning • Modeling • Construction • Deployment
Web Engineering Application Development Team • Content Developers • Web Publisher • Web Engineer • Business Domain Expert
Application Support Staff • Support Specialist • Enhancements and adaptations to the application itself • Administrator (Webmaster) • Update content and layout changes
Creating a Web App with Outsourcing • Analysis of functionality should be done internally • Design a rough draft • Project Schedule (dates & milestones) • List of Responsibilities • Degree of interaction between contractor and vendor should be identified
Creating a Web App “In-House” • Clearly stated requirements and goals • Incremental project strategy • Perform a Risk Analysis • Quick Time Estimate • Development description • Establish a schedule • Defined project tracking mechanisms
Analysis Modeling for Web Apps Defined • Focuses on 3 questions: • What information is to be presented or manipulated? • What functions are to be performed for the end-user? • What behaviors will the WebApp exhibit as it presents content and performs functions? • Answers are represented as part of an analysis model containing UML representations.
Requirements • User Hierarchy • Developing use-cases • Refining the use case model
Models • Analysis Model • Content Model • Defining Content Objects • Content Relationships and Hierarchy • Analysis Classes for Web Apps • Interaction Model • Functional Model • Configuration Model
Relationship-Navigation Analysis • Key Questions • Navigation Analysis
Quality Security Availability Scalability Time-to-market Goals Simplicity Consistency Identity Robustness Navigability Visual Appeal Compatibility Design Issues
Visual Design • Interface Design • The structure and organization of the user interface. • Aesthetic Design • Graphic design • Look and Feel • Content Design • Layout, structure, and outline for all content • Relationship between objects
Control Design • Architecture Design • Both content architecture and Web App architecture • Navigation Design • The navigational flow between content objects and web app functions • Component Design • Processing logic required to implement functional components
How do we do it • Hypermedia Design Patterns • Object-Oriented Hypermedia Design Method • Design Metrics
Testing Web Applications • More Complex then normal Application Testing • Big difference is that technology variables multiply in web applications. • Different technologies are patch worked together to bring a web application to life. • Types of Testing • Content • Interface • Navigation • Component • Configuration • Security • Performance
Testing Web Applications • Content Testing • Text Errors • Grammatical mistakes • Errors in consistency • Cross referencing errors • Graphical Representations • Dynamic contented delivered from databases
Testing Web Applications • Interface Testing • Implementation mechanisms or omissions • Inconsistencies • Ambiguities • Anything interfaced inadvertently into the interface
Testing Web Applications • Component Testing • Testing each component encapsulated within the web site. • Configuration Testing • Client and server environment problems. • Create a matrix of hardware, operating systems, browsers, hardware platforms and communications protocols. • Test each possible configuration to get all the errors associated with each configuration.
Testing Web Applications • Security Testing • Exploit vulnerabilities in the Web App and environment. • Demonstrate that a security breach is possible • Performance Testing • Response time and reliability effected by traffic • Identifying components responsible for the problems • Load Testing • N, concurrent users • T, online transactions • D, Data Load • P, Overall throughput • P = D X T X N
Comparison Between Software and Web Engineering • Planning [1] • Design [1] • Production [1] • Maintenance [1]
Planning • At this step, in both software and web engineering, they try to find the user needs, create schedule until the application is deployed
Design • In the design of a software, the GUI has to be “user friendly,” and reliable • In the design of web applications, the user must be able to find data and links easily. Also, the user must be able to load the applications very fast.
Production • In software and web engineering, programmers need to test before the applications are launched or deployed
Maintenance • In software engineering, the programmers provide updates and patches for the software every time bugs have been found • In web engineering, the team members need to maintain the sites up-to-date
Resources • http://www-3.ibm.com/ibm/easy/eou_ext.nsf/publish/572