SlideShare a Scribd company logo
OBJECT-ORIENTED
SOFTWAREENGINEERING
UNIT 03 : Object Orientation Fundamentals
© 2019, PRAMOD PARAJULI
Disclaimer
These slides are part of teaching materials for Object Oriented
Software Engineering (OOSE). These slides do not cover all aspect of
learning OOSE, nor are these be taken as primary source of
information. As the core textbooks and reference books for learning
the subject has already been specified and provided to the students,
students are encouraged to learn from the original sources.
Contents in these slides are copyrighted to the instructor and
authors of original texts where applicable.
Introduction of OOAD, OO Life Cycle
Introduction of OOAD, OO Life Cycle
Unified Modeling Language
Unified Modeling Language
Models, use cases
Models, use cases
(Rational) Unified process
(Rational) Unified process
SOFTWAREENGINEERING
UNIT 03: Object Orientation Fundamentals
ORGANIZATIONSANDWORKFLOWS
 System’s view
 Data-driven view
 Functional view
 Event-based view
 State machine view
SOFTWAREASAPRODUCT
 Programs
 Associated documents
– System documentation
– Manuals and websites
– User documentation/guide
– Advertisements
 Configuration data
 Additional services –
trainings
SOFTWARETYPES
Generally, two types
 Generic
– Developers get full control
 Bespoke (customised)
– Users get full control
(Classroom discussion)
 System software
 Application software
 Mobile software/app
 Web applications
 Production line software
 Embedded software
 AI software
 Ubiquitous computing
 Wearable computing
 OpenSource software
 Legacy software
 ...
SOFTWARECHARACTERISTICS
 Software is developed,
but not manufactured.
 Software doesn’t wear
out.
 Most software are
custom built.
 Flexibility vs. complexity
 Software qualities
– Portability
– Maintainability
– Modular
– Intuitive (ease of use)
– Reusability
– Stable
– Dependable
SOFTWAREEVOLUTION
THE EARLY YEARS
1950s
Batch oriented
Limited distribution
Custom Software
THE SECOND ERA
1960s – 1970S
Multi-user
Real-time
Database
Product Software
THE THIRD ERA
1980s – 1990S
Distributed systems
Embedded intelligence
Low cost h/w
Consumer impact
THE FOURTH ERA
2000s –
Powerful desktops
OO Technologies
Expert Systems
Parallel computing
Data-centred
CURRENTTREND
 Lean development
 Cloud computing
 Cognitive computing
 Software as a Service
 AI as a Service!
 Wearable computing
 Quantum computation
 Data analytics
 Millions of lines of code
 Natural interactions
 Collaborative development
 Web apps
 UX first!
 Disruptive technologies!
ComplexSystems
❃ Why would a system be complex?
SOFTWARECOMPLEXITY
 Need to deliver – flexibility, solid
performance
 End-users have different views
 Problem domain is complex
 Difficulty of managing the
development process
 Difficulty in modeling behavior of
discrete systems
5ATTRIBUTESOFCOMPLEXSYSTEM
 Hierarchic structure – follow hierarchic structure of some kind
 Relative primitives – relative measures on primitive operations
 Separation of concerns – decomposable and non-decomposable
components
 Common patterns – repetitive patterns in the structure
 Stable intermediate forms – complex system when evolves from stable
simple system
ORGANISEDANDDISORGANISED
COMPLEXITY
 Finding abstractions help
organise complexity
 Canonical form of complexity –
hierarchical: part of, is a
 Humans are limited in
understanding complexity in
detail
MANAGINGCHAOS
 Decomposition – decompose system into
manageable chunks (algorithmic decomposition,
object-oriented decomposition)
 Abstraction – generalized common components
 Hierarchy – follow hierarchical structure
DESIGNINGCOMPLEXSYSTEMS
 Engineering is a science as well as an art
 Design - Stroustrup suggests, “the purpose of design is to create a clean and
relatively simple internal structure, sometimes also called an architecture. . . .
A design is the end product of the design process”
 Model building – multiple models
 Software design – using notation, process, and tools
MODELSOF‘OOSE’
 Object oriented analysis and design
 Unified Modeling Language
 Rational Unified Process
 Open Unified Process
USEFULLINKS
 Software Engineering Institute: sei.cmu.edu
 Object Management Group: omg.org
 Rational Unified Process: ibm.com
 Open Unified Process: epf.eclipse.org/wikis/openup/
 Roger S. Presman:rspa.com/spi/
SOFTWAREENGINEERING
❃ What is software engineering?
SOFTWAREDEV.LIFECYCLE
Conceptualisation ... Decommissioning
SOFTWAREDEV.LIFECYCLE
Specification Development
Integrationand
testing
Deployment
OOSE UNIT 01 - Introduction
INTRODUCTIONTOOBJECTORIENTATION
UNIT 03: Object Orientation Fundamentals and UML
Reference: Philippe Kruchten, The Rational Unified Process – An Introduction, Third Edition, Addison Wesley, 2003
 How object-orientation helps model complex systems?
 How object-orientation helps reduce
software/development risks?
 What are software development problems?
 What are the best practices of software development ?
BASICCONSIDERATION
The world consists of;
 Objects, and
 Events
FUNCTIONALVS OBJECT-ORIENTED
Functional approach
 Functions
 Modules
 Data structures
 Shared space (monolithic)
