Question
Asked 9th May, 2023
  • AITG Inc Aeeh Press Inc i-SOLE inc SJSU

System and Application Software are Obsolete! Sooner or later. Do you agree?

System and Application Software are Obsolete! Sooner or later. Do you agree?
Note: We will address several questions related to this issue.
The Next Question: What is an alternative?
fuse is a standard device found in any electrical system. Examples include a home, an automobile, a power tool, and many more. The fuse is common and comes in a relatively small variant of the required application and the amperage or load the fuse is expected to carry. For a particular application and load, fuses are typically interchangeable. If the FUSE fails, the circuit is open and will not conduct electricity. Plug in a new fuse, and the circuit is complete and resumes operation.
How many software programs are there in the world? Joseph Newcomer, Former Chief Software Architect (1987–2010) and Author have 14.7K replies and 3.7M answer views. Billions. Probably not trillions. But certainly, more than hundreds of millions. Some are one line long. Some are a hundred million lines long. And everything in between.
These software programs have insidious problems, such as:
• Lack of reliability.
• Lack of stability/unstable
• Excessively costly (billions) to build, purchase, and operate.
• Brittle
• Software projects continue to fail at an alarming rate.
This data immediately prompts two questions:
1. Is it a problem with the project methodology or how organizations administer software engineering projects?
2. Is it a problem with the quality of software engineers available within the marketplace?
There is plenty of blame; however, these are not the root causes of the failings of contemporary software applications and software products.
The problems are manifold:
1. Every software solution must be targeted for an operating platform, and invariably, a software engineer or team of engineers must build out not only the functional capabilities of the software but also must deliver the plumbing of the software itself. The multitude of questions must be addressed at the commencement of a software engineering project:
a. How does information move within the application?
b. What algorithms and patterns will be used, and which will be avoided?
c. How do different components interact?
d. Is there a need for a message bus?
e. Will the application employ services?
f. How is information stored, retrieved, rendered, reported, and transmitted to consumers of other details?
g. What are the performance requirements of the application?
h. What is the mechanism for recovering from routine application failures? Or catastrophic failures?
i. How do we prevent the application from suffering from design constraints that effectively lock the application from evolving to meet changing requirements over time?
j. How can we prepare for inevitable changes in requirements and ensure the integrity of the application across many design changes?
Functional and non-functional requirements must be vetted, and a solution that satisfies these questions and many more is needed. Plus, there needs to be a holistic methodology for efficiently documenting a software application's functional and non-functional requirements, neither at its inception nor throughout its lifecycle. Approaches to writing these requirements are as diverse as the number of software architectures today. For example, FUSE employs a holistic approach to software architecture; software design and applications are simply artifacts of the architecture and design.
We could spend hundreds of pages analyzing the many weaknesses of contemporary software engineering practice, but the purpose of our research is different. The compendium of research into the failures of modern software methods is vast, and each new methodology and technique introduced addresses point solutions to only specific problems and weaknesses in software engineering. Unfortunately, no unified and holistic software approach addresses the issues with prior methods.
One may ask, "How so?" or, "How did we get into this desperate situation?
Unfortunately, this specific line of questioning perpetuates the problem and keeps the software engineering community on the wrong track. The question pre-supposes that minor tweaks to how software is engineered are adequate to "fix" the problems that genius software engineers have bequeathed to our world. We cannot just tweak things as has been tried before. We cannot replace zero methodologies with waterfalls to fix how projects are managed. We need to replace waterfall with agile and get a better outcome.
We have made meaningful advances in Software Engineering in the past 50 years. Waterfall methodology was an essential improvement over the diverse approaches used before Waterfall methods were introduced. Object-Oriented Analysis, which led to Object-Oriented Design and Object-Oriented programming, was a similarly crucial step forward. This object orientation motivated the Gang of Four to introduce their notion of systems of patterns, ushering the concepts of patterns into the contemporary world of software engineering. So pervasive was this concept and so widely adopted that it is unlikely to find any software undertaking that does not employ the idea of patterns today.
However, if this is the case, why are the artifacts of software not improving markedly? Why do we still have failures with alarming frequency across all software projects? Shouldn't we expect more from software projects that employ the correct techniques and methods? However, again, this question needs to be corrected. It assumes that we can adjust a small error here or there and solve the fundamental and conceptual problems of software architecture, software design, and software development. There is little more to be done.

