SlideShare a Scribd company logo
1 of 85
Software Engineering ,[object Object],[object Object],http://www.robots.ox.ac.uk/~ian/Teaching/SoftEng
Software Engineering vs structured programming ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Learning Outcomes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Texts ,[object Object],[object Object],[object Object],[object Object],[object Object]
The Role of Computing in Engineering ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],some examples…
Example: mobile phone ,[object Object],[object Object],[object Object],[object Object]
Example: Sizewell B ,[object Object],[object Object],[object Object],[object Object]
Example: A380 ,[object Object],[object Object],[object Object],[object Object]
Example: NPfIT ,[object Object],[object Object],[object Object],[object Object],[object Object]
Software engineering versus programming ,[object Object],[object Object],[object Object],[object Object],[object Object]
Software vs “other” engineering ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Abstraction:  free-body diagram
Modularity: Op-amp buffer ,[object Object],[object Object],[object Object],+ - In Out
Software vs “other” engineering ,[object Object],[object Object],[object Object],[object Object]
Intrinsic difficulties with software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
When software projects go wrong ,[object Object]
When software projects go wrong ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NHS National programme for IT: NPfIT ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Software life-cycle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Requirements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Validation/Verification ,[object Object],[object Object],[object Object],[object Object],[object Object]
Extreme programming (XP) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Top down design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modular design ,[object Object],[object Object],Algorithms Data structures Programs
Structured programming ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Simple design tools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Data flows ,[object Object],[object Object],Controller Simulator Display state state thrust
Simple design tools ,[object Object]
Basic coding techniques ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementation in Matlab and C N= 10; tot = 0; totsq = 0; for i=1:N tot = tot+i; totsq = totsq+i^2; end tot totsq int i; int tot = 0; int totsq = 0; for (i=1; i<N; i++) { tot += i; totsq += i*i; } cout << tot << endl; cout << totsq << endl;
Notes on coding style ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Matlab vs C ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Procedural programming ,[object Object],[object Object],[object Object],[object Object],[object Object]
Organisation of Matlab programs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Matlab file organisation bar FUNC.m foo.m bar.m FUNC foo
Organisation of C programs Source code .c  .cc Object file .o compilation Source code .c  .cc Object file .o compilation … .. … .. linking executable
Functions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Function definition % compute factorial  function z = fact(n) % function body z = 1; for i=1:n z = z*i; end // compute factorial int fact(int n) { int i, val = 1; for (i=1; i<=n; i++) { val *= i; } return val; }
Function call ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],fact(10) a = 6; z = fact(a); [V,D] = eig(A);
Function prototype ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Scope: local variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Scope: global variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Encapsulation ,[object Object],[object Object],[object Object],[object Object]
Function encapsulation Input parameters Output values Hidden input Input parameters Output values Hidden output
Side-effects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Low-level implementation of function call Memory CODE DATA machine code global variables STACK local variable m local variable 1 return location return value n return value 1 parameter x parameter 1 … … … Activation   record
Pass by value/reference int i=5, j=10; swap(i,j); cout << i << “ “ << j << endl; Pass by value Pass by reference void swap(int a, int b) { int temp = a; a = b; b = temp; return; } void swap(int& a, int& b) { int temp = a; a = b; b = temp; return; }
Recursion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Recursion example: factorial ,[object Object]
Data types and data structures ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],C/C++: struct and class Class definition Create a variable (an instance) of this type
Example:  VTOL state ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Controller Simulator Display state state thrust
Accessing class members ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Output parameters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arrays ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Multi-dimensional arrays ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Methods ,[object Object],[object Object],[object Object]
Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Constructor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Information hiding / encapsulation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
C++ program organisation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
C++ program organisation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Object-oriented programming ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inheritance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example class Window Data:   width, height posx, posy Methods:  raise(), hide() select(), iconify() class TextWindow Data:   cursor_x, cursor_y Methods:  redraw(), clear()  backspace(), delete() class GraphicsWindow Data:   background_colour Methods:  redraw(), clear() fill() class InteractiveGraphicsWindow Data: Methods:  MouseClick(), MouseDrag()
Polymorphism ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object]
Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Another example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Templates ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Templates ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Design patterns ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Standard Template Library ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
STL example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],#include<vector> int main() { std::vector<int> v; for (int i=0; i<20; i++) v.push_back(i); for (int i=0; i<v.size(); i++) std::cout << v[i] << std::endl; }
STL, continued ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
STL, continued ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Iterators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Complete example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Design data structures ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cell class interface ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Maze class interface ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Main program ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Concept summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsHenry Muccini
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionHenry Muccini
 
Computer Oraganisation and Architecture
Computer Oraganisation and ArchitectureComputer Oraganisation and Architecture
Computer Oraganisation and Architectureyogesh1617
 
Integrating profiling into mde compilers
Integrating profiling into mde compilersIntegrating profiling into mde compilers
Integrating profiling into mde compilersijseajournal
 
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENTTHE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENTijseajournal
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...IJSEA
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?Henry Muccini
 
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONSTATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONijseajournal
 