Object oriented approach
 Objects – properties (attributes)
 Events – methods (capabilities)
WHYOBJECTORIENTEDAPPROACH?
SOFTWAREPROJECTS
SOFTWAREDEVELOPMENTPROBLEMS-
SYMPTOMS
 Inaccurate understanding of end-
user needs
 Inability to deal with changing
requirements
 Modules that don't fit together
 Software that's hard to maintain or
extend
 Late discovery of serious project
flaws
 Poor software quality
 Unacceptable software
performance
 Team members in each other's
way, making it impossible to
reconstruct who changed what,
when, where, and why
 An untrustworthy build-and-
release process
SOFTWAREDEVELOPMENTPROBLEMS-ROOTS
 Ad hoc requirements management
 Ambiguous and imprecise
communication
 Brittle architectures
 Overwhelming complexity
 Undetected inconsistencies in
requirements, designs, and
implementations
 Insufficient testing
 Subjective assessment of project
status
 Failure to attack risk
 Uncontrolled change propagation
 Insufficient automation
SOFTWAREDEVELOPMENT–BEST
PRACTICES
1. Develop software
iteratively.
2. Manage requirements.
3. Use component-based
architectures
4. Visually model
software.
5. Continuously verify
software quality.
6. Control changes to
software.
1.DEVELOPSOFTWAREITERATIVELY
1. Serious misunderstandings are made evident early in the
lifecycle when it's possible to react to them.
2. This approach enables and encourages user feedback so as to
elicit the system's real requirements.
3. The development team is forced to focus on those issues that
are most critical to the project and are shielded from those
issues that distract them from the project's real risks.
4. Continuous, iterative testing enables an objective assessment
of the project's status.
1.DEVELOPSOFTWAREITERATIVELY
5. Inconsistencies among requirements, designs, and
implementations are detected early.
6. The workload of the team, especially the testing team, is
spread more evenly throughout the project's lifecycle.
7. The team can leverage lessons learned and therefore can
continuously improve the process.
8. Stakeholders in the project can be given concrete evidence of
the project's status throughout its lifecycle.
WATERFALLMODEL
ITERATIVEDEVELOPMENT
2.MANAGEREQUIREMENTS
A condition or capability a system must have.
1. A disciplined approach is built into requirements management.
2. Communications are based on defined requirements.
3. Requirements can be prioritized, filtered, and traced.
4. An objective assessment of functionality and performance is possible.
5. Inconsistencies are detected more easily.
6. With suitable tool support, it is possible to provide a repository for a
system's requirements, attributes, and traces, with automatic links to
external documents.
3.USECOMPONENT-BASED
ARCHITECTURE
Organisation of building blocks and their interactions.
Helps decision-making for
 The organization of a software system
 The selection of the structural elements and their interfaces by which the system is
composed
 Their behavior, as specified by the collaborations among those elements
 The composition of these structural and behavioral elements into progressively
larger subsystems
 The architectural style that guides this organization: these elements and their
interfaces, their collaborations, and their composition
3.USECOMPONENT-BASED
ARCHITECTURE
Benefits
1. Components facilitate resilient architectures.
2. Modularity enables a clear separation of concerns among elements of a system that
are subject to change.
3. Reuse is facilitated by leveraging standardized frameworks (such as
COM+, CORBA, and EJB) and commercially available components.
4. Components provide a natural basis for configuration management.
5. Visual modeling tools provide automation for component-based development.
4.VISUALLYMODELSOFTWARE
Model is a simplified representation. Modeling is a process of
building a model with an objective.
4.VISUALLYMODELSOFTWARE
Benefits
1. Use cases and scenarios unambiguously specify behavior.
2. Models unambiguously capture software design.
3. Non-modular and inflexible architectures are exposed.
4. Details can be hidden when necessary.
5. Unambiguous designs reveal their inconsistencies more readily.
6. Application quality starts with good design.
7. Visual modeling tools provide support for UML modeling.
5.CONTINUOUSLYVERIFYSOFTWARE
QUALITY
Cost of fixing problem
Benefits
1. Project status assessment is made objective, not subjective, because test results,
not paper documents, are evaluated.
2. This objective assessment exposes inconsistencies in requirements, designs, and
implementations.
3. Testing and verification are focused on areas of highest risk, thereby increasing the
quality and effectiveness of those areas.
4. Defects are identified early, radically reducing the cost of fixing them.
5. Automated testing tools provide testing for functionality, reliability, and
performance.
5.CONTINUOUSLYVERIFYSOFTWARE
QUALITY
 Multiple stakeholders might result into chaos.
 Dividing the software team into different teams, delegating