Most recent answer

Mohamed Fayad
AITG Inc Aeeh Press Inc i-SOLE inc SJSU
To: Arne Johanson
First: You asserted that "all things become obsolete with time." And my answer to your assertion is, "They will be replaced by newer versions, eventually."
(1) Software applications are different than all things that you know, and as soon we build, it becomes obsolete and "outdated" (Legacy System).
(2) Having newer versions means a vicious "wicked" cycle of re-inventing the wheels.
Second: You said: "A computer has no function without an operating system."
(1) Let me repeat your statement differently: "Without an operating system, a computer is useless." "A computer without an operating system is a bare machine, whatever it is embedded or non-embedded. The embedded system is custom written to work with specific hardware. Non-embedded systems are more general-purpose. Embedded computer software is usually loaded into non-volatile memory, rather than RAM." Samih George: Professor of Software Engineering.
(2) Hardware academics, professionals, and gurus think differently about this issue. I found this true in all universities I worked for and my keynotes and consultations in more than 52 countries. Even San Jose Stated University's "Computer Engineering Faculty" outnumber the "Specialized Areas of Software Faculty, such as Algorithms, Machine Learning, Enterprise Software, Database," and others. SJSU's Computer Engineering Department, which recently called Computer and Software Engineering" after years of endless debates, has more than approximately 2500 graduate and undergraduate software students and less than around 500 computer engineering faculty -- The Ratio is the percentage of students compared to teaching staff in San Jose State University is 1:26 which made SJSU one of the worst universities in the USA.
(3) "Operating system is the brain of the computer, and it is software and has more versions than any software application and means a vicious "wicked" cycle of re-inventing the wheels and force any user to use and the developer to develop instance-oriented software applications and strong dependences of software developed on the specific operating systems and cannot be used on other existing operating systems which is very costly in many different ways.
Suggested Solutions: two ways:
(1) (Impossible) Develop a unified and Stable Operating System (OS) that is flexible, Scalable, adaptable, and provides multiple views to suit the user's needs. Several research attempts to do this, such as the closest example is "Choice," and it comes short. Such an OS is impossible because of the market's hardware ownership and control share.
(2) (Practical) We urgently need to build software unified, stable, and independent foundation of the hardware control that satisfies all the desired quality factors (United Software Engines (USEs) with the ability to generate as many software applications as possible quickly on existing operating systems.

All Answers (6)

Dennis Hamilton
Association for Computing Machinery
I find this to be a peculiar question. Assuming there will continue to be interactive systems and coordinated operation either B2B, B2C, and among individuals and groups, there is a requirement for disciplined approaches on how systems are built, deployed, and maintained. I don't see lifecycle management and coordination among interconnected system disappearing.
I do see current deterioration of interoperability and the tendency to create silos for competitive purposes. There is a problem with organizations deploying (or purchasing) systems over which there is no comprehension of how to manage such activities, whether contracted or in-house. Risk management is notoriously absent.
Nafiul Khalid
Florida International University
Being a Computer Science student and a software developer aspirant, I do not agree that System and Application Software will be obsolete soon.
1 Recommendation
Mohamed Fayad
AITG Inc Aeeh Press Inc i-SOLE inc SJSU
To: Dennis Hamilton
Thank you for your answer.
First: We say in Arabic nothing strange but Satan.
Second: Your answer to the question began with an assumption that is not appropriate in software engineering because the assumption is your own, not related to the system you work on.
Third: The life cycle management and coordination between interconnected systems will remain, but we seek improvement or better ways to manage.
Fourth: Then, the diversity of problems on the ground began.
Fifth: This is an excellent way to support my arguments.
My question aims to show everyone there is a better alternative than building legacy systems, which are big dilemmas in the different domains of knowledge.
Mohamed Fayad
AITG Inc Aeeh Press Inc i-SOLE inc SJSU
To: Nafiul Khalid
You can disagree, and it is acceptable to dispute, but the programs you write will become legacy systems sooner or later.
A legacy system can cause many problems, such as high maintenance costs, data silos that prevent integration between systems, lack of compliance with governmental regulations, and reduced security. These issues eventually outweigh the convenience of using an existing legacy system.
Arne Johanson
California Native Plant Society, San Diego
Of course, all things become obsolete in time. They will be replaced by newer versions, eventually. However, they will be around in some form.
A computer has no function without an operating systems. That is to say that all the electronics do nothing without instructions to define what the electronics are.
Application software will likely be different but will still exist. Without applications the computer isn't doing anything useful for people.
Mohamed Fayad
AITG Inc Aeeh Press Inc i-SOLE inc SJSU
To: Arne Johanson
First: You asserted that "all things become obsolete with time." And my answer to your assertion is, "They will be replaced by newer versions, eventually."
(1) Software applications are different than all things that you know, and as soon we build, it becomes obsolete and "outdated" (Legacy System).
(2) Having newer versions means a vicious "wicked" cycle of re-inventing the wheels.
Second: You said: "A computer has no function without an operating system."
(1) Let me repeat your statement differently: "Without an operating system, a computer is useless." "A computer without an operating system is a bare machine, whatever it is embedded or non-embedded. The embedded system is custom written to work with specific hardware. Non-embedded systems are more general-purpose. Embedded computer software is usually loaded into non-volatile memory, rather than RAM." Samih George: Professor of Software Engineering.
(2) Hardware academics, professionals, and gurus think differently about this issue. I found this true in all universities I worked for and my keynotes and consultations in more than 52 countries. Even San Jose Stated University's "Computer Engineering Faculty" outnumber the "Specialized Areas of Software Faculty, such as Algorithms, Machine Learning, Enterprise Software, Database," and others. SJSU's Computer Engineering Department, which recently called Computer and Software Engineering" after years of endless debates, has more than approximately 2500 graduate and undergraduate software students and less than around 500 computer engineering faculty -- The Ratio is the percentage of students compared to teaching staff in San Jose State University is 1:26 which made SJSU one of the worst universities in the USA.
(3) "Operating system is the brain of the computer, and it is software and has more versions than any software application and means a vicious "wicked" cycle of re-inventing the wheels and force any user to use and the developer to develop instance-oriented software applications and strong dependences of software developed on the specific operating systems and cannot be used on other existing operating systems which is very costly in many different ways.
Suggested Solutions: two ways:
(1) (Impossible) Develop a unified and Stable Operating System (OS) that is flexible, Scalable, adaptable, and provides multiple views to suit the user's needs. Several research attempts to do this, such as the closest example is "Choice," and it comes short. Such an OS is impossible because of the market's hardware ownership and control share.
(2) (Practical) We urgently need to build software unified, stable, and independent foundation of the hardware control that satisfies all the desired quality factors (United Software Engines (USEs) with the ability to generate as many software applications as possible quickly on existing operating systems.

Similar questions and discussions

Can ChatGPT be helpful in programming and creating new IT applications and formulas?
Discussion
53 replies
  • Dariusz ProkopowiczDariusz Prokopowicz
Can ChatGPT be helpful to computer scientists in programming and creating new applications, complex models based on multi-criteria algorithms and computer science formulas?
When ChatGPT recently became a media topic it became apparent that, on the one hand, it can be useful for creating simple texts based on prior knowledge downloaded from the Internet but, on the other hand, in those written by this artificial intelligence technology, the written texts may contain factual errors and content that is not factually correct. This is because the texts generated by ChatGPT are created as if in a free-form creative manner by combining different elements of content from many different source texts existing on the Internet and in 2021 downloaded from the Internet and constituting the knowledge base on which ChatGPT operates. However, in terms of generating formulas, algorithms, models created during programming, ChatGPT can be helpful in terms of finding specific programming formulas as answers to the questions asked. In this way, within the process of asking successive specific questions and obtaining answers, it is possible to build complex, multi-faceted models that form the software of specific applications and computer programmes.
In view of the above, I address the following question to the esteemed community of scientists and researchers:
Can ChatGPT be helpful to computer scientists in programming and creating new applications, complex models based on multi-criteria algorithms and computer science formulas?
And what is your opinion on this?
What is your opinion on this subject?
Please respond,
I invite you all to discuss,
Thank you very much,
Warm regards,
Dariusz Prokopowicz
Are the functional requirements of the existing SW reasonable?
Question
1 answer
  • Mohamed FayadMohamed Fayad
Are the functional requirements of the existing SW reasonable?
Gathering Requirements is a big joke.
Note: We will devote this part to Functional Requirements. We will have a set of questions related to non-functional requirements later.
Currently Known:
Functional requirements are the primary way customers communicate their requirements to the project team (First). Applicable (functional) requirements help to keep the project team going in the right direction (Second). Unclear requirements lead to a poorly defined scope that creates many challenges from the beginning of the project (Third).
In requirements engineering (Fourth), requirements elicitation is the practice of researching and discovering the requirements of a system from users, customers, and other stakeholders (First). The procedure is also sometimes referred to as "requirement gathering." (Will be discussed in the current Definition of Functional Requirements and Solicitation Process following questions.)
Reference: Requirements Engineering A good practice guide, Ramos Rowel and Kurts Alfeche, John Wiley and Sons, 1997
Explanation:
First:
(1) "A customer communicates their requirements to the project team" Based on my experience and research for more than 40+ years as a practitioner, academic, and a leading authority in SWE worldwide.
(a) Users, Customers, Stakeholders, System Engineers, and Project teams of any software system DO NOT KNOW anything about the functional requirements of any software system.
(b) Users, Customers, Stakeholders, System Engineers, and Project teams are solution-oriented mental models by experience and practice.
(c) We need to distinguish the difference between System and Software. A unique system exists in domain knowledge, but the SW is the accurate engine in all designs and domain knowledge.
(d) Unfortunately:
(1) SWE Gangs where each gang pushes its agenda in different areas of SWE, creating confusion, pointless debates, poor research, and inadequate teaching and training programs among the SWE universities and communities.
Evidence:
+ In Parnas, David L. (1998), "Software Engineering Programs are not Computer Science Programs." Annals of Software Engineering 6:19-37, Page 19. Parnas said that software engineering is a form of engineering.
+ The Gang of Four Summarize SWE in "Design Patterns," Analysis Patterns," "Process Patterns," and others. Most of them are programmers and from different fields of knowledge.
+ I studied most SWE university programs and found tremendous in various aspects of SWE, and many instructors are (Lecturers) Programmers.
+ "A well-known: All the existing SWE Books have nothing to do with true SWE. Concerning all the authors of any book on SWE areas, they are identical in many ways, even in their major pitfalls and problems.
+ SWE Standards collecting dust has no value.
+ SWE is not a social science or social media.
and
(2) The majority of different disciplines, professional and academia, trivialize SWE:
Evidence:
+ In Knuth, Donald (1974), "Computer Programming is an Art." The Communications of ACM 17 (12) Transcript of 1974, Tuning Award Lecture, where Knuth needed to separate Art and Science in his lecture.
+ In Dijkstra, Edsger W. (1998 "On the Cruelty of really teaching computer science,'" EWD1036, Austin, December 1998.
He also said that SWE should be known as "The Doomed Discipline." He indicated why he used the term "Doomed" because it cannot even approach its goal of science, and its purpose is self-contradictory. Unfortunately, all the non-SWE professionals in Computer Science and Engineering adopt the same point of view.
+ In Edsger W. Dijkstra's (2004) "There is still a war going on," Transcript, Austin (December 1993).
Dijkstra rejected the idea of "SWE" until he died in 2002, arguing that those terms were poor analogies for the radical novelty of computer science. He also indicated that SWE is Miserable Science."
(3) "Requirements elicitation is the practice of researching and discovering the requirements of a system."
There are three bizarre notions in this statement:
a) "The Practice of Research and Discovery" – Wow
Practice: The existing solicitation or gathering requirements failed to Gather the valid SWE Requirements.
Research: The current solicitation doesn't have anything to do with research.
Discovery:?
b) "Requirements of a system" must change to Requirements of Software or Software Requirements
Second: "Applicable (functional) requirements help to keep the project team going in the right direction." True. The reality is that the functional requirements do not exist. Therefore all the software project teams need to go in a different direction.
Third: "Unclear functional requirements lead to a poorly defined scope that creates many challenges from the beginning of the project." True. Why?
+ The cancelations of many systems,
+ Maintenance nightmare,
+ Disappearance of Software
+ Short life spans of much existing software,
+ Failure of 98% of startups, and
+ Legacy systems (Billions of $s)
Fourth: "In requirements engineering."
+ There are no functional requirements and the avoidance of problem space.
+ There is nothing to engineer. I will address many questions related to Requirements engineering."
Do we have the actual functional requirements for any software system?
Question
1 answer
  • Mohamed FayadMohamed Fayad
Note: We will devote a set of questions to Functional Requirements
We will have another set of questions related to non-functional requirements later.
[1]
The functional requirements (First) describe the functionalities required from the system, such as business rules, transaction corrections, adjustments and cancellations, administrative functions, Authentication, and Authorization levels (Second).
First:
The functional and non-functional requirements present the Problem Space, and no one knows how to define and understand the Problem Space.
Why?
Because if we know how to understand the Problem Space, we will be able to:
1. Stop the nightmare of Maintenance, and we can implement preventive Maintenance.
2. Stop reinventing the wheels.
3. Develop self-manageable, self-adaptable, self, extendable, and self-configurable systems with unlimited applicability, reuse, and other quality properties of the system development.
Second:
(1) The functionalities described above do not tell the software and system requirements and only represent the business properties, which is very easy to do. It has been business as usual. Where are we now?
(2) Limited to business software and has nothing to do with critical life & time software systems, Aerospace, defense, and others,
(3) Limited to developing an instance-oriented software system which would lead to within and out reinventing the wheels.
(4) How to guarantee the business rules, transaction corrections, and others

Related Publications

Conference Paper
Full-text available
Distributed Pair Programming (DPP) is widely known to promote collaboration and knowledge sharing among novice programmers, while it engages them in carrying out programming assignments. Moreover, DPP is a means of experiencing agile software development techniques that are considered important in the software market. In this paper, we share some e...
Chapter
Durch die zunehmende Agilisierung von Unternehmen wird eine Prozessorientierung in der Organisation gefördert. Das Scaled Agile Framework® (SAFe®) stellt in der Version 5.0 ein „zweites Betriebssystem“ des Unternehmens dar, welches die (agilen) Prozesse in Abgrenzung zur stabilen Organisationsstruktur beschreibt. Vergleicht man diese Prozess-Vorste...
Presentation
Full-text available
Introduzione. Il “lavoro agile” (LA) si sta diffondendo anche in Italia (es. Legge n.81/2017). LA non indica solo il lavoro da remoto ma un diverso modello organizzativo di gestione e qualità degli spazi e del lavoro con un’enfasi sulla gestione per obiettivi e l’autonomia lavorativa. Tale modalità incrementerebbe le risorse lavorative ma potenzial...
Got a technical question?
Get high-quality answers from experts.