Ch1_Introduction
Ch1_Introduction
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.
9
Grading Scheme
▪ Quizzes 15%
▪ Attendance 5%
Chapter 1 Software
Engineering
11
Topics Covered
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
▪ 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.
22
Systems Engineering
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
35
Software Quality Attributes
37
How do Software Engineers
Spend their Time on the Job ?
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
44
Case Studies
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:
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