93,815 research outputs found
Software Design Guidelines for Usability
For years, the Human Computer Interaction (HCI) community has crafted usability guidelines that clearly define what characteristics a software system should have in order to be easy to use. However, in the Software Engineering (SE) community keep falling short of successfully incorporating these recommendations into software projects. From a SE perspective, the process of incorporating usability features into software is not always straightforward, as a large number of these features have heavy implications in the underlying software architecture. For example, successfully including an “undo” feature in an application requires the design and implementation of many complex interrelated data structures and functionalities. Our work is focused upon providing developers with a set of software design patterns to assist them in the process of designing more usable software. This would contribute to the proper inclusion of specific usability features with high impact on the software design. Preliminary validation data show that usage of the guidelines also has positive effects on development time and overall software design quality
Introducing usability in a conceptual modeling-based software development process.
Usability plays an important role to satisfy users? needs. There are many recommendations in the HCI literature on how to improve software usability. Our research focuses on such recommendations that affect the system architecture rather than just the interface. However, improving software usability in aspects that affect architecture increases the analyst?s workload and development complexity. This paper proposes a solution based on model-driven development. We propose representing functional usability mechanisms abstractly by means of conceptual primitives. The analyst will use these primitives to incorporate functional usability features at the early stages of the development process. Following the model-driven development paradigm, these features are then automatically transformed into subsequent steps of development, a practice that is hidden from the analyst
Evaluating Usability-Supporting Architecture Patterns: Reactions From Usability Professionals
Usability professionals and software engineers typically approach software design
differently; driven by a similar goal to create usable software products yet advocating
distinct design methodologies. This distinction often creates a communication gap that
hinders effective usability design discussions. A potential way to bridge this gap is to
leverage Usability-Supporting Architecture Patterns. Recent studies suggest that they
enable software engineers to include usability considerations in the architecture of
software systems. A better understanding of what the usability community thinks about
these patterns can lead to their improvement as well as increased adoption by software
engineers, hence more effectively integrating usability into software design. The purpose
of this study was to evaluate how usability professionals react to these patterns via an
online pretest-posttest control group design experiment, where participants answered
questions about the patterns based on prior software design experience. Participants
verified there is a communication gap with software engineers, and that Usability-
Supporting Architecture Patterns are perceived as useful to account for usability in
software architectures. Results suggest that participants recognize the patterns’ usability
benefits as important and that the presentation of these usability benefits could be
improved by using language more familiar to usability professionals
Design as Code: Facilitating Collaboration between Usability and Security Engineers using CAIRIS
Designing usable and secure software is hard with-
out tool-support. Given the importance of requirements, CAIRIS was designed to illustrate the form tool-support for specifying usable and secure systems might take. While CAIRIS supports a broad range of security and usability engineering activities,
its architecture needs to evolve to meet the workflows of these stakeholders. To this end, this paper illustrates how CAIRIS and its models act as a vehicle for collaboration between usability and security engineers. We describe how the modified architecture of CAIRIS facilitates this collaboration, and illustrate the tool using three usage scenarios
Design as Code: Facilitating Collaboration between Usability and Security Engineers using CAIRIS
Designing usable and secure software is hard with-
out tool-support. Given the importance of requirements, CAIRIS was designed to illustrate the form tool-support for specifying usable and secure systems might take. While CAIRIS supports a broad range of security and usability engineering activities,
its architecture needs to evolve to meet the workflows of these stakeholders. To this end, this paper illustrates how CAIRIS and its models act as a vehicle for collaboration between usability and security engineers. We describe how the modified architecture of CAIRIS facilitates this collaboration, and illustrate the tool using three usage scenarios
Extensible Component Based Architecture for FLASH, A Massively Parallel, Multiphysics Simulation Code
FLASH is a publicly available high performance application code which has
evolved into a modular, extensible software system from a collection of
unconnected legacy codes. FLASH has been successful because its capabilities
have been driven by the needs of scientific applications, without compromising
maintainability, performance, and usability. In its newest incarnation, FLASH3
consists of inter-operable modules that can be combined to generate different
applications. The FLASH architecture allows arbitrarily many alternative
implementations of its components to co-exist and interchange with each other,
resulting in greater flexibility. Further, a simple and elegant mechanism
exists for customization of code functionality without the need to modify the
core implementation of the source. A built-in unit test framework providing
verifiability, combined with a rigorous software maintenance process, allow the
code to operate simultaneously in the dual mode of production and development.
In this paper we describe the FLASH3 architecture, with emphasis on solutions
to the more challenging conflicts arising from solver complexity, portable
performance requirements, and legacy codes. We also include results from user
surveys conducted in 2005 and 2007, which highlight the success of the code.Comment: 33 pages, 7 figures; revised paper submitted to Parallel Computin
- …