SlideShare a Scribd company logo
1 of 49
Download to read offline
1
‫ر‬َ‫ـد‬ْ‫ق‬‫ِـ‬‫ن‬،،،‫لما‬‫اننا‬ ‫نصدق‬ْْ‫ق‬ِ‫ن‬‫ر‬َ‫د‬
Faculty of Engineering - Helwan University
2
 Introduction to Software
 Introduction to Software Engineering
 Software Components
 Software Process
 Classification of Programming Techniques
3
4
 Definition of Software:
 Software includes
• Computer programs (Instructions) that when executed
provide desired functions and performance.
• Data structures that enable the programs to adequately
manipulate information.
• Documents that describe the operation and use of the
programs.
 Software is ~10x more expensive to produce than a
computer program [Brooks75]
5
 Computer software has become a driving force.
 It is the engine that drives business decision making.
 It serves as the basis for modern scientific investigation
and engineering problem-solving.
 It is embedded in all kinds of systems, such as
transportation, medical, telecommunications, military,
industrial processes, entertainment, office products, etc.
6
 Computer software is often divided into two categories:
7
 Software is classified into the following two classes:
 Generic Software.
• Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
• Examples – PC software such as graphics programs, project
management tools; CAD software; software for specific
markets such as appointments systems for dentists.
 Customized Software.
• Software that is commissioned by a specific customer to
meet their own needs.
• Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
8
9
10
 Software Engineering is a discipline whose aim is the
production of fault free software that satisfies the
user’s needs and that is delivered on time and within
budget
 Software Engineering is a collection of techniques,
methodologies and tools that help with the production
of A high quality software system developed with a
given budget before a given deadline while change
occurs
11
 The software crisis has been with us since the 1970s. As
per the latest IBM report,
 “31% of the projects get cancelled before they are
completed,
 53% over-run their cost-estimates by an average of 189% ,
 and for every 100 projects, there are 94 restarts.”
12
 Size: large
 User is not the developer
 Lifespan: long (no ageing)
 Cost: development + operation/maintenance
13
 Kitchen table: 5-10 components
 Bicycle: 20-100 components
 Car: 30.000 parts/components
 Airplane: 100.000 parts/components.
 Cell phone Software, printer driver Software : 1M Lines
of code
 Cellular network Software, operating system: several
Millions
14
 Windows 7 about 50 millions lines of code.
 http://answers.yahoo.com/question/index?qid=20080712132328
AAwyert
 An Android operating system in a smart phone consists
of 12 million lines of code.
 https://docs.google.com/viewer?url=http%3A%2F%2Fwww.rttonli
ne.co
 Boeing’s new 787 Dreamliner requires about 6.5 million
lines of software code to operate its avionics and
onboard support systems.
 http://spectrum.ieee.org/green-tech/advanced-cars/this-car-
runs-on-co
15
 Software engineering helps to reduce the programming
complexity.
 software products have to easy to
 Alter  Debug  Enhance
 Use resources optimally  Meet the user requirements.
 Software engineering principles use two important techniques
to deal with Complexity (reduce problem complexity):
 Abstraction.
 Decomposition
Increase in development time
and effort with problem size
16
A hierarchy of abstraction
17
Decomposition of a large problem into a set of smaller problems
18
 Programs
 are developed by individuals for their personal use
 are Small in size
 have limited functionality
 the programmer himself is the sole user
 a single developer is involved
 the user interface may not be very important
 very little documentation is expected
 can be developed according to the programmer’s
individual style of development
19
 Software is described by
 Its capabilities
• Functions it executes.
• Features it provides.
• Facilities it offers.
 The platform specifications that are required to run it.
• Certain hardware
• Certain operating system
20
 Maintainability: software should be written in such a
way that it may evolve to meet the changing needs of
customer.
 Dependability: software dependability has a range of
characteristics, including reliability, security and
safety.
 Efficiency: efficiency includes responsiveness,
processing time, memory utilization etc…
 Usability: it should have an appropriate user interface
