744,805 research outputs found

    The Name and Nature of Software Engineering

    Full text link
    The nature of software engineering is discussed with particular reference to software-intensive application systems—those whose fundamental purpose is to bring about desired effects in a physical and human problem world by interaction with a programmed machine. Such systems bring together a problem world—which is typically composed of heterogeneous domains, most of which are non-formal—and the formal or semi-formal domain of the machine. A clean engineering separation of the two is rarely, if ever, possible; and attempts to treat the application problem world as an extension of the formal machine are obstructed by its non-formal nature. Software engineers have much to learn from the structure and practices of the established branches of engineering. We must learn from their treatment of formal analysis and reasoning, from their practice of intense specialisation, from their attention to particular instances no less than to general concerns, and—above all—from their reliance on normal artifact design and on normal design disciplines: both are the golden fruit of specialisation

    Design Criteria to Architect Continuous Experimentation for Self-Driving Vehicles

    Full text link
    The software powering today's vehicles surpasses mechatronics as the dominating engineering challenge due to its fast evolving and innovative nature. In addition, the software and system architecture for upcoming vehicles with automated driving functionality is already processing ~750MB/s - corresponding to over 180 simultaneous 4K-video streams from popular video-on-demand services. Hence, self-driving cars will run so much software to resemble "small data centers on wheels" rather than just transportation vehicles. Continuous Integration, Deployment, and Experimentation have been successfully adopted for software-only products as enabling methodology for feedback-based software development. For example, a popular search engine conducts ~250 experiments each day to improve the software based on its users' behavior. This work investigates design criteria for the software architecture and the corresponding software development and deployment process for complex cyber-physical systems, with the goal of enabling Continuous Experimentation as a way to achieve continuous software evolution. Our research involved reviewing related literature on the topic to extract relevant design requirements. The study is concluded by describing the software development and deployment process and software architecture adopted by our self-driving vehicle laboratory, both based on the extracted criteria.Comment: Copyright 2017 IEEE. Paper submitted and accepted at the 2017 IEEE International Conference on Software Architecture. 8 pages, 2 figures. Published in IEEE Xplore Digital Library, URL: http://ieeexplore.ieee.org/abstract/document/7930218

    Technology Transfer: software engineering and engineering design

    Get PDF
    Software engineering has made significant contributions to “engineering-in-the-large”. The nature of the software process has been researched, and computer based tools and environments have been built to support this process. Other more established engineering disciplines, such as instrument design, have developed professional practices, mature mathematical frameworks for system modelling and accepted quality standards lacking in software engineering. Little effort however, has been devoted to the cross-fertilisation of software engineering and engineering design, or indeed the exploitation of the frequently observed commonalities between them. The Software Engineering and Engineering Design (SEED) project described in this article has attempted to address these issues through the study of heterogeneous, composite systems. This has resulted in a model of the engineering design process, an organisational framework for systems development methodology and integrated computer-based support for this framework

    Software Engineering Development Environment For The Launch Processing System

    Get PDF
    Tasked with supporting a progressive Shuttle launch rate, Lockheed Engineering and Software Production set out in 1984 to address the need to increase software productivity. Attention was focused on innovative tools since existing computer development systems were being reallocated for Shuttle operational testing and launch activities. It became apparent that due to the highly integrated nature of software production activities, a solution involving a local area network of engineering workstations was required. After prototyping and proving the design for increasing productivity, Lockheed procured and installed a networked computing system which generated a state-of-the-art environment for software engineering. The introduction of this new technology not only brought about new methods of implementing software changes, it resulted in a culture change for nearly everyone involved in the development cycle

    Software project economics: A roadmap

    Get PDF
    The objective of this paper is to consider research progress in the field of software project economics with a view to identifying important challenges and promising research directions. I argue that this is an important sub-discipline since this will underpin any cost-benefit analysis used to justify the resourcing, or otherwise, of a software project. To accomplish this I conducted a bibliometric analysis of peer reviewed research articles to identify major areas of activity. My results indicate that the primary goal of more accurate cost prediction systems remains largely unachieved. However, there are a number of new and promising avenues of research including: how we can combine results from primary studies, integration of multiple predictions and applying greater emphasis upon the human aspects of prediction tasks. I conclude that the field is likely to remain very challenging due to the people-centric nature of software engineering, since it is in essence a design task. Nevertheless the need for good economic models will grow rather than diminish as software becomes increasingly ubiquitous
    • …
    corecore