0% found this document useful (0 votes)
21 views52 pages

Ch1_Introduction

Uploaded by

jeffshokr
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)
21 views52 pages

Ch1_Introduction

Uploaded by

jeffshokr
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/ 52

CSE 322

Software
Engineering

Chapter 1

Course
Introduction
Outline

▪ Introduction.
▪ Course Objectives.
▪ Course Contents.
▪ Grading Scheme & Policies.
▪ An Introduction to Software Engineering.
▪ Next Week Assignment.
▪ Textbook & References.
2
Introduction

3
Introduction

▪ Software engineering is an
engineering discipline that is
concerned with all aspects of
software production . . . . . . .
4
▪ Students should have an
understanding of all phases
of the software engineering
lifecycle (requirements,
Course design, implementation,
testing, deployment, and
Objectives maintenance).
▪ Should have an
understanding of several
lifecycle models.

5
▪ Should have an ability to
document software
requirements and structured
design artifacts.
Course ▪ Should have an understanding
of fundamental techniques
Objectives used to lead a software team.
▪ Should have an ability to
select and use appropriate
CASE tools.

6
Course Contents

▪ Introduction.
▪ Software Life Cycle Models.
▪ Agile Development Models.
▪ Software Project Management.
▪ Requirements Analysis and Specification.
▪ Function-Oriented Software Design.
7
▪ Textbook:
Ian Sommerville, Software
Engineering, 10th Edition,
Pearson Education Limited.

Textbook ▪ Lecture Notes:


o Presentations by the
instructor.
o Additional material as
decided by the instructor.
o Google Classroom Code:
jhahjjr
8
9

9
Grading Scheme

▪ Quizzes 15%

▪ Attendance 5%

▪ Midterm Exam 20%

▪ Oral - Practical 20%

▪ Final Exam 40%


10
An Introduction to

Chapter 1 Software
Engineering

11
Topics Covered

▪ Software Engineering Concepts.


▪ Software engineering ethics.
▪ Cost, Schedule, and Quality.
▪ Software Standards.
▪ Case Studies.
▪ MCQs & References.
12
Software Engineering

▪ The economies of all developed nations are dependent on


software. More and more systems are software controlled.
▪ Expenditure on software represents a significant fraction of
GNP in all developed countries.
▪ Software engineering is an engineering discipline which 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.
▪ Software engineering is concerned with theories, methods
and tools for professional software development.
13
▪ 31% of the projects get
cancelled before they are
completed.
Software ▪ 53% over-run their cost-

Crisis estimates by an average of


189%.

▪ For every 100 projects, there


are 94 restarts.

14
Factors of
Software Project Failure
▪ Increasing System Complexity:
• Systems have to be built and delivered more quickly.
• Larger and complex systems are required. Systems have
to have new capabilities that were previously thought to
be impossible.
▪ Failure to use Software Engineering Methods:
• Many companies do not use software engineering
methods in their everyday work.
• Consequently, their software is often more expensive and
less reliable than it should be.
15
Software Costs

▪ Software costs often dominate computer system


costs.
▪ The costs of software on a PC are often greater than
the hardware cost.
▪ For systems with a long life, maintenance costs may
be several times development costs.
▪ Software engineering is concerned with cost-effective
software development.
16
Software Product Classes

▪ Generic Products:
• Designed for a broad customer market whose
requirements are very common, fairly stable, and well-
understood by the software engineer, and it sold to any
customer who wishes to buy them.
• The specification of what the software should do is
owned by the software developer and decisions on
software change are made by the developer.
• Examples: graphics programs, project management
tools; CAD software.
17
Software Product Classes

▪ Customized Products:
• Software that is commissioned by a specific customer to
meet their own needs.
• The specification of what the software should do is
owned by the customer for the software and they make
decisions on software changes that are required.
• Examples: embedded control systems, air traffic control
software, traffic monitoring systems.
18
Question Answer
What is software? Computer programs and
associated documentation.
Software products may be
developed for a particular
customer or may be developed for
a general market.

Frequently What is software