Introduction to networks simulation
Introduction to networks simulationIntroduction to networks simulation
Introduction to networks simulationahmed L. Khalaf
 
Is There a Return on Investment from Model-Based Systems Engineering?
Is There a Return on Investment from Model-Based Systems Engineering?Is There a Return on Investment from Model-Based Systems Engineering?
Is There a Return on Investment from Model-Based Systems Engineering?Elizabeth Steiner
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...University of l'aquila
 
Program design and problem solving techniques
Program design and problem solving techniquesProgram design and problem solving techniques
Program design and problem solving techniquesDokka Srinivasu
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Neelamani Samal
 
A tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systemsA tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systemsijseajournal
 
COCOMO methods for software size estimation
COCOMO methods for software size estimationCOCOMO methods for software size estimation
COCOMO methods for software size estimationPramod Parajuli
 

What's hot (20)

The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture Descriptions
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the Abstraction
 
Computer Oraganisation and Architecture
Computer Oraganisation and ArchitectureComputer Oraganisation and Architecture
Computer Oraganisation and Architecture
 
Integrating profiling into mde compilers
Integrating profiling into mde compilersIntegrating profiling into mde compilers
Integrating profiling into mde compilers
 
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENTTHE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?
 
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONSTATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
 
Introduction to networks simulation
Introduction to networks simulationIntroduction to networks simulation
Introduction to networks simulation
 
01_Program
01_Program01_Program
01_Program
 
Is There a Return on Investment from Model-Based Systems Engineering?
Is There a Return on Investment from Model-Based Systems Engineering?Is There a Return on Investment from Model-Based Systems Engineering?
Is There a Return on Investment from Model-Based Systems Engineering?
 
Looking Forwards to Going Backwards
Looking Forwards to Going BackwardsLooking Forwards to Going Backwards
Looking Forwards to Going Backwards
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...
 
Programming and problem solving with c++, 3rd edition
Programming and problem solving with c++, 3rd editionProgramming and problem solving with c++, 3rd edition
Programming and problem solving with c++, 3rd edition
 
Software concepts ppt
Software concepts pptSoftware concepts ppt
Software concepts ppt
 
Program design and problem solving techniques
Program design and problem solving techniquesProgram design and problem solving techniques
Program design and problem solving techniques
 
J044084349
J044084349J044084349
J044084349
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012
 
A tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systemsA tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systems
 
COCOMO methods for software size estimation
COCOMO methods for software size estimationCOCOMO methods for software size estimation
COCOMO methods for software size estimation
 

Viewers also liked

Aansprakelijkheid van de zzp-er
Aansprakelijkheid van de zzp-erAansprakelijkheid van de zzp-er
Aansprakelijkheid van de zzp-erHöcker Advocaten
 
A2 advanced portfolio_production_diary_template
A2 advanced portfolio_production_diary_templateA2 advanced portfolio_production_diary_template
A2 advanced portfolio_production_diary_templateOliviaLyons
 
Reservoir Project - Digibiz 2009, M.Lindner
Reservoir Project - Digibiz 2009, M.LindnerReservoir Project - Digibiz 2009, M.Lindner
Reservoir Project - Digibiz 2009, M.LindnerDigibiz'09 Conference
 
Sportrons overview
Sportrons overviewSportrons overview
Sportrons overviewChase Daddy
 
Mapa research brochure-swe-sharedealing-dashboard
Mapa research brochure-swe-sharedealing-dashboardMapa research brochure-swe-sharedealing-dashboard
Mapa research brochure-swe-sharedealing-dashboardMapa International Limited
 
Social media-101-presentation
Social media-101-presentationSocial media-101-presentation
Social media-101-presentationaja1973
 

Viewers also liked (8)

Aansprakelijkheid van de zzp-er
Aansprakelijkheid van de zzp-erAansprakelijkheid van de zzp-er
Aansprakelijkheid van de zzp-er
 
A2 advanced portfolio_production_diary_template
A2 advanced portfolio_production_diary_templateA2 advanced portfolio_production_diary_template
A2 advanced portfolio_production_diary_template
 
Reservoir Project - Digibiz 2009, M.Lindner
Reservoir Project - Digibiz 2009, M.LindnerReservoir Project - Digibiz 2009, M.Lindner
Reservoir Project - Digibiz 2009, M.Lindner
 
Sportrons overview
Sportrons overviewSportrons overview
Sportrons overview
 
Tutorial Passaporte
Tutorial PassaporteTutorial Passaporte
Tutorial Passaporte
 
Mapa research brochure-swe-sharedealing-dashboard
Mapa research brochure-swe-sharedealing-dashboardMapa research brochure-swe-sharedealing-dashboard
Mapa research brochure-swe-sharedealing-dashboard
 
4squares
4squares4squares
4squares
 
Social media-101-presentation
Social media-101-presentationSocial media-101-presentation
Social media-101-presentation
 

