The art, science and engineering of software development skills in an embedded system

After many years since software design first started, it is still not matured like other disciplines such as electrical or mechanical engineering design in such a way that they are repeatable with defined methods, processes, artifacts, and so forth. For example, electronics systems are based on the fundamental of physics and chemistry. Software does not work based on these fundamentals, and many are still questioning the necessity of software engineering. We show one of the ways to do software design, particularly on telecommunication systems, that demonstrate a practical software engineering practice. We show that software development is very much like art, science and engineering. We show how do we design and specify a software feature systematically with disciplines, and further suggest the skills required for software professional.

[1]  Mauro Pezzè,et al.  A formal design notation for real-time systems , 2002, TSEM.

[2]  Michael R. Clarkson,et al.  Formal Methods Application: An Empirical Tale of Software Development , 2002, IEEE Trans. Software Eng..

[3]  Robert P. Colwell Ground bounce , 2003, Computer.

[4]  Steve McConnell Best Practices: The Art, Science, and Engineering of Software Development , 1998, IEEE Softw..

[5]  Panos J. Antsaklis,et al.  A method for the synthesis of deadlock prevention controllers in systems modeled by Petri nets , 2000, Proceedings of the 2000 American Control Conference. ACC (IEEE Cat. No.00CH36334).

[6]  Richard H. Thayer,et al.  Software System Engineering: A Tutorial , 2002, Computer.

[7]  Bruce H. Krogh,et al.  Recent advances in discrete analysis and control of hybrid systems , 2002, Sixth International Workshop on Discrete Event Systems, 2002. Proceedings..

[8]  Claudio Riva,et al.  Combining static and dynamic views for architecture reconstruction , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[9]  Pao-Ann Hsiung Formal synthesis and code generation of embedded real-time software , 2001, CODES '01.