tasks, and proper coordination is required.
6.CONTROLCHANGESTOSOFTWARE
Benefits
1. The workflow of requirements changes is defined and repeatable.
2. Change requests facilitate clear communications.
3. Isolated workspaces reduce interference among team members working
in parallel.
4. Change rate statistics provide good measurements for objectively
assessing project status.
5. Workspaces contain all artifacts, which facilitates consistency.
6. Change propagation is assessable and controlled.
7. Changes can be maintained in a robust, customizable system.
6.CONTROLCHANGESTOSOFTWARE
OBJECTORIENTEDDEVELOPMENTCYCLE
UNIT 03: Object Orientation Fundamentals and UML
Reference: Brown et al., Object-oriented Analysis 2nd. Ed., Wiley, 2001
OBJECTORIENTEDDEVELOPMENTCYCLE
Phase Activity Models produced Components
Analysis OOA
Requirements
model
• Project scope,
• feasibility study,
• context diagram,
• class diagram (entity classes, interface classes, control classes),
• behavior diagrams (statechart diagrams, collaborations and
CRC cards),
• sequence diagrams, activity diagrams
Design OOD
Design versions of
the OO models
Construction OOP Actual system
Testing OO Testing Working system
Maintenance All of the above All of the above
EXAMPLE–UNIFIEDPROCESS
EXAMPLE
EXAMPLE
ACCORDINGTOPRESSMAN
THEOBJECTMODEL
UNIT 03: Object Orientation Fundamentals and UML
References:
• Booch et al., The Unified Modeling Language User Guide, Pearson. and
• Booch et al., Object-Oriented Analysis and Design with Applications, 3rd
ed., Addison-Wesley., Chapter 2 and 3.
Models: simplification of reality
MODELS
 Are developed so that we can better understand the
system we are developing.
– Help us visualise a system as it is or as we want it to be
– Permit us to specify the structure or behavior of the system
– Give us a template that guides us structuring a system
– Document decisions we made
MODELS
Different levels
 Conceptual level
 Logical level
 Physical level
MODELING
Principles of modeling
1. The choice of what models to create has a profound influence on the
how a problem is attacked and how a solution is shaped.
2. Every model may be expressed at different level of precision.
3. The best models are connected to reality.
4. No single model is sufficient. Every nontrivial system is best
approached through a small set of nearly independent models.
OBJECT-ORIENTEDMODELING
Object-oriented perspective
 Basic building block of a software system is the object or
class.
 Object is a thing.
 Class is a set of common objects.
 Every object has;
– Identity (name)
– State (properties/data associated)
– Behavior (methods)
THEOBJECTMODEL
 Generations of programming languages allowed the
shift from programming-in-the-small to programming-
in-the-large
– Object-oriented languages (Smalltalk, C++, Ada83, Eiffel)
– Emergence of framework (Visual Basic, Java, Python, J2EE, .NET,
Visual C#, Visual Basic .NET)
THEOBJECTMODEL
 Topology of languages
THEOBJECTMODEL
 Topology of languages
THEOBJECTMODEL
 Topology of languages
THEOBJECTMODEL
 Object-oriented languages
THEOBJECTMODEL
Foundations
 Object model is influenced by many factors, not just object-
oriented programming. e.g. design of user interfaces,
databases, and computer architectures.
 An object – maintains integrity and there exist invariant
properties that characterize an object and its behavior.
 Objects cooperate with other!
THEOBJECTMODEL
Object-oriented programming (OOP)
 A method of implementation in which programs are
organised as cooperative collections of objects.
 Three features;
i. OOP uses objects, not algorithms, as its fundamental building
blocks (‘has a’);
ii. Each object is an instance of some class; and
iii. Classes may be related to one another via inheritance (‘is a’). (no
inheritance  abstract data types, e.g. stack)
THEOBJECTMODEL
Object-oriented programming (OOP)
A language is object-oriented if and only if it satisfies the
following requirements :
 It supports objects that are data abstractions with an
interface of named operations and a hidden local state.
 Objects have an associated type [class ].
 Types [classes ] may inherit attributes from supertypes
[superclasses ].
THEOBJECTMODEL
Object-oriented design (OOD)
A design method encompassing the process of object-oriented
decomposition and a notation for depicting both logical and
physical as well as static and dynamic models of the system
under design.
 Design
 Notation
THEOBJECTMODEL
Object-oriented analysis (OOA)
A method of analysis that examines requirements from the
perspective of the classes and objects found in the vocabulary of
the problem domain.
OOA  OOD  OOP
THEOBJECTMODEL
Elements of object model
 Abstraction – essential characteristics
 Encapsulation – compartmentalizing the elements of an abstraction
that constitute its structure and behavior
 Modularity – system decomposed into cohesive and loosely coupled
modules
 Hierarchy – inheritance, multiple inheritance, avoid redundancy
THEOBJECTMODEL
Elements of object model
 Typing – precise characterisation of structural or behavioral properties
(enforcement of the class of an object), static typing, dynamic typing
(polymorphism)
 Concurrency – active object can be distinguished from one
that is not active
 Persistence – state and class of an object is consistent across
time or space
THEOBJECTMODEL
Benefits
 Expressive – real world objects and their interactions are
better expressed using OM
 Helps in complex system modeling
 OM encourages reuse
 Modular design allows resilient change
CLASSESANDOBJECTS
 Real-world consists of objects
 An object
– A tangible and/or visible thing
– Something that may be comprehended intellectually
– Something toward which thought or action is directed
OBJECTS
 An object
– Has state– static properties and current properties
(dynamic)
– Has well-define behavior – how object acts and reacts in
terms of its state changes and message passing (operations:
modifier, selector, iterator, constructor, destructor; roles and
responsibilities)
– Has a unique identity – every object should be
distinguishable from other objects
OBJECTS
Relationship among objects
 Two types
– Links – physical/conceptual connection between two
objects (peer-to-peer or client/supplier)
– Aggregation – whole/part hierarchy
OBJECTS
Relationship among objects
 Links – show message passing
 While passing message, an object may play one of three roles;
– Controller
– Server
– Proxy (both controller and server, represents a real-world object in the
domain of the application)
OBJECTS
Relationship among objects
 Links – show message passing
OBJECTS
Relationship among objects
 Links
– Visibility - for an object to receive messages, it must be visible to
others.
– Synchronisation – objects may be active in sequence, guarded (mutual
exclusion), or concurrent
OBJECTS
Relationship among objects
 Aggregation – whole/part hierarchy
CLASSES
 Classes provide framework for objects
 An object is an instance of a class.
 A class represents a set of objects that share common
structure and a common behavior.
CLASSES
 Interface of a class
– Public – components of a class accessible to all clients)
– Protected – accessible to itself and its subclasses
– Private – accessible to itself
– Package – accessible by classes in the same package
CLASSES
 Relationship among classes