engineering?
Software engineering is an
engineering discipline that is
concerned with all aspects of
Asked software production . . . . .
What are the Software specification
fundamental software (Requirements), software
Questions engineering development (Design & Coding),
activities? software validation (Testing), and
software evolution (maintenance).
What is the difference System engineering is concerned
between software with all aspects of computer-
engineering and based systems development
system engineering? including hardware, software and
process engineering. Software
engineering is part of this more
general process.
19
Question Answer
What are the key Coping with increasing diversity,
challenges facing demands for reduced delivery
software engineering? times and developing trustworthy
software.
What are the costs of Roughly 60% of software costs are
software engineering? development costs, 40% are testing
Frequently costs.
For custom software, evolution
costs often exceed development
Asked costs.
What are the best While all software projects have to
Questions software engineering be professionally managed and
techniques and developed, different techniques
methods? are appropriate for different types
of system. For example, games
should always be developed using a
series of prototypes whereas safety
critical control systems require a
complete and analyzable
specification to be developed.
You can’t, therefore, say that one
method is better than another.
20
Systems Engineering

▪ Computer systems engineering addresses


development of such systems requiring
development of both software and specific
hardware to run the software.

▪ Thus, systems engineering encompasses software


engineering.
21
Systems Engineering

22
Systems Engineering

▪ One of the important stages in systems engineering is


the stage in which decision is made regarding the parts
of the problems that are to be implemented in
hardware and the ones that would be implemented in
software (hardware-software partitioning in the
figure).
▪ While partitioning the functions between hardware
and software, several trade-offs such as flexibility, cost,
speed of operation, etc., need to be considered.
23
Importance of
Software Engineering
▪ More and more, individuals and society rely on
advanced software systems.
▪ We need to be able to produce reliable and
trustworthy systems economically and quickly.
▪ It is usually cheaper, in the long run, to use software
engineering methods and techniques for software
systems.
24
General Issues that
Affect 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 Change:
• 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.
25
General Issues that
Affect Software
▪ Security and Trust:
• As software is intertwined with all aspects of our lives, it
is essential that we can trust that software.
• This is especially true for remote software systems
accessed through a web page.
▪ Scale:
• Software has to be developed across a very wide range of
scales, from very small embedded systems in portable or
wearable devices through to Internet-scale, cloud-based
systems.
26
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.
27
ACM/IEEE Code of Ethics

▪ The professional societies in the US have

cooperated to produce a code of ethical practice.

▪ The code contains eight principles related to the

behaviour of and decisions made by professional

software engineers.

28
ACM/IEEE Code of Ethics
Ethical 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.
29
ACM/IEEE Code of Ethics
Ethical Principles
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.
8. 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.
30
Issues of
Professional Responsibility
▪ Confidentiality:
• Engineers should normally respect the confidentiality of their employers
or clients irrespective of whether or not a formal confidentiality
agreement has been signed.
▪ Competence:
• Engineers should not misrepresent their level of competence. They
should not knowingly accept work which is out with their competence.
▪ Intellectual Property Rights:
• Engineers 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) to extremely serious (dissemination of viruses).
31
▪ Disagreement in principle with
the policies of senior
management.
▪ Your employer acts in an
unethical way and releases a
Ethical safety-critical system without
Dilemmas finishing the testing of the
system.
▪ Participation in the
development of military
weapons systems or nuclear
systems.
32
Milestones

▪ The milestones are the events that are used to


ascertain the status of the project.
▪ Finalization of specifications is a milestone, and
completion of design documentation is another
milestone.
▪ The milestones are essential for project planning
and management.
33
Cost , Schedule , and Quality

▪ In the industrial-strength software domain, there


are three basic forces at play – cost, schedule, and
quality.
▪ The software should be produced at reasonable
cost, in a reasonable time, and should be of good
quality.
▪ Industrial-strength software is very expensive.
34
Software Quality Attributes

35
Software Quality Attributes

▪ Functionality: The capability to provide functions


which meet stated and implied needs when the
software is used.
▪ Reliability: The capability to provide failure-free
service.
▪ Usability: The capability to be understood, learned,
and used.
▪ Efficiency: The capability to provide appropriate
performance relative to the amount of resources used.
36
Software Quality Attributes

▪ Maintainability: The capability to be modified for


