SlideShare a Scribd company logo
1 of 38
Download to read offline
1
‫ر‬َ‫ـد‬ْ‫ق‬‫ِـ‬‫ن‬،،،‫لما‬‫اننا‬ ‫نصدق‬ْْ‫ق‬ِ‫ن‬‫ر‬َ‫د‬
Faculty of Engineering - Helwan University
2
 System development refers to all activities that go into
producing information system solution.
 System development activities consist of system
analysis, modeling, design, implementation, testing and
maintenance.
 Object-Oriented (OO) systems development is a way to
develop software by building self-contained modules
that can be more easily:
 Replaced
 Modified
 and Reused.
3
 A software system is a set of mechanism for performing
certain action on certain data.
Algorithm + Data structure = Program
4
 The code is subdivided into modules
 Each module is made of procedures and data structures
 Procedures operate on data, e.g. modifying them
 e.g. the “C” programming language
 There is no strong connection between procedures
 Every procedure may possibly access any data and modify
it and data
5
 OO approach is more like creating a lot of helpers that
take on an active role, a spirit, that form a community
whose interactions become the application.
 Models the problem to be solved as a set of interacting
objects, each carrying its own state and exhibiting its
own behavior
 By separating concerns, this approach has proved to be
robust and useful to solve more complex programming
problems.
6
 The physical world is made of a set of objects that can
interact
 Each of them presents
 An identity (objects can be recognized)
 A state (objects remember their history)
 A behavior (objects react to external stimuli in a
predictable way)
7
 Faster development,
 Increased quality
 Raising the level of abstraction.
 It adapts to
 Changing requirements
 Easier to maintain
 More robust
 Promote greater design
 Code reuse
8
 Goals:
 Define Objects and classes
 Describe objects‘ methods, attributes and how objects
respond to messages,
 Define Polymorphism, Inheritance, data abstraction,
encapsulation, and protocol,
 Describe objects relationships,
 Describe object persistence.
 Understand meta-classes.
9
 The term object was first formally utilized in the Similar
language to simulate some aspect of reality.
 An object is an entity.
 It knows things (has attributes)
 It does things (provides services or has methods)
 Note:
 Attributes or properties represented by data type and
describe object‘s state (data)
 Methods define objects behavior and specify the way in
which an Object‘s data are manipulated.
10
 It Knows things (attributes)
 I am an Employee.
 I know my name, social security number and my address.
 Attributes
 I am a Car.
 I know my color,
 manufacturer, cost,
 owner and model.
 It does things (methods)
 I know how to compute my payroll.
11
 In an object-oriented system, everything is an object:
numbers, arrays, records, fields, files, forms, an
invoice, etc.
 An Object is anything, real or abstract, about which we
store data and those methods that manipulate the data.
 Conceptually, each object is responsible for itself.
 A window object is responsible for things like opening,
sizing, and closing itself.
12
 When developing an O-O application, two basic
questions always arise.
 What objects does the application need?
 What functionality should those objects have?
13
 Simple Name (written as UpperCase-first Noun)
 Path Name
14
 Represent named properties of a UML class
 UML class can have many attributes of different names
 Attribute name is generally a short noun or a noun
phrase written in lowerCase-first text
 Attribute declaration may include visibility, type and
initial value: +attributeName : type = initial-value
15
 Represent named services provided by a UML class
 UML class can have many operations of different
names
 Operation name is generally a short verb or a verb
phrase written in lowerCase-first text
 Operation may include visibility, parameters, and
return type: +opName(param1 : type = initial_value)
: return-type
16
 Three levels of class, attribute and operation visibility:
