Browsing by Author "Ghanam, Yaser"
Now showing 1 - 11 of 11
Results Per Page
- ItemMetadata onlyActiveStory Enhanced: Low-Fidelity Prototyping and Wizard of Oz Usability Testing Tool(Springer, 2009) Hosseini-Khayat, Ali; Ghanam, Yaser; Park, Shelly; Maurer, FrankThis paper presents “ActiveStory Enhanced” as a tool that enables prototyping user interfaces and conducting usability tests in a way that is aligned with agile principles. The tool allows designers to sketch user interface prototypes as well as add basic interactions to provide navigation. Sketching can be done using a mouse or stylus on tablet PCs. Designers can then export the prototype to a web-based Wizard of Oz testing tool, allowing test participants to remotely walk through a UI while recording metrics such as mouse movements and time spent on pages. ASE improves on the original by providing some usability improvements, improved browser support, undo support, more control over the design and an improved pen and paper metaphor.
- ItemMetadata onlyAdapting Existing Applications to Support New Interaction Technologies: Technical and Usability Issues(ACM, 2010) Andreychuk, Darren; Ghanam, Yaser; Maurer, FrankEngineering interactive systems for use on emerging technologies such as touch-enabled devices and horizontal displays is not straightforward. Firstly, the migration process of a system from an old hardware platform to new multi-touch displays is challenging. Issues pertaining to scaling, orientation, new input mechanisms, novel interaction techniques and different SDKs need to be examined. Secondly, even after we manage to understand and resolve these issues, we need to find effective ways to migrate applications and maintain them. This paper contributes a thorough analysis of the technical and usability issues that need to be considered when migrating systems to different touch-enabled technologies including vertical and horizontal displays.
- ItemOpen AccessAn agile framework for variability management in software product line engineering(2012-07-13) Ghanam, Yaser; Maurer, FrankDuring the past few years, research in agile product line engineering has been gaining more popularity, driven by the much needed ability to combine the flexibility and high responsiveness of agile methods with the economic advantages of reuse and mass customization offered by software product lines. This dissertation presents a novel framework to manage variability in software product lines in an agile context. By leveraging agile practices such as iterative and incremental development, test-driven development, and refactoring, this dissertation shows that a reactive approach to variability management is indeed feasible. The findings of this research demonstrate that acceptance tests can play an important role in variability elicitation; but they may not be sufficient to deduce implicit constraints from requirements. This issue is addressed by using executable acceptance tests alongside feature models in order to uncover implicit constraints and hidden dependencies. The dissertation also discusses the role of executable acceptance tests in supporting the evolution of variability by providing instantaneous feedback on the impact of adding or removing features or variants. For requirements that cannot be adequately described using acceptance tests such as usability and portability requirements, the dissertation demonstrates how such requirements can be treated using a lightweight and reactive approach. At the implementation level, the results of this research show that realizing variability can occur in a reactive manner provided that proper refactoring and testing practices are followed. The results also illustrate how the process can be made more systematic by using tests as a common starting point to inject variability on-demand. The efficiency of the process can be improved by providing automated tool support. Once variability has been realized in the system, the dissertation discusses how individual products can be built using the derivation technique or the instantiation technique. Finally, the dissertation presents important findings on the issues and challenges likely to arise when adopting a new software product line framework in an industrial context. The findings reveal a number of technical challenges, but also bring to surface non-technical issues related to the business needs, the organizational context, and a raft of human factors.
- ItemOpen AccessChatVis: A visualization Tool for Instant Messaging(2008-06-18T17:37:31Z) Carpendale, Sheelagh; Ghanam, YaserThis report presents ChatVis as a 2,800 LOC tool for visualizing activities in instant messaging conversations. The tool visualizes at four different levels, starting from the conversation level down to the message level, the word level and finally the character level. The tool provides means to visualize the typing speed and rhythms of an arbitrary number of conversers. Additionally, it attempts to visualize intangible characteristic of a typed message such as hesitance (uncertainty) and emphasis. ChatVis allows for mouse as well as keyboard interactions to give the user a variety of filtering and zooming options. The system state is always saved allowing for animation through temporal aspects of the conversation. Moreover, the conversation can be persisted to XML and loaded back on demand for comparison purposes amongst different people.
- ItemOpen AccessDiscount Usability Testing(2008-06-18T17:44:31Z) Maurer, Frank; Ghanam, YaserUsability testing need not be costly and time-consuming to be effective. Discount usability testing provides a set of cheap, fast and easy to apply techniques including think aloud, card sorting, walkthroughs, scenarios and heuristic evaluation. These methods can reveal major and minor usability issues in a system at a low cost. Although it is an advantage, evaluators need not be usability experts. These methods can be utilized early in the design cycle or during the implementation phase. In an Agile setting, discount usability testing works effectively because of the iterative nature of this model. Discount methods tend to find superficial problems; thus they usually are not suitable for in-depth usability studies. Discount usability testing is not a replacement of traditional usability testing, but can be very advantageous compared to doing nothing.
- ItemOpen AccessAn Evaluation of Low Fidelity Prototyping Techniques in Agile Release Planning for Collocated Teams(2008-06-19T15:56:28Z) Greenberg, Saul; Ghanam, Yaser; Wang, XinIn an Agile environment where the requirement elicitation is a continuous process, low-fidelity prototypes are increasingly important. Collocated Agile teams often use the traditional whiteboard to draw these prototypes and discuss it with the customer in the release planning meeting preceding each iteration. For the same purpose, SMART Boards are also being utilized by some Agile teams. A study to compares prototyping using both tools was conducted in an academic setting showing an equal preference for both tools with the whiteboard being perceived better in terms of readability and the SMART Board being deemed a better means of sharing. With tools having different pros and cons, it was suggested that both tools can be utilized in release planning meetings to do different kinds of tasks or to accommodate different room settings.
- ItemMetadata onlyExtreme Product Line Engineering – Refactoring for Variability: A Test-Driven Approach(Springer, 2010) Ghanam, Yaser; Maurer, FrankSoftware product lines - families of similar but not identical software products - need to address the issue of feature variability. That is, a single feature might require various implementations for different customers. Also, features might need optional extensions that are needed by some but not all products. Software product line engineering manages variability by conducting a thorough domain analysis upfront during the planning phases. However, upfront, heavyweight planning approaches are not well-aligned with the values of minimalistic practices like XP where bottom-up, incremental development is common. In this paper, we introduce a bottom-up, test-driven approach to introduce variability to systems by reactively refactoring existing code. We support our approach with an eclipse plug-in to automate the refactoring process. We evaluate our approach by a case study to determine the feasibility and practicality of the approach.
- ItemOpen AccessHeuristic Evaluation as A Usability Engineering Method(2008-06-18T21:43:41Z) Greenberg, Saul; Ghanam, YaserThe term “heuristics” has been widely used in different aspects of computer science to refer to a set of predefined and recognized principles upon which comparisons and evaluation of systems can be held. These principles are usually obtained from historical data of previously conducted projects or experiments and typically are agreed on by a group of scientists or experts in the field. In human computer interaction, Jacob Nielsen introduced the concept of heuristic evaluation as a discount usability method that best suits those extremely time constrained and budget limited projects. According to , heuristic evaluation is categorized under the informal methodologies of usability evaluation. A number of evaluators are given the set of predefined principles “heuristics” and asked to analyze a user interface using these heuristics as a standard. Although there are no restrictions on the number of the evaluators, there are some heuristics that define standards for how many evaluators are needed to increase the effectiveness and reliability of this method. It is stated by  that heuristic evaluation better be a group effort, simply because no one individual can inspect all the usability issues, but rather “different people find different usability problems.” Heuristic evaluation can be applied very early in the design cycle even before any implementation starts, particularly if prototypes are used for evaluation. It can also be applied during the actual implementation phase, especially in iterative development models, where usability inspection can be applied to ready-to-use interfaces. The following sections discuss this method in detail and give general guidelines on how to apply it. Moreover, the benefits and shortcomings of heuristic evaluation are also explained. At the end of this document, a fully detailed example is provided.
- ItemOpen AccessObject-Specific Interfaces in Smart Homes(2009-08-06T18:00:57Z) Ghanam, Yaser; Shouman, Maha; Greenberg, SaulAs smart homes become more widespread, the need for more natural forms of interaction in the home also increases. On the one hand, forcing a user to go to a central home controller at every required change does not make sense. On the other hand, having a different controller for each device is also quite overwhelming. Object-Specific Interfaces (OSIs) allow an interface customized to an object of interest to show up on a mobile device when in close proximity to it. The interface can be passive, thus showing a manual or information, or interactive and so would allow for device monitoring and controlling.
- ItemOpen AccessA Survey Paper on Software Architecture Visualization(2008-06-19T16:11:43Z) Carpendale, Sheelagh; Ghanam, YaserUnderstanding the software architecture is a vital step towards building and maintaining software systems. But software architecture is an intangible conceptual entity. Therefore, it is hard to comprehend a software architecture without a visual mapping that reduces the burden on the human brain. Visualizing software architecture has been one of the most important topics in software visualization. Not only are architects interested in this visualization but also developers, testers, project managers and even customers. This paper is a survey on recent and key literature on software architecture visualization. It touches on efforts that defined what characteristics an effective visualization should have. It compares various efforts in this discipline according to taxonomies such as dimensionality, multiplicity of views and use of metaphors. The paper also discusses trends and patterns in recent research and addresses research questions that are still open for further investigation.
- ItemMetadata onlyA Test-Driven Approach for Extracting Libraries of Reusable Components from Existing Applications(Springer, 2011) Selim, Elaf; Ghanam, Yaser; Burns, Chris; Seyed, Teddy; Maurer, FrankIn agile approaches such as Extreme Programming, time is not spent on making sure that system components can be reused in similar systems. Therefore, there is a need to investigate whether reuse can be achieved by extracting reusable assets from existing applications. This paper presents an approach that relies on refactoring and testing practices for extracting reusable assets from existing applications. The approach creates reusable APIs in a bottom-up fashion, on demand when a new application might benefit from component in an existing application. The extraction process is guided and supported by the usage examples and the testing scenarios in the existing application and the new one. The paper presents a case study, where the approach was used to extract components from the user interface of an existing application, wrap these components in an API, and use this API in the existing and new applications.