Nov 21, 2024  
2013-14 Undergraduate Academic Catalog 
    
2013-14 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Software Engineering, B.S.


Program Director:

Dr. Christopher Taylor
Office: L-343
Phone: (414) 277-7339
Fax: (414) 277-7465
Email: taylor@msoe.edu

Software engineering applies engineering concepts, techniques and methods to the development of software systems. A software engineering program develops engineering professionals with a mastery of software development theory, practice and process.

Software engineering is based on computer science in the same way other engineering disciplines are based on physical or life sciences. However, it adds an emphasis on issues of process, design, measurement, analysis and verification, providing a strong foundation in engineering principles and practice as applied to software development.

Software engineering students gain knowledge and skill in all aspects of the software development life cycle, including requirements elicitation and analysis, software architecture, design, construction and verification. They learn to work within and to continuously improve a defined software development process, with the aim of producing high-quality software predictably and efficiently. To provide a basis for this software engineering practice and process, students are grounded in the fundamentals of computer science, including discrete mathematics, data structures, algorithms, computer organization and operating systems.

Program Educational Objectives

The software engineering program is preparing graduates, within a few years of
graduation, to:

  • Contribute as a software engineering professional.
    • Apply knowledge of software engineering practice and process.
    • Work within a broader institutional and societal context.
  • Exercise technical and professional leadership.
    • Innovate and improve technologies and processes.
    • Progress in responsibility.
    • Integrate ethical and professional concerns.
  • Develop professionally.
    • Continue to learn.
    • Adapt to changing solution approaches, technologies, and processes.
  • Collaborate effectively.
    • Demonstrate personal accountability.
    • Communicate to a variety of audiences.
    • Display interpersonal skills.
    • Cooperate in and facilitate team work.

Student Outcomes

Upon successful completion of the software engineering program, graduates will
have:

  • an ability to apply knowledge of mathematics, science, and engineering.
    An ability to apply continuous and discrete mathematics, probability and statistics, computer science, software engineering practices and processes.
  • an ability to design and conduct experiments, as well as to analyze and interpret data.
    An ability to evaluate the performance of software systems, and to propose and evaluate process changes based on individual and team metrics.
  • 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 to perform detailed and architectural design of software components and systems while satisfying functional and non-functional requirements.
  • an ability to function on multidisciplinary teams.
  • an ability to identify, formulate, and solve engineering problems.
    An ability to elicit and document software requirements, and to propose and evaluate designs and processes to meet them.
  • an understanding of professional and ethical responsibility.
    An understanding of the critical role played by software systems, the professional responsibilities of software engineers, and ethical issues that may be encountered in engineering practice.
  • 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 awareness of trends in the software engineering discipline and of societal issues that affect software engineering practice.
  • an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
    An ability to use modern software engineering tools, programming languages and environments, project planning and tracking systems, specification and verification techniques.

Curriculum

MSOE prides itself on uniting theory with industry practice in both classroom and laboratory activities. Software practice and process are emphasized throughout the curriculum. The software development laboratory provides experience in various roles, working on large-scale projects using software engineering tools and techniques. In the senior design sequence, software engineering students work in teams to complete a major project, in some cases collaborating with students in other disciplines. Often project ideas originate in industry, where many students work as interns.

Software is a critical component of many different types of products and systems, in fields such as consumer electronics, transportation, health care, communications, finance, manufacturing, entertainment, government and education. Computer networks and mobile computing devices play a major role, and these technologies are incorporated throughout the software engineering curriculum. Since many software engineers work with computers that play a critical role in products such as avionics, medical devices and industrial controls, the software engineering program also includes courses that prepare graduates to develop these “real time” computing systems.

Because software development requires collaboration, communication skills and teamwork are critically important. Course work and projects provide many opportunities to develop proficiency in writing, oral presentation, collaboration and project management.

Elective courses offer software engineering students the opportunity to pursue study in areas such as:

  • Distributed, web, cloud, and mobile applications
  • Network and information security
  • Computer game development and artificial intelligence
  • Human-computer interaction and user interface technologies
  • Graphics and image processing

View Annual Student Enrollment and Graduation Data

Software Engineering Model Full-time Track - V3.1


Year One


Total: 15 lecture hours - 4 lab hours - 17 credits

Total: 13 lecture hours - 4 lab hours - 15 credits

Total: 15 lecture hours - 7 lab hours - 18 credits

Year Two


Year Three


Total: 14 lecture hours - 4 lab hours - 16 credits

Total: 12 lecture hours - 6 lab hours - 15 credits

Spring


Total: 14 lecture hours - 9 lab hours - 18 credits

Year Four


Total: 13 lecture hours - 6 lab hours - 16 credits

Winter


Total: 14 lecture hours - 2 lab hours - 15 credits

Spring


Total: 14 lecture hours - 2 lab hours - 15 credits

Note:


 1 There are 36 credits of elective subjects in the software engineering program that must be taken as follows:

  • 15 credits of humanities and social sciences: 6 credits of humanities (HU), 6 credits of social sciences (SS), and 3 credits of humanities or social sciences
  • 12 credits of approved program electives
  • 3 credits of an approved business elective
  • 3 credits of an approved math/science elective
  • 3 credits of an upper-division course from any area

Engineering technology courses may not be used to satisfy requirements of the software engineering curriculum.

Transfer students who have completed 36 quarter or 24 semester credits or more are expected to complete OR 301  Transfer Student Orientation or OR 307S  Transfer Orientation Seminar.

Students in Air Force ROTC may make the following substitutions in the software engineering program: AF 3131  for the business elective and AF 4142  for SS 455  (a social science elective).

Accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org.