and adequate documentation.
21
 Software is free
 a medium sized project with 50.000 LOC costs between
$400.000 to $1.600.000 in personnel
 Software is soft
 Changing it is difficult and costly than hardware.
 Cost of maintenance > cost of development.
 Maintenance becomes impossible at a certain point
 Software is produced
 Software is not mass produced (like machines)
 Software is developed
 Software ages
 Failures do not occur due to material fatigue (as with hardware)
but due to the execution of logical faults
 Software changes due to requirements changes, platform
changes.
22
 Programming skill not enough
 Software engineering involves "programming-in the–
large"
 Understand requirements and write specifications
• Derive models and reason about them
 Master software
 Operate at various abstraction levels
 Member of a team
• Communication skills
• Management skills
23
 The job of software engineers is to
 produce quality products
 produce them on schedule
 and do this work for the planned costs
 In this class I hope we will learn some of this
 You will also need a lot of practice!!
24
 Software costs often dominate computer system costs.
The costs of software on a PC are often greater than the
hardware cost.
 Software costs more to maintain than it does to
develop. For systems with a long life, maintenance costs
may be several times development costs.
25
26
 A software component is a system element offering a
predefined service and is able to communicate with
other components.
 The Software component shall be
 Multiple-use
 Non-context-specific
 Compassable with other components
 Encapsulated, i.e., non-investigable through its interfaces
 A unit of independent deployment and versioning
27
 The component needs
 to be fully documented.
 to be more thoroughly tested.
 to have robust input validity checking.
 to pass back useful error messages as appropriate.
 to be built with an awareness that it will be put to
unforeseen uses.
 a mechanism for compensating developers who invest the
(substantial) effort implied above.
28
29
 For success in large software development, It is
important to follow an Engineering approach, consisting
of a well-defined process.
 A process: is a series of steps involving activities,
constraints, and resources that produce an intended
output of some kind.
 A process involves a set of tools and techniques.
 A software process: is the related set of activities and
processes that are involved in developing and evolving a
software system.
 A Software process: deals with both technical and
management issues.
30
 Process: activities, people, tools
 Products: documents, data, code.
 The quality of the product depends on the quality of the
process
Process
Product
31
 Software specifications: The functionality of the
software and constraints on its operation must be
defined.
 Software development: Software that meets the
specifications must be produced.
 Software validation: The software must be validated to
ensure that it does what the customer wants.
 Software evolution: The software must evolve to meet
changing customer needs.
32
33
 Unstructured programming. [use of GOTO ]
 Procedural programming.
 Modular programming.
 Object-oriented programming.
34
 Structured programs are easier to
 easier to read and understand.
 easier to maintain.
 require less effort and time for development.
 easier debugging and usually fewer errors are made in the
course of writing such programs.
35
 Assembly language.
 High-level language programming. (FORTRAN, ALGOL,
and COBOL )
 Control flow structure design, and the use of "GOTO"
statement  Jump.
 Control flow structure design, and the use of (selection,
sequence and iteration)
 Data structure-oriented design.
 Data flow-oriented design technique.
 Object-oriented design.
36
 Exploratory software development style is based on
error correction
 developing a working system as quickly as possible and
then successively modifying it until it performed
satisfactorily.
 The software engineering principles are primarily based
on error prevention
37
38
 A personal insulin pump
 An embedded system in an insulin pump used by diabetics
to maintain blood glucose control.
 A mental health case patient management system
 A system used to maintain records of people receiving care
for mental health problems.
39
 Collects data from a blood sugar sensor and calculates
the amount of insulin required to be injected.
 Calculation based on the rate of change of blood sugar
levels.
 Sends signals to a micro-pump to deliver the correct
dose of insulin.
 Safety-critical system as low blood sugars can lead to
brain malfunctioning, coma and death; high-blood sugar
levels have long-term consequences such as eye and
kidney damage.
40
Figure 1.4: Insulin pump hardware
41
Figure 1.5: Activity model of the insulin pump
42
 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 level