• private (-), available only to the current class
• protected (#), available to the current and inherited
classes
• public (+), available to the current and other classes
17
 Each class represents a set of objects that share the
same attributes, operations, relationships, and
semantics
 For each of the class attributes, objects can have
specific attribute values
 For each of the class operations, objects may have
different implementations
18
 Represent a relation between a parent (a more abstract
class) and a child (a more specific class)
 Generally referred to as a “is-a-kind-of” relationship
 Child objects may be used instead of parent objects
since they share attributes and operations; the opposite
is not true
19
 An object-oriented system organizes classes into
subclass-super hierarchy.
 At the top of the hierarchy are the most general classes
and at the bottom are the most specific
 A subclass inherits all of the properties and methods
(procedures) defined in its super class.
20
 Inheritance is a relationship between classes where one
class is the parent class of another (derived) class.
 Inheritance allows classes to share and reuse behaviors
and attributes.
 The real advantage of inheritance is that we can build
upon what we already have and,
 Reuse what we already have.
21
22
23
 OO systems permit a class to inherit from more than
one superclass.
24
 Information hiding is a principle of hiding internal data
and procedures of an object.
 By providing an interface to each object in such a way
as to reveal as little as possible about its inner
workings.
 Encapsulation protects the data from corruption.
25
 Objects perform operations in response to messages.
For example, you may communicate with your
computer by sending it a message from hand-help
controller.
26
 Consider a payroll program that processes employee
records at a small manufacturing firm. This company
has three types of employees:
 Managers: Receive a regular salary.
 Office Workers: Receive an hourly wage and are eligible
for overtime after 40 hours.
 Production Workers: Are paid according to a piece rate.
27
 Structured Approach
FOR EVERY EMPLOYEE DO
BEGIN
IF employee = manager THEN
CALL computeManagerSalary
IF employee = office worker THEN
CALL computeOfficeWorkerSalary
IF employee = production worker THEN
CALL computeProductionWorkerSalary
END
28
 OO Approach
29
 OO Approach
FOR EVERY EMPLOYEE DO
BEGIN
employee computePayroll
END
30
 Polymorphism means that the same operation may
behave differently on different classes.
 Example: computePayroll
31
 Link: model of logical or physical link between objects
32
 Relationship: descriptor of links
33
 Multiplicity: constraint on the min/max number of links
connected to an object
34
 The concept of association represents relationships
between objects and classes. For example a pilot can
fly planes
 Association can be binary, between two classes, or n-
ary, among more than two classes
 Can include association name, direction, role names,
multiplicity, and aggregation type
35
 Represent a specific, whole/part structural relationship
between class objects
 Composition [is entirely made of]: (closed diamond)
represents exclusive relationship between two class
objects (e.g., a faculty cannot exist without nor be a part
of more than one university)
 Aggregation [is part of]: (open diamond) represents
nonexclusive relationship between two class objects (e.g.,
a student is a part of one or more faculties)
36
 Objects have a lifetime. An object can persist beyond
application session boundaries, during which the object
is stored in a file or a database, in some file or database
form.
37
 Everything is an object.
 How about a class?
 Is a class an object?
 Yes, a class is an object! So, if it is an object, it must
belong to a class.
 Indeed, class belongs to a class called a Meta-Class or
a class' class.
 Meta-class used by the compiler. For example, the
meta-classes handle messages to classes, such as
constructors and "new.“
38

More Related Content

What's hot

Software Engineering: Models
Software Engineering: ModelsSoftware Engineering: Models
Software Engineering: ModelsDavid Millard
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling TechniquesShilpa Wadhwani
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7koolkampus
 
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Dr Sukhpal Singh Gill
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes arvind pandey
 
SE18_Lec 09_UML Use Cases
SE18_Lec 09_UML Use CasesSE18_Lec 09_UML Use Cases
SE18_Lec 09_UML Use CasesAmr E. Mohamed
 
Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modelingramyaaswin
 
Interaction Modeling
Interaction ModelingInteraction Modeling
Interaction ModelingHemant Sharma
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelAmr E. Mohamed
 
Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)dipenpatelpatel
 
Interface specification
Interface specificationInterface specification
Interface specificationmaliksiddique1
 
3 interaction and_state_modeling
3 interaction and_state_modeling3 interaction and_state_modeling
3 interaction and_state_modelingMinal Maniar
 
Lecture 13 requirements modeling - flow & behavior (2)
Lecture 13   requirements modeling - flow &  behavior (2)Lecture 13   requirements modeling - flow &  behavior (2)
Lecture 13 requirements modeling - flow & behavior (2)IIUI
 
Object-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochObject-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochSorina Chirilă
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTleela rani
 

What's hot (20)

Software Engineering: Models
Software Engineering: ModelsSoftware Engineering: Models
Software Engineering: Models
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling Techniques
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7
 
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
 
Object oriented analysis and design unit- iii
Object oriented analysis and design unit- iiiObject oriented analysis and design unit- iii
Object oriented analysis and design unit- iii
 
Object oriented analysis and design unit- ii
Object oriented analysis and design unit- iiObject oriented analysis and design unit- ii
Object oriented analysis and design unit- ii
 
C++ Unit_01
C++ Unit_01C++ Unit_01
C++ Unit_01
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
 
SE18_Lec 09_UML Use Cases
SE18_Lec 09_UML Use CasesSE18_Lec 09_UML Use Cases
SE18_Lec 09_UML Use Cases
 
Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modeling
 
Interaction Modeling
Interaction ModelingInteraction Modeling
Interaction Modeling
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context Model
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 
Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)
 
Interface specification
Interface specificationInterface specification
Interface specification
 
3 interaction and_state_modeling
3 interaction and_state_modeling3 interaction and_state_modeling
3 interaction and_state_modeling
 
