Critical Question:

What are the significant issues with Existing Software Engineering?

Important Note:

During this trip through the significant issues of existing software engineering issues, we will cite false claims in unlimited publications, technologies, tools, research, teaching, programs, developments, and others. We urge everyone not to take this personally. Anyone may disagree with the critical question, but please respond kindly. We experienced many bunches and losses and will speak to everyone about them later.

Motivations:

Experience as a software engineer for more than 40+ years as a practitioner and a Full academic professor, and we mastered every aspect of Software Engineering in different ways and interpretations than other claimed gurus in SWE.

Many software engineering practitioners and academics (including SJSU, where I am a full professor) present many false claims about SWE; all they see and know is the programming aspects of software engineering. Have a different understanding & knowledge of SWE, and they are missing the essential stages of SWE:

1) The Problem Space (Analysis) – Understanding the problem and representing the "WHAT."

We are talking about the functional and non-functional requirements, the responsibility, the collaboration of the classes, and the testing aspects of modeling these problem properties. Unfortunately, this Problem Space does not exist in teaching, training, research, and practice. However, the Problem Space is the most critical stage of software development in all fields of knowledge; By mastering the Problem Space, we can avoid many significant problems, including many failures.

2) The Solution Space (Design, Architecture, Coding) –Creativity of the solution and represent the "HOW-TO." This phase has many problems: 1) there are many solutions, 2) it Would lead to many different modeling techniques 3) The majority of research in SWE IS USELESS. Examples are many different modeling, architecture techniques, tools, and languages all over the solution space. Look at this statement carefully:

"if you do not understand the Problem Space, the outcome of the Solution Space is one of the following alternatives:

a) Useless Development and cancelation of the development – Billions of $s down the drain,

b) Software systems with maintenance nightmare, which causes a lot of system failures and cancelations after 5 to 6 years."

Unfortunately, in practice, coding represents 95% of the software development of any system.

We need to:

1. Unify the way we do everything in software engineering research and development

2. Emphasis on the Art, Science, and Engineering of Software Engineering

3. Stabilize the Engineering of Software

4. Standardize all aspects of Unified Software Engineering

5. Understand and accurate Execution of Software Quality

6. Allow Creativity and Innovations in Software Engineering

7. Prevent Software Maintenance

8. Unified and stabilize Methodologies, Techniques, and Processes

9. Reduce Cost and Effort

10. Produce of High Quality and Maintenance Free Software & Systems

11. Explore and Development of new Disciplines.

12. Free the Software Independency of Hardware

More Mohamed Fayad's questions See All
Similar questions and discussions