0% found this document useful (0 votes)
6 views57 pages

1 2 Introduction

The document provides an introduction to Software Engineering (SE), covering its definition, key activities, and the importance of ethics in the field. It discusses the differences between SE and computer science, the challenges faced in SE, and the significance of software in modern society. Additionally, it highlights various types of software applications and the ethical responsibilities of software engineers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views57 pages

1 2 Introduction

The document provides an introduction to Software Engineering (SE), covering its definition, key activities, and the importance of ethics in the field. It discusses the differences between SE and computer science, the challenges faced in SE, and the significance of software in modern society. Additionally, it highlights various types of software applications and the ethical responsibilities of software engineers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

Introduction

Vũ Thị Hồng Nhạn

([email protected])

Dept. of Software Engineering, FIT, UET

Vietnam National Univ., Hanoi


Contents
 Professional software development
 What does SE means?

 SE ethics
 A brief introduction to ethical issues that impact SE

 Case studies
 An introduction to typical examples that will be explored in later lectures

2/17/2025 Introduction Page 2


Professional software development

Answer 10 frequently asked questions about SE


1. What is software?
 Software is a computer program along with its associated documents

 A computer program may be part of a larger system, meaning multiple


programs can exist within a system

 Documentation is essential in SE, i.e., we’re not just writing a program we


also create documents and other necessary information for long-term use

 Software can be classified into 2 types

 Off-the-shelf software or application designed for general markets

 Customized software developed specially according to a customer’s requirements

2/17/2025 Introduction Page 4


2. What are the attributes of good software?

 Software should meet customer requirements and deliver the


desired functionality with a reasonable level of performance

 It should also be usable, maintainable, and reliable

2/17/2025 Introduction Page 5


3. What is SE?
 SE is an engineering discipline that focuses on all aspects of
software production

 It involves not just coding but everything from understanding user


needs to maintaining the software through its lifetime

 As an engineering discipline, it emphasizes systematic, disciplined,


and well-managed approaches to software development

2/17/2025 Introduction Page 6


4. What are the fundamental SE activities?

 There are 4 activities that are always part of professional SE


 Software specification

 Software development

 Software validation

 Software evolution

2/17/2025 Introduction Page 7


5. What is the difference between

SE & computer science?

 SE is a part of a broader Computer Science curriculum

 Fundamentally, Computer Science on the theory of software, while


SE is concerned with its practical application and software
development

 In practice, theory and application do not always align perfectly

2/17/2025 Introduction Page 8


6. What is the difference between

Software & SE?

 SE is concerned with all aspects of computer-based system development,


including hardware, software, and process engineering

 Software, on the other hand, is a more focused activity that deals only with
the software itself, though it is closely associated with and integrated into
the SE process

2/17/2025 Introduction Page 9


7. Key Challenges facing in SE?
 Firstly, addressing increasing diversity: software is now present in all kinds
of devices, from smartwatches to space station

 We need to understand characteristics of the devices and the computers we are


using to develop the most appropriate software for them

 Secondly, the challenge of responsiveness and faster delivery

 Business and users expect quick results and cannot afford to wait for several
years for software development

 Finally, ensuring trustworthy software

 Reliable and resilient software must be able to withstand external cyberattacks


and maintain its integrity

2/17/2025 Introduction Page 10


8. What are the costs of SE?
 This is a difficult question to answer because the cost varies significantly
depending on the type of system

 For example, developing a critical system for an aircraft will be much more
expensive per line of code than creating a free app for the Android Store or
iTunes

 On average, about 60% of software costs go to development, while 40%


are testing costs, which include updates to ensure the software useful as
requirement change

2/17/2025 Introduction Page 11


9. What are the best…

engineering techniques & methods

 All software projects must be professionally managed and developed, with


different techniques suited for different types of systems

 For example, games should be developed using a series prototypes, while


safety-critical control system requires a complete and thoroughly analyzable
specification

 Therefore, no single method can be considered universally better than


another

2/17/2025 Introduction Page 12


10. What differences has the web made to SE?

 Fundamentally, the web has transformed software development and delivery


by enabling a new approach

 Instead of installing software on user’s computer, we can now provide


software as a service that can be accessed remotely

 This has led to the development of new types of distributed systems that
deliver the functionality users need

 The demands of the web and the need for highly distributed systems have
driven advancements in SE

 New methods for software reuse, new programming languages, and


innovative development techniques have emerged as a result

2/17/2025 Introduction Page 13


Why SE matters?
Why?
 Software is everywhere, and our society is now completely dependent on
software-intensive systems

Power infrastructure Financial system


telecommunications

2/17/2025 Introduction Page 15


