Welcome to CS302: Software Engineering

Specific information about this course and its requirements can be found below. For more general information about taking Saylor Academy courses, including information about Community and Academic Codes of Conduct, please read the Student Handbook.

Course Description

Learn how to apply an engineering approach to computer software development by focusing on software principles, lifecycle models, requirements and specifications, architecture and conceptual model design, detailed design, implementation, validation and verification, quality assurance, configuration control, project management, tools, and environments.

Course Introduction

Software engineering is a discipline that allows us to apply engineering and computer science concepts in developing and maintaining reliable, usable, and dependable software. The software engineering concept was discussed at Germany's 1968 NATO Science Committee meeting. In 1984, Carnegie Mellon University won a contract to establish a government research and development center to transition processes, methods, tools, and frameworks to address the challenges of software cost and quality in meeting customer needs. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development outside the classroom is complex because real-world software is much larger, widely distributed worldwide, and faces cybersecurity threats.

This course aims to present software engineering as a body of knowledge. The course presents software engineering concepts and principles parallel to the software development life cycle. The course will begin by introducing software engineering, defining this body of knowledge, and discussing the main methodologies of software engineering. You will then learn about the Software Development Life Cycle (SDLC) framework and its major methodologies, followed by software modeling using the Unified Modeling Language (UML), a standardized general-purpose modeling language used to create visual models of object-oriented software. You will learn about the SDLC's major phases: analysis, design, coding/implementation, and testing. You will also learn about project management to deliver high-quality software that satisfies customer needs and stays within budget. By completing the course, you will master software engineering concepts, principles, and essential processes of the SDLC. Using UML, you will demonstrate this knowledge by creating artifacts for requirements gathering, analysis, and design phases.

Software Engineering is a highly process-oriented discipline, including many technical and management activities performed by computer hardware, software, or people. In general, a process is a description of the tasks to be performed to complete an activity. Suppose a process needs more detail for hardware, software, or humans to perform the activity (the process is not enactable). In that case, it must have an associated procedure that describes "how" the tasks are enacted. In general, a procedure describes "how" a process is enacted. Processes and procedures also specify "who" enacts them (the roles) and provide context information, such as "why", "when", and "where" the activities are performed. Lastly, this course uses several important paradigms. A paradigm is a perspective, pattern, or model that helps describe a discipline. Two important paradigms for this course are "life cycle", used to describe the development of a system, and "language", used to explain processes and procedures. We communicate via a language that has nouns and verbs. Nouns represent roles ("who" and "what") and places ("where"); verbs represent activities, processes, and procedures. To learn the language, we need to learn its terms, the relationships of the terms, and its grammar. The language paradigm is used in explaining object-oriented design, modeling languages, and teaching programming languages.

This course includes the following units:

  • Unit 1: Introduction to Software Engineering
  • Unit 2: The Software Development Life Cycle
  • Unit 3: Software Modeling
  • Unit 4: Software Requirements Gathering
  • Unit 5: Software Requirements Analysis
  • Unit 6: Software Design
  • Unit 7: Object-Oriented Implementations
  • Unit 8: Software Testing
  • Unit 9: Project Management
  • Unit 10: Design Modification and Quality Control

Course Learning Outcomes

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

  • Describe the knowledge and skills necessary to practice software engineering and the professional issues that a software engineer might face;
  • Use software engineering principles such as separation of concerns, abstraction, and incremental development to develop reliable software;
  • Differentiate between software development processes and methods;
  • Create major activities and key deliverables in a software development life cycle, such as use case, class, and sequence diagrams;
  • Create UML diagrams for software analysis and design by using the object-oriented methodology;
  • Use project management concepts to manage projects, people, and products; and
  • Use software engineering concepts to construct quality software systems.

Throughout this course, you will also see learning outcomes in each unit. You can use those learning outcomes to help organize your studies and gauge your progress.

Course Materials

This course's primary learning materials are articles, lectures, and videos.

All course materials are free to access and can be found in each unit of the course. Pay close attention to the notes that accompany these course materials, as they will tell you what to focus on in each resource and will help you understand how the learning materials fit into the course as a whole. You can also see a list of all the learning materials in this course at this link.

