Web Engineering: Requirements & Concepts
Web Engineering: Requirements & Concepts
75
Web Applications
Definition
Examples
1. Product-Related Characteristics
2. Usage-Related Characteristics
3. Development-Related Characteristics
• Integration: Works with external services and APIs (e.g., payment gateways).
Web Engineering is grounded in principles that address the unique challenges of web
application development:
Key Components
3. Implementation:
• Progressive Web Applications (PWAs): Combine the best of web and mobile apps.
• Cloud-Based Applications: Use services like AWS and Azure for scalability.
5. Future Trends
• Augmented Reality (AR) and Virtual Reality (VR): Enhancing user engagement.
Conclusion
Web Engineering is a dynamic and multidisciplinary field that plays a critical role in
creating applications that are not only functional but also user-friendly, scalable, and
secure. As web technologies evolve, so too must the practices and principles of web
engineering.
Requirements Engineering for Web Applications
b. Analysis
c. Specification
d. Validation
e. Management
b. Visual Specification
c. Prototypes
1. Focus on Users:
o Emphasize usability and accessibility.
o Involve diverse user groups during elicitation.
2. Handle Complexity:
o Use modular and hierarchical approaches to decompose requirements.
o Leverage automated tools for traceability.
3. Flexibility:
o Be prepared to adapt to frequent changes in requirements due to evolving
user needs.
4. Integration:
o Account for integration with third-party services like APIs and external
platforms.
5. Non-functional Focus:
o Address critical aspects such as security, scalability, and performance.
c. Continuous Feedback
• Use analytics and feedback tools to gather user insights during development.
d. Multidisciplinary Teams
5. Requirement Types
a. Functional Requirements
b. Non-functional Requirements
c. Technical Requirements
d. Business Requirements
6. Notations for RE
a. Textual Notation
• Graphical representations:
o UML Diagrams: Use case, class, sequence diagrams.
o Entity-Relationship Diagrams (ERDs): For database requirements.
c. Formal Notation
b. Collaboration Tools
c. Prototyping Tools
d. Visualization Tools
Conclusion
Requirements Engineering is essential for the success of web applications, ensuring that
the system meets both functional and non-functional needs. Adapting RE methods to the
fast-paced and evolving nature of web application development ensures better user
satisfaction and system reliability.
Technologies for Web Applications
Web applications rely on various client-side and server-side technologies to deliver rich,
interactive, and functional user experiences. These technologies work together to enable
seamless communication between the user interface and backend services.
1. Client-Side Technologies
a. ActiveX Controls
b. Document-Specific Technologies
• Include specialized languages and tools for creating and styling web content.
• Examples:
o HTML for structuring content.
o CSS for styling.
o SVG (Scalable Vector Graphics) for graphics.
• Definition: A combination of HTML, CSS, and JavaScript that allows dynamic and
interactive web pages.
• Key Features:
o Content updates without reloading the page.
o Animations and dynamic styling using CSS and JavaScript.
e. Synchronized Multimedia Integration Language (SMIL)
h. JavaScript
2. Server-Side Technologies
a. Servlets
c. Web Services
d. Middleware Technologies
Conclusion
The technologies used for web applications, from client-side tools like HTML and
JavaScript to server-side frameworks like servlets and middleware, play a crucial role in
enabling robust, scalable, and interactive applications. Their evolution continues to
shape modern web development, ensuring adaptability to user needs and
technological advancements.
Web Application Architectures
Web application architecture defines the design and structure of a web application,
focusing on how components interact and communicate. It ensures scalability,
maintainability, and efficient handling of requests.
1. Frontend (Client-Side):
o Manages user interactions and presentation.
o Technologies: HTML, CSS, JavaScript frameworks (React, Angular, Vue).
2. Backend (Server-Side):
o Handles business logic, data processing, and integration.
o Technologies: Python (Django, Flask), Java (Spring), [Link].
3. Database Layer:
o Stores and retrieves data for the application.
o Types: Relational (MySQL, PostgreSQL) and NoSQL (MongoDB, Cassandra).
4. Middleware:
o Connects frontend and backend, handles communication and
integration.
o Examples: Message queues (RabbitMQ), API Gateways.
5. Web Server:
o Handles HTTP requests and serves content.
o Examples: Apache, Nginx.
2. Layered Architectures
a. Common Layers
1. Presentation Layer:
o User interface and experience.
o Technologies: HTML, CSS, JavaScript.
2. Business Logic Layer:
o Core functionality and rules.
o Technologies: Server-side programming languages.
3. Data Access Layer:
o Interfaces with the database for CRUD operations.
o Technologies: ORM tools like Hibernate, Sequelize.
4. Database Layer:
o Stores structured or unstructured data.
o Examples: MySQL, MongoDB.
3. 2-Layer Architectures
Definition
Advantages
• Easy to implement.
• Suitable for small-scale applications.
Limitations
4. N-Layer Architectures
Definition
1. Presentation Tier:
o Interfaces directly with the user.
2. Application Tier:
o Contains the business logic and processes.
3. Data Tier:
o Manages database and data interactions.
Advantages
Use Cases
5. Data-Aspect Architectures
Definition
6. Database-Centric Architectures
Definition
Key Characteristics
Advantages
Limitations
Components
1. Document Repositories:
o Central storage for documents (e.g., CMS platforms).
2. Metadata Management:
o Indexing and categorizing documents for easy retrieval.
3. Version Control:
o Tracking changes to documents over time.
Use Cases
Key Characteristics
1. Streaming Servers:
o Deliver content in real-time.
o Examples: Wowza, AWS Media Services.
2. Content Delivery Networks (CDNs):
o Distribute multimedia across a network of servers to ensure fast access.
o Examples: Akamai, Cloudflare.
3. Compression and Encoding:
o Optimize multimedia for bandwidth and storage.
Use Cases
Conclusion
Web application architectures are foundational to how applications are designed and
operate. Depending on the application's scale and requirements, different
architectures—ranging from simple 2-layer models to complex database-centric and
multimedia-specific designs—offer varying levels of performance, scalability, and
maintainability.
1. Modeling Requirements
Definition
2. Hypertext Modeling
Definition
Components
1. Nodes:
o Represent web pages or content units.
o Example: Product pages on an e-commerce site.
2. Links:
o Define relationships and navigation paths between nodes.
o Example: A "Next" button linking to the next article.
3. Anchors:
o Specific points within a node for navigation.
Key Structures
1. Hierarchical Structure:
o Tree-like navigation with parent-child relationships.
o Example: Main menu -> Submenu -> Page.
2. Network Structure:
o Interconnected nodes allowing flexible navigation.
o Example: Wikipedia’s cross-referencing links.
3. Composite Structure:
o Combines different structures for complex applications.
o Example: E-commerce apps with hierarchical categories and networked
recommendations.
• Models how users navigate and access content within the application.
Key Elements
1. Navigation Paths:
o Define possible routes users can take.
o Example: Homepage → Product → Checkout.
2. Entry Points:
o Initial nodes accessible to users.
o Example: A homepage or a landing page.
3. Access Restrictions:
o Define role-based access.
o Example: Admins have access to management pages.
• Focuses on organizing and structuring the data and information presented in the
application.
6. Presentation Modeling
Definition
Components
1. Layout Models:
o Specify page layouts and positioning of UI elements.
o Example: Header, navigation bar, main content, footer.
2. Style Models:
o Define visual elements like fonts, colors, and animations.
o Example: Using CSS for consistent branding.
3. Interaction Models:
o Define how users interact with elements.
o Example: Form submission and dynamic content loading.
• Hypertext as a Base:
o Presentation modeling enhances hypertext by defining visual and
interactive aspects.
• Complementary Role:
o Hypertext defines navigation, while presentation ensures a coherent user
experience.
• Example:
o Hypertext: Links connect the homepage to the products page.
o Presentation: Defines how the products page visually appears and
responds to user clicks.
8. Customization Modeling
Definition
• Adapts web application content and presentation to meet user preferences and
contexts.
Types of Customization
1. User-based Customization:
o Tailors content based on user profiles.
o Example: Personalized recommendations on e-commerce platforms.
2. Context-based Customization:
o Adapts to the user’s context (device, location).
o Example: Mobile-friendly layouts for smartphones.
3. Role-based Customization:
o Content varies depending on user roles.
o Example: Admin dashboard vs. regular user interface.
Components
1. Information Design
Definition
• Organizing and structuring information to ensure clarity and accessibility for users.
Key Elements
1. Content Organization:
o Categorizing and hierarchically structuring information.
o Example: Grouping products into categories on an e-commerce site.
2. Labeling Systems:
o Clear and intuitive labels for navigation and content.
o Example: Menu items labeled as “Home,” “About Us,” and “Contact.”
3. Metadata and Indexing:
o Using metadata for better search and retrieval.
o Example: Tags for blog articles.
2. Software Design
Definition
Key Aspects
1. Architectural Design:
o Defines the overall system structure (e.g., layered, microservices).
2. Component Design:
o Breaks functionality into smaller, reusable modules.
o Example: Payment processing as a service.
3. Data Flow and Logic:
o Models interactions between components and data handling.
Challenges
1. Consistency:
o Ensuring the software structure reflects the logical content organization.
2. Flexibility:
o Allowing for dynamic changes in information while maintaining software
integrity.
1. Technical Constraints:
o Limited by browser compatibility, device diversity, and performance
requirements.
2. Design Conflicts:
o Balancing aesthetic design with technical feasibility.
3. Scalability Issues:
o Difficulties in adapting designs to large-scale content or user bases.
5. Presentation Design
Definition
Key Components
1. Visual Hierarchy:
o Emphasizing important elements through size, color, and position.
2. Responsive Design:
o Ensuring consistent experiences across devices.
3. Branding:
o Incorporating consistent colors, logos, and styles.
6. Interaction Design
Definition
1. User Feedback:
o Immediate responses to user actions (e.g., button clicks).
2. Affordances:
o Visual cues indicating interactive elements (e.g., buttons, links).
3. Error Handling:
o Providing clear instructions and recovery options for user errors.
7. Navigation Design
Definition
Key Considerations
1. Global Navigation:
o Persistent menus for accessing main sections.
2. Local Navigation:
o Context-specific menus within subsections.
3. Search Functionality:
o Allowing users to find content directly.
1. Visual Cues:
o Links should be distinguishable through underlining or color changes.
o Example: Hyperlinks in blue with hover effects.
2. Accessibility:
o Ensure links are keyboard-navigable and screen-reader friendly.
3. Contextual Relevance:
o Link text should be descriptive and context-aware.
o Example: Use “Learn more about pricing” instead of “Click here.”
Key Aspects
1. Anchor Tags:
o Use meaningful and unique anchor names for deep linking.
2. Link Parameters:
o Ensure URLs are clean and meaningful.
o Example: [Link]/product/shoes instead of [Link]?id=123.
1. Breadcrumbs:
o Show the user's location in a hierarchical structure.
2. Active Indicators:
o Highlight the current section in the navigation menu.
3. Orientation Tools:
o Provide maps, sitemaps, or guides for better navigation.
Key Examples
1. Wizards:
o Multi-step forms for tasks like account setup or checkout.
2. Guided Processes:
o Tooltips or walkthroughs for onboarding.
Key Considerations
1. Performance:
o Avoiding resource-heavy designs that slow down the application.
2. Integration:
o Aligning design with APIs, databases, and middleware.
3. Scalability:
o Planning for future growth in user base or content.
1. Feature Definitions:
o Detailed documentation of application features.
o Example: “Search feature must return results in under 2 seconds.”
2. Workflow Diagrams:
o Visualizing how users move through application functions.
3. Error Handling:
o Specifying how the system should respond to user or system errors.
Conclusion
1. Testing Terminology
Key Terms:
1. Test Case:
o A set of inputs and expected outputs to validate a specific functionality.
2. Defect/Bug:
o A discrepancy between expected and actual results.
3. Test Plan:
o A document outlining the testing scope, approach, resources, and
schedule.
4. Test Suite:
o A collection of test cases grouped for execution.
5. Regression Testing:
o Ensuring new changes don’t adversely affect existing functionality.
2. Quality Characteristics
1. Functionality:
o Correctness and completeness of features.
2. Usability:
o Ease of use and user satisfaction.
3. Performance:
o Speed, responsiveness, and stability.
4. Security:
o Protection against unauthorized access and vulnerabilities.
5. Compatibility:
o Consistency across different browsers and devices.
3. Test Objectives
4. Test Levels
1. Unit Testing:
o Tests individual components or modules.
2. Integration Testing:
o Verifies interactions between modules.
3. System Testing:
o Validates the complete application.
4. Acceptance Testing:
o Ensures the application meets business needs and user requirements.
6. Test Approaches
Conventional Approaches
Agile Approaches
Components
1. Test Scope:
o Defines what will and won’t be tested.
2. Test Plan:
o Details schedule, resources, and responsibilities.
8. Test Dimensions
1. Functional Testing:
o Validates core functionalities.
2. Non-Functional Testing:
o Focuses on performance, usability, and security.
3. Exploratory Testing:
o Unscripted testing to uncover unexpected issues.
1. Functionality Testing:
o Validate forms, buttons, and data flow.
2. Compatibility Testing:
o Test on multiple browsers and devices.
3. Security Testing:
o Identify vulnerabilities in authentication and data handling.
1. Black-box Testing:
o Test without knowledge of internal code.
2. White-box Testing:
o Test with access to internal logic and structure.
3. Exploratory Testing:
o Improvised testing without predefined cases.
• Ensures compatibility across browsers like Chrome, Firefox, Safari, and Edge.
• Test for layout, functionality, and performance.
1. Load Testing:
o Assess performance under normal conditions.
o Example: Handling 1,000 concurrent users.
2. Stress Testing:
o Test performance under extreme conditions.
o Example: Overloading servers.
3. Continuous Testing:
o Automated tests integrated into the CI/CD pipeline.
1. Vulnerability Scanning:
o Identify potential security flaws.
2. Penetration Testing:
o Simulate attacks to identify weaknesses.
3. Authentication Testing:
o Validate login mechanisms and session management.
1. Definition:
o Writing test cases before coding.
2. Process:
o Write tests → Develop code → Run tests → Refactor code.
3. Advantages:
o Encourages better design and reduces defects.
17. Test Automation
Definition
Benefits
1. Faster execution.
2. Consistent results.
3. Cost-effective for regression testing.
Drawbacks
• Selenium, TestComplete.
Automation Tools
• Jenkins, CircleCI.
Conclusion
1. Understanding Scope
Definition
• Defining the boundaries and deliverables of the project to ensure alignment with
client expectations.
Key Steps
1. Requirement Gathering:
o Identifying business objectives, user needs, and technical requirements.
2. Scope Definition:
o Clearly outlining deliverables and non-deliverables.
3. Scope Documentation:
o Using tools like a Scope Statement or Work Breakdown Structure (WBS).
Challenges
• Scope Creep: Adding features beyond the initial agreement without proper
assessment.
• Example: Adding a payment gateway when it wasn't part of the original plan.
1. Planning:
o Setting goals, defining tasks, and allocating resources.
2. Analysis:
o Understanding requirements and feasibility.
3. Design:
o Creating prototypes and system architecture.
4. Implementation:
o Coding, testing, and integration.
5. Maintenance:
o Updates, debugging, and scaling.
Refinement:
• Forming a team with diverse roles and expertise for web application
development.
Key Roles
1. Project Manager:
o Oversees planning, execution, and delivery.
2. Developers:
o Front-end, back-end, and full-stack engineers.
3. Designers:
o UI/UX specialists to enhance user experience.
4. Testers:
o Ensure quality through manual and automated testing.
5. Content Specialists:
o Develop and manage web content.
Best Practices
4. Managing Risk
Definition
Common Risks
1. Technical Risks:
o Compatibility issues or technology failures.
2. Resource Risks:
o Insufficient team size or budget overruns.
3. Scope Risks:
o Changes in client requirements.
Risk Management Process
1. Risk Identification:
o Conduct brainstorming sessions or SWOT analysis.
2. Risk Assessment:
o Evaluate the likelihood and impact.
3. Risk Mitigation:
o Create contingency plans.
5. Developing a Schedule
Steps in Scheduling
1. Define Tasks:
o Break down activities into smaller tasks using a WBS.
2. Estimate Time:
o Use tools like PERT charts or historical data for accuracy.
3. Sequence Tasks:
o Identify dependencies using Gantt charts or network diagrams.
4. Allocate Resources:
o Assign team members and tools to tasks.
6. Managing Quality
Quality Management Objectives
1. Meet Requirements:
o Ensure the application aligns with client needs.
2. User Satisfaction:
o Focus on usability, performance, and reliability.
3. Compliance:
o Adhere to standards like WCAG or ISO 9001.
Key Activities
1. Quality Planning:
o Define metrics and standards for success.
2. Quality Assurance (QA):
o Establish processes to prevent defects.
3. Quality Control (QC):
o Perform testing to identify and fix defects.
7. Managing Change
Definition
1. Request:
o Log changes using Change Request Forms.
2. Evaluation:
o Assess the impact on time, cost, and quality.
3. Approval:
o Gain stakeholder consent before implementation.
4. Implementation:
o Integrate changes into the project plan.
Challenges
Reporting Progress
Conclusion
Web project management ensures that web applications are delivered on time,
within budget, and with high quality. By focusing on scope definition, risk
management, scheduling, and tracking, project managers can navigate
challenges effectively and achieve project goals.