of blood sugar.
 The system must therefore be designed and
implemented to ensure that the system always meets
these requirements.
43
 A patient information system to support mental health
care is a medical information system that maintains
information about patients suffering from mental health
problems and the treatments that they have received.
 Most mental health patients do not require dedicated
hospital treatment but need to attend specialist clinics
regularly where they can meet a doctor who has
detailed knowledge of their problems.
 To make it easier for patients to attend, these clinics
are not just run in hospitals. They may also be held in
local medical practices or community centres.
44
 The MHC-PMS (Mental Health Care-Patient Management
System) is an information system that is intended for use
in clinics.
 It makes use of a centralized database of patient
information but has also been designed to run on a PC,
so that it may be accessed and used from sites that do
not have secure network connectivity.
 When the local systems have secure network access,
they use patient information in the database but they
can download and use local copies of patient records
when they are disconnected.
45
 To generate management information that allows health
service managers to assess performance against local
and government targets.
 To provide medical staff with timely information to
support the treatment of patients.
46
Figure 1.6: The organization of the MHC-PMS
47
 Individual care management
 Clinicians can create records for patients, edit the
information in the system, view patient history, etc. The
system supports data summaries so that doctors can
quickly learn about the key problems and treatments that
have been prescribed.
 Patient monitoring
 The system monitors the records of patients that are
involved in treatment and issues warnings if possible
problems are detected.
 Administrative reporting
 The system generates monthly management reports
showing the number of patients treated at each clinic, the
number of patients who have entered and left the care
system, number of patients sectioned, the drugs
prescribed and their costs, etc.
48
 Privacy
 It is essential that patient information is confidential and
is never disclosed to anyone apart from authorised medical
staff and the patient themselves.
 Safety
 Some mental illnesses cause patients to become suicidal or
a danger to other people. Wherever possible, the system
should warn medical staff about potentially suicidal or
dangerous patients.
 The system must be available when needed otherwise
safety may be compromised and it may be impossible to
prescribe the correct medication to patients.
49

More Related Content

What's hot

Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9Ian Sommerville
 
10. Software testing overview
10. Software testing overview10. Software testing overview
10. Software testing overviewghayour abbas
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9Ian Sommerville
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9Ian Sommerville
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9Ian Sommerville
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineeringMohammed Romi
 
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Dhivyaa C.R
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model arvind pandey
 
Ch20-Software Engineering 9
Ch20-Software Engineering 9Ch20-Software Engineering 9
Ch20-Software Engineering 9Ian Sommerville
 
Ch15-Software Engineering 9
Ch15-Software Engineering 9Ch15-Software Engineering 9
Ch15-Software Engineering 9Ian Sommerville
 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsMuhammadTalha436
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentationbit allahabad
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
 
SE18_Lec 04_Requirements Analysis and Specification
SE18_Lec 04_Requirements Analysis and SpecificationSE18_Lec 04_Requirements Analysis and Specification
SE18_Lec 04_Requirements Analysis and SpecificationAmr E. Mohamed
 

What's hot (20)

Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9
 
Ch7
Ch7Ch7
Ch7
 
10. Software testing overview
10. Software testing overview10. Software testing overview
10. Software testing overview
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineering
 
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
 
Ch20-Software Engineering 9
Ch20-Software Engineering 9Ch20-Software Engineering 9
Ch20-Software Engineering 9
 
Ch15-Software Engineering 9
Ch15-Software Engineering 9Ch15-Software Engineering 9
Ch15-Software Engineering 9
 
A2
A2A2
A2
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentation
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
SE18_Lec 04_Requirements Analysis and Specification
SE18_Lec 04_Requirements Analysis and SpecificationSE18_Lec 04_Requirements Analysis and Specification
SE18_Lec 04_Requirements Analysis and Specification
 

Similar to SE18_Lec 01_Introduction to Software Engineering

Similar to SE18_Lec 01_Introduction to Software Engineering (20)

SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
SE
SESE
SE
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
 
Chapter_01.ppt
Chapter_01.pptChapter_01.ppt
Chapter_01.ppt
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SE UNIT-1.pptx
SE UNIT-1.pptxSE UNIT-1.pptx
SE UNIT-1.pptx
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptx
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
Software Engineering _ Introduction
Software Engineering _ IntroductionSoftware Engineering _ Introduction
Software Engineering _ Introduction
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 

More from Amr E. Mohamed

Dsp 2018 foehu - lec 10 - multi-rate digital signal processing
Dsp 2018 foehu - lec 10 - multi-rate digital signal processingDsp 2018 foehu - lec 10 - multi-rate digital signal processing
Dsp 2018 foehu - lec 10 - multi-rate digital signal processingAmr E. Mohamed
 
Dcs lec03 - z-analysis of discrete time control systems
Dcs   lec03 - z-analysis of discrete time control systemsDcs   lec03 - z-analysis of discrete time control systems
Dcs lec03 - z-analysis of discrete time control systemsAmr E. Mohamed
 
Dcs lec02 - z-transform
Dcs   lec02 - z-transformDcs   lec02 - z-transform
Dcs lec02 - z-transformAmr E. Mohamed
 
Dcs lec01 - introduction to discrete-time control systems
Dcs   lec01 - introduction to discrete-time control systemsDcs   lec01 - introduction to discrete-time control systems
Dcs lec01 - introduction to discrete-time control systemsAmr E. Mohamed
 
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing ApplicationsDDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing ApplicationsAmr E. Mohamed
 
DSP_2018_FOEHU - Lec 07 - IIR Filter Design
DSP_2018_FOEHU - Lec 07 - IIR Filter DesignDSP_2018_FOEHU - Lec 07 - IIR Filter Design
DSP_2018_FOEHU - Lec 07 - IIR Filter DesignAmr E. Mohamed
 
DSP_2018_FOEHU - Lec 06 - FIR Filter Design
DSP_2018_FOEHU - Lec 06 - FIR Filter DesignDSP_2018_FOEHU - Lec 06 - FIR Filter Design
DSP_2018_FOEHU - Lec 06 - FIR Filter DesignAmr E. Mohamed
 
SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsAmr E. Mohamed
 
SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)Amr E. Mohamed
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsAmr E. Mohamed
 
Selenium - Introduction
Selenium - IntroductionSelenium - Introduction
Selenium - IntroductionAmr E. Mohamed
 
SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)Amr E. Mohamed
 
SE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingSE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingAmr E. Mohamed
 
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier TransformDSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier TransformAmr E. Mohamed
 
DSP_2018_FOEHU - Lec 05 - Digital Filters
DSP_2018_FOEHU - Lec 05 - Digital FiltersDSP_2018_FOEHU - Lec 05 - Digital Filters
DSP_2018_FOEHU - Lec 05 - Digital FiltersAmr E. Mohamed
 
DSP_2018_FOEHU - Lec 04 - The z-Transform
DSP_2018_FOEHU - Lec 04 - The z-TransformDSP_2018_FOEHU - Lec 04 - The z-Transform
DSP_2018_FOEHU - Lec 04 - The z-TransformAmr E. Mohamed
 
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and SystemsDSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and SystemsAmr E. Mohamed
 
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time SignalsDSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time SignalsAmr E. Mohamed
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignAmr E. Mohamed
 

More from Amr E. Mohamed (20)

Dsp 2018 foehu - lec 10 - multi-rate digital signal processing
Dsp 2018 foehu - lec 10 - multi-rate digital signal processingDsp 2018 foehu - lec 10 - multi-rate digital signal processing
Dsp 2018 foehu - lec 10 - multi-rate digital signal processing
 
Dcs lec03 - z-analysis of discrete time control systems
Dcs   lec03 - z-analysis of discrete time control systemsDcs   lec03 - z-analysis of discrete time control systems
Dcs lec03 - z-analysis of discrete time control systems
 
