SEDec 18, 2014Code
Toward Refactoring of DMARF and GIPSY Case Studies a Team 7 SOEN6471-S14 Project ReportAbdulrhman Albeladi, Ahmed Almessabi, Aber Abozkhar et al.
Software architecture is defined as the process of a well-structured solution that meets all of the technical and operational requirements, as well as improving the quality attributes of the system such as readability, Reliability, maintainability, and performance. It involves a series of design decisions that can have a considerable impact on the systems quality attributes, and on the overall success of the application. In this work, we start with analysis and investigation of two open source software (OSS) platforms DMARF and GIPSY, predominantly implemented in Java. Many research papers have been studied in order to gain more insights and clear background about their architectures, enhancement, evolution, challenges, and features. Subsequently, we extract and find their needs, high-level requirements, and architectural structures which lead to important design decisions and thus influence their quality attributes. Primarily, we reversed engineering each system0s source code to reconstruct its domain model and class diagram model. We tried to achieve the traceability between requirements and other design artifacts to be consistent. Additionally, we conducted both manual and automated refactoring techniques to get rid of some existing code smells to end up with more readable and understandable code without affecting its observable behavior.
CYMay 7, 2015
Multiplayer Games and their Need for Scalable and Secure State ManagementZakaria Alomari
In recent years, massively multiplayer online games (MMOGs) have become very popular by providing more entertainment, therefore millions of players now participate may interact with each other in a shared environment, even though these players may be separated by huge geographic distances. Peer to Peer (P2P) architectures become very popular in MMOG recently, due to their distributed and collaborative nature, have low infrastructure costs, achieve fast response times by creating direct connections between players and can achieve high scalability. However, P2P architectures face many challenges and tend to be vulnerable to cheating. Game distribution between peers makes maintaining control of the game becomes more complicated. Therefore, broadcasting all state changes to every player is not a viable solution to maintain a consistent game state in a MMOGs. To successfully overcome the challenge of scale, MMOGs have to employ sophisticated interest management techniques that only send relevant state changes to each player. In this paper, In order to prevent cheaters to gain unfair advantages in P2P-based MMOGs, several cheat-proof schemes have been proposed that utilize a range of techniques such as cryptographic mechanisms, Commitment and agreement protocols, and proxy architecture.