Software Engineering

An introduction to the practical problems of specifying, designing, and building large, reliable software systems. Students work in teams on projects for real clients. This work includes a feasibility study, requirements analysis, object-oriented design, implementation, testing, and delivery to the client. Additional topics covered in lectures include professionalism, project management, and the legal framework for software development


Learning Outcomes

After completing this course the students will be able to:

a.      Understand the principles of software engineering outlined above.

b.     Understand and be fluent in the use of software engineering terminology and nomenclature

c.      Be capable of intelligently communicating with most members in a software development organization (management, analysts, architects, developers, ...)

d.     Be able to create and use planning, requirements analysis, domain analysis and design artifacts and carry them into code.

e.      Be capable of taking on the role of systems analyst in a software development organization

f.       Be able to document all phases of the software development processes

g.     Have the necessary tools to become a software development project manager