Some parts of this course may have been created or reviewed with the support of artificial intelligence (AI). To make sure you receive accurate, high-quality, and academically sound learning materials, all AI-assisted content is carefully checked and approved by Saylor Academy's faculty and subject matter experts.

Evaluation and Minimum Passing Score

Only the final exams are considered when awarding you a grade for this course. To pass this course, you will need to earn a grade of 70% or higher on either the Certificate Final Exam or the Saylor Direct Credit Final Exam.

Your score on each exam will be calculated as soon as you complete it. There is a 7-day waiting period between each attempt of the Certificate Final Exam, and a 14-day waiting period between each attempt of the Saylor Direct Credit Final Exam. Be sure to study between each attempt!

If you wish to receive an ACE transcript to earn transfer credit toward degree programs at our Degree Completion Partners, you may choose to take the optional Saylor Direct Credit Final Exam. This exam will be password-protected and requires a proctor. The proctoring fee is $5. You may only attempt the Saylor Direct Credit Final Exam a maximum of three times. If you do not pass the exam after three attempts, you will not be able to receive an ACE transcript.

There are end-of-unit assessments in this course that are designed to help you study and do not factor into your final course grade. You can take them as many times as you want until you understand the concepts they cover.

You can see all of these assessments at this link.

Earning College Credit

This course is eligible for college credit via Saylor Academy's Direct Credit Program. If you are seeking to earn college credit, you must take and pass the Saylor Direct Credit Final Exam. That exam will be password protected and require the presence of a proctor. Upon passing the Saylor Direct Credit Final Exam, you will receive a Proctor-Verified Course Certificate, and will be eligible to earn an Official Transcript. For more information about applying for college credit, review the Guide to College Credit Opportunities. Be sure to check the section on proctoring for details on fees and other technical requirements.

Note: There is a 14-day waiting period between attempts of the Saylor Direct Credit Final Exam. There is no imposed wait period between attempting the certificate-bearing final exam and the Saylor Direct Credit Final Exam. Some Saylor Direct Credit Final Exams have a maximum number of attempts allowed, which will be detailed on the exam's instructions page.

Continuing Education Credits

The certificate earned by passing this self-paced course displays the program hours you completed and continuing education credits (CEUs). CEUs document successful completion of courses that are designed to improve the knowledge and skills of working adults. Many industries value CEUs, and now your certificate reflects them clearly, and they may be used to support career advancement or to meet professional licensing standards. This course contains 3.6 CEUs.

Tips for Success

CS302: Software Engineering is a self-paced course, meaning you can decide when to start and complete the course. We estimate the "average" student will take hours to complete. We recommend studying at a comfortable pace and scheduling your study time in advance.

Learning new material can be challenging, so here are a few study strategies to help you succeed:

  • Take notes on terms, practices, and theories. This helps you understand each concept in context and provides a refresher for later study.
  • Test yourself on what you remember and how well you understand the concepts. Reflecting on what you've learned improves long-term memory retention.

Technical Requirements

This course is delivered entirely online. You will need access to a computer or web-capable mobile device and consistent internet access to view or download resources and complete auto-graded assessments and the final exam.

To access the full course, including assessments and the final exam, log into your Saylor Academy account and enroll in the course. If you don't have an account, you can create one for free here. Note that tracking progress and taking assessments require you to log in.

For more details and guidance, please review our complete Technical Requirements and our student Help Center.


Optional Saylor Academy Mobile App

You can access all course features directly from your mobile browser, but if you have limited internet connectivity, the Saylor Academy mobile app provides an option to download course content for offline use. The app is available for iOS and Android devices.

Fees

This course is entirely free to enroll in and access. All course materials, including textbooks, videos, webpages, and activities, are available at no charge. This course also contains a free final exam and a free course completion certificate.

The Saylor Direct Credit Final Exam requires a proctoring service for identity verification. The cost of proctoring this optional exam is $5 per session.

American Council on Education (ACE)® Learning Evaluations

This course is available for transfer credit through the American Council on Education (ACE)®. For more information on taking this course for credit, please visit our ACE® web page.

Last modified: Friday, October 3, 2025, 1:55 PM