Professional Documents
Culture Documents
1
Software
Computer programs and associated documentation.
2
SE History
Software Engineering was first introduced in 1968 during a
conference about the “software crisis” when the introduction of third
generation computer hardware led to more complex software systems
than before
Early approaches were based on informal methodologies leading to
4
Types of application:
Stand-alone applications: These are application systems that run on a local
computer, such as a PC. Eg. office applications on a PC, matlab etc.
Interactive transaction-based application: These are applications that execute
on a remote computer and that are accessed by users from their own PCs or
terminals . Eg.e-commerce application etc.
Embedded control systems: These are software control systems that control and
manage hardware devices. Eg. the software in a mobile (cell) phone, software in a
microwave oven to control the cooking process etc.
Batch processing systems: These are business systems that are designed to
process data in large batches. Eg. Phone billing systems, and salary payment
systems.
5
Entertainment systems: These are systems that are primarily for
personal use and which are intended to entertain the user.
Systems for modeling and simulation: These are systems that are
developed by scientists and engineers to model physical processes or
situations, which include many separate, interacting objects. Eg.
maya, simul8 professional etc.
Data collection systems: These are systems that collect data from
their environment using a set of sensors and send that data to other
systems for processing. Eg. Percon's Falcon 325 and Falcon 315 etc.
Systems of systems: These are systems that are composed of a
number of other software systems. Eg. spreadsheet
6
Computer Science (CS) focuses on understanding, designing, and
developing programs and computers. At its core, Computer Science
concentrates on data transformation, Algorithms, date structures,
complexity theory, and numerical methods.
System Engineering(SE) is concerned with all aspects of the
development and evolution of complex systems, System engineering is
therefore concerned with hardware development, policy and process
design and system deployment, as well as software engineering.
Software Engineering (SE) Software engineering is a systematic
approach to the production of software that takes into account practical
cost, schedule, and dependability issues, as well as the needs of software
customers and producers also deals with practical problems in complex
software products. 7
What is a Software Process?
A Software Process is a set of activities whose goal is the development
or evolution of software
Fundamental activities in all software processes are:
8
Costs of Software Engineering
Roughly 60% of costs are development costs, 40% are testing
costs. For custom software, evolution costs often exceed
development costs
Costs vary depending on the type of system being developed
and the requirements of system attributes such as performance and
system reliability
Distribution of costs depends on the development model that is
used.
9
Attributes of Good Software
Maintainability
• Software must evolve to meet changing needs
Dependability
• Software must be trustworthy
• should not cause physical or economic damage in the event of
system failure
Efficiency
• Software should not make wasteful use of system resources
• (responsiveness, processing time, memory utilization, etc)
Acceptability
• Software must be usable by the users for which it was designed
• understandable, usable, and compatible with other systems
Security
• Malicious users should not be able to access or damage the system.
10
Key Challenges facing Modern Software
Engineering
Legacy systems
• Old, valuable systems must be maintained and updated
Heterogeneity
• Systems are distributed and include a mix of hardware and
software
Delivery
• There is increasing pressure for faster delivery of software
Trust
• Developing techniques that demonstrate that software can
be trusted by its users
11
Software Engineering Diversity
There are many different types of software system and there is no
universal set of software techniques that is applicable for all systems and
all companies.
The software engineering methods and tools used to depend on the type
of application being developed, the requirements of the customer and the
background of the development team.
12
Professional and Ethical Responsibility
13
Issues of Professional Responsibility
Confidentiality
14
Continue....
15
Thank you
16