0% found this document useful (0 votes)
51 views

Software Engineering: Prepared By: Rahmat Ullah Khan

The document provides an overview of software engineering including its importance, definitions, characteristics of software, categories of software, and common myths. Key topics covered include what software engineering is, why it is needed to manage complexity, the difference between software and system engineering, and factors that influence software costs.

Uploaded by

rahmat niazi
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views

Software Engineering: Prepared By: Rahmat Ullah Khan

The document provides an overview of software engineering including its importance, definitions, characteristics of software, categories of software, and common myths. Key topics covered include what software engineering is, why it is needed to manage complexity, the difference between software and system engineering, and factors that influence software costs.

Uploaded by

rahmat niazi
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 21

Software Engineering

Chapter 1
Prepared By: Rahmat Ullah Khan
[email protected]
Reference Books
Software Engineering, 10th Edition,
by Ian Sommerville
Addison-Wesley, 2015

Fundamentals of Object Oriented Design in


UML by Miler Page-Jones
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
Objectives cont
Appreciate Software Engineering:
Build complex software systems in the context of
frequent change
Understand how to
produce a high quality software system within time
while dealing with complexity and change
Acquire technical knowledge (main
emphasis)
Acquire managerial knowledge
What is an Engineering System?
Engineering system = capability for the
development of systems, hardware, or
software
Components:
People
Process
Technology
Knowledge
Interfaces:
Internal (among components)
External (to stakeholders and customers)
Why Software Engineering?
Software development is hard !
Important to distinguish easy systems
(one developer, one user) from hard
systems (multiple developers, multiple
users,
The problem is complexity
Many sources, but size is key:

Software engineering is about


managing this complexity
Software Engineering as defined
by IEEE
Software Engineering is the application of a
systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of
software; that is, the application of engineering to
software
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 five Ps of Software
Engineering
People - who develop, manage, and run the
software
Product - the software itself
Project - activity of creating the software
Process - the manner in which the project
proceeds (Bug tracking, Change approval,
Quality assurance)
Professionalism - the attitude of all involved

People + Processes + Tools Product


What is the difference between software
engineering and system engineering?
Software engineering is part of System
engineering
System engineering is concerned with all aspects
of computer-based systems development including
hardware,
software and
process engineering
System engineers are involved in
system specification,
architectural design,
integration and deployment
Software costs

Software costs often dominate computer


system costs. The costs of software on a PC
are often greater than the hardware cost.
Software costs more to maintain than it does
to develop. For systems with a long life,
maintenance costs may be several times
development costs.
What is a Software?
Software is
Instructions (computer programs) that when
executed provide desired features, functions
and performance.
Data Structures that enable the programs to
adequately manipulate information.
Documents that describe the operation and
use of the programs.
Why Software is Important?

The economies of ALL developed nations


are dependent on software.
Modern systems are software controlled
(e.g., transportation, medical,
telecommunications, military, industrial,
entertainment)
Expenditure on software represents a
significant fraction of GNP in all developed
countries.
Characteristics of Software

Software is developed or engineered, it is not


manufactured

Software does not wear out

Components Based Development


Wear Out VS Deterioration
Software Categories
1. System software: such as compilers, editors, file management
utilities
2. Application software: stand-alone programs for specific needs
3. Engineering/scientific software: Characterized by number
crunchingalgorithms. such as automotive stress analysis, molecular
biology, orbital dynamics etc.
4. Embedded software resides within a system. (key pad control of a
microwave oven, digital function of dashboard display in a car)
5. Product-line software focus on mass consumer market. (word
processing, graphics, database management)
6. Web Apps (Web applications) network centric software. As web 2.0
emerges, computing environments is integrated with remote database
and business applications.
7. AI software uses algorithm to solve complex problem. Robotics,
expert system, pattern recognition game playing
Legacy Software
Legacy software can be characterized
informally as old software that is still
performing a useful job for the community.

Legacy software systems are programs that


are still well used by the community or have
some potential inherent value but that were
developed years ago using early versions of
Fortran or other languages.
Software Myths
Management Myths

1. We already have a book that's full of standards and


procedures for building software, won't that provide
my people with everything they need to know?
2. If we get behind schedule, we can add more
programmers and catch up (sometimes called the
Mongolian horde concept).
3. If I decide to outsource the software project to a
third party, I can just relax and let that firm build it.
Software Myths (cont)
Customer Myths

1. A general statement of objectives is sufficient to


begin writing programs, we can fill in the details
later.
2. Project requirements continually change, but
change can be easily accommodated because
software is flexible.
Software Myths (cont)
Practitioners Myths

1. Once we write the program and get it to work, our


job is done.
2. Until I get the program "running" I have no way of
assessing its quality.
3. The only deliverable work product for a successful
project is the working program.
4. Software engineering will make us create
voluminous and unnecessary documentation and
will invariably slow us down.
FAQ about software engineering
Essential attributes of good
software

You might also like