01-Software Engineering Overview
01-Software Engineering Overview
01-Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
MODULE 01
Software Engineering Overview
I. INTRODUCTION
This module contains an overview discussion of software engineering concepts, principles, and activities, importance, and
ethics. It has a discussion about the software and software product, the software types and attributes, and the types of
systems or applications. And also has an introductory discussion about Internet Software Engineering.
A. TOPIC OUTLINE
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 1
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
B. TOPIC DISCUSSION
Software engineering is a branch of computer science which includes the development, deployment, and
maintenance of software (solution) product using a systematic process of analyzing requirements, designing,
constructing and testing to comply and satisfy the user needs.
Boehm defines software engineering as “the practical application of scientific knowledge to the creative design and
building of computer programs (software) with associated documentation needed for developing, operating, and
maintaining them”.
IEEE, in its standard 610.12-1990, defines software engineering as “the application of a systematic, disciplined, which
is a computable approach for the development, operation, and maintenance of software”.
Systematic – use a set of methods, processes, techniques, and patterns
Disciplined – methods, processes, techniques, and activities are manageable or governable
Computable Approach – costs are measurable based on standards
Sommerville (2014) defines software engineering as “an engineering discipline that is concerned with all aspects of
software production from the early stages of system specification through to maintaining the system after it has gone
into use”.
Engineering Discipline – using appropriate theories and methods to solve problems bearing in mind
organizational and financial constraints
All Aspects of Software Production – is not just technical process of development but Also project
management and the development of tools, methods etc. to support software production
Fritz Bauer defines software engineering as “the establishment and used standard engineering principles that helps
to obtain an economically software which is reliable and works efficiently on the real machines”.
SOFTWARE
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 2
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
Software is a collection of interrelated computer programs associated with libraries and documentations.
Computer Programs – a set of executable code (instruction) performs specific task or operation
Interrelated – computer programs are connected or related to other programs
Libraries – is a collection of non-volatile (static) resources such as data, files, programs, routines, scripts, or
functions used in developing the software
Documentations – all written documents or illustrations dealing with the development and use of the
software
Types of Software. There are two types of software: systems software and application software.
1. Systems Software. It is composed of programs that include computing utilities and operations systems such
as such as the operating system, database management systems, networking software, translators,
software utilities, and hardware drivers.
2. Application Software. It is consists of user-focused programs that include web browsers, computer games,
database programs or information systems, etc.
Types of Software Product. There are two types of software product: generic software product and customized
software product.
1. Generic Software Product. Software product that is stand-alone (operates independently) and marketed
or sold to any users/customers who wishes to buy them. The specification of what the software should do
is owned by the software developer(s) and decisions on software update or change are made by the
developer(s). Examples are suite software (e.g. Google Docs, MS Words), media players, computer/mobile
games, Food Delivery applications, media editor applications, etc.
2. Customized Software Product. Software product that is commissioned by a specific user or customer to
develop to meet their own needs and requirements. The specification of what the software should
do is owned by the user or customer for the software and the costumer make decisions on software
changes that are required. Examples are traffic monitoring systems, embedded systems, decision support
systems, etc.
Essential Attributes of Software Product. There are four essentials attributes that a software product must have.
These are acceptability, efficiency, dependability, and maintainability.
1. Acceptability. The software comply the requirements and satisfy the target users for which it is design. The
software should also easy to use and understand by providing a good user interface and complete
documentations.
2. Efficiency. The software should overuse (not make wasteful use) of system resources such processor cycles
and memory space and I/O operations. Efficiency includes responsiveness, processing time, memory
utilisation, etc. of the program code.
3. Dependability. Dependable software means it is reliable, secured and safety. Software should not cause
damage (physical or economic) in the event of system error or failure and should not be able to access or
use by unauthorized or malicious users.
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 3
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
4. Maintainability. Software should be written in such a way that it can easily to update or change to meet the
changing needs of the target users. For the reason software change is an inevitable requirement of a
changing business environment.
General Issues That Affect Software. Software engineering purpose is to produce a software product that can
overcome the following issues:
1. Heterogeneity. Systems (software) are required to operate as distributed systems across networks and
different platforms which include the type of computer and operating systems;
2. Business and Social Change. Business and society are always changing fast as emerging economies develop
and new technologies become available. They need to be able to update or change their existing software
and to rapidly develop new software to meet those changes;
3. Security and Trust. It is essential that software must be trusted and secured since it is intertwined with the
aspects of lives; and
4. Scale. Software has to be developed scalable (support wide range of scales). For example, a very small
embedded systems in portable or wearable devices through to Internet-scale, cloud-based systems that
serve a global community.
The Software Crisis and the Solution. This is the little brief history on how software engineering arrived and accepted
by the community.
In the late 1960s, because of unorganized coding or developing software some issues or problem was
happened that leads to Software Crisis. Those issues are the following:
o Many software projects failed (Output was not delivered);
o More software became over budget (Output was unreliable software which is expensive to
maintain);
o Larger software was difficult and quite expensive to maintain;
o Lots of software not able to satisfy the growing requirements of the user or customer;
o Complexities of software projects increased whenever its hardware capability increased; and
o Demand for new software increased faster compared with the ability to update or develop new
software.
The solution was transforming unorganized coding effort into a software engineering discipline. These
engineering models helped companies to streamline operations and deliver software meeting requirements.
The late 1970s saw the widespread uses of software engineering principles.
In the 1980s saw the automation of software engineering process and growth of CASE (Computer-Aided
Software Engineering) tools.
The 1990s have seen an increased emphasis on the 'management' aspects of projects standard of quality and
processes just like ISO 9001.
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 4
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
The following are the reasons why applying these engineering principles become acceptable and popular in the
community (Rungta, 2020):
1. Large Software. As the size of the requirements becomes larger, software engineering helps you to build
large software;
2. Scalability and Adaptability. It is easier to re-create new software to scale (update or change) an existing one
if the software development process were based on scientific and engineering concepts;
3. Cost. Because of software engineering, hardware industry has shown its skills and huge manufacturing has
lower the cost of the computer and electronic hardware;
4. Dynamic Nature. Software should always growing and adapting to the nature environment in which the user
works and it can be attained efficiently using software engineering; and
5. Quality Management. Software engineering offers better method of software development to provide
quality software products.
“There is no universal set of software techniques (methods & tools) that is applicable to all of types of applications
or systems. Software engineering methods and tools used depend on the type of applications or systems being
developed.” (Sommerville, 2014)
Types of Applications or Systems Software. There are two types of software, application software and systems
software and this applications and systems can be categorized as:
1. Stand-Alone Applications. Applications or systems that run on a local machine (computer) with all necessary
functionalities and work without a network connection;
2. Interactive Transaction-Based Applications. Applications that execute on a remote computer and are
accessed by users from their own PCs or terminals. These include web applications such as e-commerce
applications;
3. Embedded Control Systems. Software control systems that control and manage hardware devices such as
operating systems and hardware drivers;
4. Batch Processing Systems. Business systems that are designed to process input data in large batches to
create corresponding outputs such as payroll system and enrollment system;
5. Entertainment Systems. Systems that are primarily purpose are to entertain the users such as game and
media player application;
6. Systems for Modeling and Simulation. Systems that are used to model physical processes or situations,
which include many, separate, interacting objects such weather forecasting system and airplane pilot
driving simulator application
7. Data Collection Systems. Systems that collect data from their environment using a set of sensors and send
that data to other systems for processing such as flood control and warning system; and
8. Systems of systems. Systems that are composed of a number of other software systems such as
management information systems.
Software Engineering Fundamental Activities. These activities are also known as Software Processes that includes
software specification, software development, software validation, and software evolution.
1. Software Specification. The software engineer or systems analyst define the software that is to be produced
and the constraints on its operation based on the gathered data and customer requirements;
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 5
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
2. Software Development. The software is designed and programmed base on the software requirements
specifications;
3. Software Validation. The software is tested and checked to ensure that it will complies the customer needs
and requirements; and
4. Software Evolution. The software is modified and updated to implement the changes in customer needs and
requirements.
Software Engineering Fundamental Principles. This are the some fundamental principles apply to all types of
software system, irrespective of the development techniques used according to Sommerville (2014):
Systems should be developed using a managed and understood development methods because different
methods are used for different types of software;
Dependability and performance are important for all types of system;
Understanding and managing the software specification and requirements (what the software should do)
are important; and
Where appropriate, reuse software that has already been developed rather than write new software.
Internet Software Engineering, also known as Software Engineering for Internet Computing, involves the
architecting, development, deployment, management, and quality assurance of software supporting Internet-based
systems. It also addresses global-development issues such as communication complexity, distributed control,
governance policies, and cultural differences. (Bertolino A. et al, 2015)
According to Sommerville(2014), Software engineering is not only the application of technical skills, it involves wider
responsibilities. Professional software engineers must behave in an honest and ethically responsible way. Ethical
behavior is not only simply upholding the law but also following a set of principles that are morally correct.
The Code contains Eight(8) Principles related to the behavior of and decisions made by professional software
engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and
students of the profession.
Software engineers shall commit themselves to making the analysis, specification, design, development, testing and
maintenance of software a beneficial and respected profession. In accordance with their commitment to the health,
safety and welfare of the public, software engineers shall adhere to the following Eight Principles:
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client
and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest
professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical
approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent
with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 7
AN OUTCOMES-BASED
BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession
professi and
shall promote an ethical approach to the practice of the profession.
The main goal of this course is make you a software engineer or professional software developer as we see in the
diagram below this course will transform you from being a programmer
rogrammer or developer to be a software engineer.
C. SUPPLEMENTARY
PPLEMENTARY LEARNING MATERIALS
For additional discussion please visit the following materials
Software Engineering Basics (Youtube Video, https://www.youtube.com/watch?v=sB2iQSvrcG0)
https://www.youtube.com/watch?v=sB2iQSvrcG0
Software Engineering: Definition, Process & Methods (Online Tutorial,
https://study.com/academy/lesson/software
https://study.com/academy/lesson/software-engineering-definition-process-methods.html
methods.html)
A. ASSIGMENT TASK
Instructions:
Write an essay for each task item. P
Put a citation, footnotes, and reference list of your sources
s and basis of
information.
To submit:
For Remote Online Learning, upload the document file of your essay or encode your essay and submit it in
the BlackBoard LMS.
For the Remote Print,
nt, submit your essay (written or printed) in the designated places (TBA)
(TB
Assessment:
Essay Evaluation Rubrics:
Evaluation Excellent Proficient Satisfactory Average Poor
%
Categories (5) (4) (3) (2) (1)
Critical 35 Critical Sufficient Some Answers
ers Answers
Thinking summary and answers with digression but digress and insufficient
conclusion; critical related; are disjointed; and not
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 8
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
Task Items:
1. Explain why software engineering is a branch of computer science and an engineering discipline.
2. Define the meaning of a good quality, cost-effective and on-time software product.
3. Explain why software engineer needs to be honest and ethically responsible.
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 9
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory
B. QUIZZES
Instructions:
Observe academic honesty when taking the quiz.
You can take the quiz at maximum of 3 times, and your score is the average score of all attemts.
To take the quiz:
o For Remote Online Learning, take the quiz posted at the module 01 in the BlackBoard LMS
o For the Remote Print, set an appointment meeting to take a quiz using FB chat or SMS messaging.
Assessments:
Code Description Equiv. Point No. of Items Total Points
U Understanding 2 30 60
AP Applying - - -
AN Analyzing - - -
E Evaluating - - -
C Creating - - -
TOTAL 30 60
Question Items:
Type Count Points Assessment Code
Fill-up the blanks 10 20 U
Multiple choices 10 20 U
True or false 10 20 U
TOTAL 30 60
V. REFERRENCES
A. Bertolino, M. Blake, P. Mehra, H. Mei and T. Xie, "Software Engineering for Internet Computing: Internetware
and Beyond [Guest editors' introduction]" in IEEE Software, vol. 32, no. 01, pp. 35-37, 2015.
doi:10.1109/MS.2015.16 keywords: {special issues and sections;software engineering;internet computing;cloud
computing;smart phones;software engineering;wireless sensor networks;computer applications}
url:https://doi.ieeecomputersociety.org/10.1109/MS.2015.16
Economic Times. (n.d.). What is Software Engineering? Definition of Software Engineering, Software Engineering
Meaning. The Economic Times. https://economictimes.indiatimes.com/definition/software-engineering
Rungta, K. (2020, August 7). What is Software Engineering? Definition, Basics, Characteristics. Guru99.
https://www.guru99.com/what-is-software-engineering.html
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 10