• Course Introduction

        • Time: 41 hours
        • Free Certificate
        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. 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, mostly because real-world software is much larger and more complex.

        The purpose of this course is to present software engineering as a body of knowledge. The course is designed to present software engineering concepts and principles in parallel with the software development life cycle. The course will begin with an introduction to software engineering, giving you a definition of this body of knowledge, as well as a discussion of the main methodologies of software engineering. You will then learn about the Software Development Life Cycle (SDLC), major methodologies followed by software modeling using Unified Modeling Language (UML), a standardized general-purpose modeling language used to create visual models of object-oriented software.

        You will go on to learn about major phases of the SDLC: analysis, design, coding/implementation, and testing. You will also learn about project management for the purpose of delivering high-quality software that satisfies customer needs and is within budget. By the time the course is complete, you will master software engineering concepts, principles, and essential processes of the SDLC. You will demonstrate this knowledge by creating artifacts for requirements gathering, analysis, and design phases using UML.

        First, read the course syllabus. Then, enroll in the course by clicking "Enroll me in this course". Click Unit 1 to read its introduction and learning outcomes. You will then see the learning materials and instructions on how to use them.

      • Unit 1: Introduction to Software Engineering

        When dependency on software and computers became more important, software grew in size and became a necessity for businesses and users all over the world. In the last 30 years, we have seen an unparalleled explosion in the amount of software produced and used by our modern society. There is now a need to set concrete objectives (or functional requirements), predict necessary resources (like cost estimates) to attain those objectives, and manage customers' expectations. As you review the material in this unit, compare and contrast software engineering with computer science. These two disciplines are closely related, but they have some differences. As you work through this unit, spend some time reviewing the software characteristics and the code of ethics used in the professional practice of software engineering.

        Completing this unit should take you approximately 3 hours.