Software Engineering
Software Engineering is the computer discipline that is concerned with the theoretical and practical aspects of building high quality software systems, on time, and within budget. Software engineers are tasked with the detailed analysis, design, implementation, testing, maintenance, and management of software product development projects for a broad range of computing applications across society.
The increasing pressure to deliver high-quality, reliable software products in less time is rapidly fueling the demand for computer professionals with specific preparation in software engineering and experience in working on teams. These pressures stem from such widespread development as
- The use of software for demanding and safety-critical applications that make it imperative to avoid the serious, indeed sometimes fatal, consequences of poorly understood design.
- The need to create consumer and entertainment applications like computer games, in the face of a highly competitive global marketplace.
- The increasing need to develop useful, easy-to-use software tools that reliably meet customer needs and whose features and documentation can be used and understood by their intended user with a high degree of consistency and confidence.
- The need to re-engineer or replace aging legacy software systems to take advantage of modern computer hardware capabilities.
Recent advances in the practice and technology of software engineering have made it possible to offer undergraduate and graduate degree programs in software engineering itself. Notable among these advances are:
- The availability of proven computer tools and processes to standardize the development of software products and automate software engineering tasks.
- The increasing importance of formal methods and software quality measurement techniques to ensure more thorough testing of software.
- The success of the agile and object-oriented software engineering methods, as well as the move toward technical and managerial practices that cover the full software development cycle.
Software engineers must know the subset of computer science that is relevant to software development. They must also have knowledge of the principles of effective and reliable design, of mathematics and other sciences that are traditionally known by engineers, and of the skills and applications of project management.
Software engineering includes:
- Software design and development; that is, building commercial, industrial-strength software by the application of validated knowledge and experience that have been codified into formal methods of best practices.
- Software process and quality assurance; that is, the systematic discipline of consciously improving the quality, cost, and timeliness of the process itself by which large software systems are designed and developed.
- Software development project management; that is, how to manage large software design projects and bring development to a timely and efficient completion.
The Software Engineering (SWE) degree program offered by the Department of Computer and Information Science stresses the range of technical, systematic, and managerial aspects of the software engineering process but places primary emphasis on the technical facets of designing, building, and modifying large and complex software systems. This program concentrates on all software development lifecycle phases, including program management, requirements engineering, software architecture design, software implementation, software configuration management, software quality assurance, and software process maturity measurements and improvements. It balances both theoretical and practical aspects by covering fundamentals in the classroom and evaluating student knowledge by implementing team-based work projects. Students complete a minimum of 120 credits and receive a BS degree in Software Engineering. The degree prepares graduates for immediate employment in the software engineering field and for graduate study.
The Bachelor of Science in Software Engineering program is accredited by the Engineering Accreditation Commission of ABET, https://www.abet.org
Program Educational Objectives
- Our graduates will be successfully employed in Software Engineering–related fields or other career paths, including industrial, academic, governmental, and non-governmental organizations, or will be successful graduate students in a program preparing them for such employment.
- Our graduates will lead and participate in culturally diverse and inclusive teams, becoming global and ethical collaborators.
- Our graduates will continue their professional development through, for example, obtaining continuing education credits, professional registration or certifications, or post-graduate study credits or degrees.
Student Outcomes
To achieve the educational objectives of the program, graduates of the BS in SWE program will have an ability to:
- Identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
- Apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
- Communicate effectively with a range of audiences.
- Recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
- Function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
- Develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
- Acquire and apply new knowledge as needed, using appropriate learning strategies.
Dearborn Discovery Core (General Education)
All students must satisfy the University’s Dearborn Discovery Core requirements, in addition to the requirements for the major
Major Requirements
A candidate for the degree Bachelor of Science in Software Engineering is required to pursue scholastic quality and to complete satisfactorily the following program of study:
In addition to completion of the Dearborn Discovery Core, the following courses are required to earn a BS degree in Software Engineering from UM-Dearborn.
Code | Title | Credit Hours |
---|---|---|
Prerequisite Courses | ||
COMP 105 | Writing & Rhetoric I | 3 |
COMP 270 | Tech Writing for Engineers (Also fulfills 3 credits of DDC Written and Oral Communication) | 3 |
ECON 201 | Prin: Macroeconomics (Also fulfills 3 credits of DDC Social and Behavioral Analysis) | 3 |
MATH 115 | Calculus I | 4 |
MATH 116 | Calculus II | 4 |
MATH 227 | Introduction to Linear Algebra | 3 |
CIS 150 | Computer Science I | 4 |
CIS 200 | Computer Science II | 4 |
CIS 275 | Discrete Structures I | 4 |
CIS 306 | Discrete Structures II | 4 |
IMSE 317 | Eng Probability and Statistics | 3 |
Select one laboratory science sequence from the following: | 8 | |
Intro Org and Environ Biology and Field Biology | ||
General Chemistry IA and General Chemistry IIA | ||
Physical Geology and Historical Geology | ||
Introductory Physics I and Introductory Physics II | ||
General Physics I and General Physics II | ||
Additional 4 credit science. Course must be from a different subject than the two course sequence. | ||
Introduction to Astronomy and Introductory Astronomy Lab | ||
Intro Org and Environ Biology | ||
Field Biology | ||
General Chemistry IA | ||
General Chemistry IIA | ||
Organic Chemistry I | ||
Organic Chemistry II | ||
Organic Chemistry Laboratory | ||
Physical Geology | ||
Historical Geology | ||
Introductory Physics I | ||
Introductory Physics II | ||
General Physics I | ||
General Physics II | ||
Software Engineering Major Requirements | ||
CIS 285 | Software Engineering Tools | 3 |
CIS 310 | Computer Org and Assembly Lang | 4 |
CIS 3501 | Data Struc & Alg Anlys for SE | 4 |
CIS 375 | Software Engineering I | 4 |
CIS 376 | Software Engineering II | 4 |
CIS 427 | Comp Networks and Dis Process | 4 |
CIS 450 | Operating Systems | 4 |
CIS 476 | Soft Arch & Design Patterns | 3 |
CIS 4961 | Design Seminar for SE I | 2 |
CIS 4962 | Design Seminar for SE II | 2 |
OB 354 | Behavior in Organizations | 3 |
Application Sequence 1 | ||
Choose from one of the following: | 7-9 | |
Information Systems Sequence | ||
CIS 425 | Information Systems | 4 |
CIS 447 | Intro Computr & Ntwrk Security | 3 |
Computer Game Design Sequence | ||
CIS 297 | Intro to C Sharp 2 | 3 |
CIS 487 | Computer Game Design & Implem | 3 |
CIS 488 | Computer Game Design II | 3 |
Web Engineering Sequence | ||
CIS 421 | Database Mgmt Systems | 4 |
Take one of the following two courses: | 3 | |
Web Technology | ||
Mobile App Des & Impl | ||
Artificial Intelligence Sequence | ||
CIS 411 | Introduction to Natural Language Processing | 3 |
CIS 479 | Intro to Artificial Intel | 3 |
CIS 481 | Computational Learning | 3 |
Technical Electives 1 | ||
Select 5-7 additional credits from the following. Only one course from CIS 296, CIS 297 or CIS 298 may be used towards the 120 credits of the degree: | 5-7 | |
Java Programming | ||
Intro to C Sharp | ||
Intro to Python | ||
Prac. Comp. Sec. | ||
Industrial Robots | ||
Introduction to Digital Forensics | ||
Programming Languages | ||
Algorithm Analysis & Design | ||
Introduction to Natural Language Processing | ||
Introduction to Quantum Computing | ||
Database Mgmt Systems 4 | ||
or CIS 422 | Massive Data Management | |
Dec Support and Exp Systems | ||
Information Systems | ||
Web Technology | ||
Mobile App Des & Impl | ||
Advanced Networking | ||
Text Mining and Information Retrieval | ||
Wireless & Mobi Comp Security | ||
Intro Computr & Ntwrk Security | ||
Intro to Software Security | ||
Computer Graphics | ||
Information Visualization and Virtualization | ||
Network and Mobile Forensics | ||
Compiler Design | ||
Intro to Artificial Intel | ||
Computational Learning | ||
Trustworthy Artificial Intelligence | ||
Deep Learning | ||
Computer Game Design & Implem | ||
Computer Game Design II | ||
Edge Computing | ||
Data Security and Privacy | ||
Intro to Microprocessors | ||
Embedded System Design | ||
Design Thinking : Process, Method & Practice | ||
or ENGR 400 | Appl Business Tech for Engr | |
or ENT 400 | Entrepreneurial Thinking&Behav | |
Experiential Honors Prof. Prac | ||
Exper Honors Directed Research | ||
Exper Hnrs Dir Dsgn | ||
General Electives | ||
Any 100 to 400 level course, as needed, to get a minimum of 120 credits for graduation. 3 |
- 1
The Application Area and Technical Electives must total 14 hrs. Any courses taken in the Application Area cannot also be used for Technical Electives credit.
- 2
CIS 296 or CIS 298 cannot count as Technical Electives since CIS 297 is required of the Game Design Sequence
- 3
Any for-credit courses; that is, courses not on the No Credit list, which is found at the end of the CECS Student Handbook.
- 4
Only one course from CIS 421 or CIS 422 may be used towards the 120 credits of the degree.
Learning Goals
- An ability to apply knowledge of mathematics, science, and engineering.
- An ability to design and conduct experiments, as well as to analyze and interpret data.
- An ability to design a system, component, or process to meet desired needs within realistic constraints, such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability.
- An ability function on multidisciplinary teams.
- An ability to identify, formulate, and solve engineering problems.
- An understanding of professional and ethical responsibility.
- An ability to communicate effectively.
- The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context.
- A recognition of the need for, and an ability to engage in, life-long learning.
- A knowledge of contemporary issues.
- An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
- An ability to program.
- An ability to manage a project.