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

  1. Our graduates will be qualified for employment 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.
  2. Our graduates will be qualified to lead and participate in culturally diverse and inclusive teams, becoming global and ethical collaborators.
  3. Our graduates will be qualified to participate in continuing 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:

  1. Identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
  2. 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.
  3. Communicate effectively with a range of audiences.
  4. 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.
  5. Function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
  6. Develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
  7. Acquire and apply new knowledge as needed, using appropriate learning strategies.

Dearborn Discovery Core

Please see the Dearborn Discovery Core (General Education) webpage or additional information.

Foundational Studies

Writing and Communication (GEWO) – 6 Credits

Upper-Level Writing Intensive (GEWI) – 3 Credits

Quantitative Thinking and Problem Solving (GEQT) – 3 Credits

Critical and Creative Thinking (GECC) – 3 Credits

Areas of Inquiry

Natural Science (GENS) – 7 Credits

  • Lecture/Lab Science Course
  • Additional Science Course

Social and Behavioral Analysis (GESB) – 9 Credits

Humanities and the Arts (GEHA) – 6 Credits

Intersections (GEIN) – 6 Credits

Capstone

Capstone (GECE) – 3 Credits

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.

Prerequisite Courses
COMP 105Writing & Rhetoric I3
COMP 270Tech Writing for Engineers (Also fulfills 3 credits of DDC Written and Oral Communication)3
ECON 201Prin: Macroeconomics (Also fulfills 3 credits of DDC Social and Behavioral Analysis)3
MATH 115Calculus I4
MATH 116Calculus II4
MATH 227Introduction to Linear Algebra3
CIS 150Computer Science I4
CIS 200Computer Science II4
CIS 275Discrete Structures I4
CIS 306Discrete Structures II4
IMSE 317Eng Probability and Statistics3
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 285Software Engineering Tools3
CIS 310Computer Org and Assembly Lang4
CIS 3501Data Struc & Alg Anlys for SE4
CIS 375Software Engineering I4
CIS 376Software Engineering II4
CIS 427Comp Networks and Dis Process4
CIS 450Operating Systems4
CIS 476Soft Arch & Design Patterns3
CIS 4961Design Seminar for SE I2
CIS 4962Design Seminar for SE II2
OB 354Behavior in Organizations3
Application Sequence 1
Choose from one of the following:7-9
Information Systems Sequence
CIS 425Information Systems4
CIS 447Intro Computr & Ntwrk Security3
Computer Game Design Sequence
CIS 297Intro to C Sharp 23
CIS 487Computer Game Design & Implem3
CIS 488Computer Game Design II3
Web Engineering Sequence
CIS 421Database Mgmt Systems4
Take one of the following two courses:3
Web Technology
Mobile App Des & Impl
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
Digital Forensics I
Programming Languages
Algorithm Analysis & Design
Introduction to Natural Language Processing
Database Mgmt Systems
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
Digital Forensics II
Compiler Design
Intro to Artificial Intel
Computer Game Design & Implem
Computer Game Design II
Data Security and Privacy
Advanced Topic: Edge Computing
Advanced Topic: Deep Learning
Intro to Microprocessors
Embedded System Design
Design Thinking : Process, Method & Practice
Experiential Honors Prof. Prac
Appl Business Tech for Engr
Exper Honors Directed Research
Exper Hnrs Dir Dsgn
Entrepreneurial Thinking&Behav
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.

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.