Professional Documents
Culture Documents
Engineering
(SPRING 2022)
Lecture 1
Introduction
2/16/2022 2
Objectives
• Basic concepts of Software Engineering
• Role of software in our lives
• Attributes of good Software
• Categories of Computer Software
• Understand some ethical and professional issues that are
important for software engineers.
2/16/2022
What is software?
Software is:
Software Components
According to IEEE definition of software
Software Components
• The data
• on which the program operates
• Standard Test Data
• Documents
• The development documentation (the requirements report, design
reports, program descriptions, etc.)
• The user’s documentation (the “user’s manual”, etc.)
• The maintenance documentation(the “programmer’s software
manual”, etc.)
2/16/2022 7
Role of Software
A person might be involved with software more than 100 times,
often without even realizing that.
• Kitchen appliances
Role of Software
• Our bank system is highly computerized
Software
• Maintainability
Software should be written in such a way that it may evolve to
meet the changing needs of customers. This is a critical attribute
because software change is an inevitable consequence of a
changing business environment.
• Dependability
• Software dependability has a range of characteristics, including
reliability, security and safety. Dependable software should not
cause physical or economic damage in the event of system
failure.
2/16/2022 10
Efficiency
Software should not make wasteful use of system resources
such as memory and processor cycles. Efficiency therefore
includes responsiveness, processing time, memory utilization,
etc.
Usability
Software must be usable, without undue effort, by the type of user
for whom it is designed. This means that it should have an
appropriate user interface and adequate documentation.
2/16/2022 11
• System Software
• Application Software
• Engineering/Scientific Software
• Embedded Software
• Web Applications
• Computer Programming tools
• Artificial Intelligence Software
2/16/2022 12
Application Software
• Stand-alone programs that solve a specific business need. (e.g.
Word Processor, graphic Software's…..)
Engineering/Scientific Software
• Systems for modelling and simulations.
Embedded Software
• Resides within a product or system(e.g., Keypad control for a
microwave oven)
2/16/2022 13
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 editing, graphics
programs, project management tools, databases and
drawing packages.
Customized products
• Software that is commissioned by a specific customer to
meet their own needs.
• Examples–systems written to support a particular business
process and air traffic control software.
2/16/2022 CSC291 - Software Engineering Concepts 15
Software Products
• The distinction in generic and customized software
products is becoming blurred.
• More and more systems are being built with a generic
product as a base, which is then adapted to suit the
requirements of a customer.
Software Crises
• In most of the cases the software that was built using the old
tools and techniques was not complete.
2/16/2022 CSC291 - Software Engineering Concepts 17
Software Crises
• Most of the time it was delivered too late.
• Most of the projects were over-budgeted.
• And, in most of the cases, systems built using these techniques
were not reliable.
• A conference was held in 1960 in which the term
“software crisis” was introduced
Conclusion:
• Software engineering is the result of the software crisis when
people realized that it was not possible to construct complex
software using the techniques applicable in 1960s.
• An important result of this was that people realized that just
coding was not enough; we also need to apply engineering
principles.
2/16/2022 CSC291 - Software Engineering Concepts 18
What is Engineering?
Software Engineering
Software Costs
❖ Computer misuse
You should not use your technical skills to misuse other people’s
computers. Computer misuse ranges from relatively trivial (game
playing on an employer’s machine, say) to extremely serious
(dissemination of viruses).
2/16/2022 27
What are the attributes of good software? Good software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and usable.
What is the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science? software engineering is concerned with the practicalities of
developing and delivering useful software.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering? computer-based systems development including hardware,
software and process engineering. Software engineering is
part of this more general process.
29
2/16/2022 30
Chapter Reading
• Chapter 1: INTRODUCTION
Software Engineering by Ian Sommerville