0% found this document useful (0 votes)
22 views26 pages

01 - Ch1 Introduction

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)
22 views26 pages

01 - Ch1 Introduction

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/ 26

SOFTWARE

ENGINEERING
CHAPTER 1 -
INTRODUCTION

WEEK 1
SOFTWARE ENGINEERING

Process score (50%)


- Random attendance (10%)
– Course project (40%)

Final assessment score (50%)


- Final exam (multiple choice + essay)
TOPICS
COVERED
Professional software development
What is meant by software engineering.
Software engineering ethics
A brief introduction to ethical issues that affect
software engineering.

CH1. 2
INTRODUCTION
SOFTWARE using appropriate theories and
ENGINEERING methods to solve problems
bearing in mind organizational
and financial constraints.

Software engineering is an engineering


discipline that is concerned with all aspects of
software production

technical process of development, project


management , the development of tools,
methods etc.
Aug CH1. 3
2019 INTRODUCTION
WHAT IS
SOFTWARE?
Computer programs and associated
documentation.

Software products may be developed for


a particular customer (Customized products)
or a general market (Generic products)

Examples?

CH1. 4
INTRODUCTION
WHO IS IN CHARGE FOR THE
SPECIFICATION?
Product specification at initial stage and the
c hanges later

Generic products
Who else? What roles?
The software developer - Marketing department?
- Customer supporter?
Customized products - …
The customer

CH1. 5
INTRODUCTION
GOOD
SOFTWARE?
Attributes of good software:
deliver required functionality
performance
maintainable
dependable
usable

CH1. 6
INTRODUCTION
SOFTWARE
COSTS
Software costs ~ computer system costs
Costs to maintain > to develop

Software engineering is concerned with cost-


effective software development.

CH1. 7
INTRODUCTION
SOME FAQ S ABOUT SOFTWARE
ENGINEERING
Question Answer
What is the difference between Computer science focuses on
software engineering and theory and fundamentals; software
computer science? engineering is concerned with the
practicalities of developing and
delivering useful software.
What is the difference between System engineering is concerned
software engineering and system with all aspects of computer-based
engineering? systems development including
hardware, software and process
engineering. Software engineering
is part of this more general
process.

CH1. 8
INTRODUCTION
IMPORTANCE OF SOFTWARE
ENGINEERING
We need:
Reliability & trustworthy products
Delivering on time
Reusable
Cost effective in changing/evolution

More?

CH1. 9
INTRODUCTION
FUNDAMENTAL SOFTWARE
ENGINEERING ACTIVITIES
Software specification
Define the software specification and constraints
Software development
Design and program the software
Software validation
Check to ensure that the software is what the customer
requires.
Software evolution
Modify the software to reflect the c hange
CH1. 10
INTRODUCTION
GENERAL ISSUES THAT AFFECT
MOST SOFTWARE
Heterogeneity
 Increasingly, systems are required to operate as
distributed systems across networks that include different
types of computer and mobile devices.
Business and social c hange
 Business and society are changing incredibly quickly as
emerging economies develop and new technologies
become available. They need to be able to change their
existing software and to rapidly develop new software.
Security and trust
 As software is intertwined with all aspects of our lives, it is
essential that we can trust that software.
CH1. 11
INTRODUCTION
SOFTWARE ENGINEERING
DIVERSITY
Many different types of software system
➔ no universal set of software techniques applicable
to all
Application types
- Stand-alone
- Transaction-based
- Embedded system
- Batch processing
- Entertainment
- Modeling and simulation
- Data collection
- System of systems

CH1. 12
INTRODUCTION
SOFTWARE ENGINEERING
FUNDAMENTALS
Some fundamental principles apply to all types
of software system:
Use a managed and understood development process
Consider dependability and performance
Understand and manage the software specification
and requirements
Try reuse software

CH1. 13
INTRODUCTION
SOFTWARE
ENGINEERING ETHICS
Ethics?
 (Oxford dictionary) Moral principles that govern a
person’s behaviour or the conducting of an activity.

Fundamental Software engineering ethics


 Software engineering involves wider responsibilities than
simply the application of technical skills.
 Software engineers must behave in an honest and ethically
responsible way if they are to be respected as
professionals.
 Ethical behaviour is more than simply upholding the law
but involves following a set of principles that are morally
correct.

