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

Lecture No. 1

Uploaded by

Sohail Ahmad
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Lecture No. 1

Uploaded by

Sohail Ahmad
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

LECTURE 1

INTRODUCTION TO SOFTWARE
ENGINEERING
Atique Zafar
[email protected]
Welcome
Who is your Name : Atique Ahmed Zafar
Teacher
Qualification: Master of Science in Software Engineering with
specialization in technical management (2008-2010)
• Blekinge Institute of Technology, Sweden (Ranked #6 in the world within
Systems and Software Engineering - #1 in Europe by the Journal of Systems
and Software)

Teaching Experience: 15 years


• University of Gujrat (2 yrs)
• COMSATS University, Islamabad (13 yrs)

Non-teaching activities include


• Final Year Project Evaluation (since last 12.5 years)

Supervised Projects
• No. of Projects 40
• 35 projects passed with A grade (many of them got position in Career Expo
and other national competition)
• Android and web-based applications
3
Specialized Subjects and Research Area
Specialized Subjects
• Software Engineering (4 times)
• Software Requirements Engineering ( 8 times)
• Software Design and Architecture (one time)
• Software Project Management (2 times)
• Software Testing

Research Area
• Global software development challenges

Publications
• Zafar, Atique Ahmad, et al. "Taxonomy of Factors Causing Integration Failure during Global
Software Development." IEEE Access (2018).
• Khan, Hashim; Zafar, Atique; Khan, Khalid; , “Investigation of Time Delay Factors in Global
Software Development,” International Conference on Computer and Software Engineering,
Madrid Spain March 2012
• Zafar, Atique; Ali, Sajad; Shahzad, Raja Khurram; , "Investigating Integration Challenges
and Solutions in Global Software Development," Frontiers of Information Technology
(FIT), 2011
4
Course Outline
Course Learning Outcomes
Assessment Plan
Textbooks:

1. Software Engineering: A Practitioner’s Approach, Roger S. Pressman &


Bruce R. Maxim, McGraw-Hill, 2020.

2. Engineering Software Products: An Introduction to Modern Software


Engineering, Ian Sommerville, Pearson Education Limited, 2021.

Reference Books:

1. Software Engineering, Ian Sommerville, Pearson Education Limited,


2016.

2. Software Engineering with UML, Bhuyan Unhelkar, CRC Press, 2018.


Today’s Overview
1
• Software

2
• Nature of Software

3
• Types of Software

4
• Software Products

5
• Product Specification

6
• Changing nature of software

7
• Software Engineering Definition

8
• Well Engineered Software
SOFTWARE
ENGINEERING
Software
Program: The program or code itself is included in the software.

Data: The data on which the program operates is also considered as


part of the software.

Documentation: Another very important thing that most of us forget


is documentation. All the documents related to the software are also
considered as part of the software.

So the software is not just the code written in different programing


languages. It also includes the data and all the documentation related
to the program.
The Nature of Software

Software has dual Nature


• It is a product
• Either running on any machine, It is producing, managing, acquiring,
modifying, displaying and transmitting information
• Vehicle for delivering a product
• OS, Networks, Software Tools and Environment

Significant changes in software has seen as hardware


changed

Has become the software industry


• Having teams of software specialist producing complex software system
• Replace lone programmer of an earlier era
The Nature of Software
• But interestingly, the questions that were asked of
lone programmer are same as new
– Why does it take so long to get software finished?
– Why are development costs so high?
– Why can’t we find all errors before we give the software
to our customers?
– Why do we spend so much time and effort maintaining
existing programs?
– Why do we continue to have difficulty in measuring
progress as software is being developed and maintained?
Defining 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, and
– (3) descriptive information in both hard copy and
virtual forms that describes the operation and
use of the programs.
Failure curve for hardware
Failure curves for software

Key Point: Software engineering methods strive to reduce the magnitude of


the spikes and the slope of the actual curve
Software Products
• Stand-alone systems that are marketed and sold
Generic to any customer who wishes to buy them.
• Examples – PC software such as graphics
Products programs, project management tools; CAD
software;

• Software that is commissioned by a specific


Customized customer to meet their own needs.
• Examples – embedded control systems, air
Products traffic control software, traffic monitoring
systems.
Product Specification

• The specification of what the software


Generic should do is owned by the software
developer and decisions on software
products change are made by the developer.

• The specification of what the software


Customized should do is owned by the customer for
the software and they make decisions
products on software changes that are required.
Software Applications
System software a collection of programs written to service other programs.

Application software stand-alone programs that solve a specific business need.

a broad array of “number-crunching “ programs that range


Engineering/scientific software from computer-aided design to molecular biology, from
genetic analysis to meteorology.

resides within a product or system and is used to implement


Embedded software and control features and functions for the end user and for
the system itself.

this network-centric software category spans a wide array of


WebApps (Web applications) applications and encompasses both browser-based apps and
software that resides on mobile devices.

makes use of nonnumerical algorithms to solve complex


AI software problems that are not amenable to computation or
straightforward analysis.
Changing nature of Software
• Four broad categories of software are evolving
to dominate the industry
• WebApps
• Mobile Applications
• Cloud Computing
• Product Line Software
Changing nature of Software
WebApps
• Early years websites were more than set of hyperlinks, images and
texts
• Web base systems and applications (WebApps) are being developed
with the enhancement of technology

Mobile Applications
• The term app ; a software that has been specifically designed to
reside on a mobile platform (e.g., iOS, Android, or Windows Mobile)
• Interoperability with Web-based resources
• local processing capabilities
• Mobile Webapp Vs Mobile App
Changing nature of Software
• Cloud Computing
– Cloud computing encompasses an infrastructure
or “ecosystem” that enables any user, anywhere,
to use a computing device to share computing
resources on a broad scale
Cloud Computing
Changing nature of Software
• Product Line Software
– The Software Engineering Institute defines a
software product line as
• “A set of software-intensive systems that share a
common, managed set of features satisfying the specific
needs of a particular market segment or mission and
that are developed from a common set of core assets in
a prescribed way”.
– A line of software products,
• All developed using the same underlying application and
data architectures,
• All implemented using a set of reusable software
components that can be reused across the product line
provides significant engineering leverage
THANK YOU

You might also like