9Software Engineering
Tuesday January5 2010
· ‹Programming› · ‹Design›
· 2729 Views
In 2008, I published an article and a short paper on software engineering. Together, they summarize my understanding of software development and maintenance based on a decade of professional experience.
- Interaction Design for Software Engineering
Interactions Magazine XV.4 - Essential Programming Paradigm
OOPSLA 2008
Interaction Design for Software Engineering
This article analyzes the problem of software maintenance from a design perspective. In particular, I apply interaction design to software engineering.
A critical element of interaction design is the concept model. For software engineering, I identify the concept model with the programming paradigm.
Essential Programming Paradigm
In this paper, I clean up with myths about programming languages and open the quest for the essential programming paradigm.
Myth 1: programming languages are general. I argue that no programming language to date can claim to be general. The non generality manifests itself in the proliferation of design patterns.
Myth 2: design patterns are good. This myth is cleared by identifying design patterns with the software maintenance problem. I observe that different paradigms provoke different design patterns. I conclude that design patterns are symptoms of mismatch between problem domains and paradigms.
Since current paradigms are biased towards certain domains, they exclude all other domains. I therefore seek a programming paradigm which instead focuses on Turing-completeness alone.
Conclusion
To solve the software maintenance problem, we need to fix the programming paradigm. In the publications mentioned above, I explain why past attempts like visual programming and domain specific languages have failed.
I believe that progress in programming languages can only be expected if computer science examines software engineering from a design perspective.
1 Comment ·
0 Trackbacks ·
Permalink ·
Share this!
Hi Claude,
Sounds interesting. Unfortunately I don’t have an ACM account…
Cheers
Patrick