Dcs lec02 - z-transform
Dcs   lec02 - z-transformDcs   lec02 - z-transform
Dcs lec02 - z-transform
 
Dcs lec01 - introduction to discrete-time control systems
Dcs   lec01 - introduction to discrete-time control systemsDcs   lec01 - introduction to discrete-time control systems
Dcs lec01 - introduction to discrete-time control systems
 
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing ApplicationsDDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
 
DSP_2018_FOEHU - Lec 07 - IIR Filter Design
DSP_2018_FOEHU - Lec 07 - IIR Filter DesignDSP_2018_FOEHU - Lec 07 - IIR Filter Design
DSP_2018_FOEHU - Lec 07 - IIR Filter Design
 
DSP_2018_FOEHU - Lec 06 - FIR Filter Design
DSP_2018_FOEHU - Lec 06 - FIR Filter DesignDSP_2018_FOEHU - Lec 06 - FIR Filter Design
DSP_2018_FOEHU - Lec 06 - FIR Filter Design
 
SE2018_Lec 17_ Coding
SE2018_Lec 17_ CodingSE2018_Lec 17_ Coding
SE2018_Lec 17_ Coding
 
SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-Tools
 
SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
 
Selenium - Introduction
Selenium - IntroductionSelenium - Introduction
Selenium - Introduction
 
SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)
 
SE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingSE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software Testing
 
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier TransformDSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform
 
DSP_2018_FOEHU - Lec 05 - Digital Filters
DSP_2018_FOEHU - Lec 05 - Digital FiltersDSP_2018_FOEHU - Lec 05 - Digital Filters
DSP_2018_FOEHU - Lec 05 - Digital Filters
 
DSP_2018_FOEHU - Lec 04 - The z-Transform
DSP_2018_FOEHU - Lec 04 - The z-TransformDSP_2018_FOEHU - Lec 04 - The z-Transform
DSP_2018_FOEHU - Lec 04 - The z-Transform
 
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and SystemsDSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems
 
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time SignalsDSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software Design
 

Recently uploaded

Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 

Recently uploaded (20)

Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 

