Relational online analytical processing (ROLAP) often involves complex queries with many intermediate steps, which can be expensive to run on large datasets. Modularizing SQL queries improves readability, testability, and incremental execution. While SQL common table expressions (CTEs) and views help in modularization, they have availability, performance, or development limitations. To address these, simple-rolap, an open-source framework, automates dependency analysis and orchestrates the execution of modular queries using GNU make. It uses a main database containing the infrequently modified base data and a secondary database for caching intermediate results. Simple-rolap ensures efficient, maintainable ROLAP queries by splitting complex queries into simple ones that create intermediate tables or report results, which can be unit-tested. It uses the make tool to manage dependencies and execution order, enhancing workflow control, testing, visualization, and troubleshooting.
关系型联机分析处理(ROLAP)通常涉及带有许多中间步骤的复杂查询,在大型数据集上运行时成本很高。将 SQL 查询模块化可提高可读性、可测试性和增量执行能力。虽然 SQL 共用表表达式(CTE)和视图有助于模块化,但它们在可用性、性能或开发方面有局限性。为了解决这些问题,开源框架 simple-rolap 使用 GNU make 自动进行依赖性分析并协调模块化查询的执行。它使用一个包含不常修改的基础数据的主数据库和一个用于缓存中间结果的辅助数据库。Simple-rolap 可将复杂的查询拆分成简单的查询,创建中间表或报告结果,并对其进行单元测试,从而确保 ROLAP 查询的高效性和可维护性。它使用 make 工具管理依赖关系和执行顺序,增强了工作流程控制、测试、可视化和故障排除能力。
{"title":"Modular Data Analytics","authors":"Diomidis Spinellis","doi":"10.1109/ms.2024.3409988","DOIUrl":"https://doi.org/10.1109/ms.2024.3409988","url":null,"abstract":"Relational online analytical processing (ROLAP) often involves complex queries with many intermediate steps, which can be expensive to run on large datasets. Modularizing SQL queries improves readability, testability, and incremental execution. While SQL common table expressions (CTEs) and views help in modularization, they have availability, performance, or development limitations. To address these, simple-rolap, an open-source framework, automates dependency analysis and orchestrates the execution of modular queries using GNU make. It uses a main database containing the infrequently modified base data and a secondary database for caching intermediate results. Simple-rolap ensures efficient, maintainable ROLAP queries by splitting complex queries into simple ones that create intermediate tables or report results, which can be unit-tested. It uses the make tool to manage dependencies and execution order, enhancing workflow control, testing, visualization, and troubleshooting.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"373 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-08-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141946714","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
It used to be a standing joke with computer systems when questioning their frequently suspicious outputs. You might call a computer support line to complain about a strange telephone bill, only to be told that the bill is correct because “Computer says …”. even if the bill was unusually large. Of course, the effects of software errors are limited only by the imagination and “unusually” large can really mean just that, such as happened with the unfortunate French woman in 2012 who received a telephone bill for EUR 11.8 quadrillion.1 If you are unaccustomed to numbers like this in your telephone bill, it is hardly surprising as it is around US$13,000,000,000,000,000 or just under 5,000 times the gross domestic product of France for that year; some phone bill. To be fair to the lady’s phone company Bouygues Telecom, they did offer to allow her to pay off the bill in installments, a most generous offer, although they didn’t say how many installments might be necessary. (We know you are desperate to know so at US$1,000 a month, it would take about 50 times the current lifetime of the universe taking bureaucratic innumeracy to new and giddy depths. No mention was made of accumulating interest payments).
{"title":"Computer Still Says …","authors":"Les Hatton, Michiel van Genuchten","doi":"10.1109/ms.2024.3409933","DOIUrl":"https://doi.org/10.1109/ms.2024.3409933","url":null,"abstract":"It used to be a standing joke with computer systems when questioning their frequently suspicious outputs. You might call a computer support line to complain about a strange telephone bill, only to be told that the bill is correct because “Computer says …”. even if the bill was unusually large. Of course, the effects of software errors are limited only by the imagination and “unusually” large can really mean just that, such as happened with the unfortunate French woman in 2012 who received a telephone bill for EUR 11.8 quadrillion.1 If you are unaccustomed to numbers like this in your telephone bill, it is hardly surprising as it is around US$13,000,000,000,000,000 or just under 5,000 times the gross domestic product of France for that year; some phone bill. To be fair to the lady’s phone company Bouygues Telecom, they did offer to allow her to pay off the bill in installments, a most generous offer, although they didn’t say how many installments might be necessary. (We know you are desperate to know so at US$1,000 a month, it would take about 50 times the current lifetime of the universe taking bureaucratic innumeracy to new and giddy depths. No mention was made of accumulating interest payments).","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"26 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-08-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141946813","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Generative LLMs, such as GPT, have the potential to revolutionize Requirements Engineering (RE) by automating tasks in new ways. This column explores the novelties and introduces the importance of precise prompts for effective interactions. Human evaluation and prompt engineering are essential in leveraging LLM capabilities.
{"title":"From Specifications to Prompts: On the Future of Generative Large Language Models in Requirements Engineering","authors":"Andreas Vogelsang","doi":"10.1109/ms.2024.3410712","DOIUrl":"https://doi.org/10.1109/ms.2024.3410712","url":null,"abstract":"Generative LLMs, such as GPT, have the potential to revolutionize Requirements Engineering (RE) by automating tasks in new ways. This column explores the novelties and introduces the importance of precise prompts for effective interactions. Human evaluation and prompt engineering are essential in leveraging LLM capabilities.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"19 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-08-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141969591","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
From Fagan Inspections to cleanroom practices, agile code reviews, mob programming, and failing fast. This editorial provides a personal reflection of how the practice of code reviews has changed over the decades.
{"title":"Code Review Evolution","authors":"Sigrid Eldh","doi":"10.1109/ms.2024.3416648","DOIUrl":"https://doi.org/10.1109/ms.2024.3416648","url":null,"abstract":"From Fagan Inspections to cleanroom practices, agile code reviews, mob programming, and failing fast. This editorial provides a personal reflection of how the practice of code reviews has changed over the decades.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"174 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-08-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141946711","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Miroslaw Staron, Silvia Abrahão, Grace Lewis, Henry Muccini, Chetan Honnenahalli
Engineering AI Software systems is starting to evolve from the pure development of machine learning (ML) models to a more structured discipline that treats ML components as part of much larger software systems. As such, more structured principles are required for their development, such as established design principles, established development models, and safeguards for deployed ML models. This column focuses on papers presented at the Third International Conference on AI Engineering—Software Engineering for AI (CAIN 2024). The selected papers reflect the current development of the field of AI systems engineering and AI software development, taking it to the next level of maturity. Feedback or suggestions are welcome. In addition, if you try or adopt any of the practices included in the column, please send us and the authors of the paper(s) a note about your experiences.
人工智能软件系统工程正开始从纯粹的机器学习(ML)模型开发发展成为一门结构更加严谨的学科,将 ML 组件视为更大软件系统的一部分。因此,这些系统的开发需要更多结构化的原则,如既定的设计原则、既定的开发模型和已部署 ML 模型的保障措施。本专栏主要介绍在第三届国际人工智能工程会议--人工智能软件工程(CAIN 2024)上发表的论文。所选论文反映了当前人工智能系统工程和人工智能软件开发领域的发展情况,并将其推向下一个成熟阶段。欢迎提出反馈意见或建议。此外,如果您尝试或采用了专栏中的任何做法,请向我们和论文作者提供您的经验。
{"title":"Bringing Software Engineering Discipline to the Development of AI-Enabled Systems","authors":"Miroslaw Staron, Silvia Abrahão, Grace Lewis, Henry Muccini, Chetan Honnenahalli","doi":"10.1109/ms.2024.3408388","DOIUrl":"https://doi.org/10.1109/ms.2024.3408388","url":null,"abstract":"Engineering AI Software systems is starting to evolve from the pure development of machine learning (ML) models to a more structured discipline that treats ML components as part of much larger software systems. As such, more structured principles are required for their development, such as established design principles, established development models, and safeguards for deployed ML models. This column focuses on papers presented at the Third International Conference on AI Engineering—Software Engineering for AI (CAIN 2024). The selected papers reflect the current development of the field of AI systems engineering and AI software development, taking it to the next level of maturity. Feedback or suggestions are welcome. In addition, if you try or adopt any of the practices included in the column, please send us and the authors of the paper(s) a note about your experiences.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"55 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-08-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141946713","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}