Current directions for software engineering
Aspect-oriented programming and agile methods are important emerging SE technologies and practices.
Aspects help programmers deal with ilities by providing tools to add or remove boilerplate code from many areas in the source code. Aspects describe how all objects or functions should behave in particular circumstances. For example, aspectss can add debugging, logging, or locking control
into all objects of particular types. Researchers are currently working to understand how to use aspects to design general-purpose code. Related concepts include generative programming and templates.
Agile Methods guide software development projects that evolve rapidly with changing expectations and competitive markets. The heavy, document-driven processes (like CMM and ISO 9000) are fading in importance. Some people believe that companies and agencies export many of the jobs that can be guided by heavy-weight processes. Related concepts include extreme programming and lean software development.
The Future of Software Engineering conference (FOSE) held at the ICSE 2000 documented the state of the art of SE in 2000 and listed many problems to be solved over the next decade. The Feyerabend project attempts to discover the future of software engineering by seeking and publishing innovative ideas.
Conferences dedicated to inform undergraduate students like the annual Canadian University Software Engineering Conference (CUSEC) are also very promissing for the future generation. It is completely organized by undergraduate students and let different Canadian Universities interrested in Software Engineering to host the conference each year. Past guests includes Kent Beck, Joel Spolsky, Philippe Kruchten, Hal Helms, Craig Larman as well as university professors and students.
Source | Copyright