Chapter 29 Web Engineering
Web Engineering is used to create high-quality Web-based systems
and applications (WebApps). Web Engineering emphasizes the same philosophy
of taking a disciplined approach to the technical and managerial activities
of traditional software engineering.
Some of the differences are that many types of people are involved in creating
WebApps, such as non-technical content developers and a wide range of end-users,
and a variety of new tools are available. Web Engineering is not yet widely
practiced, yet should be, considering the widespread use, and increasing complexity
and sophistication, of WebApps.
Web-based Applications (WebApps) are:
- Network Intensive
- Content-driven - often multi-media
- Continuously evolving
- Immediately available
- Difficult to secure
- Aesthetically as well as technically designed
Web engineers should be concerned more with designing a robust, reliable, and
maintainable infrastructure, than with the content, which is likely to change
frequently and indefinitely.
Web Application Quality (like other software systems):
- Usability (interface, feedback)
- Functionality (search/retrieve, navigation)
- Reliability (error recovery, input validation)
- Efficiency (response time, page speed)
- Maintainability (ease of update, adaptability)
Web Development Technologies
- Component-based infrastructure development
- e.g., CORBA, COM/DCOM, JavaBeans standards
- Security
- Internet standards: HTML, XML
Iterative Process Model for Web Development
- Formulation/Planning/Analysis/Engineering/Testing/Evaluation
- Design: Architecture, Navigation, Interface, Content, Production
- Goals, objectives, scope, cost, risk, schedule: all still apply
Formulation
- Customer and developer establish common goals
- Why needed, who will use, what information, what tasks
- User profile
- Scope
- Data, functional, behavioral requirements
Analysis
- content, interaction, functionality, configuration
- documented to pass to Web designer(s)
Design
- Hypermedia rules and methods, patterns, templates
- Structures: linear, grid, hierarchical, networked
- User roles = levels of access
- Interface: reliability, consistency, simplicity, clarity
Testing
- Content errors, navigation errors
- Unit testing, integration testing
- Controlled and monitored set of end-users
Web Project Management
- Multidisciplinary Project Team:
- content provider, publisher, engineer, support, administrator
- Web projects often outsourced
- Initiation:
- goals, audience(s), deliverables, measures of success
- Rough design: scope, expect incremental changes
- Schedule: relatively short, frequent milestones
- Contractor oversight and interaction plan
- Request for quote
- Vendor selection (interviews, samples, experience, fit)
- Cost/benefit analysis
- Change/configuration management
- content, people, scalability, politics
- SCM process: flexible, easy to understand
- control over many distributed objects
Study Guide:
Key words:
component-based
content provider
HTML
middleware standards
navigation
|
page generation
scalability
WebApps
Web Engineering (WebE)
XML |
Be able to :
- Compare traditional software engineering with Web engineering (similarities
and differences)
- List attributes of WebApp quality
- Describe the iterative process model for Web development
- List and compare WebApp architectures (linear, grid, hierarchical, networked)
- List guidelines for WebApp user interface design
- Describe the array of skills required on a WebE team
- Explain the steps needed to effectively outsource a WebApp project
Suggested Exercises:
4, 5, 9, 11, 17, 18