Fundamentals of object orientation, objects, classes, classification and object models delivered to post-graduate students of Object Oriented Software Engineering.
Object-Oriented Analysis techniques covering requirements elicitation and object analysis model development delivered to post-graduate students of Object Oriented Software Engineering
Object-Oriented Design techniques covering system design, and object design delivered to post-graduate students of Object Oriented Software Engineering
Object-Oriented Implementation techniques covering object model optimization and object persistence delivered to post-graduate students of Object Oriented Software Engineering.
Object-Oriented Analysis techniques covering requirements elicitation and object analysis model development delivered to post-graduate students of Object Oriented Software Engineering
Object-Oriented Design techniques covering system design, and object design delivered to post-graduate students of Object Oriented Software Engineering
Object-Oriented Implementation techniques covering object model optimization and object persistence delivered to post-graduate students of Object Oriented Software Engineering.
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
Ivano Malavolta.
Research Fellow at the Computer Science Department of the University of L'Aquila (Italy).
PhD thesis presentation, University of L'Aquila, March 2012.
The full PhD thesis is available here:
http:www.di.univaq.it/malavolta/files/IvanoMalavoltaPhDThesis.pdf
Software architecture and software design are two aspects of the same topic. Both are about how software is structured in order to perform its tasks. The term "software architecture" typically refers to the bigger structures of a software system, whereas "software design" typically refers to the smaller structures.
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
Modeling is a common part of modern day software engineering practice. Little scientific evidence is known about how models are made and how they help in producing better software. In this talk Michel Chaudron presents highlights from a decade of research that he has performed in the area of software modeling using UML. Topics that will be addressed: What is the state of UML modeling in practice? What are effective techniques for assessing the quality of UML models? How do engineers look at UML models? Do UML models actually help in creating better software?
Software Architecture: views and viewpointsHenry Muccini
This is an introductory lecture to Software Architecture Views and Viewpoints, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Multiagent Based Methodologies have become an
important subject of research in advance Software Engineering.
Several methodologies have been proposed as, a theoretical
approach, to facilitate and support the development of complex
distributed systems. An important question when facing the
construction of Agent Applications is deciding which
methodology to follow. Trying to answer this question, a
framework with several criteria is applied in this paper for the
comparative analysis of existing multiagent system
methodologies. The results of the comparative over two of them,
conclude that those methodologies have not reached a sufficient
maturity level to be used by the software industry. The
framework has also proved its utility for the evaluation of any
kind of Multiagent Based Software Engineering Methodology
Systems Analysis,
Systems Design,
Systems Modelling,
Systems Architecture,
System Development and Testing,
System Maintenance and Evolution,
SDLC example (Cloud Service life cycle)
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
Ivano Malavolta.
Research Fellow at the Computer Science Department of the University of L'Aquila (Italy).
PhD thesis presentation, University of L'Aquila, March 2012.
The full PhD thesis is available here:
http:www.di.univaq.it/malavolta/files/IvanoMalavoltaPhDThesis.pdf
Software architecture and software design are two aspects of the same topic. Both are about how software is structured in order to perform its tasks. The term "software architecture" typically refers to the bigger structures of a software system, whereas "software design" typically refers to the smaller structures.
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
Modeling is a common part of modern day software engineering practice. Little scientific evidence is known about how models are made and how they help in producing better software. In this talk Michel Chaudron presents highlights from a decade of research that he has performed in the area of software modeling using UML. Topics that will be addressed: What is the state of UML modeling in practice? What are effective techniques for assessing the quality of UML models? How do engineers look at UML models? Do UML models actually help in creating better software?
Software Architecture: views and viewpointsHenry Muccini
This is an introductory lecture to Software Architecture Views and Viewpoints, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Multiagent Based Methodologies have become an
important subject of research in advance Software Engineering.
Several methodologies have been proposed as, a theoretical
approach, to facilitate and support the development of complex
distributed systems. An important question when facing the
construction of Agent Applications is deciding which
methodology to follow. Trying to answer this question, a
framework with several criteria is applied in this paper for the
comparative analysis of existing multiagent system
methodologies. The results of the comparative over two of them,
conclude that those methodologies have not reached a sufficient
maturity level to be used by the software industry. The
framework has also proved its utility for the evaluation of any
kind of Multiagent Based Software Engineering Methodology
Systems Analysis,
Systems Design,
Systems Modelling,
Systems Architecture,
System Development and Testing,
System Maintenance and Evolution,
SDLC example (Cloud Service life cycle)
Software Development is a complicated project. Careful management of the project is really important. The various steps involved in the management of software development project is discussed here in detail.
Software Architecture Standard IEEE 1471vconovalov
This presentation covers the IEEE 1471/4210 Architecture Standard for the Software Intensive System. Following areas such as Stakeholders and their concerns, Architecture Description and System Qualities Attributes were mainly addressed. The audience consisted of Development leads, developers & testers. Hope other disciplines such as Architects and Business Analysts will find it useful as well.
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Can “Feature” be used to Model the Changing Access Control Policies? IJORCS
Access control policies [ACPs] regulate the access to data and resources in information systems. These ACPs are framed from the functional requirements and the Organizational security & privacy policies. It was found to be beneficial, when the ACPs are included in the early phases of the software development leading to secure development of information systems. Many approaches are available for including the ACPs in requirements and design phase. They relied on UML artifacts, Aspects and also Feature for this purpose. But the earlier modeling approaches are limited in expressing the evolving ACPs due to organizational policy changes and business process modifications. In this paper, we analyze, whether “Feature”- defined as an increment in program functionality can be used as a modeling entity to represent the Evolving Access control requirements. We discuss the two prominent approaches that use Feature in modeling ACPs. Also we have a comparative analysis to find the suitability of Features in the context of changing ACPs. We conclude with our findings and provide directions for further research.
A Review of Feature Model Position in the Software Product Line and Its Extra...CSCJournals
The software has become a modern asset and competitive product. The product line that has long been used in manufacturing and construction industries nowadays has attracted a lot of attention in software industry. Most importance of product line engineering approach is in cost and time issues involved in marketing. Feature model is one of the most important methods of documenting variability in product line that shows product features and their dependencies. Because of the magnitude and complexity of the product line, build and maintain feature models are complex and time-consuming work. In this article feature model importance and position in product line is discussed and feature model extraction methods are reviewed and compared.
Hugtakið hugbúnaðararkítektúr er yfirhlaðið orð og þýðir mismunandi hluti fyrir mismunandi fólk. Við ætlum í þessum fyrirlestri að skilgreina ýmis hugtök tengd arkítektúr til að fá betri skilning á þessu. Við munum einnig skilgreina hvað agile arkítektúr þýðir eða hvað það þýðir ekki. Þá skoðum við monolith arkítektúr sem er hinn hefðbundi arkítektúr sem flestir nota í dag. Vandinn er sá að í dag eru kröfurnar meiri en þessi arkítektúr ræður við og því hafa menn verið að skoða aðrar leiðir eins og lightweight Service Oriented Architecture og hvernig smíða má hugbúnað sem þjónustur eða microapps eða microservice.
Við skoðum einnig lagskiptingu en það er elsta trikkið í bókinni og byggir á deila og drottna aðferðinni.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
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
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!
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
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/
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 ?
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
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.
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
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
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)
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
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