Why?
 Feeding and housing a growing world population

 Addressing challenges of an aging population by


ensuring a high quality of life for elderly citizens

 Combating international terrorism, which


threatens all societies

 To tackle these challenges, we need SE and


effective techniques for developing complex
software systems.

 SE is essential for maintaining and continuing to


improve the quality of life for our citizens

 We must also ensure that these systems are


reliable, secure, and capable of meeting user
needs

2/17/2025 Introduction Page 16


Software products
 Generic products
 Stand-alone systems that are marketed and sold to any customer who wants to
purchase them

 E.g. PC software such as graphic programs, project management tools, CAD(Computer-


Aided Design) software, and industry-specific software like appointment systems for
dentists

 Customized products
 Software developed specially for a particular customer to meet their unique needs

 E.g., embedded control systems, air traffic control software, and traffic monitoring
systems

2/17/2025 Introduction Page 17


Product specification
 Generic/off-the-shelf products

 The specification of what the software should do is owned by the


software developer, and decisions regarding software changes are
made by the developer

 Customized products

 The specification of what the software should do is owned by the


customer, and they make decisions regarding software changes

2/17/2025 Introduction Page 18


Essential attributes of good software
Product Description
characteristic
Maintainability Software should be written in a way that allows it to evolves and adapt to the
changing needs of customers  crucial attribute, as software changes are
inevitable in a dynamic business environment

Dependability & Soft. dependability encompasses various characteristics (reliability, security,


security and safety)
Dependable soft. shouldn’t cause physical or economic damage in the event
of a system failure. Additionally, malicious users should not be able to
access or compromise the system
Efficiency Soft. shouldn’t waste resources such as memory or processor cycles 
efficiency encompasses factors like responsiveness, processing time, and
memory utilization

Acceptability Soft. must be suitable for the intended users (i.e., should be understandable,
user-friendly, and compatible with other system they use)

2/17/2025 Introduction Page 19


SE
 SE is an engineering discipline that focuses on all aspects of software production,
from the early stages of software specification to maintaining the system after it’s
been deployed

 Engineering disciple: SE applies appropriate theories and methods to solve


problems while considering organization and financial constraints

 Comprehensive approach: SE encompasses all aspects of software products, not


just the technical development process

 Beyond development: SE also involves project management, as well as


development of tools, methods, and frameworks to support software production

2/17/2025 Introduction Page 20


Software process activities
 Software specification: the stage where customers and engineers define the
software to be developed, along with the constraints on its operations

 Software development: the process of designing and programing the software

 Software validation: the phase where the software is tested to ensure it meets
customer requirements (i.e., does the right things)

 Software evolution: the ongoing process of modifying the software to adapt to


changing customer and market requirements

2/17/2025 Introduction Page 21


General issues that affect software

 Heterogeneity: modern systems are increasingly required to operate as


distributed systems across networks that include various types of computers
and mobile devices

 Business & social change: business and society are evolving rapidly as
emerging economies grow and new technologies become available

 Adaptivity: organizations must be able to modify their existing software and


quickly develop new software to keep up with these changes

2/17/2025 Introduction Page 22


General issues that affect software...

 Security & trust

 As software becomes deeply intertwined


in all aspects of our lives, it’s essential to
ensure its reliability, trustworthiness and
security

 Scale

 Software must be developed to


accommodate a wide range of scales,
from embedded systems in portable or
wearable devices to large-scale, cloud-
based systems serving a global
community
2/17/2025 Introduction Page 23
SE diversity
 There’re many different types of software systems, and no universal set of
software technique is applicable to all of them

 The SE methods and tools used depend on the type of application being
developed, the customer’s requirements, and the background of the
development team

2/17/2025 Introduction Page 24


Application types
 Stand-alone applications: these are application systems that run on a
local computer, such as a PC
 They include all necessary functionality and do not require a network
connection

 Interactive transaction-based applications: these are applications


that run on a remote computer and are accessed by users from their own
PCs or terminals
 Examples include web applications such as e-commerce platforms

 Embedded control systems


 These are software systems

designed to control and manage

hardware devices

2/17/2025 Introduction Page 25


Application types...
 Batch processing systems: these are business
systems designed to process data in large
batches. They handle a high volume of
individual inputs to generate corresponding
outputs

 Entertainment systems: these systems are


intended for personal use and designed to
entertain the user

 Modeling and simulation systems: these


systems are developed by scientists and
engineers to simulate physical processes or
real-world scenarios involving multiple
interacting components

2/17/2025 Introduction Page 26


Application types...
 Data collection systems: these are
systems that gather data from their
environment using a set of sensors and
transmit it to other systems for
processing
Forest fire detection
 Systems of systems: these are complex
