235,621 research outputs found
Insights from expert software design practice
Software is a designed artifact. In other design disciplines, such as architecture, there is a well-established tradition of design studies which inform not only the discipline itself but also tool design, processes, and collaborative work. The 'challenge' of this paper is to consider software from such a 'design studies' perspective. This paper will present a series of observations from empirical studies of expert software designers, and will draw on examples from actual professional practice. It will consider what experts' mental imagery, software visualisations, and sketches suggest about software design thinking. It will also discuss some of the deliberate practices experts use to promote innovation. Finally, it will open discussion on the tensions between observed software design practices and received methodology in software engineering
Heuristic Theorizing in Software Development: Deriving Design Principles for Smart Glasses-based Systems
Design knowledge on smart glasses-based systems is scarce. Utilizing literature analysis on software development publications, insights from the design and implementation of four smart glasses-based systems and expert interviews, we elicited 16 design principles to provide guidance in the development of future service support systems. Heuristic Theorizing is an abductive Design Science Research method, hitherto far too little known or little noticed, which was applied to conduct the research. We contribute to theory and practice with applicable design principles to support the development of smart glasses-based systems. Phenomena known to have an impact on the adoption of smart glasses are addressed by these design principles
Support for collaborative component-based software engineering
Collaborative system composition during design has been poorly supported by traditional CASE tools (which have usually concentrated on supporting individual projects) and almost exclusively focused on static composition. Little support for maintaining large distributed collections of heterogeneous software components across a number of projects has been developed. The CoDEEDS project addresses the collaborative determination, elaboration, and evolution of design spaces that describe both static and dynamic compositions of software components from sources such as component libraries, software service directories, and reuse repositories. The GENESIS project has focussed, in the development of OSCAR, on the creation and maintenance of large software artefact repositories. The most recent extensions are explicitly addressing the provision of cross-project global views of large software collections and historical views of individual artefacts within a collection. The long-term benefits of such support can only be realised if OSCAR and CoDEEDS are widely adopted and steps to facilitate this are described.
This book continues to provide a forum, which a recent book, Software Evolution with UML and XML, started, where expert insights are presented on the subject.
In that book, initial efforts were made to link together three current phenomena: software evolution, UML, and XML. In this book, focus will be on the practical side of linking them, that is, how UML and XML and their related methods/tools can assist software evolution in practice.
Considering that nowadays software starts evolving before it is delivered, an apparent feature for software evolution is that it happens over all stages and over all aspects.
Therefore, all possible techniques should be explored. This book explores techniques based on UML/XML and a combination of them with other techniques (i.e., over all techniques from theory to tools).
Software evolution happens at all stages. Chapters in this book describe that software evolution issues present at stages of software architecturing, modeling/specifying,
assessing, coding, validating, design recovering, program understanding, and reusing.
Software evolution happens in all aspects. Chapters in this book illustrate that software evolution issues are involved in Web application, embedded system, software repository, component-based development, object model, development environment, software metrics, UML use case diagram, system model, Legacy system, safety critical system, user interface, software reuse, evolution management, and variability modeling. Software evolution needs to be facilitated with all possible techniques. Chapters in this book demonstrate techniques, such as formal methods, program transformation,
empirical study, tool development, standardisation, visualisation, to control system changes to meet organisational and business objectives in a cost-effective way. On the journey of the grand challenge posed by software evolution, the journey that we have to make, the contributory authors of this book have already made further
advances
Enterprise Experience into the Integration of Human-Centered Design and Kanban
he integration of Human-Centered Design (HCD) and Agile Software Development (ASD) promises the
development of competitive products comprising a good User Experience (UX). This study has investigated
the integration of HCD and Kanban with the aim to gain industrial experiences in a real world context. A
case study showed that requirements flow into the development process in a structured manner by adding a
design board. To this end, the transparency concerning recurring requirements increased. We contribute to
the body of knowledge of software development by providing practical insights into Human-Centered Agile
Development (HCAD). On one hand, it is shown that the integration of HCD and Kanban leads to a product
with a good UX and makes the development process more human-centered. On the other hand, we conclude
that a cross-functional collaboration speeds up product development.Ministerio de EconomĂa y Competitividad TIN2013-46928-C3-3-RMinisterio de EconomĂa y Competitividad TIN2015-71938-RED
Design Principles for High-Performance Blended Learning Services Delivery - The Case of Software Trainings in Germany
The âperfectâ orchestration of training participants, IT and process design is one of the ongoing challenges within blended learning service research and practice. Blended learning services (BLS) offer a great variety of options to design learning processes, overcoming many shortcomings of pure e-learning services and providing better scalability and more advantages for learners than pure face-to-face class teaching. Nevertheless, due to inconclusive results of blended learning design research in the literature, BLS designers can hardly find support for the systematic design of efficient and successful blended learning processes, which would enable a high degree of learning success with a balanced degree of delivery effort. Based on major determinants of BLS processesâ quality, the authors identify, develop, and evaluate design principles for high performance BLS using an action design research approach. They first derive a set of initial design principles, based on insights from literature and own exploratory case studies as well as workshops with experts from the field. They then improve the design principles iteratively in expert workshops as well as apply the design principles in four software training sessions. Finally, they present seven evaluated design principles for BLS, which are the core of a nascent design theory and contribute to a time-efficient and successful BLS delivery. Furthermore, these principles enable practitioners to systematically apply the design knowledge formalized within the principles in order to improve BLS design and delivery
Guidelines Towards Better Participation of Older Adults in Software Development Processes using a new SPIRAL Method and Participatory Approach
This paper presents a new method of engaging older participants in the
process of application and IT solutions development for older adults for
emerging IT and tech startups. A new method called SPIRAL (Support for
Participant Involvement in Rapid and Agile software development Labs) is
proposed which adds both sustainability and flexibility to the development
process with older adults. This method is based on the participatory approach
and user empowerment of older adults with the aid of a bootstrapped Living Lab
concept and it goes beyond well established user-centered and empathic design.
SPIRAL provides strategies for direct involvement of older participants in the
software development processes from the very early stage to support the agile
approach with rapid prototyping, in particular in new and emerging startup
environments with limited capabilities, including time, team and resources
Embedding accessibility and usability: considerations for e-learning research and development projects
This paper makes the case that if eâlearning research and development projects are to be successfully adopted in realâworld teaching and learning contexts, then they must effectively address accessibility and usability issues; and that these need to be integrated throughout the project. As such, accessibility and usability issues need to be made explicit in project documentation, along with allocation of appropriate resources and time. We argue that accessibility and usability are intrinsically interâlinked. An integrated accessibility and usability evaluation methodology that we have developed is presented and discussed. The paper draws on a series of miniâcase studies from eâlearning projects undertaken over the past 10 years at the Open University
Software Reuse in Agile Development Organizations - A Conceptual Management Tool
The reuse of knowledge is considered a major factor for increasing productivity and quality. In the software industry knowledge is embodied in software assets such as code components, functional designs and test cases. This kind of knowledge reuse is also referred to as software reuse. Although the benefits can be substantial, software reuse has never reached its full potential. Organizations are not aware of the different levels of reuse or do not know how to address reuse issues. This paper proposes a conceptual management tool for supporting software reuse. Furthermore the paper presents the findings of the application of the management tool in an agile development organization
Expert Elicitation for Reliable System Design
This paper reviews the role of expert judgement to support reliability
assessments within the systems engineering design process. Generic design
processes are described to give the context and a discussion is given about the
nature of the reliability assessments required in the different systems
engineering phases. It is argued that, as far as meeting reliability
requirements is concerned, the whole design process is more akin to a
statistical control process than to a straightforward statistical problem of
assessing an unknown distribution. This leads to features of the expert
judgement problem in the design context which are substantially different from
those seen, for example, in risk assessment. In particular, the role of experts
in problem structuring and in developing failure mitigation options is much
more prominent, and there is a need to take into account the reliability
potential for future mitigation measures downstream in the system life cycle.
An overview is given of the stakeholders typically involved in large scale
systems engineering design projects, and this is used to argue the need for
methods that expose potential judgemental biases in order to generate analyses
that can be said to provide rational consensus about uncertainties. Finally, a
number of key points are developed with the aim of moving toward a framework
that provides a holistic method for tracking reliability assessment through the
design process.Comment: This paper commented in: [arXiv:0708.0285], [arXiv:0708.0287],
[arXiv:0708.0288]. Rejoinder in [arXiv:0708.0293]. Published at
http://dx.doi.org/10.1214/088342306000000510 in the Statistical Science
(http://www.imstat.org/sts/) by the Institute of Mathematical Statistics
(http://www.imstat.org
- âŠ