What is Software Engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. This module provides an overview of the importance of software engineering, its evolution with time, and the difference between the exploratory program development approach and the software engineering approach.
When do we consider software application
successful?
The Nature of Software
SW vs. HW
What is Software crisis
Software products:
* Fail to meet user requirements.
* Frequently crash.
* Expensive.
* Difficult to alter, debug, and enhance.
* Often delivered late.
* Use resources non-optimally
Factors
Contributing to
the Software
Crisis
Software requirements do not adequately describe user needs
or customer expectations.
Lack of adequate training in software engineering.
Project planning is frequently unrealistic, incomplete, or
ignored.
Project cost and schedule estimates are underestimated.
Software is intangible
Increasing skill shortage
Standards are not used or documented.
Neglecting the initial phases in the software engineering process
often leads to costly consequences as
Types of Software
System software
Ex: Operating systems, drivers
Application software
Web browsers, Media players,
payroll software,
Embedded software
Home appliances, smartphones,
Flight control systems
Essential Skills for Software Engineers
Who are Stakeholders in Software
Engineering?
What are Software Qualities?
What is Wrong with the Exploratory Style? Cont…
Exploratory software development style vs. modern
software engineering practice
Emergence of Software Engineering
Emergence of Software Engineering
Emergence of Software Engineering
Emergence of Software Engineering
8 Key Principles
* Software Engineering Code of Ethics and Professional Practice