Lect 1 Intro
Lect 1 Intro
Lect 1 Intro
Lecture 01
Introduction
What is Software?
Engineering discipline
◦ Using appropriate theories and methods to solve problems
bearing in mind organizational and financial constraints.
All aspects of software production
◦ Not just technical process of development. Also project
management and the development of tools, methods etc. to
support software production.
Software Engineering Definition
The seminal definition:
[Software engineering is] the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and works
efficiently on real machines.
The IEEE definition:
Software Engineering: The application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of
software; that is, the application of engineering to software.
Software engineers should adopt a systematic and organised approach to
their work and use appropriate tools and techniques depending on the
problem to be solved, the development constraints and the resources available.
Computer Science Vs. Software Engineering
“Software Engineering is the process of utilizing our
knowledge of computer science in effective production of
software systems.”
Computer Science Software Engineering
Computer science is concerned with the theories and Software engineering is concerned with the practical
methods that underlie computers and software problems of producing software.
system.
What is the difference between
Software Engineering and Computer
Science?
“Computer science is concerned with theory and
fundamentals; while software engineering is concerned with
the practicalities of developing and delivering useful software”.
Computer science theories are still insufficient to act as a
complete underpinning (supporting) for software engineering
(unlike e.g. physics and electrical engineering).
A Software Engineering Framework
A quality focus
◦ Any engineering approach must rest on organizational commitment
to quality which fosters a continuous process improvement culture.
Process layer
◦ The foundation for software engineering is the process layer
◦ Defines a framework that must be established for effective delivery
of software engineering technology
◦ Establish a context where
Products (model, data, report, and forms) are produced
Milestones are established
Quality is ensured
Change is managed
A Software Engineering Framework
Methods
◦ Provide the technical how-to for building software
◦ Methods encompass a broad array of tasks
Communication , requirements analysis, design modeling, program
construction, testing, and support
Tools
◦ Provide automated or semi-automated support for the process and
the methods
◦ Integrated tools to support software development
Called computer aided software engineering
Importance of Software Engineering
What is a Software Process?
◦ Software Validation - checking that the software is what the customer wants
where the software is checked to ensure that it is what the customer requires.