– Association
• Semantic dependencies – e.g. a weather station has multiple
sensors.
• Multiplicity – one-to-one, one-to-many, many-to-many
– Inheritance – a class may inherit a super-class
• Single inheritance
• Polymorphism
• Multiple inheritance
CLASSES
 Relationship among classes
– Aggregation - whole and part relationship (has a), enforces physical
containment
– Dependencies – when one element is dependent on other,
e.g. one module dependent on other.
INTERPLAYOFCLASSESANDOBJECTS
 Identify the classes that form the vocabulary of the
problem domain.
 Invent the structures whereby sets of objects work
together to provide the behaviors that satisfy the
requirements of the problem.
BUILDINGQUALITYCLASSESANDOBJECTS
 Measuring quality of abstraction –
– Coupling,
– Cohesion,
– Sufficiency,
– Completeness,
– Primitiveness
 Choosing operations
– Functional semantics – focusing on reusability, complexity, applicability and
implementation performance
– Time and space semantics
BUILDINGQUALITYCLASSESANDOBJECTS
 Choosing relationships
– Law of demeter – the methods of a class should not depend on structure of other classes,
except its immediate super class.
– Visibility
 Implementation
– Proper representation
– Proper packaging
CLASSIFICATION
UNIT 03: Object Orientation Fundamentals and UML
References:
• Booch et al., Object-Oriented Analysis and Design with Applications, 3rd
ed., Addison-Wesley., Chapter 4.
PROPERCLASSIFICATION
 Classification helps generalisation, specialisation,
aggregation hierarchies among classes.
 Objects, classes, hierarchies, associations etc. need to
properly identified.
 Help maintain proper level of cohesion and coupling.
 Challenges – there is no perfect classification, intelligent classification
requires tremendous amount of creative insight
IDENTIFYINGCLASSESANDOBJECTS
Three approaches to classification;
 Classical cetegorisation - All the entities that have a given property
or collection of properties in common form a category. Such properties are
necessary and sufficient to define the category. e.g. employee
 Conceptual clustering – classes are generated by formulating
conceptual descriptions then classifying the entities according to the
descriptions. e.g. love songs
 Prototype theory – class represented by prototypical object e.g.
game
IDENTIFYINGCLASSESANDOBJECTS
We will revisit identification of classes and objects in Unit
4. Refer to
 Object-oriented analysis (Chapter 4.2, p. 131)
 Key Abstractions and mechanisms (Chapter 4.3, p. 138)
UNIFIEDPROCESS
UNIT 03: Object Orientation Fundamentals and UML
References:
Schach, S. R., 2008, Object-oriented software engineering, McGrawHill (Chapter – 3)
Bruegge B., and Dutoit A. H. 2010, Object-oriented Software Engineering using UML, Patterns and Java, 3rd
ed., Prentice Hall (Chapter 15)
UNIFIEDSOFTWAREDEVELOPMENTPROCESS
 Development time – divided into cycles
 Cycles – birth, childhood, adulthood, retirement etc.
 Each cycle end with release of the system
 Each cycle can be in one of four phases
UNIFIEDSOFTWAREDEVELOPMENTPROCESS
 Each phase might contain a number of iterations
 Each iteration
– Use use-cases
– Mitigate risks in the iteration
– Acts as a project
 Activities, also known as workflows, in each cycle
are performed in parallel
UNIFIEDPROCESS-WORKFLOWS
UNIFIEDPROCESS-WORKFLOWS
 Engineering workflows
– Requirements – analysis of application domain and creation of
specifications
– Design – design of the software – creation of solution
– Implementation - code
– Test – test cases, benchmarking
UNIFIEDPROCESS-WORKFLOWS
 Supporting workflows
– Management – project planning
– Environment – development environment, automation of the software
process
– Assessment – verification and validation (reviews, walkthroughs and
inspections)
– Deployment – configuration, transition of the software system to the
end user
UNIFIEDPROCESS-WORKFLOWS
IBMRATIONALUNIFIEDPROCESS
❃ Read Chapter 3 from book Object-oriented
software engineering by Stephen R. Schach.
End of Unit 03 : Object Orientation
Fundamentals

More Related Content

What's hot

Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
Dr Reeja S R
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
Varsha Ajith
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
srijavel
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
Ivano Malavolta
 
Architectural views
Architectural viewsArchitectural views
Architectural viewsSaleem Khan
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Sda 2
Sda   2Sda   2
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
Mr. Swapnil G. Thaware
 
Sda 7
Sda   7Sda   7
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
bashcode
 
