Lecture No 1
Lecture No 1
INTRODUCTION TO SOFTWARE
ENGINEERING
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 definitely 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 Cobol, Java,
Fortran or C++. 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?
Software Products
•Generic Products
– Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
– Examples – PC software such as graphics programs,
project management tools; CAD software;
•Customized 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.
Product Specification
•Generic products
– The specification of what the software should do is
owned by the software developer and decisions on
software change are made by the developer.
•Customized products
– 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.
Software Applications
•System software
•Application software
•Engineering/scientific software
•Embedded software
•WebApps (Web applications)
•AI software
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
Click icon to add picture
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