Similar to Software Engineering Course Covers Structured Programming, Object Orientation

Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementationthe_wumberlog
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: OverviewGeoffrey Fox
 
The Concurrency Challenge : Notes
The Concurrency Challenge : NotesThe Concurrency Challenge : Notes
The Concurrency Challenge : NotesSubhajit Sahu
 
Management of Complexity in System Design of Large IT Solutions
Management of Complexity in System Design of Large IT SolutionsManagement of Complexity in System Design of Large IT Solutions
Management of Complexity in System Design of Large IT SolutionsMichael Heiss
 
Software engineering
Software engineeringSoftware engineering
Software engineeringRohan Bhatkar
 
Mit104 software engineering
Mit104  software engineeringMit104  software engineering
Mit104 software engineeringsmumbahelp
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Designlbergmans
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentJignesh Patel
 
Programming in c++
Programming in c++Programming in c++
Programming in c++MalarMohana
 
Programming in c++
Programming in c++Programming in c++
Programming in c++sujathavvv
 
5.7 Parallel Processing - Reactive Programming.pdf.pptx
5.7 Parallel Processing - Reactive Programming.pdf.pptx5.7 Parallel Processing - Reactive Programming.pdf.pptx
5.7 Parallel Processing - Reactive Programming.pdf.pptxMohamedBilal73
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentPersistent Systems Ltd.
 
Design poo my_jug_en_ppt
Design poo my_jug_en_pptDesign poo my_jug_en_ppt
Design poo my_jug_en_pptagnes_crepet
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 

Similar to Software Engineering Course Covers Structured Programming, Object Orientation (20)

Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: Overview
 
The Concurrency Challenge : Notes
The Concurrency Challenge : NotesThe Concurrency Challenge : Notes
The Concurrency Challenge : Notes
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Management of Complexity in System Design of Large IT Solutions
Management of Complexity in System Design of Large IT SolutionsManagement of Complexity in System Design of Large IT Solutions
Management of Complexity in System Design of Large IT Solutions
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Beekman5 std ppt_13
Beekman5 std ppt_13Beekman5 std ppt_13
Beekman5 std ppt_13
 
Mit104 software engineering
Mit104  software engineeringMit104  software engineering
Mit104 software engineering
 
01 the big_idea
01 the big_idea01 the big_idea
01 the big_idea
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Design
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Programming in c++
Programming in c++Programming in c++
Programming in c++
 
Programming in c++
Programming in c++Programming in c++
Programming in c++
 
5.7 Parallel Processing - Reactive Programming.pdf.pptx
5.7 Parallel Processing - Reactive Programming.pdf.pptx5.7 Parallel Processing - Reactive Programming.pdf.pptx
5.7 Parallel Processing - Reactive Programming.pdf.pptx
 
Hardware-Software Codesign
Hardware-Software CodesignHardware-Software Codesign
Hardware-Software Codesign
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
Computers in management
Computers in managementComputers in management
Computers in management
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@Persistent
 
Design poo my_jug_en_ppt
Design poo my_jug_en_pptDesign poo my_jug_en_ppt
Design poo my_jug_en_ppt
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 

Software Engineering Course Covers Structured Programming, Object Orientation

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. Implementation in Matlab and C N= 10; tot = 0; totsq = 0; for i=1:N tot = tot+i; totsq = totsq+i^2; end tot totsq int i; int tot = 0; int totsq = 0; for (i=1; i<N; i++) { tot += i; totsq += i*i; } cout << tot << endl; cout << totsq << endl;
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. Matlab file organisation bar FUNC.m foo.m bar.m FUNC foo
  • 36. Organisation of C programs Source code .c .cc Object file .o compilation Source code .c .cc Object file .o compilation … .. … .. linking executable
  • 37.
  • 38. Function definition % compute factorial function z = fact(n) % function body z = 1; for i=1:n z = z*i; end // compute factorial int fact(int n) { int i, val = 1; for (i=1; i<=n; i++) { val *= i; } return val; }
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. Function encapsulation Input parameters Output values Hidden input Input parameters Output values Hidden output
  • 45.
  • 46. Low-level implementation of function call Memory CODE DATA machine code global variables STACK local variable m local variable 1 return location return value n return value 1 parameter x parameter 1 … … … Activation record
  • 47. Pass by value/reference int i=5, j=10; swap(i,j); cout << i << “ “ << j << endl; Pass by value Pass by reference void swap(int a, int b) { int temp = a; a = b; b = temp; return; } void swap(int& a, int& b) { int temp = a; a = b; b = temp; return; }
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67. Example class Window Data: width, height posx, posy Methods: raise(), hide() select(), iconify() class TextWindow Data: cursor_x, cursor_y Methods: redraw(), clear() backspace(), delete() class GraphicsWindow Data: background_colour Methods: redraw(), clear() fill() class InteractiveGraphicsWindow Data: Methods: MouseClick(), MouseDrag()
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.