Software Engineering (saylor.org)

Offered by Saylor.org,
Software Engineering (saylor.org)

Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software.

The concept of software engineering was first discussed at the 1968 NATO Science Committee in Germany. Today, many practitioners still debate over the term software engineering, often arguing that this discipline does not meet the criteria of engineering; rather, it should be called software development. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development outside of the classroom is a very complex process notably from the fact that real-world software is much larger and more complex.

Upon successful completion of this course, the student will be able to:

Demonstrate mastery of software engineering knowledge and skills, and professional issues necessary to practice software engineering.
Discuss principles of software engineering.
Describe software development life cycle models.
Learn principles of software modeling through UML as a modeling language.
Identify major activities and key deliverables in a software development life cycle during software requirements and analysis, software design, and software testing.
Apply the object-oriented methodology in software engineering to create UML artifacts for software analysis and requirements, software design, and software testing.
Apply project management concepts in a software engineering environment to manage project, people, and product.
Participate as an individual and as part of a team to deliver quality software systems.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Computer Science II (saylor.org) Saylor Academy
Saylor.org

Introduction to Computer Science II (saylor.org)

This course is a continuation of the first-semester course titled CS101: Introduction to Computer Science I. It will introduce you to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. We will begin with a comparison between Java—the programming language utilized last semester—and C++, another popular, industry-standard programming language.

Self Paced
Self-Paced
Introducción a la Ingeniería del Software (edX) EdX
Universidad Autonoma de Madrid,UAMx

Introducción a la Ingeniería del Software (edX)

Conoce las distintas fases de desarrollo por las que pasa un proyecto informático, así como las actividades de gestión necesarias para lograr finalizar el proyecto con éxito. ¿Alguna vez te has preguntado qué es y para qué sirve la Ingeniería de Software? ¿Quieres saber por qué es tan necesaria esta disciplina y por qué se utiliza tanto en entornos tecnológicos? ¿O cuál es el motivo de que muchos proyectos informáticos no finalizan en tiempo y coste o con la calidad deseada?

Self Paced
Self-Paced
Introduction to Java Programming: Writing Good Code (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Writing Good Code (edX)

Learn to program in an easy and interactive way and enter the fascinating world of computer science. This is an introductory course to learn programming with Java designed to teach how to code good programs in Java, understanding “good” as both correct and efficient. Basic principles of software engineering will be introduced to make it easier for our future self and others to reuse code. Ethical issues and the intellectual property of our programs will also be addressed in the last part of this course. Examples and case studies will be provided, so that learners can implement simple but increasingly complex programs in Java.

Self Paced
Self-Paced
Visual Basic Programming: Classes and Collections (Coursera) Coursera
LearnQuest

Visual Basic Programming: Classes and Collections (Coursera)

This course is the third course in a series that aims to prepare you for a role working as a programmer. In this course, you will be introduced to the four main concepts in programming: Advanced String Operations and Dates, Modeling Classes, Development of Classes and Collections. Labs will allow the students to apply the material in the lectures in simple computer programs designed to re-enforce the material in the lesson.

Sep 21st 2026
4 Weeks
Software Architecture (Coursera) Coursera
University of Alberta

Software Architecture (Coursera)

The way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved. We'll also talk about how the architecture touches on the process of software development.

Sep 21st 2026
4 Weeks
Software Design Methods and Tools (Coursera) Coursera
University of Colorado System

Software Design Methods and Tools (Coursera)

Since many software developers are compulsive coders, they have created software over the years to help them do their job. There are tools which make design and its associated tasks easier. The course introduces some basic tools and techniques to help you with design. Tools aren’t always tangible, however. The last two lessons of this course discuss questions of Ethics in software development. The purpose here is, as with tools, to equip you to better carry our your responsibilities as a designer. Students will be required to have a prior knowledge of writing and delivering software and some programming knowledge in java.

Sep 28th 2026
5-12 Weeks
Software Engineering: Introduction (edX) EdX
The University of British Columbia,UBCx

Software Engineering: Introduction (edX)

Learn how to apply engineering principles, such as Agile, to build a full-stack software system. You will learn software engineering principles that are applicable to the breadth of large-scale software systems. The course explores topics such as agile development, REST and Async programming, software specification, design, refactoring, information security, and more.

Self Paced
Self-Paced
Inspiring Peak Performance on Technical Teams (Coursera) Coursera
Advancing Women in Tech

Inspiring Peak Performance on Technical Teams (Coursera)

In the previous course, Leadership Principles for Software Engineers, you learned about how to hire your team and set its goals. Now, learn how to lead each individual team member, increasing their personal best performance, and your team's overall performance, day after day. NANCY WANG, Director of Engineering and General Manager of AWS Data Protection Services and Founder, Advancing Women in Tech (AWIT), shares with you the engineering management skills cultivated at AMAZON (the #2-ranked company in the Fortune 500), with supplemental practices from GOOGLE and MICROSOFT. Develop the skills and mental models that the world's best engineering managers apply to turn their new hires into world-class engineers.

Sep 28th 2026
3 Weeks
Fundamentals of Software Architecture for Big Data (Coursera) Coursera
University of Colorado Boulder

Fundamentals of Software Architecture for Big Data (Coursera)

The course is intended for individuals looking to understand the basics of software engineering as they relate to building large software systems that leverage big data. You will be introduced to software engineering concepts necessary to build and scale large, data intensive, distributed systems. Starting with software engineering best practices and loosely coupled, highly cohesive data microservices, the course takes you through the evolution of a distributed system over time.

Sep 28th 2026
4 Weeks
Open Source Programming - Bachelor's (Coursera) Coursera
Illinois Tech

Open Source Programming - Bachelor's (Coursera)

Contemporary open-source programming languages and frameworks are presented in this course. Students will consider design and development topics in system, graphical user interface, network, and web programming. Dynamic scripting languages are covered using object-oriented, concurrent, and functional programming paradigms. Concepts gained throughout the course are reinforced with numerous exercises which will culminate in an open-source programming project.

Sep 28th 2026
5-12 Weeks