SE18_Lec 01_Introduction to Software Engineering

  • 2. 2  Introduction to Software  Introduction to Software Engineering  Software Components  Software Process  Classification of Programming Techniques
  • 3. 3
  • 4. 4  Definition of Software:  Software includes • Computer programs (Instructions) that when executed provide desired functions and performance. • Data structures that enable the programs to adequately manipulate information. • Documents that describe the operation and use of the programs.  Software is ~10x more expensive to produce than a computer program [Brooks75]
  • 5. 5  Computer software has become a driving force.  It is the engine that drives business decision making.  It serves as the basis for modern scientific investigation and engineering problem-solving.  It is embedded in all kinds of systems, such as transportation, medical, telecommunications, military, industrial processes, entertainment, office products, etc.
  • 6. 6  Computer software is often divided into two categories:
  • 7. 7  Software is classified into the following two classes:  Generic Software. • Stand-alone systems that are marketed and sold to any customer who wishes to buy them. • Examples – PC software such as graphics programs, project management tools; CAD software; software for specific markets such as appointments systems for dentists.  Customized Software. • Software that is commissioned by a specific customer to meet their own needs. • Examples – embedded control systems, air traffic control software, traffic monitoring systems.
  • 8. 8
  • 9. 9
  • 10. 10  Software Engineering is a discipline whose aim is the production of fault free software that satisfies the user’s needs and that is delivered on time and within budget  Software Engineering is a collection of techniques, methodologies and tools that help with the production of A high quality software system developed with a given budget before a given deadline while change occurs
  • 11. 11  The software crisis has been with us since the 1970s. As per the latest IBM report,  “31% of the projects get cancelled before they are completed,  53% over-run their cost-estimates by an average of 189% ,  and for every 100 projects, there are 94 restarts.”
  • 12. 12  Size: large  User is not the developer  Lifespan: long (no ageing)  Cost: development + operation/maintenance
  • 13. 13  Kitchen table: 5-10 components  Bicycle: 20-100 components  Car: 30.000 parts/components  Airplane: 100.000 parts/components.  Cell phone Software, printer driver Software : 1M Lines of code  Cellular network Software, operating system: several Millions
  • 14. 14  Windows 7 about 50 millions lines of code.  http://answers.yahoo.com/question/index?qid=20080712132328 AAwyert  An Android operating system in a smart phone consists of 12 million lines of code.  https://docs.google.com/viewer?url=http%3A%2F%2Fwww.rttonli ne.co  Boeing’s new 787 Dreamliner requires about 6.5 million lines of software code to operate its avionics and onboard support systems.  http://spectrum.ieee.org/green-tech/advanced-cars/this-car- runs-on-co
  • 15. 15  Software engineering helps to reduce the programming complexity.  software products have to easy to  Alter  Debug  Enhance  Use resources optimally  Meet the user requirements.  Software engineering principles use two important techniques to deal with Complexity (reduce problem complexity):  Abstraction.  Decomposition Increase in development time and effort with problem size
  • 16. 16 A hierarchy of abstraction
  • 17. 17 Decomposition of a large problem into a set of smaller problems
  • 18. 18  Programs  are developed by individuals for their personal use  are Small in size  have limited functionality  the programmer himself is the sole user  a single developer is involved  the user interface may not be very important  very little documentation is expected  can be developed according to the programmer’s individual style of development
  • 19. 19  Software is described by  Its capabilities • Functions it executes. • Features it provides. • Facilities it offers.  The platform specifications that are required to run it. • Certain hardware • Certain operating system
  • 20. 20  Maintainability: software should be written in such a way that it may evolve to meet the changing needs of customer.  Dependability: software dependability has a range of characteristics, including reliability, security and safety.  Efficiency: efficiency includes responsiveness, processing time, memory utilization etc…  Usability: it should have an appropriate user interface and adequate documentation.
  • 21. 21  Software is free  a medium sized project with 50.000 LOC costs between $400.000 to $1.600.000 in personnel  Software is soft  Changing it is difficult and costly than hardware.  Cost of maintenance > cost of development.  Maintenance becomes impossible at a certain point  Software is produced  Software is not mass produced (like machines)  Software is developed  Software ages  Failures do not occur due to material fatigue (as with hardware) but due to the execution of logical faults  Software changes due to requirements changes, platform changes.
  • 22. 22  Programming skill not enough  Software engineering involves "programming-in the– large"  Understand requirements and write specifications • Derive models and reason about them  Master software  Operate at various abstraction levels  Member of a team • Communication skills • Management skills
  • 23. 23  The job of software engineers is to  produce quality products  produce them on schedule  and do this work for the planned costs  In this class I hope we will learn some of this  You will also need a lot of practice!!
  • 24. 24  Software costs often dominate computer system costs. The costs of software on a PC are often greater than the hardware cost.  Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs.
  • 25. 25
  • 26. 26  A software component is a system element offering a predefined service and is able to communicate with other components.  The Software component shall be  Multiple-use  Non-context-specific  Compassable with other components  Encapsulated, i.e., non-investigable through its interfaces  A unit of independent deployment and versioning
  • 27. 27  The component needs  to be fully documented.  to be more thoroughly tested.  to have robust input validity checking.  to pass back useful error messages as appropriate.  to be built with an awareness that it will be put to unforeseen uses.  a mechanism for compensating developers who invest the (substantial) effort implied above.
  • 28. 28
  • 29. 29  For success in large software development, It is important to follow an Engineering approach, consisting of a well-defined process.  A process: is a series of steps involving activities, constraints, and resources that produce an intended output of some kind.  A process involves a set of tools and techniques.  A software process: is the related set of activities and processes that are involved in developing and evolving a software system.  A Software process: deals with both technical and management issues.
  • 30. 30  Process: activities, people, tools  Products: documents, data, code.  The quality of the product depends on the quality of the process Process Product
  • 31. 31  Software specifications: The functionality of the software and constraints on its operation must be defined.  Software development: Software that meets the specifications must be produced.  Software validation: The software must be validated to ensure that it does what the customer wants.  Software evolution: The software must evolve to meet changing customer needs.
  • 32. 32
  • 33. 33  Unstructured programming. [use of GOTO ]  Procedural programming.  Modular programming.  Object-oriented programming.
  • 34. 34  Structured programs are easier to  easier to read and understand.  easier to maintain.  require less effort and time for development.  easier debugging and usually fewer errors are made in the course of writing such programs.
  • 35. 35  Assembly language.  High-level language programming. (FORTRAN, ALGOL, and COBOL )  Control flow structure design, and the use of "GOTO" statement  Jump.  Control flow structure design, and the use of (selection, sequence and iteration)  Data structure-oriented design.  Data flow-oriented design technique.  Object-oriented design.
  • 36. 36  Exploratory software development style is based on error correction  developing a working system as quickly as possible and then successively modifying it until it performed satisfactorily.  The software engineering principles are primarily based on error prevention
  • 37. 37
  • 38. 38  A personal insulin pump  An embedded system in an insulin pump used by diabetics to maintain blood glucose control.  A mental health case patient management system  A system used to maintain records of people receiving care for mental health problems.
  • 39. 39  Collects data from a blood sugar sensor and calculates the amount of insulin required to be injected.  Calculation based on the rate of change of blood sugar levels.  Sends signals to a micro-pump to deliver the correct dose of insulin.  Safety-critical system as low blood sugars can lead to brain malfunctioning, coma and death; high-blood sugar levels have long-term consequences such as eye and kidney damage.
  • 40. 40 Figure 1.4: Insulin pump hardware
  • 41. 41 Figure 1.5: Activity model of the insulin pump
  • 42. 42  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 level of blood sugar.  The system must therefore be designed and implemented to ensure that the system always meets these requirements.
  • 43. 43  A patient information system to support mental health care is a medical information system that maintains information about patients suffering from mental health problems and the treatments that they have received.  Most mental health patients do not require dedicated hospital treatment but need to attend specialist clinics regularly where they can meet a doctor who has detailed knowledge of their problems.  To make it easier for patients to attend, these clinics are not just run in hospitals. They may also be held in local medical practices or community centres.
  • 44. 44  The MHC-PMS (Mental Health Care-Patient Management System) is an information system that is intended for use in clinics.  It makes use of a centralized database of patient information but has also been designed to run on a PC, so that it may be accessed and used from sites that do not have secure network connectivity.  When the local systems have secure network access, they use patient information in the database but they can download and use local copies of patient records when they are disconnected.
  • 45. 45  To generate management information that allows health service managers to assess performance against local and government targets.  To provide medical staff with timely information to support the treatment of patients.
  • 46. 46 Figure 1.6: The organization of the MHC-PMS
  • 47. 47  Individual care management  Clinicians can create records for patients, edit the information in the system, view patient history, etc. The system supports data summaries so that doctors can quickly learn about the key problems and treatments that have been prescribed.  Patient monitoring  The system monitors the records of patients that are involved in treatment and issues warnings if possible problems are detected.  Administrative reporting  The system generates monthly management reports showing the number of patients treated at each clinic, the number of patients who have entered and left the care system, number of patients sectioned, the drugs prescribed and their costs, etc.
  • 48. 48  Privacy  It is essential that patient information is confidential and is never disclosed to anyone apart from authorised medical staff and the patient themselves.  Safety  Some mental illnesses cause patients to become suicidal or a danger to other people. Wherever possible, the system should warn medical staff about potentially suicidal or dangerous patients.  The system must be available when needed otherwise safety may be compromised and it may be impossible to prescribe the correct medication to patients.
  • 49. 49