CINXE.COM
A Case Study Automated Continuous Software Engineering Cycle
<!DOCTYPE HTML> <html lang="en-us"> <head> <script async> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'G-WRDYX4KJG7'); </script> <meta charset="UTF-8"> <!-- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n --> <!-- <meta http-equiv=\"Content-Language\" content=\"en-us\">\n --> <title>A Case Study Automated Continuous Software Engineering Cycle</title> <meta name="description" content="The article is on A Case Study Automated Continuous Software Engineering Cycle. You can add to Conference Locate (Clocate).com general articles as well as specific articles for an event in any category or subject."> <base href="https://www.clocate.com/"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script>!window.jQuery && document.write('<script src="/jquery/jquery-3.4.1.min.js"><\/script>');</script> <!-- <link rel="preload" href="https://fonts.googleapis.com/css?family=Roboto:900,900italic,700,700italic,400,400italic,300,300italic&display=swap" as="style"> <link href='https://fonts.googleapis.com/css?family=Roboto:900,900italic,700,700italic,400,400italic,300,300italic&display=swap' rel='stylesheet' type='text/css'> <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" /> --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"> <link href="/bootstrap-5.0.2-dist/css/bootstrap.min.css" rel="stylesheet"> <script src="/bootstrap-5.0.2-dist/js/bootstrap.bundle.min.js"></script> <!-- <link rel='stylesheet' href='https://cdn-uicons.flaticon.com/2.6.0/uicons-solid-rounded/css/uicons-solid-rounded.css'> --> <link rel="stylesheet" href="/bootstrap-datepicker-latest/css/bootstrap-datepicker.css"> <script src="/bootstrap-datepicker-latest/js/bootstrap-datepicker.min.js"></script> <script src="/typeahead/typeahead.min.js"></script> <script src="https://kit.fontawesome.com/c3367ecfd5.js" crossorigin="anonymous"></script> <!-- <script src="/funcs.js?v=126"></script> --> <script src="/funcs.min.js?v=126"></script> <!-- <link rel="stylesheet" type="text/css" href="/clocate.css?v=149"/> --> <link rel="stylesheet" type="text/css" href="/clocate.min.css?v=149"/> <script async type="text/javascript" src="https://platform-api.sharethis.com/js/sharethis.js#property=646db73c413e9c001905a1c9&product=inline-share-buttons&source=platform" async="async"></script> <!-- <script data-ad-client="ca-pub-7614143061394066" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> --> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-7614143061394066", enable_page_level_ads: true }); // Google consent gtag('consent', 'default', { 'ad_user_data': 'denied', 'ad_personalization': 'granted', 'ad_storage': 'granted', 'analytics_storage': 'granted', 'wait_for_update': 500, }); </script> </head> <body> <nav class="navbar navbar-expand-lg bg-white navbar-light shadow-sm fixed-top align-items-end"> <a class="navbar-brand py-2" href="https://www.clocate.com" title="Conference Locate (Clocate)"> <img src="/images/logo.png" class="img-responsive" alt="Conference Locate (Clocate)"> </a> <button class="navbar-toggler mb-2 me-2" type="button" data-bs-toggle="collapse" data-bs-target="#navCollapse" aria-controls="navCollapse" aria-expanded="false" aria-label="Toggle Navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navCollapse"> <ul class="navbar-nav me-auto"> <li class="nav-item"> <a href="/" title="Home page - Conference Locate (Clocate)" class="nav-link "><i class="fa-sharp fa-regular fa-home text-orange"></i></a> </li> <li class="nav-item"> <a href="/international-conferences/" title="International Conferences 2024, 2025 | International Exhibitions 2024, 2025" class="nav-link ">Events</a> </li> <li class="nav-item"> <a href="/event-organizers/" title="Event Organizers" class="nav-link ">Organizers</a> </li> <li class="nav-item"> <a href="/international-venues/" title="International Venues" class="nav-link ">Venues</a> </li> <li class="nav-item"> <a rel="nofollow" href="/add-conference/" title="Add an Event" class="nav-link ">Add Event</a> </li> <li class="nav-item dropdown me-3"> <a class="nav-link dropdown-toggle " data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Subscribe</a> <ul class="dropdown-menu"> <li><a rel="nofollow" href="/subscribe/" title="Subscribe to Conference Locate (Clocate)" class="dropdown-item text-a0a0a0">Subscribe</a> <a rel="nofollow" href="/sign_in/" title="Sign in" class="dropdown-item text-a0a0a0">Sign In</a></li> </ul> </li> <li class="nav-item pe-2 dropdown"> <button type="button" class="btn btn-sm btn-outline-light mt-2 dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <i class="fa-sharp-duotone fa-solid fa-car-building fa-lg" style="--fa-primary-color: #860922; --fa-primary-opacity: 1; --fa-secondary-color: #3066c5; --fa-secondary-opacity: 1;"></i> <i class="fa-duotone fa-solid fa-panorama fa-lg text-success"></i> <i class="fa-duotone fa-masks-theater fa-lg text-orange"></i> </button> <ul class="dropdown-menu"> <li><a rel="nofollow" href="/clocate_hotels.php?lbl=nav" class="dropdown-item text-primary" target="_blank" title="Conference Hotels">Hotels</a></li> <li><a rel="nofollow" href="/rentalcars.php?lbl=articles" class="dropdown-item text-bordo" target="_blank" title="Car Rental for Conference">Car Rental</a></li> <li><a rel="nofollow" href="https://www.viator.com/?pid=P00212334&mcid=42383&medium=link&campaign=articles" title="Tours & Transpot" class="dropdown-item text-success" target="_blank"><b>Tours & Transport</b></a></li> <li><a rel="nofollow" href="/clocate_tickets.php?s=articles" title="Concerts/Sports/Theater/Festivals Tickets" class="dropdown-item text-orange" target="_blank">Event Tickets</a></li> </ul> </li> </ul> <ul class="navbar-nav ms-auto me-2"> <li class="nav-item"> <a href="#" data-bs-toggle="modal" data-bs-target="#modal_search" title="Search Conferences" class="nav-link text-primary"><i class="fas fa-search"></i></a> </li> <li class="nav-item ms-2" id="google_translate_element"></li> <script> function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'ar,de,es,fr,ru,zh-CN,en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, multilanguagePage: true}, 'google_translate_element'); } </script> <script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> </ul> </div> </nav> <div class="container-fluid bg-grey"> <div class="container pt-3 pb-4"> <div class="white-container mt-4"> <h2 class="bg-hdr">A Case Study Automated Continuous Software Engineering Cycle</h2> <div> <p style="padding-top: 8px;"><strong>Abstract</strong></p> </div> <div> <p style="padding-top: 8px;">There are different processes and methods in the software development. Automated continuous software engineering is further extension to the existing popular methods, such as, continuous integration and continuous delivery [1], which closes the software development engineering and customer feedback cycle. The automated processes in each phase makes it the most effective and productive process during the software and application development. If fulfils the goal for the customers to verify the system health and further correct the system issue automatically. </p> <p style="padding-top: 8px;">Keywords: software development, continuous integration, continuous delivery, continuous engineering.</p> <p style="padding-top: 8px;"> </p> <h4>I. Introduction</h4> <p style="padding-top: 8px;">From time to time, many software development teams across industry wonder which process to leverage to best suit their needs. That is mainly because different teams have developed different systems or applications, such as, Microsoft Windows, HR web site, and services. Also, it is because people are used to working on the traditional method of developing software, such as, waterfall model [2]. </p> <p style="padding-top: 8px;">In today’s software industry, there is a trend to move to the scrum method to develop the software. That is because the traditional waterfall method is too slow to catch up with the world change. A modern application which requires to be updated and released into production instantly. During the change, the challenge is how to hammer down the quality, which was traditionally guaranteed by a lengthy system and user acceptance tests. </p> <p style="padding-top: 8px;">By nature of software development, we cannot skip the basic processes, such as, environment server provisioning, code compilation & build, code deployment, build verification test, production support, and re-engineering. We cannot avoid those procedures, but can make them as efficient as possible.</p> <p style="padding-top: 8px;">Most of the teams focus on one direction, which starts from the engineering development and ends at the production support. But a more and more emphasis is required to put more emphasis on the reversed direction, which is from the production support back to the software development. How to make this process more automated and efficient is a big challenge. This is a weakness area for many teams on system and application development.</p> <p style="padding-top: 8px;">Automated Continuous Software Engineering Cycle (ACSEC) is a concept, which sets one goal which is to practice continuous engineering. It emphases on the whole cycle starting from development till production release, and continuously working back from the production monitoring till re-engineering. The key is to automate each phase of the cycle to make the process fast, robust, and efficient.</p> <p style="padding-top: 8px;"> </p> <h4>II. Continuous Build</h4> <p style="padding-top: 8px;">As soon as the development codes are checked in, a build process is kicked off. This is the first step to verify the code quality to phase out some basic code issues, such as, compilation errors and style & format mis-match, and warning in code metrics.</p> <p style="padding-top: 8px;">Now, the build process can also be integrated with the unit tests, build verification test, regression test, against which the statistics of code coverage are provided. </p> <p style="padding-top: 8px;">The Figure 1 shows a sample report output generated from a build service which is integrated within the Microsoft Visual Studio.</p> <p style="padding-top: 8px;"> </p> <p style="padding-top: 8px;"><img src="data:image/png;base64,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xgDIPPC89gMD8KALyX9rJcyW6TqZI8bueORkDPc45x6VJ9ogOf38XAyfnHSseXwpYypt8x0B4YhVyRgcZxx90cj3FOm8L2MjOyM0TP3RFHGMY6dMHpQBqC8tWkeMXERdMbhvHy5xjP1yPzpLi9trW3kuJplEcRwxBzg5wBx3yRxWR/wiNoFULcSDagQZRD2C85HPA49Ooq3DoFnDaPaqCY38vcCBzsbIJ45J7mgDQWaNl3rIuPXcOKZ9rt/OjhEyNJKCyAHO4DqfpWP/AMIna+W0f2qYI+3eoRAGC/dHTj3PfvVu10K3s9RN5FIwyWIj2KAC3ocZx7dKANOiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAI4vut/vGpKji+63+8axNSl1+PXLW1s9Rso4LwybBJZF2jCKDyd4zn6CjqBv0VzA+IGhme5gDzSNbKTuRVIlKkKdvzZHJ/iwPenr4v/ANKuRJpd1DawWQuvOk2AD73DEMRg7QARnNAHSUVgaD4iN7BBb3zQyXz3D27NakGLcE8wHOTxtx681CvjOE30wawuvsUdusonVATuLsm3Gc8suBgdaAOlorAfxdaxgI2n6j9py++28lfMj2hWJb5sY2sCCCc/WiTxjYRWc901reKkIjcB0VDJG+drruYDBweuDx0oA36K5Q+NluTI1nazi0NpHOl35SuFLOykMu4Z5XHHfParz+L9Pj853t7xYUVzHN5Q2XGw4bZzk49wM9s0AbtFc1qHiW5a2P2K1ns3iuBHdSXVqZDbIVLK/locsG4HXjPNWbXxFAunyyXFwl49tafapJrWPajpuYcAnIb5TkHoaANyisJ/Fdqty9vHp+ozMsrQqY4QRJIoyVU7uuMnJwODzTT4x087Gjtb6WNkidpI4MqnmfcB5zkkYwB19uaAN+iucvPG+mafZw3V1b3USvI8TqwQNCynDBgW5/4Dmra+JbVr42wtbsRi4FubkxgRCQgEDOc85HagDYoqvY3keoWcd3CrCKXJTeMEjJGfocZHtVigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCOL7rf7xqOayimvrW8YsJLXfsAPB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" alt="" width="371" height="151" border="0"></p> <p style="padding-top: 8px;">Figure 1 Sample of Build Service Report</p> <p style="padding-top: 8px;"> </p> <h4>III. Continuous Provisioning</h4> <p style="padding-top: 8px;">After a full build is complete successfully, a hardware provisioning process can be kicked off automatically in the continuous cycle.</p> <p style="padding-top: 8px;">Many companies leverage Microsoft products, such as, Genesis or Azure to accomplish the provision need with Virtual Machines (VMs). In Genesis, a VM template can be created upon the server configuration requirements, such as, a list of server components along with VMs, Operation System (OS) on each VM, SQL database, and etc. Even some of required software applications are pre-loaded onto the template, such as, remote debugging tool and Fiddler. Even more, some administrative work and network configurations can be done ahead of time, such as, firewall configuration, remote access enabling, and adding of a list of administrators on the servers. </p> <p style="padding-top: 8px;">The Genesis API against the template is called as long as a provision is triggered. The needed hardware will then be provisioned automatically. Actual, in the future, more and more VM provision will occur in cloud, such as, Microsoft Azure, which will make the provision process more efficient.</p> <p style="padding-top: 8px;">The following Figure 2 shows a sample code to call a Genesis API.</p> </div> <p style="padding-top: 8px;"> </p> <div> <p style="padding-top: 8px;"><img src="data:image/png;base64,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tio10G1V/MV5A+c7gFBz3OQPSnd9g5YfzHlNjJqQW3vm8QamxEdtctGbpihZ7xosY/uhBjHfOTWjpeoaxfeK/Mm12xs71NUaOS0uNSkWRog5HlrbldhyvQg5Jwc16P8A2NDjHnzY6dR6/T/9XXrzQ2iwPKJmmmaUdHJXcPxxnpx+vXmld9g5YfzHnUuqu8010dcvU8Trq/kxaWJ22+V5oUJ5PQoY/mL4981NqniYWVrr+my6rLFqT67ELaEyt5giMkR49EI3e3OO9egf2PH5vnfaJ/NxjfuG788Z6cfr15pG0aFnMjTzM5GCxIJPpzj/AD1680XfYOWH8xxOpadoVj8SJ21XVbuxW6s0lieTUZIlkfzW3KDuAwMj5Ogz0q/4k1fQ7f4geH0ur+xjeBbkXAklQFC0a7N2eme2a6eTR4ptvm3E8m05XeQ2PpkenH69eaa+hW0jmR5JHf8AvMFY8dOSOw4p3fYOWH8xw/iZbqfUfGF6mr6hb/2RawTWsUFyyRq/lltxA69OnTrT4NDl8Qaxq94skSRvcxxagpH+vi+zwyBR77uOezGu4OkRnd/pNx84w2WB3Y6Z45wOOaVdKVM7Lu5XPo4+g7c4HHP40rvsPlh/N+B54urabYaF4Luptc+x3YW1WaE3xjUwEHczR5wRkfeIrU12M614unij1e9isk0P7XGtldNGsjb22tlTyMc8deK6ttBtXxud22jau4KdoHQcjoP/ANdPGkRr925uFwu0YYcAdB06D0/Ond9hcsP5jktSu5NS+DUN9eSGS8ezhljkA+Yz5XYR7l8fnXR+IpLGPSIJNW1OfTYlniJmgkMZL54UkA8E8GpJfD1pcT2bzyzyx2UnmxQM/wC73AYUkY528ke59hRr3h628RJbwXs84tYpBJJbxsAk5BBAfjJAIzgEUyHZPQ1qKKKBBRRRQAUUUUAFQTf66L6N/Sp6gn/10X0b+lABRSUUALRSUUALRSUUALRSUUAJd/ftv+uw/wDQTVmq139+2/67D/0E1ZoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACoJ/wDXRfRv6VPUE/8Arovo39KAEooooAKKKKACiiigAooooA//2Q==" alt="" width="600" height="74" border="0"></p> <p style="padding-top: 8px;">Figure 2 Sample Code to Call Genesis API</p> <p style="padding-top: 8px;"> </p> </div> <p style="padding-top: 8px;"> </p> <div> <h4>IV. Continuous Deployment</h4> <p style="padding-top: 8px;">After a successful provisioning of hardware, on which the software is going to be installed, an automated deployment process is kicked off.</p> <p style="padding-top: 8px;">Actually, the deployment can occur on either an existing hardware or any new provisioned hardware.</p> <p style="padding-top: 8px;">Besides, the deployment can occur in either a one-box environment which means one VM contains all of the components of the system or a multi-box environment. The one box environment has a limitation to simulate the real system configurations. Therefore, a multi-box environment, which is closer to a production, is needed. In a multi-box environment, the network connection, security settings, such as firewall, can be validated. Also, something like the remote access permission for some of specific service accounts are to be validated as well. Furthermore, some support software, such as Fiddler [3], and Windows remote debugger, can be pre-installed and verified.</p> <p style="padding-top: 8px;">The Figure 3 shows a script to deploy some software bits onto a one-box environment. Here, the number in green is the Genesis environment ID, which indicates the specific one-box environment. The same can be applied to the multi-box environment.</p> </div> <p style="padding-top: 8px;"> </p> <div> <p style="padding-top: 8px;"><img src="data:image/png;base64,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" alt="" width="600" height="47" border="0"></p> <p style="padding-top: 8px;">Figure 3 Sample Script to Deploy in One Box Environment from Build Location</p> <h4>V. Continuous Test</h4> </div> <div> <p style="padding-top: 8px;">As soon as the deployment is complete successfully, a Build Verification Test (BVT) test can be kicked off immediately.</p> <p style="padding-top: 8px;">The BVT contains a set of basic test cases that verify the build health as a whole. If any of the BVT test cases failed, the build should be noted as a failed one and hence cannot be deployed in the production in the real world. Some investigations must be done against the build to result in either a bug being identified or a BVT test code being updated.</p> <p style="padding-top: 8px;">The following Figure 4 gives a sample command on how to execute a suite of BVT test cases against a specific environment. The given green number is the environment ID as an input parameter, which can be tied to either a one-box environment or a multi-box environment.</p> </div> <p style="padding-top: 8px;"> </p> <div> <p style="padding-top: 8px;"><img src="data:image/png;base64,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" alt="" width="600" height="49" border="0"></p> <p style="padding-top: 8px;">Figure 4 Sample Script to execute BVT Using Visual Studio</p> <p style="padding-top: 8px;"> </p> </div> <p style="padding-top: 8px;"> </p> <div> <h4>VI. Continuous Monitoring & Reporting</h4> <p style="padding-top: 8px;">After the build of the feature software is deployed in the production and BVTs are passed, the customers may do some user acceptance tests. If UAT is passed successfully, the feature is defined to be live in production.</p> <p style="padding-top: 8px;">But the software engineering process has never been stopped at this phase since there are always some issues in production, which will be found after customers start using the product not matter how carefully people test it.</p> <p style="padding-top: 8px;">Many support teams set up some robust monitoring to the systems, such as, SCOM, Telemetry, performance monitor, App Insight, and etc. in order to capture the real time production data, monitor the system status, and analyze the system health intelligently. Sometimes, an email, or a message, even a phone call ought to be triggered and sent over to an on-call person if the system metrics value exceeds the pre-defined thresholds.</p> <p style="padding-top: 8px;">The metrics data are continuously captured and the alert thresholds can be set up ahead of time, which can be fired at different levels of the systems, such as, infrastructure, service, IIS, and database. An alert can also be at different level of severity. Furthermore, an alert can also be specified at the application level, such as, service response time, throughput, number of API errors, and service level agreement (SLA) violation, and etc. </p> <p style="padding-top: 8px;">The captured metric data can be re-processed and aggravated, upon which a meaningful reporting system is built.</p> <p style="padding-top: 8px;">A visible and brief report or dashboard will help the customers, support team, and engineering team to response promptly and properly. It is a business intelligence process to set up a meaningful and helpful reporting. </p> <p style="padding-top: 8px;">In order to capture the meaningful and useful data, a comprehensive design is required. During design, not only the basic system functions, but also, the monitoring and reporting ought to be included. A logging as well as tracing feature must be in place to fulfil the goal. For a long term, it will save a lot of cost and energy to the team if a meaningful and useful monitoring and reporting feature is implemented.</p> <p style="padding-top: 8px;">The below Figure 5 shows a basic sample of telemetry dashboard within open source product Kibarna, which provides the capability to do a elastic search work seamlessly while interacting with the real-time data.</p> <p style="padding-top: 8px;"> </p> </div> <div> <p style="padding-top: 8px;"> </p> <p style="padding-top: 8px;"><img src="data:image/png;base64,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" alt="" width="600" height="267" border="0"></p> <p style="padding-top: 8px;">Figure 5 A Sample of Telemetry Dashboard</p> <p style="padding-top: 8px;"> </p> </div> <p style="padding-top: 8px;"> </p> <div> <p style="padding-top: 8px;"> </p> <h4>VII. Continuous Regression</h4> <p style="padding-top: 8px;">If there is a failure or error in production, the support team normally tries to troubleshoot the issue in the production first. If they cannot figure out and resolve the issue quickly, they normally escalate the issue back to the engineering team. The first thing the engineering team wants to do is to re-pro the failure if they don’t have a direct access to the production, which is the case for many of the systems and companies.</p> <p style="padding-top: 8px;">In order to re-pro the failure, the first step is often to grab the production data which has caused the failure, and load them in the pre-production environment for a re-pro purpose. In many cases, this step is a manual process. If the process can be automated, it will have saved many teams a lot of time, speeded up the troubleshooting process, and achieved a better customer satisfaction.</p> </div> <p style="padding-top: 8px;"> </p> <h4>VIII. Continuous Correction</h4> <div> <p style="padding-top: 8px;">There are different levels of issues thrown from the systems. Some of them are easily resolved automatically, for example, the service is down. If there is a monitoring of services, as soon as any of the services are down, it will be detected immediately. Then, the information will be passed to a system controller who will do some analysis and either start the services or notify the support based on pre-defined settings. Also, it can trigger a process to raise a support ticket to the support team. There is a carefully selected list of auto-correction items, which should be set up properly to resolve any frequently occurred issues.</p> <p style="padding-top: 8px;">Of course, there are always some issues which require the engineering teams to work on it, such as, some code bugs. Then, a new engineering process will be kicked off against those issues. But before the new sprint starts, it is ideal to automate as much as possible to shorten the process of development, build, deployment, test, monitoring, reporting, re-pro, and regression. By doing this, the whole development efficiency will be improved and a high productivity will be achieved. </p> </div> <p style="padding-top: 8px;"> </p> <h4>XV. Conclusions</h4> <p style="padding-top: 8px;">There are a set of typical methods inside across the industries, which have been used by different companies and teams to develop a software system or application, such as, Waterfall; Scrum[4]. Continuous Integration (CI) is a method that people leverage to improve the integration process. More and more, there is a need to not only practice CI, but also, realize the continuous working in each phase of the software engineering cycle. This also includes the phase of production monitoring, production issue regression, and production issue correction, which have been mostly ignored by many project teams.</p> <p style="padding-top: 8px;">The software development has never been only features. It also includes design, performance, quality validation, and process. A bottleneck in any of those will eventually impact the product and service delivery and quality dramatically, each one of which needs to be automated. The automated continuous software engineering cycle (ACSEC) promotes the automation being applied in each phase of the cycle. It should be applied not only in one direction from build, provision, deployment, build verification test, quality validation, user acceptance test, and production release; but also, it should be implemented reversely from the production monitoring & reporting, bug raising, issue re-prod, issue correction, and regression in pre-production environments. In short, it needs to occur in each phase of the software life cycle.</p> <p style="padding-top: 8px;">In this paper, it is the first attempt to address and resolve the complexity and inefficiency in the software engineering, and try to bring some concept and integration into reality.</p> <p style="padding-top: 8px;"> </p> <h4>XVI Acknowledgements</h4> <p style="padding-top: 8px;">I would like to thank Mr. Srinivasa Rao Malladi and N.J. Wang of the team’s leads in MPSIT who take time to review the paper and provide some valuable feedback and corrections.</p> <p style="padding-top: 8px;"> </p> <h4>XVII. References</h4> <p style="padding-top: 8px;">[1] <span lang="EN">Booch, Grady (1991). </span><span lang="EN">Object Oriented Design: With Applications</span><span lang="EN">. </span><span lang="EN">Benjamin Cummings</span><span lang="EN">. p. 209. </span><span lang="EN">ISBN</span><span lang="EN"> </span><span lang="EN">9780805300918</span><span lang="EN">. Retrieved 2014-08-18.</span></p> <p style="padding-top: 8px;"> </p> <p style="padding-top: 8px;"><span lang="EN">[2] Royce, Winston (1970), </span>Managing the Development of Large Software Systems<span lang="EN">, Proceedings of IEEE WESCON 26 (August): 1–9</span></p> <p style="padding-top: 8px;"> </p> <p style="padding-top: 8px;"><span lang="EN">[3] Lawrence, Eric (June 15, 2012). Debugging with Fiddler: The complete reference from the creator of the Fiddler Web Debugger. </span>ISBN<span lang="EN"> </span>978-1475024487<span lang="EN">.</span></p> <p style="padding-top: 8px;"> </p> <p style="padding-top: 8px;"> </p> <p style="padding-top: 8px;">Xin Bai, Dawn Wang, Venkata Siva Prasad Vitakula</p> <p style="padding-top: 8px;">The Microsoft Corporation</p> <p style="padding-top: 8px;">Redmond, WA 98052</p> <p style="padding-top: 8px;">xinbai@microsoft.com</p> <p style="padding-top: 8px;">dawang@microsoft.com</p> <p style="padding-top: 8px;">vvitak@microsoft.com</p> <p style="padding-top: 8px;"> </p> <div class="border-top py-2"><b>Posted by: </b>Xin Bai, Senior SDET, Microsoft Corporation, United States (<span class="f-sm">14-Nov-2014</span>)</div> </div> </div> </div> <div class="container_fluid"> <div class="bg-footer"> <div class="container py-4"> <div class="d-flex justify-content-center pt-4"> <div class="text-center f-sm"> <a href="/" title="Home page" class="text-grey me-2">Home</a><span class="me-1">|</span> <a href="/international-conferences/" title="Conferences" class="text-grey me-1">Conferences</a><span class="me-1">|</span> <a href="/international-exhibitions/" title="International Exhibition" class="text-grey me-2">Exhibitions</a><span class="me-1">|</span> <a href="/event-organizers/" title="Event Organizers" class="text-grey me-2">Organizers</a><span class="me-1">|</span> <a href="/international-venues/" title="International Venues" class="text-grey me-2">Venues</a><span class="me-1">|</span> <a rel="nofollow" href="/add-conference/" title="Add a Conference" class="text-grey me-2">Add Conference</a><span class="me-1">|</span> <a rel="nofollow" href="/subscribe/" title="Subscribe" class="text-grey me-2">Subscribe</a><span class="me-1">|</span> <a rel="nofollow" href="javascript:void(0);" onclick="$('#contact_hidden_form').submit();void(0);" title="Contact Conference Locate (Clocate)" class="text-grey me-1">Contact</a><span class="me-1">|</span> <a href="https://www.venuedir.com/" title="Venues Directory" target="_blank" class="text-grey">Venues Directory</a> <form style="display: none;" action="/contact/" method="POST" id="contact_hidden_form"> <input type="hidden" id="contact_prev_url" name="contact_prev_url" value="/article/A-Case-Study-Automated-Continuous-Software-Engineering-Cycle/360/"> </form> </div> </div> <div class="row justify-content-center pt-3"> <div class="col-lg-3 col-md-4"> <div class="justify-content-center text-center"> <div class="fw-bold text-a0a0a0 mt-1">Share</div> <div class="sharethis-inline-share-buttons"></div> </div> </div> <div class="col-lg-3 col-md-4"> <div class="justify-content-center text-center"> <div class="fw-bold text-a0a0a0 mt-1">Follow</div> <div class="follow-position"> <a href="https://www.facebook.com/Clocate" target="_blank" class="btn follow-icon me-1" data-bs-toggle="tooltip" data-bs-placement="top" title="Follow us on Facebook" data-bs-original-title="Follow us on Facebook"> <span class="fa-stack fa-lg text-dark-blue"> <i class="fa-solid fa-circle fa-stack-2x"></i> <i class="fa-brands fa-facebook-f fa-stack-1x text-light"></i> </span> </a> <a href="https://twitter.com/clocate" target="_blank" class="btn follow-icon me-1" data-bs-toggle="tooltip" data-bs-placement="top" title="Follow us on Twitter" data-bs-original-title="Follow us on Twitter"> <span class="fa-stack fa-lg text-dark"> <i class="fa-solid fa-circle fa-stack-2x"></i> <i class="fa-brands fa-x-twitter fa-stack-1x text-light"></i> </span> </a> <a href="https://www.linkedin.com/company/clocate/" target="_blank" class="btn follow-icon me-1" data-bs-toggle="tooltip" data-bs-placement="top" title="Follow us on LinkedIn" data-bs-original-title="Follow us on LinkedIn"> <span class="fa-stack fa-lg text-light-blue"> <i class="fa-solid fa-circle fa-stack-2x"></i> <i class="fa-brands fa-linkedin-in fa-stack-1x text-light"></i> </span> </a> <a href="#" onclick="CreateYoutubeDialog('youtube_commercial');return false;" class="btn follow-icon" data-bs-toggle="tooltip" data-bs-placement="top" title="Watch our video on YouTube" data-bs-original-title="Watch our video on YouTube"> <span class="fa-stack fa-lg text-danger"> <i class="fa-solid fa-circle fa-stack-2x"></i> <i class="fa-brands fa-youtube fa-stack-1x text-light"></i> </span> </a> </div> </div> </div> </div> <div class="d-flex justify-content-center pt-4"> <div class="text-center f-sm"> <a rel="nofollow" href="/terms_conditions/" title="Conference Locate (Clocate) terms and conditions" class="text-grey me-3">Terms and Conditions</a> <a rel="nofollow" href="/privacy_policy/" title="Privacy Policy" class="text-grey me-3">Privacy Policy</a> <a rel="nofollow" href="javascript:ajax_modal('cookies','','')" title="Cookies Policy" class="text-grey me-3">Cookies Policy</a> </div> </div> <div class="d-flex justify-content-center pt-4"> <div class="text-center f-sm text-grey"> © 2024 Conference Locate (Clocate) </div> </div> </div> </div> </div> <div id="youtube_commercial"></div> <script async src="/footer_funcs.js"></script> <div id="cookie_consent_div"></div> <div class="modal fade" id="modal_search" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title fw-bold">Search for Events</h4> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="bg-grey p-2"> <form id="query" name="query" action="#" class="p-3"> <div class="row mb-3"> <div class="col-12"> <input type="text" id="text_search" name="text_search" value="" class="form-control w-100 searchtext placeholder" Category, Keywords, Phrase (use “ ”), Event data-val="" placeholder="Category, Keywords, Phrase (use “ ”), Event" maxlength="200"> <input type="hidden" name="search_code" id="search_code" value=""> <input type="hidden" name="search_text" id="search_text" value=""> </div> </div> <div class="row mb-3"> <div class="col-12"> <input type="text" id="country_city" name="country_city" value="" class="form-control w-100 searchloc placeholder" Category, Keywords, Phrase (use “ ”), Event data-val="" placeholder="Country, City" maxlength="200"> <input type="hidden" name="location" id="location" value=""> <input type="hidden" name="ci_code" id="ci_code" value=""> <input type="hidden" name="st_code" id="st_code" value=""> <input type="hidden" name="co_code" id="co_code" value=""> </div> </div> <div class="row mb-3"> <div class="col-12"> <div class="input-daterange input-group w-100"> <input type="text" class="form-control" name="fdate" id="fdate" value="" readonly placeholder="Start date"> <span class="input-group-addon"></span> <input type="text" class="form-control" name="tdate" id="tdate" value="" readonly placeholder="End date"> </div> </div> </div> <div class="row g-2 mb-3"> <div class="col"> <div class="d-grid d-block"> <button type="button" class="btn btn-orange" onclick="getresults_new('search_confs', 'conferences');">Search</button> </div> </div> <div class="col"> <div class="d-grid d-block"> <button type="button" class="btn btn-outline-secondary" onclick="clear_query();">Clear</button> </div> </div> </div> <input type="hidden" id="encode_uc" value="y"> </form> </div> </div> </div> </div> </div> <div class="modal fade" id="modal_container" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title"></h4> <button type="button" class="btn-close px-3" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body p-4"> </div> </div> </div> </div> </body> </html>