A Broad Perspective A concept like software engineering is extremely complex and time consuming to realize, thus why universities have it as an upper-division course. The wide range of topics in such courses are designed to give students an experience...