Lecture 13 requirements modeling - flow & behavior (2)
Lecture 13   requirements modeling - flow &  behavior (2)Lecture 13   requirements modeling - flow &  behavior (2)
Lecture 13 requirements modeling - flow & behavior (2)
 
Object-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochObject-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady Booch
 
Ch08
Ch08Ch08
Ch08
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
 

Similar to SE18_Lec 06_Object Oriented Analysis and Design

Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented DesignAravinth NSP
 
ObjectOrientedSystems.ppt
ObjectOrientedSystems.pptObjectOrientedSystems.ppt
ObjectOrientedSystems.pptChishaleFriday
 
3_ObjectOrientedSystems.pptx
3_ObjectOrientedSystems.pptx3_ObjectOrientedSystems.pptx
3_ObjectOrientedSystems.pptxRokaKaram
 
Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Techglyphs
 
UNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxanguraju1
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UMLyndaravind
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineeringVarsha Ajith
 
Ooad notes
Ooad notesOoad notes
Ooad notesNancyJP
 
Object oriented concepts
Object oriented conceptsObject oriented concepts
Object oriented conceptschristradus
 
1 intro
1 intro1 intro
1 introabha48
 
Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Languagedheva B
 

Similar to SE18_Lec 06_Object Oriented Analysis and Design (20)

Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
ObjectOrientedSystems.ppt
ObjectOrientedSystems.pptObjectOrientedSystems.ppt
ObjectOrientedSystems.ppt
 
3_ObjectOrientedSystems.pptx
3_ObjectOrientedSystems.pptx3_ObjectOrientedSystems.pptx
3_ObjectOrientedSystems.pptx
 
Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Bt8901 objective oriented systems1
Bt8901 objective oriented systems1
 
General OOP concept [by-Digvijay]
General OOP concept [by-Digvijay]General OOP concept [by-Digvijay]
General OOP concept [by-Digvijay]
 
UNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptx
 
Oops slide
Oops slide Oops slide
Oops slide
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineering
 
Ooad notes
Ooad notesOoad notes
Ooad notes
 
SW SEC 1.pptx
SW SEC 1.pptxSW SEC 1.pptx
SW SEC 1.pptx
 
Object oriented concepts
Object oriented conceptsObject oriented concepts
Object oriented concepts
 
Jar chapter 2
Jar chapter 2Jar chapter 2
Jar chapter 2
 
MCA NOTES.pdf
MCA NOTES.pdfMCA NOTES.pdf
MCA NOTES.pdf
 
Ashish oot
Ashish ootAshish oot
Ashish oot
 
1 intro
1 intro1 intro
1 intro
 
Advance oops concepts
Advance oops conceptsAdvance oops concepts
Advance oops concepts
 
Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Language
 
Principles of oop
Principles of oopPrinciples of oop
Principles of oop
 

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

complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 

Recently uploaded (20)

Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
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
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 

