Professional Documents
Culture Documents
Chapter 1 - Introduction To Software Engineering
Chapter 1 - Introduction To Software Engineering
Chapter 1 - Introduction To Software Engineering
Software Engineering
Topic Outline
• FAQs about Software Engineering.
• Professional and ethical responsibility
Objectives
• To introduce software engineering and to explain
its importance.
• To set out the answers to key questions about
software engineering.
• To introduce ethical and professional issues and
to explain why they are of concern to software
engineers.
What is Software?
• Computer programs and associated documentation
• Software products may be developed for a particular
customer or may be developed for a general market
• Software products may be
- Generic - developed to be sold to a range of different
customers
- Bespoke (custom) - developed for a single customer
according to their specification
What is Software Engineering?
• Software engineering is an engineering
discipline which is concerned with all aspects
of software production.
• “The application of a systematic, disciplines,
quantifiable approach to the development,
operation, and maintenance of software; that
is the application of engineering to software.”
(IEEE, 1993)
What is Software Engineering?
Software Engineering as •Process layer: Allows the development of
software on time. It defines an outline for a set
Layered Technology of key process areas that must be acclaimed for
effective delivery of software engineering
technology.
•Method layer: Provides technical knowledge for
developing software. This layer covers a broad
array of tasks that include requirements analysis,
design, coding, testing, and maintenance phase
of the software development.
•Tools layer: provides computerized or semi-
computerized support for the process and the
method layer. Sometimes tools are integrated in
such a way that other tools can use information
created by one tool.
Computer science
• The study of computation & information
processing, both in hardware and software..
• The discipline concerned with developing
large applications.
Software engineering
• Covers not only the technical aspects of
building software systems, but also
management issues, such as directing
programming teams, scheduling, and
budgeting.