• MENU
White Background with Triangle Pattern


Software developers advance their technical role by moving into design and architecture. This enables them to take on more responsibility, add new value, and find new ways to express their own creativity on the job. This course will help you take your next professional steps!


In this course, you’ll learn about the architecture, design issues and tradeoffs of complete commercial systems. Topics include building on components, make/buy decisions, quality attribute optimization, architectural principles and alternative styles, high-level design documentation, and modeling practices in human interface design.

Student sitting in the Moench Hall commons working on his laptop computer.

In this course, you’ll learn to...

  • describe principles of building significant systems for different purposes.
  • determine how to improve the desired qualities of existing systems.
  • explore well-known architectural patterns, their benefits and trade-offs.
  • create systems exhibiting the desired levels of quality attributes like availability and performance.
  • begin systems that will have pervasive, long-term, desirable capabilities.
  • investigate the art of building frameworks that are most useful to everyone else on a project—like developers and testers.
  • understand how to make agile architectures, and let the design play an enabling role in a long-term, agile development process.
  • understand how to coordinate the design work done by multiple organizations. This includes sourcing decisions, and getting the flow of required communication/documentation just right.
Engineers Without Borders student working in a campus computer lab.

Who Should Participate?

Students should have software development and/or maintenance experience and the ability write and communicate effectively. Software Architecture is designed to be valuable to individuals and organizations because it provides the concepts, techniques and practical application to enable immediate contributions in the workplace.

Participants are usually interested in becoming software architects or higher-level designers who will take direct advantage of the knowledge gained.

Student working on a laptop in a computer lab.

What You’ll Gain

  • Participants who successfully complete all course requirements receive a Certificate of Completion and one of the following: 4 hours of Graduate Credit or 3.5 CEUs.
  • You will position yourself as a software technical leader within your organization, someone versed in fundamental and current design principles.
  • You will gain key insights from leading faculty who will impact how you and your organization approach software design to make projects durable, feature-rich, and high quality.
  • And you will gain the ability to engage confidently with your organization’s management, learn to identify product design opportunities, and navigate challenges.

This course is structured in such a way that you gain an overall understanding of software architecture, while you are working on a related "inquiry" project at the same time.

- Steve Chenoweth

Associate Professor of Computer Science and Software Engineering

Careers in Computer Science/Software Engineering

Our classes will prepare you for multiple careers in a rapidly changing environment. We emphasize fundamental concepts and techniques that will last longer than present technology.

To learn more about career possibilities for computer science and software engineering majors, check out our Careers Page.

Student working on laptop computer with another laptop open in the foreground.

Software Developer

Software Developers are the creative minds behind computer programs. Some develop the applications that allow people to do specific tasks on a computer or another device. Others develop the underlying systems that run the devices or control networks. Many software developers work for firms that deal in computer systems design and related services, or for software publishers. Software developers usually have a bachelor’s degree in computer science and strong computer programming skills. The median annual wage for software developers was $100,690 in May 2015. – U.S. Bureau of Labor Statistics

Students involved in Engineers Without Borders organization working together on a group project.

Computer Network Architects

Computer network architects design and build data communication networks, including local area networks (LANs), wide area networks (WANs), and intranets. These networks range from small connections between two offices to next-generation networking capabilities such as a cloud infrastructure that serves multiple customers. Employment of computer network architects is projected to grow 9 percent from 2014 to 2024, faster than the average for all occupations. The median annual wage for computer network architects was $100,240 in May 2015. – U.S. Bureau of Labor Statistics

Student smiling while working at a laptop computer that is covered in colorful stickers.

Information Security Analyst

Information security analysts plan and carry out security measures to protect an organization’s computer networks and systems. Their responsibilities are continually expanding as the number of cyberattacks increases. Most information security analysts work for computer companies, consulting firms, or business and financial companies. The median annual wage for information security analysts was $90,120 in May 2015. – U.S. Bureau of Labor Statistics

Headshot of JP Mellor.

J.P. Mellor

Dr. Mellor, department head of Computer Science & Software Engineering, earned his Bachelor of Science degree from the United States Naval Academy in 1987 followed by a Bachelor of Science degree in Nuclear Technology of the University of the State of New York in 1990. He earned his SM in Electrical Engineering and Computer Science from MIT in 1995, and then his Ph.D. from the same institution in 2000.

Rose Hulman Campus Map.

Contact Us

Department of Computer Science & Software Engineering
5500 Wabash Avenue
Terre Haute, IN 47803

Return to Top