11,939 research outputs found

    Design and Implementation of Online Learning Environments

    Get PDF
    This thesis describes a systematic approach in the design and implementation of online learning environments. This approach incorporates the principles of human learning as well as the best practices in software engineering. This thesis implements a conceptual model for the design, and it describes how software elements can be developed to comply with the model. In the context of this research two online environments are developed and analyzed. The end product of this approach is a robust and reusable software architecture, a framework for design, and an effective and engaging model suited to online learning environments

    Design and Implementation of Online Learning Environments

    Get PDF
    This thesis describes a systematic approach in the design and implementation of online learning environments. This approach incorporates the principles of human learning as well as the best practices in software engineering. This thesis implements a conceptual model for the design, and it describes how software elements can be developed to comply with the model. In the context of this research two online environments are developed and analyzed. The end product of this approach is a robust and reusable software architecture, a framework for design, and an effective and engaging model suited to online learning environments

    Design and Implementation of Online Learning Environments

    Get PDF
    This thesis describes a systematic approach in the design and implementation of online learning environments. This approach incorporates the principles of human learning as well as the best practices in software engineering. This thesis implements a conceptual model for the design, and it describes how software elements can be developed to comply with the model. In the context of this research two online environments are developed and analyzed. The end product of this approach is a robust and reusable software architecture, a framework for design, and an effective and engaging model suited to online learning environments

    Rethinking Productivity in Software Engineering

    Get PDF
    Get the most out of this foundational reference and improve the productivity of your software teams. This open access book collects the wisdom of the 2017 "Dagstuhl" seminar on productivity in software engineering, a meeting of community leaders, who came together with the goal of rethinking traditional definitions and measures of productivity. The results of their work, Rethinking Productivity in Software Engineering, includes chapters covering definitions and core concepts related to productivity, guidelines for measuring productivity in specific contexts, best practices and pitfalls, and theories and open questions on productivity. You'll benefit from the many short chapters, each offering a focused discussion on one aspect of productivity in software engineering. Readers in many fields and industries will benefit from their collected work. Developers wanting to improve their personal productivity, will learn effective strategies for overcoming common issues that interfere with progress. Organizations thinking about building internal programs for measuring productivity of programmers and teams will learn best practices from industry and researchers in measuring productivity. And researchers can leverage the conceptual frameworks and rich body of literature in the book to effectively pursue new research directions. What You'll Learn Review the definitions and dimensions of software productivity See how time management is having the opposite of the intended effect Develop valuable dashboards Understand the impact of sensors on productivity Avoid software development waste Work with human-centered methods to measure productivity Look at the intersection of neuroscience and productivity Manage interruptions and context-switching Who Book Is For Industry developers and those responsible for seminar-style courses that include a segment on software developer productivity. Chapters are written for a generalist audience, without excessive use of technical terminology. ; Collects the wisdom of software engineering thought leaders in a form digestible for any developer Shares hard-won best practices and pitfalls to avoid An up to date look at current practices in software engineering productivit

    Rethinking Productivity in Software Engineering

    Get PDF
    Get the most out of this foundational reference and improve the productivity of your software teams. This open access book collects the wisdom of the 2017 "Dagstuhl" seminar on productivity in software engineering, a meeting of community leaders, who came together with the goal of rethinking traditional definitions and measures of productivity. The results of their work, Rethinking Productivity in Software Engineering, includes chapters covering definitions and core concepts related to productivity, guidelines for measuring productivity in specific contexts, best practices and pitfalls, and theories and open questions on productivity. You'll benefit from the many short chapters, each offering a focused discussion on one aspect of productivity in software engineering. Readers in many fields and industries will benefit from their collected work. Developers wanting to improve their personal productivity, will learn effective strategies for overcoming common issues that interfere with progress. Organizations thinking about building internal programs for measuring productivity of programmers and teams will learn best practices from industry and researchers in measuring productivity. And researchers can leverage the conceptual frameworks and rich body of literature in the book to effectively pursue new research directions. What You'll Learn Review the definitions and dimensions of software productivity See how time management is having the opposite of the intended effect Develop valuable dashboards Understand the impact of sensors on productivity Avoid software development waste Work with human-centered methods to measure productivity Look at the intersection of neuroscience and productivity Manage interruptions and context-switching Who Book Is For Industry developers and those responsible for seminar-style courses that include a segment on software developer productivity. Chapters are written for a generalist audience, without excessive use of technical terminology. ; Collects the wisdom of software engineering thought leaders in a form digestible for any developer Shares hard-won best practices and pitfalls to avoid An up to date look at current practices in software engineering productivit

    Integrating Human Factors with Structured Analysis and Design Methods

    Get PDF
    Current human factors input to system development is effected through methods, tools and guidelines. Although the input prompts the consideration of human factors concerns during system design, reports have highlighted inadequacies with respect to the scope, granularity, format and timing of the contributions, e.g. Smith, 1986; Chapanis and Burdurka, 1990; Sutcliffe, 1989; etc. The thesis argues that such problems are obviated if design needs of both Software Engineering and Human Factors are appropriately represented within an overall system design cycle. Intersecting concerns may then be identified for explicit accommodation by the design agenda. To derive an overall design cycle, current conceptions for the individual disciplines should be examined. Since these conceptions are expressed at a lower level as methods, an overall design cycle may be instantiated more specifically by integrating compatible methods from the two disciplines. Methodological integration is desirable as design inter-dependencies and roles may be defined explicitly. More effective inter-disciplinary communication may also accrue from the use of a common set of notations. Methodological integration is facilitated if the design scope, process and notation of individual methods are well defined. Such characteristics are found in a class of Software Engineering methods commonly referred to as structured analysis and design methods. Unfortunately, the same are not currently to be found for human factors since its methods are generally unstructured and focus only on later design stages. 1 Thus, a pre-requisite for integration is the derivation of a reasonably complete and structured human factors method. Since well developed Software Engineering methods already exist, it would be appropriate (for the purposes of methodological integration) to structure human factors methods around specific structured analysis and design methods. The undertaking is exemplified by the present research for the Jackson System Development method. In other words, the scope of the thesis comprises the derivation, test and integration of a structured human factors method with the Jackson System Development method. In conclusion, the research contributes to the Human Factors discipline in two respects. Firstly, it informs the research community on how similar work with other structured analysis and design methods may be set up. Secondly, it offers designers an extended Jackson System Development method that facilitates the incorporation of human factors during system development

    Software-Architecture Recovery from Machine Code

    Get PDF
    In this paper, we present a tool, called Lego, which recovers object-oriented software architecture from stripped binaries. Lego takes a stripped binary as input, and uses information obtained from dynamic analysis to (i) group the functions in the binary into classes, and (ii) identify inheritance and composition relationships between the inferred classes. The information obtained by Lego can be used for reengineering legacy software, and for understanding the architecture of software systems that lack documentation and source code. Our experiments show that the class hierarchies recovered by Lego have a high degree of agreement---measured in terms of precision and recall---with the hierarchy defined in the source code

    Meta-parametric design: Developing a computational approach for early stage collaborative practice

    Get PDF
    Computational design is the study of how programmable computers can be integrated into the process of design. It is not simply the use of pre-compiled computer aided design software that aims to replicate the drawing board, but rather the development of computer algorithms as an integral part of the design process. Programmable machines have begun to challenge traditional modes of thinking in architecture and engineering, placing further emphasis on process ahead of the final result. Just as Darwin and Wallace had to think beyond form and inquire into the development of biological organisms to understand evolution, so computational methods enable us to rethink how we approach the design process itself. The subject is broad and multidisciplinary, with influences from design, computer science, mathematics, biology and engineering. This thesis begins similarly wide in its scope, addressing both the technological aspects of computational design and its application on several case study projects in professional practice. By learning through participant observation in combination with secondary research, it is found that design teams can be most effective at the early stage of projects by engaging with the additional complexity this entails. At this concept stage, computational tools such as parametric models are found to have insufficient flexibility for wide design exploration. In response, an approach called Meta-Parametric Design is proposed, inspired by developments in genetic programming (GP). By moving to a higher level of abstraction as computational designers, a Meta-Parametric approach is able to adapt to changing constraints and requirements whilst maintaining an explicit record of process for collaborative working

    A Pure Java Parallel Flow Solver

    Get PDF
    In this paper an overview is given on the "Have Java" project to attain a pure Java parallel Navier-Stokes flow solver (JParNSS) based on the thread concept and remote method invocation (RMI). The goal of this project is to produce an industrial flow solver running on an arbitrary sequential or parallel architecture, utilizing the Internet, capable of handling the most complex 3D geometries as well as flow physics, and also linking to codes in other areas such as aeroelasticity etc. Since Java is completely object-oriented the code has been written in an object-oriented programming (OOP) style. The code also includes a graphics user interface (GUI) as well as an interactive steering package for the parallel architecture. The Java OOP approach provides profoundly improved software productivity, robustness, and security as well as reusability and maintainability. OOP allows code construction similar to the aerodynamic design process because objects can be software coded and integrated, reflecting actual design procedures. In addition, Java is the programming language of the Internet and thus Java is the programming language of the Internet and thus Java objects on disparate machines or even separate networks can be connected. We explain the motivation for the design of JParNSS along with its capabilities that set it apart from other solvers. In the first two sections we present a discussion of the Java language as the programming tool for aerospace applications. In section three the objectives of the Have Java project are presented. In the next section the layer structures of JParNSS are discussed with emphasis on the parallelization and client-server (RMI) layers. JParNSS, like its predecessor ParNSS (ANSI-C), is based on the multiblock idea, and allows for arbitrarily complex topologies. Grids are accepted in GridPro property settings, grids of any size or block number can be directly read by JParNSS without any further modifications, requiring no additional preparation time for the solver input. In the last section, computational results are presented, with emphasis on multiprocessor Pentium and Sun parallel systems run by the Solaris operating system (OS)
    • ā€¦
    corecore