for Journals by Title or ISSN
for Articles by Keywords
Followed Journals
Journal you Follow: 0
Sign Up to follow journals, search in your chosen journals and, optionally, receive Email Alerts when new issues of your Followed Journals are published.
Already have an account? Sign In to see the journals you follow.
Journal Cover IEEE Software
  Journal Prestige (SJR): 0.652
  Citation Impact (citeScore): 84
  Number of Followers: 167  
   Full-text available via subscription Subscription journal
   ISSN (Print) 0740-7459
   Published by IEEE Homepage  [191 journals]
  • Recognizing Excellence in High Performance Computing Nominations are
           Solicited for the Seymour Cray Sidney Fernbach & Ken Kennedy Awards
    • Abstract: Presents the nomination guidelines for select CS society awards.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • IEEE Computer Society
    • Abstract: Presents a listing of the editorial board, board of governors, current staff, committee members, and/or society editors for this issue of the publication.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • myCS
    • Abstract: Advertisement, IEEE.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Self-Evolving Software Architectures
    • Authors: Diomidis Spinellis;
      Pages: 4 - 7
      Abstract: Nature provides the inspiration for self-evolving software architectures that can deal with the increasing size and complexity of software systems.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Empirical Software Engineering, Predictive Models, and Product Lines
    • Authors: Jeffrey C. Carver;Eduardo Santana de Almeida;Rafael Capilla;Leandro Minku;Marco Torchiano;Alejandro Valdezate;
      Pages: 8 - 11
      Abstract: This issue’s column reports on presentations at the 11th International Symposium on Empirical Software Engineering and Measurement, 13th International Conference on Predictive Models and Data Analytics in Software Engineering, and 21st International Systems and Software Product Line Conference.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Mining the Ground Truth of Enterprise Toolchains
    • Authors: Mik Kersten;
      Pages: 12 - 17
      Abstract: Data on organizations' use of agile and DevOps tools provides the ground truth of enterprise software delivery.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Agility, Risk, and Uncertainty, Part 2: How Risk Impacts Agile
    • Authors: Michael Waterman;
      Pages: 18 - 19
      Abstract: The amount of technical risk (and the underlying uncertainty) in a software development project can affect the amount of architecting that developers perform up-front. Software architects must determine the proper balance between risk and agility for their projects.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • How Common Is Common Enough in Requirements-Engineering Practice'
    • Authors: Sarah Gregory;
      Pages: 20 - 23
      Abstract: When determining requirements-engineering practices in a complex organization in which different groups might have different needs, the trick is to determine which practices are “common enough” without being too restrictive or too loose.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Microservices: The Journey So Far and Challenges Ahead
    • Authors: Pooyan Jamshidi;Claus Pahl;Nabor C. Mendonça;James Lewis;Stefan Tilkov;
      Pages: 24 - 35
      Abstract: Microservices are an architectural approach emerging out of service-oriented architecture, emphasizing self-management and lightweightness as the means to improve software agility, scalability, and autonomy. This article examines microservice evolution from the technological and architectural perspectives and discusses key challenges facing future microservice developments.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Challenges of Domain-Driven Microservice Design: A Model-Driven
    • Authors: Florian Rademacher;Jonas Sorgalla;Sabine Sachweh;
      Pages: 36 - 43
      Abstract: Domain-driven design (DDD) is a model-driven methodology to capture relevant domain knowledge for software design. It provides the means to isolate domain concepts and identify concept relationships. This makes DDD particularly appropriate for designing microservice architectures, because functional microservices focus on realizing distinct business capabilities. This article explores the challenges of domain-driven microservice design and presents ways to cope with them based on model-driven development.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Using Microservices for Legacy Software Modernization
    • Authors: Holger Knoche;Wilhelm Hasselbring;
      Pages: 44 - 49
      Abstract: Microservices are commonly known as an architecture for building scalable applications running in the cloud. However, they also promise high maintainability due to smaller code bases and strong component separation, making them an interesting option for software modernization. This article presents a migration process to decompose an existing application into microservices, and presents experiences from applying this process in an ongoing legacy modernization project.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • From Monolithic to Microservices: An Experience Report from the Banking
    • Authors: Antonio Bucchiarone;Nicola Dragoni;Schahram Dustdar;Stephan T. Larsen;Manuel Mazzara;
      Pages: 50 - 55
      Abstract: Microservices have seen their popularity blossoming with an explosion of concrete applications in real-life software. Several companies are currently involved in a major refactoring of their back-end systems in order to improve scalability. This article presents an experience report of a real-world case study, from the banking domain, in order to demonstrate how scalability is positively affected by reimplementing a monolithic architecture into microservices. The case study is based on the FX Core system for converting from one currency to another. FX Core is a mission-critical system of Danske Bank, the largest bank in Denmark and one of the leading financial institutions in Northern Europe.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • On the Definition of Microservice Bad Smells
    • Authors: Davide Taibi;Valentina Lenarduzzi;
      Pages: 56 - 62
      Abstract: Code smells and architectural smells (also called bad smells) are symptoms of poor design that can hinder code understandability and decrease maintainability. Several bad smells have been defined in the literature for both generic architectures and specific architectures. However, cloud-native applications based on microservices can be affected by other types of issues. In order to identify a set of microservice-specific bad smells, researchers collected evidence of bad practices by interviewing 72 developers with experience in developing systems based on microservices. Then, they classified the bad practices into a catalog of 11 microservice-specific bad smells frequently considered harmful by practitioners. The results can be used by practitioners and researchers as a guideline to avoid experiencing the same difficult situations in the systems they develop.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Migrating Enterprise Legacy Source Code to Microservices: On Multitenancy,
           Statefulness, and Data Consistency
    • Authors: Andrei Furda;Colin Fidge;Olaf Zimmermann;Wayne Kelly;Alistair Barros;
      Pages: 63 - 72
      Abstract: Microservice migration is a promising technique to incrementally modernize monolithic legacy enterprise applications and enable them to exploit the benefits of cloud-computing environments. This article elaborates on three challenges of microservice migration: multitenancy, statefulness, and data consistency. The authors show how to identify each of these challenges in legacy code and explain refactoring and architectural pattern-based migration techniques relevant to microservice architectures. They explain how multitenancy enables microservices to be utilized by different organizations with distinctive requirements, why statefulness affects both the availability and reliability of a microservice system, and why data consistency challenges are encountered when migrating legacy code that operates on a centralized data repository to microservices operating on decentralized data repositories. They also explain the interdependencies between multitenancy, statefulness, and data consistency.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Mythical Unit Test Coverage
    • Authors: Vard Antinyan;Jesper Derehag;Anna Sandberg;Miroslaw Staron;
      Pages: 73 - 79
      Abstract: It is a continuous struggle to understand how much a product should be tested before its delivery to the market. Ericsson, as a global software development company, decided to evaluate the adequacy of the unit-test-coverage criterion that it had employed for years as a guide for sufficiency of testing. Naturally, one can think that if increasing coverage decreases the number of defects significantly, then coverage can be considered a criterion for test sufficiency. To test this hypothesis in practice, we investigated the relationship of unit-test-coverage measures and post-unit-test defects in a large commercial product of Ericsson. The results indicate that high unit-test coverage did not seem to be any tangible help in producing defect-free software.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Software Components
    • Authors: Gerard J. Holzmann;
      Pages: 80 - 82
      Abstract: Software components have come a long way since Doug McIlroy first called for them in 1968.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • A Taxonomy of IoT Client Architectures
    • Authors: Antero Taivalsaari;Tommi Mikkonen;
      Pages: 83 - 88
      Abstract: This article defines a taxonomy of software architecture options, derived from industry projects, for Internet of Things (IoT) devices, from the most limited sensing devices to high-end devices featuring fully fledged OSs and developer frameworks. A plethora of architecture options exists for IoT devices, offering very different levels of software development capabilities. These capabilities can significantly affect IoT systems' end-to-end architecture and topology.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • WordPress: A Content Management System to Democratize Publishing
    • Authors: Jordi Cabot;
      Pages: 89 - 92
      Abstract: WordPress aims to democratize publishing, ensuring that any nontechnical person can create a website, while building a product that can scale all the way up to enterprise clients with complex needs. The richness and importance of the WordPress code base and ecosystem pose many interesting challenges for the research community.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Reconsidering Whether GOTO Is Harmful
    • Authors: Meiyappan Nagappan;
      Pages: 93 - 95
      Abstract: Is it always bad to use GOTO statements' An empirical analysis of open source C projects on GitHub suggests otherwise.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Microservices
    • Authors: Xabier Larrucea;Izaskun Santamaria;Ricardo Colomo-Palacios;Christof Ebert;
      Pages: 96 - 100
      Abstract: Microservices are small applications with a single responsibility that can be deployed, scaled, and tested independently. They're gaining momentum across industries to facilitate agile delivery mechanisms for service-oriented architecture and to migrate function-oriented legacy architectures toward highly flexible service orientation. This article presents a brief overview of microservice technologies and how to migrate to them.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
  • Nicolai Parlog on Java 9 Modules
    • Authors: Nate Black;
      Pages: 101 - 104
      Abstract: In this excerpt from a Software Engineering Radio episode, Nick Black talks with Nicolai Parlog about Java 9—specifically, the why and how of the module system.
      PubDate: May/June 2018
      Issue No: Vol. 35, No. 3 (2018)
School of Mathematical and Computer Sciences
Heriot-Watt University
Edinburgh, EH14 4AS, UK
Tel: +00 44 (0)131 4513762
Fax: +00 44 (0)131 4513327
Home (Search)
Subjects A-Z
Publishers A-Z
Your IP address:
About JournalTOCs
News (blog, publications)
JournalTOCs on Twitter   JournalTOCs on Facebook

JournalTOCs © 2009-