1 Advanced Object-oriented Design – Principles and Patterns Structural Design Patterns.
1. 2 Have a basic understanding of the fundamental principles of object-oriented software...
Click here to load reader
-
Upload
phebe-haynes -
Category
Documents
-
view
223 -
download
3
Transcript of 1. 2 Have a basic understanding of the fundamental principles of object-oriented software...
![Page 1: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/1.jpg)
1
COMP 3004OO Software Engineering
![Page 2: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/2.jpg)
2
Course Outline
![Page 3: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/3.jpg)
3
Have a basic understanding of the fundamental principles of object-oriented software development.
Understand a selection of the design patterns of Gamma et al.
Understand the basics of UML 2.0 and of Use Case Maps
Practice Agile OO Development via a team project
Learning Objectives
![Page 4: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/4.jpg)
4
Activities, Process,and Models
![Page 5: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/5.jpg)
5
OO Development OverviewRequirementsModelsRequirements Capture
Analysis
Design
AnalysisModels
DesignModels
ImplementationModels
TestModels
Requirements Doc.Use CasesDomain Objects
Objects -structure -scenario -behavior
Objects -structure -scenario -behavior
Code
Test Plan, Test CasesTest Drivers & Results
Implement
Testing
![Page 6: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/6.jpg)
6
A development process defines the set of models that are to be used by designers and the order in which these models are used◦ Each model must have a well-defined role in the
process◦ When defining the process, the models must be
chosen based on the domain concepts that need to be modeled: Is OO relevant to the problem at hand?
e.g., OO is particularly well suited for event-driven systems Is software evolution a concern or not? Is software quality a concern or not?
Development Process
![Page 7: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/7.jpg)
7
Waterfall Development
RequirementsCapture
Analysis
Design
Implement
Testing
Activities carried out one after the other as steps
“The Big Bang approachto software development”
![Page 8: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/8.jpg)
8
Incremental-Iterative Development
RequirementsCapture
Analysis
Design
Implement
Testing
The Spiral Model
Can have macro and micro iterations but needs to converge
![Page 9: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/9.jpg)
9
Traceability is required to achieve convergence: ◦ We must document the continuity that must exist between the work-
products of different activities.◦ In turn, continuity enables completeness and consistency checks.
Within a particular activity, the work-products must be consistent:◦ e.g., the structural, scenario and behavior models must be consistent
For example, if an interaction diagram shows an object receiving a message, then the FSM of this object must reflect this possibility
Work-products must also be complete with respect to the current requirements.
Aiming for Traceability
![Page 10: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/10.jpg)
10
TraceabilityRequirementsModels
RequirementsCapture
Analysis
Design
Implement
Test
AnalysisModels
DesignModels
ImplementationModels
TestModels
RequirementsModels
RequirementsModels
AnalysisModels
AnalysisModels
DesignModels
DesignModels
ImplementationModels
ImplementationModels
TestModels
TestModels
Intra-iterationTraceability Inter-iteration
Traceability
![Page 11: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/11.jpg)
A Scenario Driven Modeling Approach
Problem Description
Use Case 1 Use Case 2 Use Case 3
MSCs
UCMs
FSMs and/orcode
MSC MSC MSC
Inter-scenariorelationships
Reqs
Is it traceable?
![Page 12: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/12.jpg)
The Agile Manifesto–a statement of values
Process and toolsIndividuals and interactions
over
Following a planResponding to change
over
Source: www.agilemanifesto.org
Comprehensive documentation
Working software over
Contract negotiationCustomer collaboration
over
![Page 13: 1. 2 Have a basic understanding of the fundamental principles of object-oriented software development. Understand a selection of the design patterns.](https://reader038.fdocuments.us/reader038/viewer/2022100501/56649e435503460f94b36ee5/html5/thumbnails/13.jpg)
The Core of Agile Modeling
Some Core Principles
◦ Assume Simplicity◦ Expect Incremental Change◦ Enabling the Next Effort is
Your Secondary Goal◦ Model With a Purpose◦ Use Multiple Models◦ Maximize Stakeholder
Investment◦ Value Quality first◦ Get Rapid Feedback◦ Software Is Your Primary
Goal
Some Core Practices
◦ Active Stakeholder Participation
◦ Apply the Right Artifact(s)◦ Collective Ownership◦ Create Several Models in
Parallel◦ Create Simple Content◦ Depict Models Simply◦ Display Models Publicly◦ Model in Small Increments◦ Model With Others◦ Prove it With Code◦ Use the Simplest Tools