Close

Department of Software Engineering

Software Engineering Department

Software Engineering is the process of analyzing user, application domain, and system requirements and then designing, developing, testing, delivering, and maintaining a software product, which can range from a single application to a computer-based system. Like other engineering disciplines, Software Engineering applies standard engineering principles to software development, inspection, verification testing, and maintenance using a systematic, disciplined, and computational approach. Software Engineering is a domain-specific It often requires creative designs to overcome difficult technical problems and prevent programmer errors. Hundreds of billions of dollars are spent on software development worldwide every year, and completing these projects on time and within budget is crucial to their success. To reduce software project development costs, multiple software projects will need to share the expertise of software engineers with expensive and/or rare skills, such as good database designers and efficient SQL query writing, developing highly interactive graphical user interfaces, integrating machine learning tools into decision-making software, and planning and problem-solving using AI methods. To complete software development within the project's initial deadline, it will always be necessary to collaborate with a team of professional software engineers. A software engineer will sometimes need to be able to manage a team effectively, and sometimes, as part of a team, they will need to be able to produce code in the most efficient and accurate way.

A software engineer must have the ability to write programs effectively in multiple programming languages, work with multiple operating systems, use integrated software development environments within a software development team, and design efficient and scalable databases while considering data security and data access/update authorization. Modern computer operating systems, network devices, and database management systems provide excellent security support, but assigning the correct privileges/authorizations to each role/user is the responsibility of the software designer and developer. If these security requirements are ignored, the software systems developed will do more harm than good to companies.

In addition to the data structures, algorithms, operating systems, databases, computer graphics, and computer networking courses offered in the Computer Engineering department, our Software Engineering department will teach our students software requirements management, software architecture design, software project management, software auditing, testing, and verification. Our students will have the ability to apply the latest software development methodologies, such as agile development, Scrum, extreme programming, feature-driven, and model-driven development. These skills will prepare our students to join software development companies and software divisions as software engineers after graduation.