purposes of making corrections, improvements, or
adaptation.

▪ Portability: The capability to be adapted for different


specified environments without applying actions other
than those provided for this purpose in the product.

37
How do Software Engineers
Spend their Time on the Job ?

▪ Software engineers probably spend less than 10%


of their time writing code.

▪ The other 90% of their time is involved with other


activities that are more important than writing
code.

38
How do Software Engineers
Spend their Time on the Job ?
▪ Eliciting requirements.
▪ Analyzing requirements.
▪ Writing software requirements documents.
▪ Building and analyzing prototypes.
▪ Developing software designs.
▪ Researching SWE techniques, or obtaining
information about the application domain.
39
How do Software Engineers
Spend their Time on the Job ?
▪ Writing software design documents.
▪ Testing the software and recording results.
▪ Learning to use or installing and configuring new
software and hardware tools.
▪ Attending meetings with colleagues, customers,
and supervisors.
▪ Archiving software or readying it for distribution.
40
Software Standards

▪ ISO ➔ International Organization


for Standardization.
▪ ACM ➔ Association for Computing
Machinery.
▪ IEEE ➔ Institute of Electrical and
Electronics Engineers.
▪ DOD ➔ The U.S. Department of Defence.
41
ISO 9000 Standard

▪ ISO (International Organization for


Standardization) 9000 is a generic, worldwide
standard for quality improvement.
▪ The standard, which collectively is described in five
standards (ISO 9000 through ISO 9004), was
designed to be applied in a wide variety of
manufacturing environments.
42
ISO 9000 Standard

▪ ISO released the 9000-3 quality guidelines in 1997


to help organizations apply the ISO 9001 (1994)
requirements to computer software.
▪ ISO 9000-3 is essentially an expanded version of ISO
9001 with added narrative to encompass software.
▪ The ISO standards help companies create a quality
environment.
43
ISO 9000
Standard

44
Case Studies

A mental health care iLearn: a digital


A personal insulin A wilderness
patient management learning
pump weather station
system environment
• An embedded • Mentcare. A system • A data collection • A system to support
system in an insulin used to maintain system that collects learning in schools.
pump used by records of people data about weather
diabetics to receiving care for conditions in
maintain blood mental health remote areas.
glucose control. problems.

45
▪ Collects data from a blood sugar
sensor and calculates the
required amount of insulin.
Insulin ▪ Sends signals to a micro-pump to
deliver the correct dose of
Pump insulin.
Control ▪ Safety-critical system:

System Low blood sugars can lead to


brain malfunctioning, coma and
death; high blood sugar levels
have long-term consequences
such as kidney damage.

46
Insulin Pump
Hardware Architecture

47
Activity Model
of the Insulin Pump

48
▪ The system shall be available to
deliver insulin when required.
▪ The system shall perform
Essential reliably and deliver the correct
amount of insulin to counteract
High-Level
the current level of blood sugar.
Requirements
▪ The system must therefore be
designed and implemented to
ensure that the system always
meets these requirements.
49
▪ Prepare a proposal for a
Next Week
software project according
Assignment
to the template provided.

50
MCQs & ▪ [ Link 1 ]

Answers ▪ [ Link 2 ]

51
References
[1] Ian Sommerville, Software Engineering, 10th Edition, Pearson Education
Limited. [Textbook]
[2] RAJIB MALL, Fundamentals of Software Engineering, 5th Edition, PHI Learning
Private Limited, Delhi.
[3] Roger S. Pressman and Bruce R. Maxim, Software Engineering: A Practitioner’s
Approach, 8th Edition, McGraw-Hill Education.
[4] Rod Stephens, Beginning Software Engineering, John Wiley & Sons, Inc.
[5] B. B. Agarwal, Software Engineering & Testing, Jones and Bartlett Publishers,
LLC.
[6] Pankaj Jalote, A Concise Introduction to Software Engineering, Springer-Verlag
London Limited.
[7] Phillip A. Laplante, What Every Engineer Should Know About Software
Engineering, Taylor & Francis Group, LLC.
[8] Pankaj Jalote, An Integrated Approach to Software Engineering, 3rd Edition,
Springer Science, Inc.
52

You might also like