Software Engineering Introduction
Software Engineering Introduction
Engineering
Ahmad Salman, PhD
Administration
3 credit hour course
2 lectures a week
Discipline
Cell phones
Cross talking
Monologue?
Distribution
Mid term
Final Term
Quiz
Assignments/ Class Activity
Semester Project
Books
Ian Sommerville. Software Engineering,
Addison-Wesley,(9th edition)
Software Engineering: A Practioner's
Approach, Roger Pressman, McGraw-
Hill, 7th Edition.
Course Web Link
https://junaidaziztech.wordpress.com
Software engineering
The economies of ALL developed nations are
dependent on software.
More and more systems are software
controlled
Software engineering is concerned with
theories, methods and tools for professional
software development.
Expenditure on software represents a
significant fraction of GNP in all developed
countries.
FAQs about software engineering
What is software?
What is software engineering?
What is the difference between software
engineering and computer science?
What is the difference between software
engineering and system engineering?
What is a software process?
What is a software process model?
FAQs about software engineering
What are the costs of software engineering?
What are software engineering methods?
What is CASE (Computer-Aided Software
Engineering)
What are the attributes of good software?
What are the key challenges facing software
engineering?
What is software?
Computer programs and associated documentation such
as requirements, design models and user manuals.
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
e.g. PC software such as Excel or Word.
Custom - developed for a single customer according to
their specification.
Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
What is Software engineering?
Software engineering is an engineering discipline
that is concerned with all aspects of software
production from the early stages of system
specification through to maintaining the system after
it has gone into use.
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.
What is the difference between software
engineering and computer science?
Computer science is concerned with theory and
fundamentals; software engineering is
concerned with the practicalities of developing
and delivering useful software.
Computer science theories are still insufficient to
act as a solid foundation for software engineering
(unlike e.g. physics and electrical engineering).
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects
of computer-based systems development
including hardware, software and process
engineering.
Software engineering is part of this process
concerned with developing the software
infrastructure, control, applications and databases
in the system.
System engineers are involved in system
specification, architectural design, integration and
deployment.
What is a software process?
A set of activities whose goal is the development
or evolution of software.
Generic activities in all software processes are:
Specification - what the system should do and
its development constraints
Development - production of the software
system
Validation - checking that the software is what
the customer wants
Evolution - changing the software in response
to changing demands.
What is a software process
model?
A simplified representation of a software process,
presented from a specific perspective.
Examples of process perspectives are
Workflow perspective - sequence of activities;
Data-flow perspective - information flow;
Role/action perspective - who does what.
Generic process models
Waterfall;
Incremental development;
Component-based software engineering.
What are the costs of software
engineering?
Roughly 60% of costs are development costs, 40%
are testing costs. For custom software, evolution
costs often exceed development costs.
Costs vary depending on the type of system being
developed and the requirements of system
attributes such as performance and system
reliability.
Distribution of costs depends on the development
model that is used.
Activity cost distribution
What are software engineering
methods?
Structured approaches to software development which
include system models, notations, rules, design advice
and process guidance.
Process guidance
What activities to follow.
While all software projects have to be professionally
managed and developed, different techniques are
appropriate for different types of system.
Games should always be developed using a series of
prototypes
safety critical control systems require a complete and
analyzable specification to be developed.
What is CASE (Computer-Aided Software
Engineering)