9Software Engineering

Tuesday January5 2010 · ‹Programming› · ‹Design› · 16841 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

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!

  1. 1

    Hi Claude,
    Sounds interesting. Unfortunately I don’t have an ACM account…
    Cheers
    Patrick

    — pbouchaud
    January27 2010
Add a comment
 

 
E-Mail  (for notification only)
 
Code*  ←