systems composed of multiple
interconnected software systems

2/17/2025 Introduction Page 27


SE fundamentals
 Structured development process: systems should be developed using a
well-managed and well-understood process. Different processes may be
used for different types of software

 Dependability & performance: these are crucial for all types of software
systems

 Requirements management: understanding and managing software


specifications and requirements is essential

 Software reuse: whenever possible, existing software should be reused


instead of rewriting new code

2/17/2025 Introduction Page 28


Internet SE
 The web has now become a platform for running applications, and
organizations are increasingly developing web-based systems rather than
local systems
 Web services enable application functionality to be accessed over the
web and the internet
 Cloud computing is an approach to providing computer services where
applications run remotely on the cloud
 Users do not purchase software but instead pay based on usage

2/17/2025 Introduction Page 29


Web-based SE
 Web-based systems are complex distributed systems, but the fundamental

principles of SE discussed previously are applicable to them, just as they

are to other types of systems

2/17/2025 Introduction Page 30


Web SE
 Software reuse: is the predominant approach for constructing web-
based systems
 When building these systems, you consider how to assemble them from
pre-existing software components and systems

 Incremental and agile development


 Web-based systems should be developed and delivered incrementally.
It’s now generally recognized that specifying all the requirements for
such systems in advance is impractical

2/17/2025 Introduction Page 31


Web SE...
 Service-oriented systems

 Software may be implemented using service-oriented software SE, where the software
components are stand-alone web services

 Rich interfaces

 Interface development technologies such as AJAX and HTML5 have emerged to support
the creation of rich interfaces within a web browser

2/17/2025 Introduction Page 32


SE Ethics
What is Ethics?
 Ethics and codes of ethics related to professions in computing and science
are fairly simple

 It refers to behavior that we consciously choose which has positive and


negative impacts on society, citizens, and the environment (both cultural
and natural)

 Generally, there’re two kids of ethics


 Minimalism: avoiding harm

 Idealism: the optimistic side of computing, which suggests that we can prevent
harm, possibly do positive things, and sometimes be labeled as ethical

2/17/2025 Introduction Page 34


SE ethics
 SE involves broader responsibilities than just applying technical skills

 Software engineers must act in an honest and ethically responsible


manner in order to be respected as professionals

 Ethical behavior goes beyond merely upholding the law; it involves


following a set of principles that are morally right

2/17/2025 Introduction Page 35


Issues of professional responsibility

 Confidentiality

 Engineers should respect the confidentiality of their employers or clients,


regardless of whether or not a formal confidentiality agreement has been
signed

 Competence

 Engineers should not misinterpret their level of competence.

 They should not knowingly accept work that is beyond their level of
competence

2/17/2025 Introduction Page 36


Issues of professional responsibility
 Intellectual property rights
 Engineers should be aware of local laws governing the use of intellectual
property, such as patents, copyrights, etc.

 They must ensure that the intellectual property of their employers and clients is
protected

 Computer misuse
 Software engineers should not use their technical skills to misuse other people’s
computers

 Computer misuse can range relatively trivial actions (such as playing games on
an employers’ machine) to extremely serious offenses (such as disseminating
viruses)

2/17/2025 Introduction Page 37


Case studies
Case studies
 A personal insulin pump: an embedded system in an insulin pump used by
diabetics to maintain blood glucose control
 A mental health care patient management system (Mentcare): a system
used to maintain records of people receiving care for mental health
problems
 A wilderness weather station: a data collection system that gathers data
about weather conditions in remote areas
 iLearn: a digital learning environment
 Service-oriented systems: systems designed to provide services through a
network, typically utilizing web services

2/17/2025 Introduction Page 39


Insulin pump control system
 Collects data from a blood sugar sensor and
calculates the amount of insulin required to be
injected

 The calculation is based on the rate of change in


blood sugar levels

 Send signals to a micro-pump to deliver the correct


doses of insulin

 A safety-critical system, as a low blood sugar level


can lead to brain malfunction, coma, and death
while high blood sugar levels can have long-term
consequences, such as eyes and kidney damage

2/17/2025 Introduction Page 40


Insulin pump hardware architecture

2/17/2025 Introduction Page 41


Essential high-level requirements
 The system shall be available to deliver insulin when required

 The system shall perform reliably and deliver the correct amount of insulin
to counteract the current blood sugar level

 Therefore the system must be designed and implemented to ensure that it


always meets these requirements

2/17/2025 Introduction Page 42


Mentcare
A patient information system for mental health care

 A patient information system to support mental health care is a medical


information system that maintain records about patients suffering from
mental health problems and the treatments they have received

 Most mental health patients don’t require dedicated hospital treatment


