You are on page 1of 23

Software Engineering

CIS-301
Lec-1
Topic: Introduction

Instructor: Dr. Muhammad Shahid Riaz


Contact: 0301-8665100
Email: shahid09@gmail.com
Agenda
Course Description
Topics include:
◦ Overview of Software Engineering.
◦ Software Life-cycle.
◦ Requirement Engineering Concepts.
◦ Software Architecture and Design.
◦ Verification & Validation.
◦ Software Quality Engineering.
◦ Software Project Management.
◦ Software Maintenance and Software Evolution.
Recommended Books
Textbooks:

R. S. Pressman Engineering Software Products: An Introduction


to Softwrae Engineering, Global Edition, Pearson Education
Limited, 2021
Ian Sommerville , Engineering Software Products: An
Introduction to Modern Software Engineering, Global Edition,
Pearson Education Limited, 2021.

Reference Books:

Ian Sommerville, Software Engineering, Pearson Education


Limited, 2016.
Bhuyan Unhelkar, Software Engineering with UML,, CRC
Press, 2018.
Importance of software

Software can have a huge


impact in any aspect of
society.
Where can you find software?
Some popular ones…
Some popular ones…
And even in…
Conclusion

Software is Almost
Everywhere.
What is Software?
Programs

Software
System
Documentation
Data Documentation
Structures
User
Documentation
What is Software?...
Software is:
(1) instructions (computer programs) that
when executed provide desired features,
function, and performance;
(2) data structures that enable the programs to
adequately manipulate information
(3) descriptive information in both hard copy
and virtual forms that describes the operation
and use of the programs.
Nature of Software
Software systems are abstract
and intangible

Software has dual role: software


as product, Vehicle for delivering
software
Types of Software
Generic products.
o Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
◦ Examples
◦ Graphics programs
◦ Databases
◦ word processors, project-management tools etc.

o It also includes so-called vertical applications designed for


some specific purpose such as library information systems,
accounting systems, POS etc
o The specification of what the software should do is
owned by the software developer and decisions on
software change are made by the developer.
Types of Software…
Customized or bespoke products.
◦ Software that is commissioned by a specific
customer to meet their own needs.
◦ Examples – embedded control systems, air
traffic control software, traffic monitoring
systems, systems written to support a
particular business process
◦ The specification of what the software should
do is owned by the customer for the software
and they make decisions on software changes
that are required.
What is Good Software?
Software has number of attributes which decide
whether it is a good or bad . The definition of a good
software changes with the person who evaluates it. The
software is required by the customer , used by the end
users of an organization and developed by software
engineer . Each one will evaluate the different attributes
differently in order to decide whether the software is
good.
What are the attributes of
good software?
The software should deliver the required functionality and
performance to the user and should be maintainable, dependable,
efficient and acceptable.
Maintainability
Software must evolve to meet changing needs
Dependability
Software must be trustworthy
Efficiency
Software should not make wasteful use of system resources
Acceptability
Software must understandable, usable, and compatible with
other systems that they use.
History of SE
The notion of ‘software engineering’ was first proposed in
1968 ‘software crisis’ (Naur and Randell, 1969).

Individual approaches to program development did not scale


up to large and complex software systems. These were
unreliable, cost more than expected, and were delivered late.

Throughout the 1970s and 1980s, a variety of new software


engineering techniques and methods were developed.
Software Engineering (IEEE)
IEEE defines software engineering as:

The application of a systematic,


disciplined, quantifiable approach to the
development, operation and
maintenance of software.
Software engineering ethics
Confidentiality
◦ confidentiality of your employers or clients irrespective
Competence
◦ not misrepresent your level of competence.
◦ not knowingly accept work that is outside your competence.
Intellectual property rights
◦ Aware of local laws governing the use of intellectual property such as
patents and copyright.
◦ Ensure that the intellectual property of employers and clients is protected.
Computer misuse
◦ You should not use your technical skills to misuse other people’s
computers. (game playing on an employer’s machine, say) to extremely
serious (dissemination of viruses or other malware).
SE vs. CS

Computer Science Software Engineering

• Theory. • Practicalities of
• Fundamentals. software design,
development and
delivery.
Scientist vs. Engineer
Computer Scientist
◦ Proves theorems about algorithms, designs languages, defines knowledge
representation schemes
◦ Has infinite time…

Engineer
◦ Develops a solution for an application-specific problem for a client
◦ Uses computers & languages, tools, techniques and methods

Software Engineer
◦ Works in multiple application domains
◦ Has only 3 months...
◦ …while changes occurs in requirements and available technology
Questions?

You might also like