In the past, technologies of software engineering were not sophisticated. The results were challenges and problems initialized as the lecture and text discussed. Because of not sophisticated, the overall structure and concept in this stage of software engineering was simple and easy to managed. Today, the next 20 years or further, it can be ensure that the technologies and techniques are much more advance and complex. As a result, there are two major challenges definitely should be consider in the next 20 years.
Security and Privacy
Internet and mobility are two important usage today and become more important in the coming 20 years. Cloud Computing, Mobile Banking, Location Tracking are most common usage which benefit us by new software engineering technologies. We put a lot personal information to the Internet and share it with the whole world. As a result, personal information privacy is very important and challenging which software engineer have to be consider in design, implementation, and maintenance phrases. (Siani, 2009) Moreover, as Bruce Willis movie indicated the scenario which networks of electronic information flow are now embedded in nearly every aspect of modern life by Internet. (Anon, n.d.) It maybe too dramatically but who can guarantee it will not happen?
Diagnostic of problem
Software cannot operate alone without the hardware support. In the past, electronic device with simple electronic circuit and program to operate. Nowadays, our mobile phone or game console are much advance and complex in both hardware and software point of views. For example, our mobile phone allows us to take photo, video, browsing, location tracking, and even programming. Some new game console contains motion capture device which allows advance interaction between the machine and human. These complex functionalities introduce another challenge of problem identification and diagnostic. Also, different devices contain there own protocol for problem diagnostic and monitoring.Modularization is one of the common methodologies to implement large system or device. It introduce a problem when different parts contain its’ own set of protocol for diagnostic. For example, the Ford vehicles found variety of diagnostic protocols which increase the complexity of making a centralize diagnostic software. (William, 2003)
Anon. (n.d.). Secure cyberspace. Available: http://www.engineeringchallenges.org/cms/8996/9042.aspx. Last accessed 5th Nov 2011
Siani Pearson. (2009). Taking Account of Privacy when Designing Cloud Computing Services. Available: http://www.hpl.hp.com/techreports/2009/HPL-2009-54.pdf. Last accessed 5th Nov 2011.
William R Waldeck. (2003). The Challenge of Developing Diagnostic Ser vice Tools in a Multi-protocol World. Available: http://www.touchbriefings.com/pdf/11/auto031_p_waldeck.pdf. Last accessed 5th Nov 2011