01-Software Engineering Overview

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

AN OUTCOMES-BASED APROACH ON 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.

II. LEARNING OBJECTIVES

At the end of this module, the students are able to:


 Determine the underlying concepts software engineering;
 Determine the importance of software engineering;
 Identify the software process activities;
 Distinguish the different type of software;
 Enumerate the software engineering fundamentals;
 Identify internet software engineering and web software engineering concepts and principles;
 Determine the software engineering professional Issues and practices

III. LEARNING CONTENT

A. TOPIC OUTLINE

Topics Lecture Activities Laboratory Activities


 What is Software Engineering? REMOTE ONLINE LEARNING REMOTE ONLINE LEARNING
 Software (Student with Internet Connectivity) (Student with Internet Connectivity)
o Types of Software Synchronous: Synchronous:
o Software Product and Types  Attend the Online Class
o Essential Attributes of Software meeting discussion Asynchronous:
Product Asynchronous:  Do and submit the
 Importance of Software  Read the topic discussion assignment task through
Engineering  Watch the recorded video of BlackBoard LMS
o General Issues That Affect the Online Class meeting
Software discussion for this module
o Why Software Engineering?  Watch or read the additional
 Software Engineering Diversity learning materials
o Types of Application/Systems  Answer the quiz posted in
o Software Engineering the BlackBoard LMS
Fundamental Activities and

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

Principles REMOTE PRINT REMOTE PRINT


 Internet Software Engineering (Student w/no Internet (Student w/no Internet
and Web Software Engineering Connectivity) Connectivity)
Concepts  Read the topic discussion  Do the assignment task and
 Software Engineering Ethics  If you have questions and submit it in the designated
o Issues of Professional clarifications, sent a message place(TBA)
Responsibilities through FB chat or SMS
o The ACM/IEEE Software  Set an appointment for
Engineering Code of Ethics and taking the quiz through FB
Professional Practice chat or SMS

B. TOPIC DISCUSSION

WHAT IS SOFTWARE ENGINEERING?

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

Software engineering is an application of engineering principles in developing software (solution).

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

The output of software engineering is good quality software product.

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.

Software Product is software made for a specific purposes or requirements.

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.

IMPORTANCE OF SOFTWARE ENGINEERING

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.

Why Software Engineering?


According to Sommerville(2014), applying software engineering will able to:
 Produce good quality software (systems) economically and quickly
 Maintaining or updating this software becomes cheaper cost

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.

SOFTWARE ENGINEERING DIVERSITY

“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 and Principles


Even though there is no universal set of software engineering techniques that can apply to all types of software, this
activities and principles can be apply to all any type of software regardless of what technique used.

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 AND WEB SOFTWARE ENGINEERING CONCEPTS

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)

Why Internet Software Engineering?


 The web is now a platform for running application and organizations are increasingly developing web-based
systems rather than local systems.
 Developing web services allow application functionality to be accessed over the web.
 Cloud computing is an approach to the provision of computer services where applications run remotely on
the ‘cloud’ and the users do not buy software but pay according to use.

Web Software Engineering Concepts


Web-based systems are complex distributed systems but the fundamental ideas and principles of software
engineering apply to web-based software in the same way to other types of software.

Additional Web Software Engineering Principles (Sommerville, 2014)


 Software Reuse. The dominant approach for constructing web-based systems. When building web-based
systems, always think about how can assemble them from pre-existing software components and
systems.
 Incremental and Agile Development. Web-based systems should be developed and delivered incrementally.
It is now generally recognized that it is impractical to specify all the requirements for such systems in
advance.
 Service-Oriented Systems. Software may be implemented using service-oriented software engineering,
where the software components are stand-alone web services.
 Rich Interfaces. Interface development technologies such as AJAX and HTML5 have emerged that support the
creation of rich interfaces within a web browser.
Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 6
AN OUTCOMES-BASED APROACH ON Software Engineering Overview
SOFTWARE ENGINEERING 1
2 Hours Lecture & 3 Hours Laboratory

SOFTWARE ENGINEERING ETHICS

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.

Issues of Professional Responsibilities (Sommerville, 2014)


 Confidentiality. Software engineers should normally respect the confidentiality of their employers or clients
irrespective of whether or not a formal confidentiality agreement has been signed.
 Competence. Software engineers should not misrepresent their level of competence. They should not
knowingly accept work which is out with their competence.
 Intellectual Property Rights. Software engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual
property of employers and clients is protected.
 Computer Misuse. Software engineers should not use their 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).

The ACM/IEEE Software Engineering Code of Ethics and Professional Practice


The US professional societies produce a code of ethical practice to be followed by members of these organizations
and standardized by ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices

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.

The Preamble of the Code


The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in
the full version give examples and details of how these aspirations change the way we act as software engineering
professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the
aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.

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 GOAL OF STUDYING SOFTWARE ENGINEERING COURSE

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.

PROGRAMMER DEVELOPER SOFTWARE


ENGINEER

•Able to write •Able to create that •Architect solutions


algorithms to solve are usable •Build systems as well
problems •Often makes a living as write code to
•More Theoritical selling writing build scalable
than Practical applications software

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)

IV. LEARNING ACTIVITIES

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

 Additional summary;  General  No critical logically


historical or  Significant application to application to related
literary insight application of the scenario; the scenario;  No use of the
detailing or concepts to  Comprehensio  Simple scenario
refining the the scenario; n of ideas and repetition of  Lacks factual
scenario to  Compelling application of facts basis.
clarify points; analysis and facts.
 Originality and synthesis.
compelling
analysis and
synthesis.
Content 35  Answers  Reveal general  Reveal  Speculates on  No mention of
and Focus reveal awareness; possibility of impact; impact;
student's  Answers impact;  Answers  Answers are
awareness of questions  Answers questions confused,
the ways s/he from questions directly;  Sources not
has been perspective of from  Sources provided.
impacted in art world as a perspective of mentioned in
regard to the system or institutions, body.
subject; network;  Occasional
 Answers  Notes section footnotes.
questions with cited
from sources.
perspective of
social sectors;
 Properly
organized
notes section
with published
and online
sources.
Skilled 30  Argument is  Clear,  Clear;  Lacks clarity;  Lacks focus;
Communic well consistent,  No more than  Numerous  Very
ation structured and concise; 10 errors. spelling and awkward.
with good  No more than grammatical
flow and 5 errors. errors.
understanding
of the parts of
an essay;
 Complete
sentences,
good grammar
and spelling.
TOTAL 100

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

 Software Engineering Overview. (2020). TutorialsPoint.


https://www.tutorialspoint.com/software_engineering/software_engineering_overview.htm

 Sommerville, I. (2014). Chapter 1- Introduction [PowerPoint slides]. Retrieved


from https://iansommerville.com/software-engineering-book/slides/

Prepared By:
June Arreb C. Danila, MIT
junar.danila@unc.edu.ph Page 10

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy