Software intelligence: Difference between revisions
no thank you |
Citation bot (talk | contribs) Alter: template type, title. Add: isbn, chapter-url, chapter, jstor, doi, journal. Removed or converted URL. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Dominic3203 | Category:Software | #UCB_Category 3/17 |
||
(48 intermediate revisions by 22 users not shown) | |||
Line 1: | Line 1: | ||
{{for|intelligence demonstrated by machines through software|artificial intelligence}} |
|||
'''Software |
'''Software intelligence''' is insight into the inner workings and structural condition of [[software]] assets produced by software designed to analyze [[database]] structure, [[software framework]] and [[source code]] to better understand and control complex software systems in [[information technology]] environments.<ref>Dąbrowski R. (2012) On Architecture Warehouses and Software Intelligence. In: Kim T., Lee Y., Fang W. (eds) Future Generation Information Technology. FGIT 2012. Lecture Notes in Computer Science, vol 7709. Springer, Berlin, Heidelberg</ref><ref>{{Cite journal |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
|date=Jan 2023 |
|||
|title= Guest Editorial: Intelligence for systems and software engineering |
|||
|journal=Innovations in Systems and Software Engineering |
|||
|volume=19 |
|||
|issue=1 |
|||
|pages=1–4 |
|||
|publisher=Springer |
|||
|doi=10.1007/s11334-023-00526-1 |
|||
|pmid=36744022 |
|||
|pmc=9886201 |
|||
}}</ref> Similarly to [[business intelligence]] (BI), software intelligence is produced by a set of software tools and techniques for the [[Data mining|mining of data]] and the software's inner-structure. Results are automatically produced and feed a knowledge base containing technical documentation and blueprints of the innerworking of applications,<ref>Bartoszuk, C., Dąbrowski, R., Stencel, K., & Timoszuk, G. "On quick comprehension and assessment of software.", In Proceedings of the 14th International Conference on Computer Systems and Technologies, June 2013, pp. 161-168 {{doi|10.1145/2516775.2516806}}</ref> and make it available to all to be used by business and software stakeholders to make informed decisions,<ref>Raymond PL Buse, and Thomas Zimmermann. "Information needs for software development analytics." 2012 34th International Conference on Software Engineering (ICSE). IEEE, June 2012, pp. 987-996 {{doi|10.1109/ICSE.2012.6227122}}</ref> measure the efficiency of software development organizations, communicate about the software health, prevent software catastrophes.<ref>Ahmed E. Hassan and Tao Xie. 2010. Software intelligence: the future of mining software engineering data. In Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10). ACM, New York, NY, USA, 161–166</ref> |
|||
__TOC__ |
__TOC__ |
||
==History== |
== History == |
||
Software intelligence has been used by Kirk Paul Lafler, an American engineer, entrepreneur, and consultant, and founder of Software Intelligence Corporation in 1979. At that time, it was mainly related to [[SAS Institute|SAS]] activities, in which he has been an expert since 1979.<ref>{{cite web |url=https://www.ithistory.org/honor-roll/mr-kirk-paul-lafler |title=Mr. Kirk Paul Lafler |author=<!--Not stated-->|date=21 December 2015 }}</ref> |
|||
In |
In the early 1980s, Victor R. Basili participated in different papers detailing a methodology for collecting valid software engineering data relating to software engineering, evaluation of software development, and variations. |
||
<ref> |
|||
{{cite book |last=Basili |first= Victor R.|date=1981 |title= Data collection, validation and analysis. Software Metrics: An Analysis and Evaluation|url= http://www.cs.umd.edu/~basili/publications/chapters/C12.pdf|publisher=MIT Press |page=143 |isbn=0-262-16083-8}} |
|||
</ref> |
|||
<ref> |
|||
⚫ | |||
| url = https://www.researchgate.net/publication/220070466 |
|||
| title = A Methodology for Collecting Valid Software Engineering Data. |
|||
| last1 = Basili |
|||
| first1 = Victor R. |
|||
| last2 = Weiss |
|||
| first2 = David M. |
|||
| journal = IEEE Transactions on Software Engineering |
|||
| date = Nov 1984 |
|||
| issue = 6 |
|||
| publisher = IEEE Trans. Softw. Eng. 10, 6 (November 1984) |
|||
| pages = 728–738 |
|||
| doi = 10.1109/TSE.1984.5010301 |
|||
| hdl = 1903/7513 |
|||
| hdl-access = free |
|||
}} |
|||
</ref> |
|||
In 2004, different software vendors in software analysis started using the terms as part of their product naming and marketing strategy. |
|||
⚫ | Then in 2010, Ahmed E. Hassan and Tao Xie defined software intelligence as a "''practice offering software practitioners up-to-date and pertinent information to support their daily decision-making processes and Software Intelligence should support decision-making processes throughout the lifetime of a software system''". They go on by defining software intelligence as a "''strong impact on modern software practice''" for the upcoming decades.<ref>Ahmed E. Hassan and Tao Xie. 2010. Software intelligence: the future of mining software engineering data. In Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10). ACM, New York, NY, USA, 161–166. {{doi|10.1145/1882362.1882397}}</ref> |
||
In 2004, the ISV [[CAST (company)|CAST]] is the first commercial company to broadly use and copyright the term as part of the name of their '''software intelligence''' product, the [https://www.castsoftware.com/products/application-intelligence-platform CAST Application Intelligence Platform], a software analysis, and measurement product.<ref> |
|||
⚫ | |||
|url= https://patentimages.storage.googleapis.com/94/6d/d4/26b6d5234c8560/US7770152.pdf |
|||
|title= Method and apparatus for Cooronating State and Execution Context of Interpreted Languages |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
|last5= Malks |first5= Daniel B. |
|||
|date=August 2010 |
|||
|publisher=United State Patent |
|||
|quote=CAST Application Intelligence Platform Empowering Application Management'; CAST the Application Intelligence Company; Oct.2004;}}</ref> |
|||
⚫ | |||
==Capabilities== |
==Capabilities== |
||
Because of the complexity and wide range of components and subjects implied in software, |
Because of the complexity and wide range of components and subjects implied in software, software intelligence is derived from different aspects of software: |
||
* Software composition is the construction of software application components.<ref>Nierstrasz, Oscar, and Theo Dirk Meijler. "Research directions in software composition." ACM Computing Surveys 27.2 (1995): 262-264 {{doi|10.1145/210376.210389}}</ref> Components result from software coding, as well as the integration of the source code from external components: Open source, 3rd party components, or frameworks. Other components can be integrated using [[application programming interface]] call to libraries or services. |
* Software composition is the construction of software application components.<ref>Nierstrasz, Oscar, and Theo Dirk Meijler. "Research directions in software composition." ACM Computing Surveys 27.2 (1995): 262-264 {{doi|10.1145/210376.210389}}</ref> Components result from software coding, as well as the integration of the source code from external components: Open source, 3rd party components, or frameworks. Other components can be integrated using [[application programming interface]] call to libraries or services. |
||
Line 30: | Line 55: | ||
* Software flaws designate problems that can cause security, stability, resiliency, and unexpected results. There is no standard definition of software flaws but the most accepted is from [[Mitre Corporation|The MITRE Corporation]] where common flaws are cataloged as [[Common Weakness Enumeration]].<ref>Kanashiro, L., et al. "Predicting software flaws with low complexity models based on static analysis data." Journal of Information Systems Engineering & Management 3.2 (2018): 17 {{doi|10.20897/jisem.201817}}</ref> |
* Software flaws designate problems that can cause security, stability, resiliency, and unexpected results. There is no standard definition of software flaws but the most accepted is from [[Mitre Corporation|The MITRE Corporation]] where common flaws are cataloged as [[Common Weakness Enumeration]].<ref>Kanashiro, L., et al. "Predicting software flaws with low complexity models based on static analysis data." Journal of Information Systems Engineering & Management 3.2 (2018): 17 {{doi|10.20897/jisem.201817}}</ref> |
||
* Software grades assess attributes of the software. Historically, the classification and terminology of attributes have been derived from the [[ISO 9126|ISO 9126-3]] and the subsequent ISO 25000:2005<ref name="iso25000">{{cite web |url=http://webstore.iec.ch/preview/info_isoiec25000%7Bed1.0%7Den.pdf |title=ISO 25000:2005 |accessdate=2013-10-18 |url-status=live |archiveurl=https://web.archive.org/web/20130414112148/http://webstore.iec.ch/preview/info_isoiec25000%7Bed1.0%7Den.pdf |archivedate=2013-04-14 }}</ref> quality model. |
* Software grades assess attributes of the software. Historically, the classification and terminology of attributes have been derived from the [[ISO 9126|ISO 9126-3]] and the subsequent ISO 25000:2005<ref name="iso25000">{{cite web |url=http://webstore.iec.ch/preview/info_isoiec25000%7Bed1.0%7Den.pdf |title=ISO 25000:2005 |accessdate=2013-10-18 |url-status=live |archiveurl=https://web.archive.org/web/20130414112148/http://webstore.iec.ch/preview/info_isoiec25000%7Bed1.0%7Den.pdf |archivedate=2013-04-14 }}</ref> quality model. |
||
* Software economics refers to the resource evaluation of software in past, present, or future to make decisions and to govern.<ref>Boehm, Barry W., and Kevin J. Sullivan. "Software economics: a roadmap." Proceedings of the conference on The future of Software engineering. 2000. {{doi|10.1145/336512.336584}}</ref> |
* Software economics refers to the resource evaluation of software in the past, present, or future to make decisions and to govern.<ref>Boehm, Barry W., and Kevin J. Sullivan. "Software economics: a roadmap." Proceedings of the conference on The future of Software engineering. 2000. {{doi|10.1145/336512.336584}}</ref> |
||
==Components== |
==Components== |
||
The capabilities of |
The capabilities of software intelligence platforms include an increasing number of components: |
||
* [[Automated code review|Code analyzer]] to serve as an information basis for other |
* [[Automated code review|Code analyzer]] to serve as an information basis for other software intelligence components identifying [[Object (computer science)|objects]] created by the programming language, external objects from [[Open source]], third parties objects, [[Software framework|frameworks]], [[Application programming interface|API]], or [[Service (systems architecture)|services]] |
||
* Graphical visualization and blueprinting of the inner structure of the software product or application considered<ref>Renato Novais, José Amancio Santos, Manoel Mendonça, |
* Graphical visualization and blueprinting of the inner structure of the software product or application considered<ref>Renato Novais, José Amancio Santos, Manoel Mendonça, |
||
Experimentally assessing the combination of multiple visualization strategies for software evolution analysis, Journal of Systems and Software, Volume 128, 2017, pp. 56–71, {{ISSN|0164-1212}}, {{doi|10.1016/j.jss.2017.03.006}}.</ref> including dependencies, from data acquisition (automated and real-time data capture, end-user entries) up to data storage, the different layers<ref> |
Experimentally assessing the combination of multiple visualization strategies for software evolution analysis, Journal of Systems and Software, Volume 128, 2017, pp. 56–71, {{ISSN|0164-1212}}, {{doi|10.1016/j.jss.2017.03.006}}.</ref> including dependencies, from data acquisition (automated and real-time data capture, end-user entries) up to data storage, the different layers<ref> |
||
Rolia, Jerome A., and Kenneth C. Sevcik. "The method of layers." IEEE transactions on software engineering 21.8,1995, 689-700,{{doi|10.1109/32.403785}}</ref> within the software, and the [[Coupling (computer programming)|coupling]] between all elements. |
Rolia, Jerome A., and Kenneth C. Sevcik. "The method of layers." IEEE transactions on software engineering 21.8,1995, 689-700,{{doi|10.1109/32.403785}}</ref> within the software, and the [[Coupling (computer programming)|coupling]] between all elements. |
||
* Navigation capabilities within components and impact analysis features |
* Navigation capabilities within components and impact analysis features |
||
* List of flaws, architectural and coding violations, against standardized best practices,<ref>Software Engineering Rules on code quality |
* List of flaws, architectural and coding violations, against standardized best practices,<ref name=SE_1>{{cite web| title=Software Engineering Rules on code quality| url=https://www.it-cisq.org/standards/code-quality-standards| publisher=Object Management Group, Inc.| date=2023| access-date=15 December 2023}}</ref> cloud blocker preventing migration to a Cloud environment,<ref>Balalaie, Armin, , Abbas Heydarnoori, and Pooyan Jamshidi. "Microservices architecture enables devops: Migration to a cloud-native architecture." Ieee Software 33.3 ,May–June 2016, 42-52,{{doi|10.1109/MS.2016.64}}</ref> and rogue data-call entailing the security and integrity of software <ref> |
||
Q. Feng, R. Kazman, Y. Cai, R. Mo and L. Xiao, "Towards an Architecture-Centric Approach to Security Analysis," 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), Venice, 2016, pp. 221-230, {{doi|10.1109/WICSA.2016.41 |
Q. Feng, R. Kazman, Y. Cai, R. Mo and L. Xiao, "Towards an Architecture-Centric Approach to Security Analysis," 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), Venice, 2016, pp. 221-230, {{doi|10.1109/WICSA.2016.41}}</ref> |
||
* Grades or scores of the structural and [[software quality]] aligned with industry-standard like [[Object Management Group|OMG]], [[CISQ]] or [[Software Engineering Institute|SEI]] assessing the reliability, security, efficiency, maintainability, and scalability to cloud or other systems. |
* Grades or scores of the structural and [[software quality]] aligned with industry-standard like [[Object Management Group|OMG]], [[CISQ]] or [[Software Engineering Institute|SEI]] assessing the reliability, security, efficiency, maintainability, and scalability to cloud or other systems. |
||
* Metrics quantifying and estimating software economics including work effort, sizing, and [[technical debt]]<ref> |
* Metrics quantifying and estimating software economics including work effort, sizing, and [[technical debt]]<ref> |
||
R. Haas, R. Niedermayr and E. Juergens, "Teamscale: Tackle Technical Debt and Control the Quality of Your Software," 2019 IEEE/ACM International Conference on Technical Debt (TechDebt), Montreal, QC, Canada, 2019, pp. 55-56, {{doi|10.1109/TechDebt.2019.00016 |
R. Haas, R. Niedermayr and E. Juergens, "Teamscale: Tackle Technical Debt and Control the Quality of Your Software," 2019 IEEE/ACM International Conference on Technical Debt (TechDebt), Montreal, QC, Canada, 2019, pp. 55-56, {{doi|10.1109/TechDebt.2019.00016}}</ref> |
||
* Industry references and benchmarking allowing comparisons between outputs of analysis and industry standards |
* Industry references and benchmarking allowing comparisons between outputs of analysis and industry standards |
||
==User |
==User aspect== |
||
Some considerations must be made in order to successfully integrate the usage of |
Some considerations must be made in order to successfully integrate the usage of software Intelligence systems in a company. Ultimately the software intelligence system must be accepted and utilized by the users in order for it to add value to the organization. If the system does not add value to the users' mission, they simply don't use it as stated by M. Storey in 2003.<ref>Storey MA. (2003) Designing a Software Exploration Tool Using a Cognitive Framework. In: Zhang K. (eds) Software Visualization. The Springer International Series in Engineering and Computer Science, vol 734. Springer, Boston, MA.</ref> |
||
At the code level and system representation, |
At the code level and system representation, software intelligence systems must provide a different level of abstractions: an abstract view for designing, explaining and documenting and a detailed view for understanding and analyzing the software system.<ref>Seonah Lee, Sungwon Kang, What situational information would help developers when using a graphical code recommender?, Journal of Systems and Software, Volume 117, 2016, pp. 199–217, {{ISSN|0164-1212}}, {{doi|10.1016/j.jss.2016.02.050}}.</ref> |
||
At the governance level, the user acceptance for |
At the governance level, the user acceptance for software intelligence covers different areas related to the inner functioning of the system as well as the output of the system. It encompasses these requirements: |
||
* Comprehensive: missing information may lead to a wrong or inappropriate decision, as well as it is a factor influencing the user acceptance of a system.<ref>Linda G. Wallace, Steven D. Sheetz, The adoption of software measures: A technology acceptance model (TAM) perspective, Information & Management, Volume 51, Issue 2, 2014, pp. 249–259, {{ISSN|0378-7206}}, {{doi|10.1016/j.im.2013.12.003}}</ref> |
* Comprehensive: missing information may lead to a wrong or inappropriate decision, as well as it is a factor influencing the user acceptance of a system.<ref>Linda G. Wallace, Steven D. Sheetz, The adoption of software measures: A technology acceptance model (TAM) perspective, Information & Management, Volume 51, Issue 2, 2014, pp. 249–259, {{ISSN|0378-7206}}, {{doi|10.1016/j.im.2013.12.003}}</ref> |
||
* Accurate: accuracy depends on how the data is collected to ensure fair and indisputable opinion and judgment.<ref> |
* Accurate: accuracy depends on how the data is collected to ensure fair and indisputable opinion and judgment.<ref name=UIT_1>{{cite journal| title=Utilization of information technology: examining cognitive and experiential factors of post-adoption behavior| author1=Lippert, S.K.| author2=Forman, H.| url=https://ieeexplore.ieee.org/document/1468406| journal=IEEE Transactions on Engineering Management| volume=52| issue=3| pages=363–381| date=August 2005| doi=10.1109/TEM.2005.851273| access-date=8 December 2023}}</ref> |
||
* Precise: precision is usually judged by comparing several measurements from the same or different sources.<ref> |
* Precise: precision is usually judged by comparing several measurements from the same or different sources.<ref name=PEM_1>{{cite journal| title=Performance Evaluation Metrics for Information Systems Development: A Principal-Agent Model| author1=Banker, R.D.| author2=Kemerer, C.F.| url=https://www.jstor.org/stable/23010648| journal=Information Systems Research| volume=3| issue=4| pages=379–400| date=December 1992| doi=10.1287/isre.3.4.379| jstor=23010648| access-date=8 December 2023}}</ref> |
||
* Scalable: lack of scalability in the software industry is a critical factor leading to failure.<ref> |
* Scalable: lack of scalability in the software industry is a critical factor leading to failure.<ref name=WSP_1>{{cite book| chapter=Why software product startups fail and what to do about it. Evolution of software product development in startup companies| author=Crowne, M.| title=IEEE International Engineering Management Conference| chapter-url=https://ieeexplore.ieee.org/document/1038454| publisher=IEEE International Engineering Management Conference| pages=338–343| volume=1| date=9 July 2003| access-date=8 December 2023| doi=10.1109/IEMC.2002.1038454| isbn=0-7803-7385-5}}</ref> |
||
* Credible: outputs must be trusted and believed. |
* Credible: outputs must be trusted and believed. |
||
* Deploy-able and usable. |
* Deploy-able and usable. |
||
==Applications== |
==Applications== |
||
Software intelligence has many applications in all businesses relating to the software environment, whether it is software for professionals, individuals, or embedded software. |
|||
Depending on the association and the usage of the components, applications will relate to: |
Depending on the association and the usage of the components, applications will relate to: |
||
* Change and modernization: uniform documentation and blueprinting on all inner components, external code integrated, or call to internal or external components of the software<ref>Parnas, David Lorge, Precise Documentation: The Key to Better Software, The Future of Software Engineering, 2011, 125–148, {{doi|10.1007/978-3-642-15187-3_8}}</ref> |
* Change and modernization: uniform documentation and blueprinting on all inner components, external code integrated, or call to internal or external components of the software<ref>Parnas, David Lorge, Precise Documentation: The Key to Better Software, The Future of Software Engineering, 2011, 125–148, {{doi|10.1007/978-3-642-15187-3_8}}</ref> |
||
* Resiliency and security: measuring against industry standards to diagnose structural flaws in an IT environment. |
* Resiliency and security: measuring against industry standards to diagnose structural flaws in an IT environment.{{citation needed| reason=no citation given| date=December 2023}} Compliance validation regarding security, specific regulations or technical matters. |
||
* |
* Decisions making and governance: Providing analytics about the software itself or stakeholders involved in the development of the software, e.g. productivity measurement to inform business and IT leaders about progress towards business goals.<ref name=BDA_1>{{cite journal| title=Big data, analytics and the path from insights to value| author1=LaValle, S.| author2=Lesser, E.| author3=Shockley, R.| author4=Hopkins, M.S.| url=https://sloanreview.mit.edu/article/big-data-analytics-and-the-path-from-insights-to-value| journal=MIT Sloan Management Review| volume=52| issue=2| pages=21–32| date=21 December 2010| access-date=8 December 2023}}</ref> |
||
* Assessment and Benchmarking to help business and IT leaders to make informed, fact-based decision about software.<ref name=BTS_1>{{cite journal| title=Benchmarking as a tool of strategic management| author1=Janez Prašnikar| author2=Žiga Debeljak| author3=Aleš Ahčan| url=https://www.tandfonline.com/action/showCitFormats?doi=10.1080%2F14783360500054400| journal=Total Quality Management & Business Excellence| volume=16| issue=2| pages=257–275| date=3 December 2010| access-date=8 December 2023| doi=10.1080/14783360500054400}}</ref> |
|||
==Marketplace== |
==Marketplace== |
||
Software intelligence is a high-level discipline and has been gradually growing covering the applications listed above. There are several markets driving the need for it: |
|||
* Application Portfolio Analysis (APA) aiming at improving the enterprise performance<ref>https://www.gartner.com/ |
* Application Portfolio Analysis (APA) aiming at improving the enterprise performance.<ref name=DAP_1>{{cite web| title=Gartner Glossary - Applications Portfolio Analysis (APA)| url=https://www.gartner.com/en/information-technology/glossary/application-portfolio-analysis| publisher=Gartner, Inc.| date=2023| access-date=7 December 2023}}</ref><ref name=ESD_1>{{cite web| title=Gartner Research - Effective Strategies to Deliver Sustainable Cost Optimization in Application Services| url=https://www.gartner.com/en/documents/3812067| publisher=Gartner, Inc.| date=4 October 2017| access-date=7 December 2017}}</ref> |
||
* Software Assessment for producing software KPI<ref>https://www.omg.org/spec/AFP |
* Software Assessment for producing the software KPI and improving quality and productivity.<ref name=ATA_1>{{Cite web|url=https://www.omg.org/spec/AFP|title = About the Automated Function Points Specification Version 1.0| publisher= Object Management Group| date=December 2013| access-date=7 December 2023}}</ref> |
||
* [[Software development security|Software security]] and resiliency measures and validation |
* [[Software development security|Software security]] and resiliency measures and validation. |
||
* Software evolution or legacy modernization, for which blueprinting the software systems are needed nor tools improving and facilitating modifications |
* Software evolution or legacy modernization, for which blueprinting the software systems are needed nor tools improving and facilitating modifications.{{citation needed| reason=no citation given| date=December 2023}} |
||
==References== |
==References== |
||
Line 79: | Line 104: | ||
[[Category:Software]] |
[[Category:Software]] |
||
[[Category:Software engineering]] |
|||
[[Category:Data management]] |
[[Category:Data management]] |
||
[[Category:Source code]] |
[[Category:Source code]] |
Latest revision as of 01:26, 3 November 2024
Software intelligence is insight into the inner workings and structural condition of software assets produced by software designed to analyze database structure, software framework and source code to better understand and control complex software systems in information technology environments.[1][2] Similarly to business intelligence (BI), software intelligence is produced by a set of software tools and techniques for the mining of data and the software's inner-structure. Results are automatically produced and feed a knowledge base containing technical documentation and blueprints of the innerworking of applications,[3] and make it available to all to be used by business and software stakeholders to make informed decisions,[4] measure the efficiency of software development organizations, communicate about the software health, prevent software catastrophes.[5]
History
[edit]Software intelligence has been used by Kirk Paul Lafler, an American engineer, entrepreneur, and consultant, and founder of Software Intelligence Corporation in 1979. At that time, it was mainly related to SAS activities, in which he has been an expert since 1979.[6]
In the early 1980s, Victor R. Basili participated in different papers detailing a methodology for collecting valid software engineering data relating to software engineering, evaluation of software development, and variations. [7] [8] In 2004, different software vendors in software analysis started using the terms as part of their product naming and marketing strategy.
Then in 2010, Ahmed E. Hassan and Tao Xie defined software intelligence as a "practice offering software practitioners up-to-date and pertinent information to support their daily decision-making processes and Software Intelligence should support decision-making processes throughout the lifetime of a software system". They go on by defining software intelligence as a "strong impact on modern software practice" for the upcoming decades.[9]
Capabilities
[edit]Because of the complexity and wide range of components and subjects implied in software, software intelligence is derived from different aspects of software:
- Software composition is the construction of software application components.[10] Components result from software coding, as well as the integration of the source code from external components: Open source, 3rd party components, or frameworks. Other components can be integrated using application programming interface call to libraries or services.
- Software architecture refers to the structure and organization of elements of a system, relations, and properties among them.
- Software flaws designate problems that can cause security, stability, resiliency, and unexpected results. There is no standard definition of software flaws but the most accepted is from The MITRE Corporation where common flaws are cataloged as Common Weakness Enumeration.[11]
- Software grades assess attributes of the software. Historically, the classification and terminology of attributes have been derived from the ISO 9126-3 and the subsequent ISO 25000:2005[12] quality model.
- Software economics refers to the resource evaluation of software in the past, present, or future to make decisions and to govern.[13]
Components
[edit]The capabilities of software intelligence platforms include an increasing number of components:
- Code analyzer to serve as an information basis for other software intelligence components identifying objects created by the programming language, external objects from Open source, third parties objects, frameworks, API, or services
- Graphical visualization and blueprinting of the inner structure of the software product or application considered[14] including dependencies, from data acquisition (automated and real-time data capture, end-user entries) up to data storage, the different layers[15] within the software, and the coupling between all elements.
- Navigation capabilities within components and impact analysis features
- List of flaws, architectural and coding violations, against standardized best practices,[16] cloud blocker preventing migration to a Cloud environment,[17] and rogue data-call entailing the security and integrity of software [18]
- Grades or scores of the structural and software quality aligned with industry-standard like OMG, CISQ or SEI assessing the reliability, security, efficiency, maintainability, and scalability to cloud or other systems.
- Metrics quantifying and estimating software economics including work effort, sizing, and technical debt[19]
- Industry references and benchmarking allowing comparisons between outputs of analysis and industry standards
User aspect
[edit]Some considerations must be made in order to successfully integrate the usage of software Intelligence systems in a company. Ultimately the software intelligence system must be accepted and utilized by the users in order for it to add value to the organization. If the system does not add value to the users' mission, they simply don't use it as stated by M. Storey in 2003.[20]
At the code level and system representation, software intelligence systems must provide a different level of abstractions: an abstract view for designing, explaining and documenting and a detailed view for understanding and analyzing the software system.[21]
At the governance level, the user acceptance for software intelligence covers different areas related to the inner functioning of the system as well as the output of the system. It encompasses these requirements:
- Comprehensive: missing information may lead to a wrong or inappropriate decision, as well as it is a factor influencing the user acceptance of a system.[22]
- Accurate: accuracy depends on how the data is collected to ensure fair and indisputable opinion and judgment.[23]
- Precise: precision is usually judged by comparing several measurements from the same or different sources.[24]
- Scalable: lack of scalability in the software industry is a critical factor leading to failure.[25]
- Credible: outputs must be trusted and believed.
- Deploy-able and usable.
Applications
[edit]Software intelligence has many applications in all businesses relating to the software environment, whether it is software for professionals, individuals, or embedded software. Depending on the association and the usage of the components, applications will relate to:
- Change and modernization: uniform documentation and blueprinting on all inner components, external code integrated, or call to internal or external components of the software[26]
- Resiliency and security: measuring against industry standards to diagnose structural flaws in an IT environment.[citation needed] Compliance validation regarding security, specific regulations or technical matters.
- Decisions making and governance: Providing analytics about the software itself or stakeholders involved in the development of the software, e.g. productivity measurement to inform business and IT leaders about progress towards business goals.[27]
- Assessment and Benchmarking to help business and IT leaders to make informed, fact-based decision about software.[28]
Marketplace
[edit]Software intelligence is a high-level discipline and has been gradually growing covering the applications listed above. There are several markets driving the need for it:
- Application Portfolio Analysis (APA) aiming at improving the enterprise performance.[29][30]
- Software Assessment for producing the software KPI and improving quality and productivity.[31]
- Software security and resiliency measures and validation.
- Software evolution or legacy modernization, for which blueprinting the software systems are needed nor tools improving and facilitating modifications.[citation needed]
References
[edit]- ^ Dąbrowski R. (2012) On Architecture Warehouses and Software Intelligence. In: Kim T., Lee Y., Fang W. (eds) Future Generation Information Technology. FGIT 2012. Lecture Notes in Computer Science, vol 7709. Springer, Berlin, Heidelberg
- ^ Hinchey, Mike; Jain, Amit; Kaushik, Manju; Misra, Sanjay (Jan 2023). "Guest Editorial: Intelligence for systems and software engineering". Innovations in Systems and Software Engineering. 19 (1). Springer: 1–4. doi:10.1007/s11334-023-00526-1. PMC 9886201. PMID 36744022.
- ^ Bartoszuk, C., Dąbrowski, R., Stencel, K., & Timoszuk, G. "On quick comprehension and assessment of software.", In Proceedings of the 14th International Conference on Computer Systems and Technologies, June 2013, pp. 161-168 doi:10.1145/2516775.2516806
- ^ Raymond PL Buse, and Thomas Zimmermann. "Information needs for software development analytics." 2012 34th International Conference on Software Engineering (ICSE). IEEE, June 2012, pp. 987-996 doi:10.1109/ICSE.2012.6227122
- ^ Ahmed E. Hassan and Tao Xie. 2010. Software intelligence: the future of mining software engineering data. In Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10). ACM, New York, NY, USA, 161–166
- ^ "Mr. Kirk Paul Lafler". 21 December 2015.
- ^ Basili, Victor R. (1981). Data collection, validation and analysis. Software Metrics: An Analysis and Evaluation (PDF). MIT Press. p. 143. ISBN 0-262-16083-8.
- ^ Basili, Victor R.; Weiss, David M. (Nov 1984). "A Methodology for Collecting Valid Software Engineering Data". IEEE Transactions on Software Engineering (6). IEEE Trans. Softw. Eng. 10, 6 (November 1984): 728–738. doi:10.1109/TSE.1984.5010301. hdl:1903/7513.
- ^ Ahmed E. Hassan and Tao Xie. 2010. Software intelligence: the future of mining software engineering data. In Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10). ACM, New York, NY, USA, 161–166. doi:10.1145/1882362.1882397
- ^ Nierstrasz, Oscar, and Theo Dirk Meijler. "Research directions in software composition." ACM Computing Surveys 27.2 (1995): 262-264 doi:10.1145/210376.210389
- ^ Kanashiro, L., et al. "Predicting software flaws with low complexity models based on static analysis data." Journal of Information Systems Engineering & Management 3.2 (2018): 17 doi:10.20897/jisem.201817
- ^ "ISO 25000:2005" (PDF). Archived (PDF) from the original on 2013-04-14. Retrieved 2013-10-18.
- ^ Boehm, Barry W., and Kevin J. Sullivan. "Software economics: a roadmap." Proceedings of the conference on The future of Software engineering. 2000. doi:10.1145/336512.336584
- ^ Renato Novais, José Amancio Santos, Manoel Mendonça, Experimentally assessing the combination of multiple visualization strategies for software evolution analysis, Journal of Systems and Software, Volume 128, 2017, pp. 56–71, ISSN 0164-1212, doi:10.1016/j.jss.2017.03.006.
- ^ Rolia, Jerome A., and Kenneth C. Sevcik. "The method of layers." IEEE transactions on software engineering 21.8,1995, 689-700,doi:10.1109/32.403785
- ^ "Software Engineering Rules on code quality". Object Management Group, Inc. 2023. Retrieved 15 December 2023.
- ^ Balalaie, Armin, , Abbas Heydarnoori, and Pooyan Jamshidi. "Microservices architecture enables devops: Migration to a cloud-native architecture." Ieee Software 33.3 ,May–June 2016, 42-52,doi:10.1109/MS.2016.64
- ^ Q. Feng, R. Kazman, Y. Cai, R. Mo and L. Xiao, "Towards an Architecture-Centric Approach to Security Analysis," 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), Venice, 2016, pp. 221-230, doi:10.1109/WICSA.2016.41
- ^ R. Haas, R. Niedermayr and E. Juergens, "Teamscale: Tackle Technical Debt and Control the Quality of Your Software," 2019 IEEE/ACM International Conference on Technical Debt (TechDebt), Montreal, QC, Canada, 2019, pp. 55-56, doi:10.1109/TechDebt.2019.00016
- ^ Storey MA. (2003) Designing a Software Exploration Tool Using a Cognitive Framework. In: Zhang K. (eds) Software Visualization. The Springer International Series in Engineering and Computer Science, vol 734. Springer, Boston, MA.
- ^ Seonah Lee, Sungwon Kang, What situational information would help developers when using a graphical code recommender?, Journal of Systems and Software, Volume 117, 2016, pp. 199–217, ISSN 0164-1212, doi:10.1016/j.jss.2016.02.050.
- ^ Linda G. Wallace, Steven D. Sheetz, The adoption of software measures: A technology acceptance model (TAM) perspective, Information & Management, Volume 51, Issue 2, 2014, pp. 249–259, ISSN 0378-7206, doi:10.1016/j.im.2013.12.003
- ^ Lippert, S.K.; Forman, H. (August 2005). "Utilization of information technology: examining cognitive and experiential factors of post-adoption behavior". IEEE Transactions on Engineering Management. 52 (3): 363–381. doi:10.1109/TEM.2005.851273. Retrieved 8 December 2023.
- ^ Banker, R.D.; Kemerer, C.F. (December 1992). "Performance Evaluation Metrics for Information Systems Development: A Principal-Agent Model". Information Systems Research. 3 (4): 379–400. doi:10.1287/isre.3.4.379. JSTOR 23010648. Retrieved 8 December 2023.
- ^ Crowne, M. (9 July 2003). "Why software product startups fail and what to do about it. Evolution of software product development in startup companies". IEEE International Engineering Management Conference. Vol. 1. IEEE International Engineering Management Conference. pp. 338–343. doi:10.1109/IEMC.2002.1038454. ISBN 0-7803-7385-5. Retrieved 8 December 2023.
- ^ Parnas, David Lorge, Precise Documentation: The Key to Better Software, The Future of Software Engineering, 2011, 125–148, doi:10.1007/978-3-642-15187-3_8
- ^ LaValle, S.; Lesser, E.; Shockley, R.; Hopkins, M.S. (21 December 2010). "Big data, analytics and the path from insights to value". MIT Sloan Management Review. 52 (2): 21–32. Retrieved 8 December 2023.
- ^ Janez Prašnikar; Žiga Debeljak; Aleš Ahčan (3 December 2010). "Benchmarking as a tool of strategic management". Total Quality Management & Business Excellence. 16 (2): 257–275. doi:10.1080/14783360500054400. Retrieved 8 December 2023.
- ^ "Gartner Glossary - Applications Portfolio Analysis (APA)". Gartner, Inc. 2023. Retrieved 7 December 2023.
- ^ "Gartner Research - Effective Strategies to Deliver Sustainable Cost Optimization in Application Services". Gartner, Inc. 4 October 2017. Retrieved 7 December 2017.
- ^ "About the Automated Function Points Specification Version 1.0". Object Management Group. December 2013. Retrieved 7 December 2023.