Unit 1
Unit 1Unit 1
Software architecture
Software architectureSoftware architecture
Software architecture
Udayna
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineering
Varsha Ajith
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
Henry Muccini
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMSDEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
International Journal of Technical Research & Application
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineering
rishi ram khanal
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
Animesh Chaturvedi
 

What's hot (20)

Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Architectural views
Architectural viewsArchitectural views
Architectural views
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Ooad
OoadOoad
Ooad
 
Sda 2
Sda   2Sda   2
Sda 2
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Sda 7
Sda   7Sda   7
Sda 7
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
Unit 1
Unit 1Unit 1
Unit 1
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineering
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMSDEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineering
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 

Similar to Object Orientation Fundamentals

1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx
KALPANAC20
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
madhavi patil
 
Unit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfUnit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdf
ganeshkarthy
 
Project Management
Project ManagementProject Management
Project Management
Babu Appat
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
ArifaMehreen1
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
Laura Torres
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audio
RickNZ
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
Rishabh Soni
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471
vconovalov
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies?
IJORCS
 
Unified process model
Unified process modelUnified process model
Unified process model
RyndaMaala
 
software development methodologies
software development methodologiessoftware development methodologies
software development methodologies
UTeM
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
Dr VISU P
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
CSCJournals
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model reportAshutosh Singh
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
Ólafur Andri Ragnarsson
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
Ryan Polk
 

Similar to Object Orientation Fundamentals (20)

1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
Unit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfUnit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdf
 
Project Management
Project ManagementProject Management
Project Management
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audio
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies?
 
Unified process model
Unified process modelUnified process model
Unified process model
 
software development methodologies
software development methodologiessoftware development methodologies
software development methodologies
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model report
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
 
Ooad quest and ans
Ooad quest and ansOoad quest and ans
Ooad quest and ans
 
Chapter1
Chapter1Chapter1
Chapter1
 

Recently uploaded

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

