History
Software engineering has a long evolving history.
Both the tools that are used and the applications that are written
have evolved over time. It seems likely that software engineering
will continue evolving for many decades to come.
See also History of software engineering.
[edit]
60 year time line
1940s: First computer users wrote machine code by hand.
1950s: Early tools, such as macro assemblers and interpreters were
created and widely used to improve productivity and quality. First
generation optimizing compilers.
1960s: Second generation tools like optimizing compilers and inspections
were being used to improve productivity and quality. The concept of
software engineering was widely discussed. First really big (1000
programmer) projects. Commercial mainframes and custom software for
big business.
1970s: Collaborative software tools, such as UNIX, code repositories,
make, and so on. Minicomputers and the rise of small business software.
1980s: Personal computers and workstations and an emphasis on process
like the CMM. The rise of consumer software.
1990s: Object-oriented programming and agile processes like Extreme
programming gain mainstream acceptance.
1990s: The WWW and hand-held computers make software even more widely
available.
2000s: Managed and interpreted platforms such as .Net, PHP, and Java
make writing software easier than ever before.
[edit]
Future directions for software engineering
Aspect-oriented programming and agile methods are important emerging
SE technologies and practices. The 2005 ICSE had tracks on both of
these topics.
Aspects
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, aspects 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
Agile software development guides software development projects that
evolve rapidly with changing expectations and competitive markets.
The heavy, document-driven processes (like TickIT, 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.
Main Roll1 Roll2
electric1electric2 electric3 electric4 electric5
membrane
filtration water distillers
| yacht charter |
oil painting reproductions | Safety
Glasses | Night Vision | hawaiian
music aloha shirts | Health Care
| football shirts | oil
paintings | Nashville Real Estate
free credit report | Dental Care
| caribbean yacht charter
| south pacific yacht
charter | Kit Car
|