59,296 research outputs found

    Automating the Object-Oriented Software Development Process: Workshop Report

    Get PDF
    Cost-effective realization of robust, adaptable and reusable software systems demands efficient and effective management of the overall software production process. Current object-oriented methods are not completely formalized and lack the ability of reasoning about the quality of processes and software products (artifacts). There is a need for new modeling formalisms, which enable the quantification of the required quality attributes and support the automation of the object-oriented development process (AOOSD). The ECOOP'98 AOOSD workshop was organized to identify the important issues in this direction

    The Express Project: Automating the Software Development Process

    Get PDF
    The goal of the Express project is to provide an efficient software development environment for embedded systems. The approach is to create a new life-cycle paradigm, using rapid prototyping to validate system specifications. The rapid prototype will be made possible by using (1) very high level specification languages that automatically generate code and (2) a user-machine interface that helps both in the layout of the design and in the specification of the input devices and output screens for the embedded system. All user interactions with Express are integrated through Express\u27s knowledge-based Framework, which will support efficient, interdisciplinary communications. The Framework is designed to support evolutionary prototyping. The high-level view of the embedded system can be created and evolved concurrently with the low-level specifications of processing segments that are understood and known to be required. System engineers will define the high-level view (including allocation of requirements from layer to layer), and specialists will create low-level diagrams and specifications for processing threads in each of their (initially) independent areas. In small steps the two views will be merged into a single architecture diagram. One can zoom in on one subsystem and be presented with the fine structure of the subsystem down to the level of executable specifications. A second subsystem, which is reached through the knowledge-based Framework, is the Graphical Specification Subsystem (GSS) for Displays. It will make human-machine interface engineers more productive when designing operator displays for embedded systems. It will allow them to build a display graphically. They can select icons from a menu, position and size each instance of an icon graphically (by mouse action), and specify in a natural way the desired interaction with other portions of the embedded system. Gauges, graphs, and maps are examples of objects represented by icons. The GSS also will be used to specify simulated input devices to the system, such as mice, push buttons, and joysticks

    Automating Security in a Continuous Integration Pipeline

    Get PDF
    Traditional approaches to software security are based on manual methods, which tend to stall development, leading to inefficiency. To speed up a software development lifecycle, security needs to be integrated and automated into the development process. This paper will identify solutions for automating the security phase into a continuous software delivery process, integrating security tools into a Github repository by using Github Actions to create automated vulnerability scanning workflows for a software project.acceptedVersio

    The adoption of software process improvement (SPI) program in the construction industry

    Get PDF
    Integrating the design process and automating the construction process are called for in the Industrialised Building System (IBS) Roadmap 2003-2010 and the Construction Industry Master Plan (CIMP) 2006-2015. Hence, the industry needs to improve the construction delivery process by having as many processes utilizing advanced IT/ICT technologies. With a goal of producing zero product failure and meeting the users’ requirement satisfaction, this is an initial study into automating the construction tasks by studying a systematic process management commonly used for software implementation. We present a feasibility study on the use of a Software Process Improvement (SPI) Program in an IT organization—assuming that the construction organization will become an implementer of computer-integrated procedures in the future. Based on a case study conducted at a local IT software company, it documents the implementation of a SPI program to improve the internal software process development. The study uses the Capability Maturity Model Integration (CMMI) from Software Engineering Institute as SPI framework and IDEAL model-SPI life cycle model for executing and managing SPI program. Results show that the SPI Program model is successful in terms of the IT organization increasing its work productivity, high end-user product satisfaction and reduction of software defects. The paper concludes with discussions on how we can bridge computer science approach into the construction industry, thereby contributing to the development of future theoretical and application methodologies towards applying IT/ICT initiatives in the local construction industry

    Automated software security activities in a continuous delivery pipeline

    Get PDF
    Due to the rise of cyberattacks in IT companies, software security has become a topic for debate. Currently, to secure their products, companies often use manual methods, which makes development stalled and inefficient. To speed up a software development lifecycle, security work needs to be integrated and automated into the development process. This thesis will provide an initial solution for automating the security phase into a continuous software delivery process. This solution involves integrating security tools into a Github repository by using Github Actions to create automated vulnerability scanning workflows for a software project. The solution will then be tested and evaluated with three open-source projects and one project from our sponsor, Volue

    TOWARDS UTILIZATION OF LEAN CANVAS IN THE DEVOPS SOFTWARE

    Get PDF
    The growth of technology made human to depend more on the software applications in his daily life and nowadays software companies focused more on building robust error free software to end customers in very short time. Software development companies facing one side growth of technological complexity and another side build the products fast to win a competition in business. In recent years growth of a DevOps given lot of new growth opportunity for the software companies. DevOps basic principles focused on the collaboration and communication as a key in between software development information technology professional. It is concentrated on the automating the most of the routine tasks such as development, delivery, infrastructure, support, software testing in software development process. DevOps also emphasize on the building, testing and releasing the software more quickly and in a reliable way

    DevOps impact on Software Testing Life Cycle

    Get PDF
    DevOps is a software development practice where the focus is on automating repetitive processes [1]. It has brought a change in the way organizations develop and deliver software products. The main purpose of this paper is to investigate the impact of DevOps on the Software Testing Life Cycle (STLC). There is a lot of ambiguity and confusion as to what is DevOps and how it is practiced and implemented and what change it has brought to the software development and the testing process. In this paper, I have investigated how DevOps has benefited the testing process through automated execution of unit, integration, and workflow tests in the build pipeline. This was achieved through a literature review of studies on test automation and with the help of a case study which is used to list the qualitative benefits of Continuous Testing. The results of the case study show that DevOps has qualitatively benefited the software testing process and has shifted the testing process to earlier phases of the software development cycle

    Selecting a Deployment Automation Tool for CRM Software in Elisa Oy

    Get PDF
    Software passes through several phases during its production process which are typically designing, developing, testing and delivering. In the software development life cycle (SDLC), the ultimate aim is to deliver the software product to its intended users with the expected functionality. Deployment is a critical step which harnesses all the work done in the previous stages in the SDLC and makes the software available to the end user. Thus, failure in the final deployment stage will waste the effort expended in earlier phases. The responsibility for deployment usually belongs to operations teams and it is done manually or then partially automated, often using inefficient scripts. Manual deployment can be extremely difficult task, and it is easy to blunder with repetitive routines consisting of many steps such as setting up similar environments and installing software components in those environments. Some operations teams attempt to ease the manual work by writing scripts to automate the process, but ultimately this method can become complicated and burdensome. The deployment process delays can be avoided and redundant costs eliminated in the error prone manual deployment process by changing the work culture and automating said processes. There are several products on the market to help automate this process. Achieving fully automated provisioning is the ultimate goal to produce and update services rapidly within enterprise applications in large corporations. Full automation is accomplished when the environments are set up automatically, and software installation is automatic in those environments. The objective of this research is to introduce these automation tools to the Customer Relation Management (CRM) system at Elisa Oy and to develop a proposal for automating the deployment process as an alternative to its current manual process. CRM as a large system consists of numerous sub systems and software components. A deployment case with a selected tool will be demonstrated to show how the automation can be accomplished

    Reducing Software Testing Time with Combinatorial Testing and Test Automation

    Get PDF
    The development of large software systems is a complex and error prone process. Errors may occur at any stage of software development. These errors, sometimes referred to as bugs, can cause great losses in terms of both time and money if not identified and removed as early as possible. Testing a software product is costly, since it takes much time and need to test many combinations of its functions, integrity, performance etc., which can be called as test cases. The company\u27s goal is to reduce the testing time, so that they can save money and deliver the product much faster to the customer. Testing time can be reduced in two main ways, first by reducing number of test cases and second by automating repeatedly testing areas. This paper will discuss fundamentals of testing such as importance and difference of verification and validation, testing throughout the software development life cycle and testing methods, levels and types. Then it will discuss the possibility of reducing the time spent on testing by reducing number of test cases with combinatorial testing and automating repeatedly tested areas with test automation using Selenium tool. Finally it will also shed some light on a real world test automation project with selenium and two integrated develop environments

    Improving software engineering processes using machine learning and data mining techniques

    Get PDF
    The availability of large amounts of data from software development has created an area of research called mining software repositories. Researchers mine data from software repositories both to improve understanding of software development and evolution, and to empirically validate novel ideas and techniques. The large amount of data collected from software processes can then be leveraged for machine learning applications. Indeed, machine learning can have a large impact in software engineering, just like it has had in other fields, supporting developers, and other actors involved in the software development process, in automating or improving parts of their work. The automation can not only make some phases of the development process less tedious or cheaper, but also more efficient and less prone to errors. Moreover, employing machine learning can reduce the complexity of difficult problems, enabling engineers to focus on more interesting problems rather than the basics of development. The aim of this dissertation is to show how the development and the use of machine learning and data mining techniques can support several software engineering phases, ranging from crash handling, to code review, to patch uplifting, to software ecosystem management. To validate our thesis we conducted several studies tackling different problems in an industrial open-source context, focusing on the case of Mozilla
    corecore