SE18_Lec 06_Object Oriented Analysis and Design

  • 2. 2  System development refers to all activities that go into producing information system solution.  System development activities consist of system analysis, modeling, design, implementation, testing and maintenance.  Object-Oriented (OO) systems development is a way to develop software by building self-contained modules that can be more easily:  Replaced  Modified  and Reused.
  • 3. 3  A software system is a set of mechanism for performing certain action on certain data. Algorithm + Data structure = Program
  • 4. 4  The code is subdivided into modules  Each module is made of procedures and data structures  Procedures operate on data, e.g. modifying them  e.g. the “C” programming language  There is no strong connection between procedures  Every procedure may possibly access any data and modify it and data
  • 5. 5  OO approach is more like creating a lot of helpers that take on an active role, a spirit, that form a community whose interactions become the application.  Models the problem to be solved as a set of interacting objects, each carrying its own state and exhibiting its own behavior  By separating concerns, this approach has proved to be robust and useful to solve more complex programming problems.
  • 6. 6  The physical world is made of a set of objects that can interact  Each of them presents  An identity (objects can be recognized)  A state (objects remember their history)  A behavior (objects react to external stimuli in a predictable way)
  • 7. 7  Faster development,  Increased quality  Raising the level of abstraction.  It adapts to  Changing requirements  Easier to maintain  More robust  Promote greater design  Code reuse
  • 8. 8  Goals:  Define Objects and classes  Describe objects‘ methods, attributes and how objects respond to messages,  Define Polymorphism, Inheritance, data abstraction, encapsulation, and protocol,  Describe objects relationships,  Describe object persistence.  Understand meta-classes.
  • 9. 9  The term object was first formally utilized in the Similar language to simulate some aspect of reality.  An object is an entity.  It knows things (has attributes)  It does things (provides services or has methods)  Note:  Attributes or properties represented by data type and describe object‘s state (data)  Methods define objects behavior and specify the way in which an Object‘s data are manipulated.
  • 10. 10  It Knows things (attributes)  I am an Employee.  I know my name, social security number and my address.  Attributes  I am a Car.  I know my color,  manufacturer, cost,  owner and model.  It does things (methods)  I know how to compute my payroll.
  • 11. 11  In an object-oriented system, everything is an object: numbers, arrays, records, fields, files, forms, an invoice, etc.  An Object is anything, real or abstract, about which we store data and those methods that manipulate the data.  Conceptually, each object is responsible for itself.  A window object is responsible for things like opening, sizing, and closing itself.
  • 12. 12  When developing an O-O application, two basic questions always arise.  What objects does the application need?  What functionality should those objects have?
  • 13. 13  Simple Name (written as UpperCase-first Noun)  Path Name
  • 14. 14  Represent named properties of a UML class  UML class can have many attributes of different names  Attribute name is generally a short noun or a noun phrase written in lowerCase-first text  Attribute declaration may include visibility, type and initial value: +attributeName : type = initial-value
  • 15. 15  Represent named services provided by a UML class  UML class can have many operations of different names  Operation name is generally a short verb or a verb phrase written in lowerCase-first text  Operation may include visibility, parameters, and return type: +opName(param1 : type = initial_value) : return-type
  • 16. 16  Three levels of class, attribute and operation visibility: • private (-), available only to the current class • protected (#), available to the current and inherited classes • public (+), available to the current and other classes
  • 17. 17  Each class represents a set of objects that share the same attributes, operations, relationships, and semantics  For each of the class attributes, objects can have specific attribute values  For each of the class operations, objects may have different implementations
  • 18. 18  Represent a relation between a parent (a more abstract class) and a child (a more specific class)  Generally referred to as a “is-a-kind-of” relationship  Child objects may be used instead of parent objects since they share attributes and operations; the opposite is not true
  • 19. 19  An object-oriented system organizes classes into subclass-super hierarchy.  At the top of the hierarchy are the most general classes and at the bottom are the most specific  A subclass inherits all of the properties and methods (procedures) defined in its super class.
  • 20. 20  Inheritance is a relationship between classes where one class is the parent class of another (derived) class.  Inheritance allows classes to share and reuse behaviors and attributes.  The real advantage of inheritance is that we can build upon what we already have and,  Reuse what we already have.
  • 21. 21
  • 22. 22
  • 23. 23  OO systems permit a class to inherit from more than one superclass.
  • 24. 24  Information hiding is a principle of hiding internal data and procedures of an object.  By providing an interface to each object in such a way as to reveal as little as possible about its inner workings.  Encapsulation protects the data from corruption.
  • 25. 25  Objects perform operations in response to messages. For example, you may communicate with your computer by sending it a message from hand-help controller.
  • 26. 26  Consider a payroll program that processes employee records at a small manufacturing firm. This company has three types of employees:  Managers: Receive a regular salary.  Office Workers: Receive an hourly wage and are eligible for overtime after 40 hours.  Production Workers: Are paid according to a piece rate.
  • 27. 27  Structured Approach FOR EVERY EMPLOYEE DO BEGIN IF employee = manager THEN CALL computeManagerSalary IF employee = office worker THEN CALL computeOfficeWorkerSalary IF employee = production worker THEN CALL computeProductionWorkerSalary END
  • 29. 29  OO Approach FOR EVERY EMPLOYEE DO BEGIN employee computePayroll END
  • 30. 30  Polymorphism means that the same operation may behave differently on different classes.  Example: computePayroll
  • 31. 31  Link: model of logical or physical link between objects
  • 33. 33  Multiplicity: constraint on the min/max number of links connected to an object
  • 34. 34  The concept of association represents relationships between objects and classes. For example a pilot can fly planes  Association can be binary, between two classes, or n- ary, among more than two classes  Can include association name, direction, role names, multiplicity, and aggregation type
  • 35. 35  Represent a specific, whole/part structural relationship between class objects  Composition [is entirely made of]: (closed diamond) represents exclusive relationship between two class objects (e.g., a faculty cannot exist without nor be a part of more than one university)  Aggregation [is part of]: (open diamond) represents nonexclusive relationship between two class objects (e.g., a student is a part of one or more faculties)
  • 36. 36  Objects have a lifetime. An object can persist beyond application session boundaries, during which the object is stored in a file or a database, in some file or database form.
  • 37. 37  Everything is an object.  How about a class?  Is a class an object?  Yes, a class is an object! So, if it is an object, it must belong to a class.  Indeed, class belongs to a class called a Meta-Class or a class' class.  Meta-class used by the compiler. For example, the meta-classes handle messages to classes, such as constructors and "new.“
  • 38. 38