[comp.software-eng] What's Next

sheppards@tiger.UUCP (Scott Sheppard) (03/28/89)

In article <2549@ssc-vax.UUCP>, dmg@ssc-vax.UUCP (David Geary) writes:
> 
>   It's important for software developers to keep up with current technology.

Yes it is.

> Only a couple of years ago, C was all the rage (and still is - flames to 
> email, please ;-).  I firmly believe, however, that within the next 5 years,
> that software engineers should have experience with Object Oriented Programming
> (OOP) languages, in order to keep abreast with current technology.  

It is my guess that languages such as Ada and C++ will eventually replace
the C in use today. As systems become more and more complex and constraints
more and more demanding, programmers will need the overhead imposed by
such languages (e.g. strong type checking in Ada). Systems will be "just
too big" to hack together using C.

Object oriented programming is current and I believe it will continue.
Despite this, programming will never develop into an OOP-only mode. Communications
of the ACM articles have clearly demonstrated instances where OOP is not the
best alternative. Thus, we will always maintain a mixture of OOP and functional
decomposition.

>   Anyway, what I'm driving at is this:  What will be next?  What is now
> under development that will make a significant impact on the world of
> software development.

A couple of topics come to mind:

Executable Specifications (specifications precisely documented that are implementable
                           via languages such as Prolog through rapid prototyping)
Knowledge Based Assistance (artifical intelligence can be applied to the process of
                            program development itself)
Maintenance Assistance (Ripple effect is a phenomenon where changes in one area of a 
                        program are unexpectedly felt in another area. Techniques such
                        as ripple effect analysis (If I change this, that is screwed up)
                        are under development).
Software Safety (Peter Neuman's articles in Software Engineering Notes demonstrate the
                 need to apply techniques such as Fault Tree Analysis to the software
                 portions of safety-critical systems).
Testing Management (Great strides are needed before thorough testing of programs is
                    commplace. Tools to help manage test case development and execution
                    along with assessing test coverage are not the state of the practice
                    today. Eventually, they will be.)

These are just some areas off the top of my head. They are not specific instances of
products (e.g. X windows) but are areas that familiarity in would look good on a resume.

AG Communication Systems

-- 
Scott Sheppard                               
  UUCP: ...!ncar!noao!asuvax!gtephx!sheppards