but need to attend specialists clinics regularly, where they can meet with
a doctor who has detailed knowledge of their problems

 To make it easier for patients to attend, these clinics are not only run in
hospitals they may also be held in local medical practices or community
centers

2/17/2025 Introduction Page 43


Mentcare
 Mentcare is an information system designed for use in clinics

 It utilizes a centralized database of patients information but is also


designed to run on a PC, allowing it to be accessed and used from
sites without secure network connectivity

 When local system have secure network access, they can use
patient information from the database, download, and access copies
of patient records even when disconnected

2/17/2025 Introduction Page 44


Mentcare goals
 To generate management information that enables health service
managers to access performance against local and government targets

 To provide medical staff with timely information to support patient


treatment

2/17/2025 Introduction Page 45


The organization of the Mentcare system

2/17/2025 Introduction Page 46


Key features of the Mentcare system
 Individual care management: clinicians can manage patient records, edit
information in the system, view patient history and more

 The system supports data summarization to help doctors quickly


understand the key issues and treatments prescribed for their patients

 Patient monitoring: the system monitors the records of patients undergoing


treatment and issues

 Administrative reporting: the system generates monthly management


reports, showing the number of patients treated at each clinic
 The number of patients who have entered or existed the care system,

 the number of patients admitted to the hospital,

 the drugs prescribed and their associated costs and more

2/17/2025 Introduction Page 47


Mentcare system concerns
 Privacy
 It is essential that patient information remains confidential and is never disclosed
to anyone other than authorized medical staff and the patient themselves

 Safety
 Some mental illnesses may cause patients to become suicidal or pose a danger
to others

 Whenever possible, the system should alert medical staff about potentially
suicidal or dangerous patients

 The system must be available when needed, otherwise, patient safety may be
compromised, and it may be impossible to prescribe the correct medication

2/17/2025 Introduction Page 48


Wilderness weather station
 The government of a country with a vast wilderness
area decide to deploy several hundred weather
stations in remote locations

 These weather stations collect data from a set of


instruments that measure weather parameters such as
wind speed, directions, ground and air temperature,
barometric pressure, and rainfall over a 24-hour
period

 Each of these instruments is controlled by a software


system that periodically takes parameter readings and
manages the collected data

2/17/2025 Introduction Page 49


The weather station’s environment

2/17/2025 Introduction Page 50


Weather information system
 The weather station system: is responsible for
collecting weather data, performing data
processing, and transmitting the data to the data
management system

 The data management system and archiving


system: gathers data collected from wilderness
weather station, processes and analyzes it, and
archives the collected data

 The station maintenance system:


communicates via satellite with all wilderness
stations to monitor the status and generate reports
on any detected issues

2/17/2025 Introduction Page 51


iLearn: a digital learning environment

 A digital learning environment is a framework in which


 a set of general-purpose and specialty designed tools for learning may be
embedded

 plus a set of applications that are geared to the needs to the learners using
the system

 The tools included in each version of the environment are chosen by


teachers and learners to suit their specific needs
 These can be general applications such as spreadsheets

 learning management applications such as a Virtual Learning Environment to


mange homework submission and assessment, games and simulations

2/17/2025 Introduction Page 52


iLearn: service-oriented systems
 The system is a service-oriented system with all system components
considered to be a replaceable service

 This allows the system to be updated incrementally as new services


become available

 It also makes it possible to rapidly configure the system to create


versions of the environment for different groups such as very young
children who cannot read, senior students, etc.

2/17/2025 Introduction Page 53


iLearn services
 Utility services that provide basic application-independent
functionality and which may be used by other services in the system

 Application services that provide specific applications such as email,


conferencing, photo sharing etc. and access to specific educational
content such as scientific films or historical resources

 Configuration services that are used to adapt the environment with a


specific set of application services and do define how services are
shared between students, teachers, and their parents

2/17/2025 Introduction Page 54


iLearn architecture

2/17/2025 Introduction Page 55


iLearn service integration
 Integrated services are services which offer an API and which can be
accessed by other services through that API

 Direct service-to-service communication is therefore possible

 Independent services are services which are simply accessed through


a browser interface and which operate independently of other services

 Information can only be shared with other services through explicit user
actions such as copy and paste;

 re-authentication may be required for each independent service

2/17/2025 Introduction Page 56


Key points
 Software engineering is an engineering discipline that is concerned with all
aspects of software production

 Essential software product attributes are maintainability, dependability


and security, efficiency and acceptability

 The high-level activities of specification, development, validation and


evolution are part of all software process

 The fundamental notions of SE are universally applicable to all types of


system development

2/17/2025 Introduction Page 57

You might also like