TIP Software Engineering Part1
TIP Software Engineering Part1
Software Engineering
Orlando M. Malaca
Bachelor of Science in Computer Engineering
Master of Science in Management Engineering
Doctor of Philosophy in Technology Management
1
SOFTWARE
• Software is omnipresent in the lives of billions of
people around the world.
• Software runs many aspects of our lives.
• It helps us communicate, socialize and perform
daily tasks at work and at home.
• Most importantly, software is a player in the
emerging knowledge-based service economy.
2
SOFTWARE
• However, there are many concerns about the
quality and reliability, and hence the
trustworthiness, of the software we produce and
consume.
• Existing software is plagued with thousands of
defects.
• Some of the defects are known and already been
detected; others have not manifested and are yet
to be uncovered.
3
SOFTWARE
• The defects have caused many disasters, leading
to financial losses, physical harm to humans, and
life threatening situations.
• The main reasons for the current state of
software technology are the lack of adequately
trained software professionals and the lack of
tools and techniques that can scale up to the
complexities of the needed software.
4
Software Failures
Therac-25 (1985-1987): six people overexposed during
treatments for cancer
Taurus (1993): the planned automatic transaction
settlement system for London Stock Exchange cancelled
after five years of development
Ariane 5 (1996): roket exploded soon after its launch
due error conversion (16 floating point into 16-bit integer)
The Mars Climate Orbiter assumed to be lost by NASA
officials (1999): different measurement systems (Imperial
and metric)
HISTORY
• The word SOFTWARE was coined by John
Wilder Tukey in 1958.
• However, the theoretical foundation behind the
concept of a computer program were established
by Alan Turing in the 1930s.
• The concept of a program as a sequence of steps
to solve a problem is a realization of the concept
of algorithm, which was introduced by
Muḥammad Al-Khwārizmi, a 9th century
mathematician. 6
HISTORY
7
HISTORY
• An algorithm became concrete when it was
programmed by Ada Lovelace, the first computer
programmer.
• A computer program consists of instruction that
perform certain tasks on computer hardware.
• Instructions are written at different levels of
closeness to the hardware, ranging from low-level
instructions written in machine or assembly
language to high-level instructions written in high-
level programming language. 8
HISTORY
Born The Hon. Augusta Ada Byron
10 December 1815
London, England
Died 27 November 1852 (aged 36)
Marylebone, London, England
Resting place Church of St. Mary Magdalene, Hucknall,
Nottingham, England
Known for Mathematics
Computing
Spouse(s) William King-Noel, 1st Earl of Lovelace
Children Byron King-Noel, Viscount Ockham and
12th Baron Wentworth
Anne Blunt, 15th Baroness Wentworth
Ralph King-Milbanke, 2nd Earl of Lovelace
9
The Countess of Lovelace
HISTORY
• SOFTWARE ENGINEERING is a term that was
coined during the 1968 NATO Software
Engineering conference held in Garmisch,
Germany.
• The term was introduced by Friedrich Bauer, the
conference chairman.
• One definition of Software Engineering is the
application of disciplined approach for the
development and maintenance of computer
software. 10
HISTORY Born Friedrich Ludwig Bauer
10 June 1924
Regensburg, Germany
Died 26 March 2015 (aged 90)
Nationality German
Alma mater Ludwig-Maximilians-Universität
Known for Stack (data structure),
Sequential Formula Translation,
ALGOL
Awards Iron Cross 2nd Class,
Bundesverdienstkreuz 1st Class,
IEEE Computer Pioneer Award (1988)
Scientific Career
Fields Computer Science
Applied Mathematics
Institutions University of Mainz
Technical University of Munich
Doctoral advisor Fritz Bopp, Georg Aumann
Doctoral students Manfred Broy, David Gries, Josef Stoer, Peter
Wynn, Christoph Zenger
11
Friedrich L. Bauer
HISTORY
• IEEE defines SOFTWARE ENGINEERING as it
deals with the establishment and use of sound
engineering principles to economically obtain
software that is reliable and works efficiently on
real machines.
• This touches on both the technical and
management aspects. The technical aspect
refers to the reliability and performance of the
target software product. The management
aspect refers to economic feasibility related to
both time and money. 12
HISTORY
• Most people working as Software Engineers hold
either a Degree in Computer Science or
Computer Engineering.
• The first bachelor program in software
engineering was established in the United States
in 1996.
• A Bachelor of Software Engineering (B.SE.) is an
undergraduate academic degree (bachelor's
degree) awarded for completing a program of
study in the field of software development for
computers in information technology. 13
Reference https://en.wikipedia.org/wiki/Bachelor_of_Software_Engineering
Types of Software
• SYSTEM SOFTWARE typically deals with
interfacing with hardware and provide services to
APPLICATION SOFTWARE.
14
Reference https://en.wikipedia.org/wiki/Software
Types of Software
• SYSTEM SOFTWARE
Example:
• Operating System
• Language Compilers
• Assemblers
• Device Drivers
• Debuggers
• Networking Tools
15
Types of Software
• APPLICATION SOFTWARE
Example:
• Games and Entertainment
• Intelligent
• Modeling and Simulation
• Real-time
• Embedded
• Productivity
• Enterprise
• Web-based
• Educational
• Multimedia 16
• Domain-specific
Types of Software
• APPLICATION SOFTWARE
Games and Entertainment
• Software games for handheld
devices, including mobile phones,
PC or stand-alone games, and
distributed collaborative games
Reference http://leagueoflegends.wikia.com/wiki/Season_One
17
Types of Software
• APPLICATION SOFTWARE
Intelligent
• Application that include
specialized domain-specific
expert systems, mobile agent
systems, learning systems, robot
vision software, business decision
and intelligence software, and
mining software
Reference https://news.usc.edu/106565/artificial-intelligence-for-a-better-tomorrow/ 18
Types of Software
• APPLICATION SOFTWARE
Modeling and Simulation
• Applications that include domain-
specific modeling and simulation
packages for military, financial,
medical, educational, and training
uses
Reference https://www.symscape.com/product/panel
19
Types of Software
• APPLICATION SOFTWARE
Real-time
• Applications that include
industrial plant monitoring and
control systems, missile control
systems, air traffic control
systems, telephony software, and
network security software such as
firewall and intrusion detection
systems
Reference https://www.militaryaerospace.com/articles/2012/03/embedded-real-time-
20
operating-system-software-secures-military-mission-critical-data-from-growing-threats.html
Types of Software
• APPLICATION SOFTWARE
Embedded
• Applications that include home
appliance controllers, mobile
phone software and vehicle
controllers
Reference https://www.slideshare.net/RAKESHRANA4/on-the-role-
of-crossdisciplinary-research-and-sse-in-addressing-the-challenges-of-
the-digitalization-of-society 21
Types of Software
• APPLICATION SOFTWARE
Productivity
• Applications that include tools that implement proven methods
and techniques to help specific types of users execute their tasks
with ease and maximum productivity
22
Reference https://tomispot.blogspot.com/2016/09/10-free-open-source-office-suites-software-that-would-increase-productivity.html
Types of Software
• APPLICATION SOFTWARE
Productivity Example
• AutoCAD software facilities architects and engineers
• Rational Rose aids software developers in performing their tasks
• Project management software packages allow project managers
to perform their tasks efficiently
• Word processing tools help users produce thorough and accurate
documentation
• Information worker software
• Time and resource management software
• Data management software
23
• Distributed collaborative software
Types of Software
• APPLICATION SOFTWARE
Enterprise
• Applications that include business
workflow management software,
customer relation management
software, and supply chain
management software
24
Reference https://www.techmaish.com/tips-leveraging-enterprise-software-businesses/
Types of Software
• APPLICATION SOFTWARE
Web-based
• Applications that include content management software, web
publishing software, electronic commerce software, web
services, web portal software and web browsers
25
Reference http://www.atsspl.com/websoft.php
Types of Software
• APPLICATION SOFTWARE
Educational
• Applications that include school
and university management,
online and distance learning,
training management, and
educational software for children
26
Reference https://sites.google.com/site/weiyen27/type-of-application-software-and-their-example
Types of Software
• APPLICATION SOFTWARE
Multimedia
• Applications that include software for video, image and sound
editing and management, 3D and animation, and virtual reality
27
Reference http://www.greatsoftline.com/coupon-codes-for-4-top-sellers-professional-multimedia-software-from-digiarty-software/
Types of Software
• APPLICATION SOFTWARE
Domain-specific
• Applications that include domain-specific software systems such
as banking, finance and stocks, accounting, medical, airline
reservation, hospital management, and human resource
management
Reference
http://www.supplychainquarterly.com/figures/?filename=2
018022710_technologies_that_will_reshape_SCM_softw
are_ex4.jpg&article=20180227-10-technologies-that-will-
reshape-scm-software
28
References
Software Engineering
Kassem A. Saleh
Philippine Edition
Software Engineering
Ian Sommerville
7th Edition
29