Object Orientation Fundamentals

  • 1. OBJECT-ORIENTED SOFTWAREENGINEERING UNIT 03 : Object Orientation Fundamentals © 2019, PRAMOD PARAJULI
  • 2. Disclaimer These slides are part of teaching materials for Object Oriented Software Engineering (OOSE). These slides do not cover all aspect of learning OOSE, nor are these be taken as primary source of information. As the core textbooks and reference books for learning the subject has already been specified and provided to the students, students are encouraged to learn from the original sources. Contents in these slides are copyrighted to the instructor and authors of original texts where applicable.
  • 3.
  • 4. Introduction of OOAD, OO Life Cycle Introduction of OOAD, OO Life Cycle Unified Modeling Language Unified Modeling Language Models, use cases Models, use cases (Rational) Unified process (Rational) Unified process
  • 5. SOFTWAREENGINEERING UNIT 03: Object Orientation Fundamentals
  • 6. ORGANIZATIONSANDWORKFLOWS  System’s view  Data-driven view  Functional view  Event-based view  State machine view
  • 7. SOFTWAREASAPRODUCT  Programs  Associated documents – System documentation – Manuals and websites – User documentation/guide – Advertisements  Configuration data  Additional services – trainings
  • 8. SOFTWARETYPES Generally, two types  Generic – Developers get full control  Bespoke (customised) – Users get full control (Classroom discussion)  System software  Application software  Mobile software/app  Web applications  Production line software  Embedded software  AI software  Ubiquitous computing  Wearable computing  OpenSource software  Legacy software  ...
  • 9. SOFTWARECHARACTERISTICS  Software is developed, but not manufactured.  Software doesn’t wear out.  Most software are custom built.  Flexibility vs. complexity  Software qualities – Portability – Maintainability – Modular – Intuitive (ease of use) – Reusability – Stable – Dependable
  • 10. SOFTWAREEVOLUTION THE EARLY YEARS 1950s Batch oriented Limited distribution Custom Software THE SECOND ERA 1960s – 1970S Multi-user Real-time Database Product Software THE THIRD ERA 1980s – 1990S Distributed systems Embedded intelligence Low cost h/w Consumer impact THE FOURTH ERA 2000s – Powerful desktops OO Technologies Expert Systems Parallel computing Data-centred
  • 11. CURRENTTREND  Lean development  Cloud computing  Cognitive computing  Software as a Service  AI as a Service!  Wearable computing  Quantum computation  Data analytics  Millions of lines of code  Natural interactions  Collaborative development  Web apps  UX first!  Disruptive technologies!
  • 12. ComplexSystems ❃ Why would a system be complex?
  • 13. SOFTWARECOMPLEXITY  Need to deliver – flexibility, solid performance  End-users have different views  Problem domain is complex  Difficulty of managing the development process  Difficulty in modeling behavior of discrete systems
  • 14. 5ATTRIBUTESOFCOMPLEXSYSTEM  Hierarchic structure – follow hierarchic structure of some kind  Relative primitives – relative measures on primitive operations  Separation of concerns – decomposable and non-decomposable components  Common patterns – repetitive patterns in the structure  Stable intermediate forms – complex system when evolves from stable simple system
  • 15. ORGANISEDANDDISORGANISED COMPLEXITY  Finding abstractions help organise complexity  Canonical form of complexity – hierarchical: part of, is a  Humans are limited in understanding complexity in detail
  • 16. MANAGINGCHAOS  Decomposition – decompose system into manageable chunks (algorithmic decomposition, object-oriented decomposition)  Abstraction – generalized common components  Hierarchy – follow hierarchical structure
  • 17. DESIGNINGCOMPLEXSYSTEMS  Engineering is a science as well as an art  Design - Stroustrup suggests, “the purpose of design is to create a clean and relatively simple internal structure, sometimes also called an architecture. . . . A design is the end product of the design process”  Model building – multiple models  Software design – using notation, process, and tools
  • 18. MODELSOF‘OOSE’  Object oriented analysis and design  Unified Modeling Language  Rational Unified Process  Open Unified Process
  • 19. USEFULLINKS  Software Engineering Institute: sei.cmu.edu  Object Management Group: omg.org  Rational Unified Process: ibm.com  Open Unified Process: epf.eclipse.org/wikis/openup/  Roger S. Presman:rspa.com/spi/
  • 20. SOFTWAREENGINEERING ❃ What is software engineering?
  • 23. INTRODUCTIONTOOBJECTORIENTATION UNIT 03: Object Orientation Fundamentals and UML Reference: Philippe Kruchten, The Rational Unified Process – An Introduction, Third Edition, Addison Wesley, 2003
  • 24.  How object-orientation helps model complex systems?  How object-orientation helps reduce software/development risks?  What are software development problems?  What are the best practices of software development ?
  • 25. BASICCONSIDERATION The world consists of;  Objects, and  Events
  • 26. FUNCTIONALVS OBJECT-ORIENTED Functional approach  Functions  Modules  Data structures  Shared space (monolithic) Object oriented approach  Objects – properties (attributes)  Events – methods (capabilities)
  • 29. SOFTWAREDEVELOPMENTPROBLEMS- SYMPTOMS  Inaccurate understanding of end- user needs  Inability to deal with changing requirements  Modules that don't fit together  Software that's hard to maintain or extend  Late discovery of serious project flaws  Poor software quality  Unacceptable software performance  Team members in each other's way, making it impossible to reconstruct who changed what, when, where, and why  An untrustworthy build-and- release process
  • 30. SOFTWAREDEVELOPMENTPROBLEMS-ROOTS  Ad hoc requirements management  Ambiguous and imprecise communication  Brittle architectures  Overwhelming complexity  Undetected inconsistencies in requirements, designs, and implementations  Insufficient testing  Subjective assessment of project status  Failure to attack risk  Uncontrolled change propagation  Insufficient automation
  • 31. SOFTWAREDEVELOPMENT–BEST PRACTICES 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures 4. Visually model software. 5. Continuously verify software quality. 6. Control changes to software.
  • 32. 1.DEVELOPSOFTWAREITERATIVELY 1. Serious misunderstandings are made evident early in the lifecycle when it's possible to react to them. 2. This approach enables and encourages user feedback so as to elicit the system's real requirements. 3. The development team is forced to focus on those issues that are most critical to the project and are shielded from those issues that distract them from the project's real risks. 4. Continuous, iterative testing enables an objective assessment of the project's status.
  • 33. 1.DEVELOPSOFTWAREITERATIVELY 5. Inconsistencies among requirements, designs, and implementations are detected early. 6. The workload of the team, especially the testing team, is spread more evenly throughout the project's lifecycle. 7. The team can leverage lessons learned and therefore can continuously improve the process. 8. Stakeholders in the project can be given concrete evidence of the project's status throughout its lifecycle.
  • 36. 2.MANAGEREQUIREMENTS A condition or capability a system must have. 1. A disciplined approach is built into requirements management. 2. Communications are based on defined requirements. 3. Requirements can be prioritized, filtered, and traced. 4. An objective assessment of functionality and performance is possible. 5. Inconsistencies are detected more easily. 6. With suitable tool support, it is possible to provide a repository for a system's requirements, attributes, and traces, with automatic links to external documents.
  • 37. 3.USECOMPONENT-BASED ARCHITECTURE Organisation of building blocks and their interactions. Helps decision-making for  The organization of a software system  The selection of the structural elements and their interfaces by which the system is composed  Their behavior, as specified by the collaborations among those elements  The composition of these structural and behavioral elements into progressively larger subsystems  The architectural style that guides this organization: these elements and their interfaces, their collaborations, and their composition
  • 38. 3.USECOMPONENT-BASED ARCHITECTURE Benefits 1. Components facilitate resilient architectures. 2. Modularity enables a clear separation of concerns among elements of a system that are subject to change. 3. Reuse is facilitated by leveraging standardized frameworks (such as COM+, CORBA, and EJB) and commercially available components. 4. Components provide a natural basis for configuration management. 5. Visual modeling tools provide automation for component-based development.
  • 39. 4.VISUALLYMODELSOFTWARE Model is a simplified representation. Modeling is a process of building a model with an objective.
  • 40. 4.VISUALLYMODELSOFTWARE Benefits 1. Use cases and scenarios unambiguously specify behavior. 2. Models unambiguously capture software design. 3. Non-modular and inflexible architectures are exposed. 4. Details can be hidden when necessary. 5. Unambiguous designs reveal their inconsistencies more readily. 6. Application quality starts with good design. 7. Visual modeling tools provide support for UML modeling.
  • 42. Benefits 1. Project status assessment is made objective, not subjective, because test results, not paper documents, are evaluated. 2. This objective assessment exposes inconsistencies in requirements, designs, and implementations. 3. Testing and verification are focused on areas of highest risk, thereby increasing the quality and effectiveness of those areas. 4. Defects are identified early, radically reducing the cost of fixing them. 5. Automated testing tools provide testing for functionality, reliability, and performance. 5.CONTINUOUSLYVERIFYSOFTWARE QUALITY
  • 43.  Multiple stakeholders might result into chaos.  Dividing the software team into different teams, delegating tasks, and proper coordination is required. 6.CONTROLCHANGESTOSOFTWARE
  • 44. Benefits 1. The workflow of requirements changes is defined and repeatable. 2. Change requests facilitate clear communications. 3. Isolated workspaces reduce interference among team members working in parallel. 4. Change rate statistics provide good measurements for objectively assessing project status. 5. Workspaces contain all artifacts, which facilitates consistency. 6. Change propagation is assessable and controlled. 7. Changes can be maintained in a robust, customizable system. 6.CONTROLCHANGESTOSOFTWARE
  • 45. OBJECTORIENTEDDEVELOPMENTCYCLE UNIT 03: Object Orientation Fundamentals and UML Reference: Brown et al., Object-oriented Analysis 2nd. Ed., Wiley, 2001
  • 46. OBJECTORIENTEDDEVELOPMENTCYCLE Phase Activity Models produced Components Analysis OOA Requirements model • Project scope, • feasibility study, • context diagram, • class diagram (entity classes, interface classes, control classes), • behavior diagrams (statechart diagrams, collaborations and CRC cards), • sequence diagrams, activity diagrams Design OOD Design versions of the OO models Construction OOP Actual system Testing OO Testing Working system Maintenance All of the above All of the above
  • 51. THEOBJECTMODEL UNIT 03: Object Orientation Fundamentals and UML References: • Booch et al., The Unified Modeling Language User Guide, Pearson. and • Booch et al., Object-Oriented Analysis and Design with Applications, 3rd ed., Addison-Wesley., Chapter 2 and 3.
  • 53. MODELS  Are developed so that we can better understand the system we are developing. – Help us visualise a system as it is or as we want it to be – Permit us to specify the structure or behavior of the system – Give us a template that guides us structuring a system – Document decisions we made
  • 54. MODELS Different levels  Conceptual level  Logical level  Physical level
  • 55. MODELING Principles of modeling 1. The choice of what models to create has a profound influence on the how a problem is attacked and how a solution is shaped. 2. Every model may be expressed at different level of precision. 3. The best models are connected to reality. 4. No single model is sufficient. Every nontrivial system is best approached through a small set of nearly independent models.
  • 56. OBJECT-ORIENTEDMODELING Object-oriented perspective  Basic building block of a software system is the object or class.  Object is a thing.  Class is a set of common objects.  Every object has; – Identity (name) – State (properties/data associated) – Behavior (methods)
  • 57. THEOBJECTMODEL  Generations of programming languages allowed the shift from programming-in-the-small to programming- in-the-large – Object-oriented languages (Smalltalk, C++, Ada83, Eiffel) – Emergence of framework (Visual Basic, Java, Python, J2EE, .NET, Visual C#, Visual Basic .NET)
  • 62. THEOBJECTMODEL Foundations  Object model is influenced by many factors, not just object- oriented programming. e.g. design of user interfaces, databases, and computer architectures.  An object – maintains integrity and there exist invariant properties that characterize an object and its behavior.  Objects cooperate with other!
  • 63. THEOBJECTMODEL Object-oriented programming (OOP)  A method of implementation in which programs are organised as cooperative collections of objects.  Three features; i. OOP uses objects, not algorithms, as its fundamental building blocks (‘has a’); ii. Each object is an instance of some class; and iii. Classes may be related to one another via inheritance (‘is a’). (no inheritance  abstract data types, e.g. stack)
  • 64. THEOBJECTMODEL Object-oriented programming (OOP) A language is object-oriented if and only if it satisfies the following requirements :  It supports objects that are data abstractions with an interface of named operations and a hidden local state.  Objects have an associated type [class ].  Types [classes ] may inherit attributes from supertypes [superclasses ].
  • 65. THEOBJECTMODEL Object-oriented design (OOD) A design method encompassing the process of object-oriented decomposition and a notation for depicting both logical and physical as well as static and dynamic models of the system under design.  Design  Notation
  • 66. THEOBJECTMODEL Object-oriented analysis (OOA) A method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain. OOA  OOD  OOP
  • 67. THEOBJECTMODEL Elements of object model  Abstraction – essential characteristics  Encapsulation – compartmentalizing the elements of an abstraction that constitute its structure and behavior  Modularity – system decomposed into cohesive and loosely coupled modules  Hierarchy – inheritance, multiple inheritance, avoid redundancy
  • 68. THEOBJECTMODEL Elements of object model  Typing – precise characterisation of structural or behavioral properties (enforcement of the class of an object), static typing, dynamic typing (polymorphism)  Concurrency – active object can be distinguished from one that is not active  Persistence – state and class of an object is consistent across time or space
  • 69. THEOBJECTMODEL Benefits  Expressive – real world objects and their interactions are better expressed using OM  Helps in complex system modeling  OM encourages reuse  Modular design allows resilient change
  • 70. CLASSESANDOBJECTS  Real-world consists of objects  An object – A tangible and/or visible thing – Something that may be comprehended intellectually – Something toward which thought or action is directed
  • 71. OBJECTS  An object – Has state– static properties and current properties (dynamic) – Has well-define behavior – how object acts and reacts in terms of its state changes and message passing (operations: modifier, selector, iterator, constructor, destructor; roles and responsibilities) – Has a unique identity – every object should be distinguishable from other objects
  • 72. OBJECTS Relationship among objects  Two types – Links – physical/conceptual connection between two objects (peer-to-peer or client/supplier) – Aggregation – whole/part hierarchy
  • 73. OBJECTS Relationship among objects  Links – show message passing  While passing message, an object may play one of three roles; – Controller – Server – Proxy (both controller and server, represents a real-world object in the domain of the application)
  • 74. OBJECTS Relationship among objects  Links – show message passing
  • 75. OBJECTS Relationship among objects  Links – Visibility - for an object to receive messages, it must be visible to others. – Synchronisation – objects may be active in sequence, guarded (mutual exclusion), or concurrent
  • 76. OBJECTS Relationship among objects  Aggregation – whole/part hierarchy
  • 77. CLASSES  Classes provide framework for objects  An object is an instance of a class.  A class represents a set of objects that share common structure and a common behavior.
  • 78. CLASSES  Interface of a class – Public – components of a class accessible to all clients) – Protected – accessible to itself and its subclasses – Private – accessible to itself – Package – accessible by classes in the same package
  • 79. CLASSES  Relationship among classes – Association • Semantic dependencies – e.g. a weather station has multiple sensors. • Multiplicity – one-to-one, one-to-many, many-to-many – Inheritance – a class may inherit a super-class • Single inheritance • Polymorphism • Multiple inheritance
  • 80. CLASSES  Relationship among classes – Aggregation - whole and part relationship (has a), enforces physical containment – Dependencies – when one element is dependent on other, e.g. one module dependent on other.
  • 81. INTERPLAYOFCLASSESANDOBJECTS  Identify the classes that form the vocabulary of the problem domain.  Invent the structures whereby sets of objects work together to provide the behaviors that satisfy the requirements of the problem.
  • 82. BUILDINGQUALITYCLASSESANDOBJECTS  Measuring quality of abstraction – – Coupling, – Cohesion, – Sufficiency, – Completeness, – Primitiveness  Choosing operations – Functional semantics – focusing on reusability, complexity, applicability and implementation performance – Time and space semantics
  • 83. BUILDINGQUALITYCLASSESANDOBJECTS  Choosing relationships – Law of demeter – the methods of a class should not depend on structure of other classes, except its immediate super class. – Visibility  Implementation – Proper representation – Proper packaging
  • 84. CLASSIFICATION UNIT 03: Object Orientation Fundamentals and UML References: • Booch et al., Object-Oriented Analysis and Design with Applications, 3rd ed., Addison-Wesley., Chapter 4.
  • 85. PROPERCLASSIFICATION  Classification helps generalisation, specialisation, aggregation hierarchies among classes.  Objects, classes, hierarchies, associations etc. need to properly identified.  Help maintain proper level of cohesion and coupling.  Challenges – there is no perfect classification, intelligent classification requires tremendous amount of creative insight
  • 86. IDENTIFYINGCLASSESANDOBJECTS Three approaches to classification;  Classical cetegorisation - All the entities that have a given property or collection of properties in common form a category. Such properties are necessary and sufficient to define the category. e.g. employee  Conceptual clustering – classes are generated by formulating conceptual descriptions then classifying the entities according to the descriptions. e.g. love songs  Prototype theory – class represented by prototypical object e.g. game
  • 87. IDENTIFYINGCLASSESANDOBJECTS We will revisit identification of classes and objects in Unit 4. Refer to  Object-oriented analysis (Chapter 4.2, p. 131)  Key Abstractions and mechanisms (Chapter 4.3, p. 138)
  • 88. UNIFIEDPROCESS UNIT 03: Object Orientation Fundamentals and UML References: Schach, S. R., 2008, Object-oriented software engineering, McGrawHill (Chapter – 3) Bruegge B., and Dutoit A. H. 2010, Object-oriented Software Engineering using UML, Patterns and Java, 3rd ed., Prentice Hall (Chapter 15)
  • 89. UNIFIEDSOFTWAREDEVELOPMENTPROCESS  Development time – divided into cycles  Cycles – birth, childhood, adulthood, retirement etc.  Each cycle end with release of the system  Each cycle can be in one of four phases
  • 90. UNIFIEDSOFTWAREDEVELOPMENTPROCESS  Each phase might contain a number of iterations  Each iteration – Use use-cases – Mitigate risks in the iteration – Acts as a project  Activities, also known as workflows, in each cycle are performed in parallel
  • 92. UNIFIEDPROCESS-WORKFLOWS  Engineering workflows – Requirements – analysis of application domain and creation of specifications – Design – design of the software – creation of solution – Implementation - code – Test – test cases, benchmarking
  • 93. UNIFIEDPROCESS-WORKFLOWS  Supporting workflows – Management – project planning – Environment – development environment, automation of the software process – Assessment – verification and validation (reviews, walkthroughs and inspections) – Deployment – configuration, transition of the software system to the end user
  • 96. ❃ Read Chapter 3 from book Object-oriented software engineering by Stephen R. Schach.
  • 97. End of Unit 03 : Object Orientation Fundamentals