Difference Between
Computer Science
and
Software Engineering
Computer Science is concerned with
Theory and Fundamentals.
Software Engineering is concerned with USING the concepts of CS to implement solutions to real world problems.
What is
Software?
An executable Computer Program
AND
The associated Documentation that describes operation and use of the program
What is
Software Engineering?
The application of specific
Theories, Methods and Tools
for the development of high quality software
“Layers”
of
Software Engineering
ACM/IEEE-CS
8 Ethical Principles of Software Engineers:
Who/What to Respect
(Corresponding to each rule)
Attributes of
Good Software
Fundamental Ideas
of Software Engineering (4)
Process
Dependability
Requirements
Reuse
Fundamental Ideas
of Software Engineering:
Process
Process
Use a managed and understood development process
Fundamental Ideas
of Software Engineering:
Dependability
Dependability
Software should behave as expected,
be safe, secure, efficient and rarely fail
Fundamental Ideas
of Software Engineering:
Requirements
Requirements
Software should meet the requirements/specifications it is designed for.
(Unreasonable requirements should be a no-go)
Fundamental Ideas
of Software Engineering:
Reuse
Reuse
Software should make effective use of existing resources and reuse existing software when possible
Essential Steps of
Software Engineering Practice
Understand the Problem
Plan a Solution
Carry Out the Plan
Examine Results for Accuracy
Types of Applications (8)
Two kinds of Software Products
Generic
Designed for general use, sold on the open market
Custom (bespoke)
Systems/software developed for a particular client, or in-house use