Assignment 2
Assignment 2
Software Re-Engineering
Assignment No. 2 “Reverse and Forward Engineering”
Course Code: SEN2021 Course Title: Software Re-Engineering
Objective:
The goal of this assignment is to apply both reverse
engineering and forward engineering techniques to analyze
and enhance an existing Content Management System
(CMS). The assignment will assess your ability to understand
an existing system, identify its components, and implement
improvements or modifications.
Key Components:
Content Management Interface: Wix's drag-and-drop editor is its core component, offering a WYSIWYG
(What You See Is What You Get) experience.
Role Management: Wix offers different user roles (site owner, contributors, etc.) with varying levels of
access.
Integrations: Extensive app market and API access for third-party integrations (e.g., payment gateways,
marketing tools, analytics).
Content Creation Process: Users select a template, then use the drag-and-drop editor to add, modify, and
arrange elements (text, images, videos, forms, etc.). Changes are saved automatically. Publishing makes the
website live.
User Role Management: The site owner can invite collaborators and assign roles with specific permissions
(e.g., edit content, manage SEO, access analytics). This allows for controlled collaboration and prevents
unauthorized changes.
Potential Security Issues: Wix has a good security track record. However, vulnerabilities are always possible
in any complex system. Black-box analysis limits our ability to pinpoint specific areas of concern.
Enhancement 1: Improved Version Control: While Wix offers some version history, it could be
enhanced with more granular control, similar to Git. Users should be able to revert to specific past
versions, compare changes, and branch/merge different versions of their website. This would be
beneficial for collaborative projects and complex sites.
Enhancement 2: Enhanced SEO Tools: Wix provides basic SEO features, but more advanced tools
could be integrated. For example, deeper SERP (Search Engine Results Page) analysis, competitor
analysis, keyword research tools, and content optimization suggestions would be valuable additions.
Redesigning the Content Management Database: We can hypothesize an improvement to how Wix
stores content. Instead of a monolithic structure (which we can only assume they might be using), a
more modular, component-based approach would increase flexibility and scalability. Content
elements could be stored as reusable objects, making it easier to manage complex designs and
personalize experiences.
Wix could implement version control by storing snapshots of website data at various save points. These
snapshots would capture the state of the content, design, and settings. A version history interface would
allow users to browse, compare, and restore previous versions. This feature could be implemented using Git-
like principles but adapted to the Wix platform's architecture.