• 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 worldwide. 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 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 and information technology, and contrast them with STEM, an educational model and program that combines the closely related fields of science, technology, and mathematics. These disciplines are closely related and have some differences when applied to software. 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.

    • 1.1: An Overview of Software Engineering

      If we look over the university departments and programs, we find disciplines generally categorized as science, engineering, business/management, or humanities. If software engineering is offered, it might be in electrical engineering, systems engineering, computer science, management, or professional development and extended learning programs. If it is not offered as a coherent course, its topics might be found in various courses, such as information systems, software development, information technology, mathematics, and more. The boundaries between software engineering and other disciplines are not distinct, and the topics of one discipline may intersect with those of another.

    • 1.2: What Is Software Engineering?

    • 1.3: Software Applications

    • 1.4: Software Quality

      Software engineers work with project team members with related or support roles, such as configuration management, software quality, and software measurement. Organizations and projects have policies, processes, procedures, practices, and tools, which we will collectively call "models", to apply their discipline support to software development and operation. The next sections discuss software quality. However, suppose the diverse roles and activities for software engineering have different models. How can we be assured that they will be consistent and compatible when used together on the same project? Consistency and compatibility of the models is the responsibility of the organization responsible for all projects, and system engineering is responsible for their integration on a project. Moreover, adherence to national and international standards and best practices for common models and tailoring of models contributes to consistency and compatibility.

    • 1.5: Software Engineering Code of Ethics and Professional Practices

    • Unit 1 Assessment

      • Receive a grade