The Software Engineering
Requirement Explained
Each Computer Science major
must successfully complete at least one Software Engineering course. Software
Engineering (SE) is concerned with the application of theory, knowledge and
practice for effectively and efficiently building software systems that satisfy
the requirements of users and customers. To allow students to select a course
that matches their interests, the Computer Science Department offers in
rotation three Software Engineering courses: CS 305 Database Applications Engineering,
CS 350 Object Oriented Software
Engineering, and CS 360 Distributed
Applications Engineering.
The following are common features
of all three:
–
Producing software that
is easy to modify and maintain (maintainability)
–
Producing reliable software
that will perform well even in situations different from its designer’s
assumptions (robustness)
–
Reuse of components
(reusability)
The three courses differ
in the following:
In CS 305 Database Applications Engineering
you will take part in the development of an information system with an
extensive database component. You will use tools of a higher level than in the
other two SE courses. You may not need all your programming skills, but will
need a good
database background. You will have to learn the details of using a
complex DBMS environment on the fly.
In CS 350 Object Oriented Software Engineering
we assume that you
love object oriented programming (OOP) and have a good knowledge and
recent experience with one OOP language (e.g., C++ or Java or C#, to fit in a
team). I recommend that before taking this course you complete at least one
advanced programming elective, and if your schedule allows, the required course
CS 355 Programming Languages. In CS 350 you will most likely build a
desktop application that may or may not access a database or any remote
resources. You will use all your object-oriented design knowledge, and will
significantly enhance it.
CS 360 Distributed Applications Engineering
requires good
OOP skills and some experience with building Web applications (at the level
of CS 250 or CS 245 – CS110 is NOT
sufficient!). If you did not enjoy the CS 250/245 prerequisite, you should consider
another SE course. In CS 360 you will
learn more about the specifics of distributed systems and will use a distributed
systems design methodology. Recent projects include a distributed game, a fully
featured e-commerce application, a client-server system built on low level
communication protocols, and autonomous agents controlling robots.
Since these three courses
are offered in rotation, you have to plan your SE experience well in advance and
consider the prerequisites, to be able to take the SE course that
you want. Do
not hesitate to contact me early in your course of
study for an advice and help with your planning.