CH1. 14
INTRODUCTION
ACM/IEEE CODE OF
ETHICS
The professional societies in the US have
cooperated to produce a code of ethical
practice.
Members of these organisations sign up to the
code of practice when they join.
The Code contains some Principles related to the
behaviour 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.
CH1. 15
INTRODUCTION
IEEE CODE OF
ETHICS
1. to accept responsibility in making decisions consistent
with the safety, health and welfare of the public, and
to disclose promptly factors that might endanger the
public or the environment;
2. to avoid real or perceived conflicts of interest
whenever possible, and to disclose them to affected
parties when they do exist;
3. to be honest and realistic in stating claims or estimates
based on available data;
4. to reject bribery in all its forms;
5. to improve the understanding of tec hnology, its
appropriate application, and potential consequences;
CH1. 16
INTRODUCTION
IEEE CODE OF ETHICS
(CONT.)
6. to maintain and improve our technical competence and to
undertake technological tasks for others only if qualified
by training or experience, or after full disclosure of
pertinent limitations;
7. to seek, accept, and offer honest criticism of technical
work, to acknowledge and correct errors, and to credit
properly the contributions of others;
8. to treat fairly all persons regardless of such factors as
race, religion, gender, disability, age, or national origin;
9. to avoid injuring others, their property, reputation, or
employment by false or malicious action;
10. to assist colleagues and co-workers in their professional
development and to support them in following this code of
ethics.

CH1. 17
INTRODUCTION
ACM CODE OF ETHICS AND
PROFESSIONAL CONDUCT
1.1 Contribute to society and human well-being.
1.2 Avoid harm to others.
1.3 Be honest and trustworthy.
1.4 Be fair and take action not to discriminate.
1.5 Honor property rights including copyrights and
patent.
1.6 Give proper credit for intellectual property.
1.7 Respect the privacy of others.
1.8 Honor confidentiality.
CH1. 18
INTRODUCTION
ACM SE CODE OF ETHICS AND
PROFESSIONAL PRACTICE
(SHORT VERSION)
PUBLIC - Software engineers shall act consistently with the public interest.
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.
PRODUCT - Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
JUDGMENT - Software engineers shall maintain integrity and independence in their
professional judgment.
MANAGEMENT - Software engineering managers and leaders shall subscribe to and
promote an ethical approach to the management of software development and
maintenance.
PROFESSION - Software engineers shall advance the integrity and reputation of the
profession consistent with the public interest.
COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
SELF - Software engineers shall participate in lifelong learning regarding the practice
of their profession and shall promote an ethical approach to the practice of the
profession.

CH1. 19
INTRODUCTION
SUMMA
RY
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 processes.
The fundamental notions of software engineering
are universally applicable to all types of system
development.

CH1. 20
INTRODUCTION
SUMMARY
(CONT.)
There are many different types of system and eac h
requires appropriate software engineering tools
and techniques for their development.
The fundamental ideas of software engineering are
applicable to all types of software system.
Software engineers have responsibilities to the
engineering profession and society. They should not
simply be concerned with technical issues.
Professional societies publish codes of conduct which
set out the standards of behaviour expected of
their members.
CH1. 21
INTRODUCTION
READING Self-study

MORE

CH1. 22
INTRODUCTION
DECIDE INITIAL TEAM
ISSUES
Set the meeting agenda and time limits.
Choose the team leader (leadership strategy?).
Decide how the team will communicate.
Identify the customer.
The party or parties who want this application.
Get an understanding of the project in general
terms.
Don’t be embarrassed if project seems too vague to
you.
Probe until you are comfortable.
CH1. 23
INTRODUCTION
SET TEAM
EXPECTATIONS
Get everyone’s commitment to taking required time
 Define an expected average number of hours per week
 If not forthcoming:
 Industrial: alert management
 Academic: inform instructor; implement written mutual evaluations
 Gather dates of planned absences
Choose team emphasis: accomplishment / learning
 Accomplishment (capable product): get a good mix of
leadership, technical, writing, customer relations
 Learning: sacrifice accomplishment by allowing members to
experience new activities.
 Understand manager’s / instructor’s emphasis.

CH1. 24
INTRODUCTION
SPECIFY HOW THE TEAM WILL
COMMUNICATE
General policy:
 if in doubt, communicate. Redundancy is OK!

Usual Meeting place and time


Alternative meeting
Standards:
 The MS WORD is used for documenting
 E-mail should be via any compatible Yahoo email (especially for attachments)

Preferred mode of electronic communication:


 Ex: Unless a communication is of very limited interest to the group, it should be posted to the group
site, www.xxx.yyy with automatic notification to every member. The “subject” format should be Attn.
<name(s)>: subject matter.

Alternative mode of electronic communication:


 For 1-1 communication of very limited group interest, members will use e-mail and/or telephone.

Acknowledgement:
 Team members should acknowledge all electronic communication specifically targeted to them,
whether asked to acknowledge or not. Senders should follow up on all significant communication that
is not acknowledged.

CH1. 25
INTRODUCTION

You might also like