SlideShare a Scribd company logo
SWEN 262
Engineering of
Software Subsystems
Noun & Verb Analysis
Nouns & Verbs
● Breaking a large problem down into a class
structure is referred to as class decomposition.
● Analyzing the nouns and verbs in the problem
statement can be the first step in creating a
class decomposition.
● Nouns may represent:
○ Classes
○ Specializations (i.e. subclasses)
○ Attributes (i.e. fields)
○ Data elements
● Verbs may represent:
○ Services (i.e. methods) provided by a class
○ Services used by a class
Intentional Analysis
● An intentional analysis goes beyond simply
listing the nouns and verbs and provides more
guidance.
● Using structure and annotating the nouns and
verbs list moves you toward a class
decomposition.
● This helps yield a class structure that is
isomorphic to the world view of the problem
domain.
● It also helps identify the location for
services/responsibilities.
We do typically begin by highlighting
the nouns and verbs in the original
problem statement, but this is just the
first step.
Let’s take a look at a detailed example.
A Restaurant Reservation System
You are designing a restaurant reservation system. Each restaurant has
information about its location, type of food, hours of operation, and
reservations. The restaurants are broken up into regular, catering, and
take-out where making a reservation means a different thing for each
category of restaurant. Diners will be able to use the system either when
logged into their account or as a guest. Diners, either as guests or logged
in users, can make reservations. Reservations will be saved to a user's
account if they are logged in. Logged in users can also view, modify, or
delete reservations in their account. A user's account will store a name,
rewards points, and their upcoming and past reservations. Restaurant
users will have an account which can view, modify, or delete any
reservation made for their restaurant. The restaurant user can also
complete a reservation when diners arrive. All users will authenticate
using a password or Google login.
Step 1 - Identify the Nouns
You are designing a restaurant reservation system. Each restaurant has
information about its location, type of food, hours of operation, and
reservations. The restaurants are broken up into regular, catering, and
take-out where making a reservation means a different thing for each
category of restaurant. Diners will be able to use the system either when
logged into their account or as a guest. Diners, either as guests or logged
in users, can make reservations. Reservations will be saved to a user's
account if they are logged in. Logged in users can also view, modify, or
delete reservations in their account. A user's account will store a name,
rewards points, and their upcoming and past reservations. Restaurant
users will have an account which can view, modify, or delete any
reservation made for their restaurant. The restaurant user can also
complete a reservation when diners arrive. All users will authenticate
using a password or Google login.
You do not need to
highlight the same (or
similar) nouns more than
once.
Some nouns may
obviously not make
it into the design,
but be thorough.
Initial Noun List
● List all of the nouns in the left
column of a two-column table.
○ Put each noun in its own row in the
table.
Nouns Verbs
You
restaurant
reservation
system
information
location
type of food
hours of operation
regular
catering
take-out
thing
category of restaurant
diners
account
guest
logged in user
name
rewards points
password
Google login
Nouns Verbs
You
restaurant [regular, catering, take-out]
reservation
system
information
location
type of food
hours of operation
regular
catering
take-out
thing
category of restaurant
diners
account
guest
User [logged in, guest]
name
rewards points
password
Google login
Step 2 - Identify
Specializations
● Identify the nouns that
might be specializations of
other nouns.
○ Put the specializing word in
square brackets ([]) next to the
noun it is specializing.
○ If the noun has no other use
than its specialization, remove
its row from the table.
Here, specializations are
shown in red just to
make them more visually
distinctive.
You may also combine
or rearrange nouns to
create specializations
that make sense.
In your assignments, do
not remove the rows,
but use shading to show
that they are eliminated.
Nouns Verbs
You
restaurant [regular, catering, take-out]
(location, type of food, hours of operation,
reservations)
reservation
system
information
location
type of food
hours of operation
thing
diners
account
User [logged in, guest] (name, rewards
points, password, Google login,
reservations)
name
rewards points
password
Google login
Step 3 - Identify
Attributes
● Identify nouns that may be:
○ Attributes of other nouns
○ Properties of other nouns
○ Information/data owned by other
nouns.
● Connect the nouns together.
○ Put the associated noun in
parentheses (()) next to the noun it
is associated with.
○ Remove the associated nouns row
only if it is a primitive data type. Err
in the direction of keeping nouns in
the list.
Here again color is used
just to make the
associations visually
distinctive.
Again, in your
assignments, you should
not delete the rows, but
use shading.
Domain Analysis
● Now that we have completed a thorough noun
analysis, it is time to pivot to creating a domain
model.
● A domain model uses a simplified UML class
diagram notation and should show the
following information:
○ Domain entities
○ Attributes
○ Relationships
● The domain model should only use language
from the original domain, i.e. the nouns from
your analysis.
Domain Entity1
attribute 1
attribute 2
Domain Entity2
<relationship>
The relationship should complete a
phrase when read Domain Entity1
<relationship> Domain Entity2
.
Nouns
You
restaurant [regular, catering, take-out]
(location, type of food, hours of operation,
reservations)
reservation
system
information
location
hours of operation
thing
diners
account
User [logged in, guest] (name, rewards
points, password, Google login,
reservations)
Each noun in the analysis is a
potential entity in the domain
mode.
But we can make some educated
guesses about nouns that
probably won't be in the model.
For example, nouns that seem
unimportant (e.g you, thing) or
redundant (e.g. account, diners).
As well as nouns that appear as
the attribute of another noun and
don't seem important enough to
be a separate entity.
Domain Analysis
Restaurant
location
type of food
hours of operation
User
name
rewards points
password
Google login
Regular
Catering
Take-Out
Reservation
Logged-In
Guest
Domain Analysis
The next step is to connect the
entities that are related to each
other in some way.
If the relationship is inheritance,
then we use the standard UML
notation for that.
Domain Analysis
Every relationship should be
labeled using a descriptive
phrase directly from the problem
statement.
Arrows should be used to
indicate the direction of the
relationship.
Domain Analysis
Finally, be sure to indicate the
multiplicity for any relationships
that are not 1-to-1.
Interlude - Domain Analysis
● The purpose of a domain analysis is to start a
conversation with the customer.
○ The model is presented to the customer along with the
question: did I get this right?
○ The customer will provide feedback and request
changes to the model.
○ The purpose of the conversation is to establish a shared
understanding of the customer's vision before beginning
a detailed design of the system.
○ As a result of the conversation with your customer, you
may revise the model before continuing.
For the purposes of this exercise, we
will assume that the domain model
presented accurately captured the
customer's vision of the product.
Next - Identify the Verbs
You are designing a restaurant reservation system. Each restaurant has
information about its location, type of food, hours of operation, and
reservations. The restaurants are broken up into regular, catering, and
take-out where making a reservation means a different thing for each
category of restaurant. Diners will be able to use the system either when
logged into their account or as a guest. Diners, either as guests or logged
in users, can make reservations. Reservations will be saved to a user's
account if they are logged in. Logged in users can also view, modify, or
delete reservations in their account. A user's account will store a name,
rewards points, and their upcoming and past reservations. Restaurant
users will have an account which can view, modify, or delete any
reservation made for their restaurant. The restaurant user can also
complete a reservation when diners arrive. All users will authenticate
using a password or Google login.
You may want to
highlight the same
verb more than
once if it appears in
different contexts.
Just as with nouns,
some verbs may
obviously not make
it into the design,
but be thorough.
Expressing Verbs
● For each verb, express its use in a
phrase of the form subject-noun verb
object-noun.
○ The subject noun invokes the action (the doer).
○ The object noun has the action performed on it
(the receiver).
● Use the active voice for the verb.
○ If it is in the passive voice, rephrase it.
You are designing a restaurant reservation system.
Restaurant has information
Diners are able to use system
Diners make reservations
Reservations will be saved (by the user? system?)
User saves reservations to account
User views/modifies/deletes reservations
(Restaurant) user completes reservation
Users authenticate with password
Users authenticate with Google login
Subject noun
(doer).
Verb.
Object noun
(receiver).
Nouns Verbs
You designing (restaurant reservation system)
restaurant [regular, catering, take-out]
(location, type of food, hours of operation,
reservations)
has (information)
reservation
system
information
location
hours of operation
thing
diners
use (system)
make (reservation)
account
User [logged in, guest] (name, rewards
points, password, Google login,
reservations)
complete (reservation)
saves (reservation)
views/modifies/deletes (reservation)
authenticate (password)
authenticate (Google login)
Connect Verbs
to Nouns
● Connect each verb to the
nouns in the phrase expressing
the verb’s use.
○ Put each verb in the right column
and the same row as the subject
noun (the doer).
○ Put the object noun (the receiver) in
parentheses (()) next to the verb.
Here again color is used
just to make the
associations visually
distinctive.
Pruning
● If a noun has no attributes, no
specializations, and does not
invoke or receive any verbs,
consider eliminating it from the
table.
○ Is there a verb missing that this noun
invokes or expresses an action
performed on this noun?
○ Is this noun really outside of the
system boundary?
● Are some nouns synonyms?
● Are some verbs of little
relevance?
Nouns Verbs
You designing (restaurant reservation system)
restaurant [regular, catering, take-out]
(location, type of food, hours of operation,
reservations)
has (information)
reservation
system
information
location
hours of operation
thing
diners
use (system)
make (reservation)
account
User [logged in, guest] (name, rewards
points, password, Google login,
reservations)
complete (reservation)
saves (reservation)
views/modifies/deletes (reservation)
authenticate (password)
authenticate (Google login)
Again, in your
assignments, you should
not delete the rows, but
use shading.
First-Cut
Class Decomposition
● Nouns in a table row (row-nouns) are
potential classes.
● Nouns in the left in parentheses are
potential attributes (fields) of the
row-noun.
● Nouns on the left in brackets are potential
subclasses with the row-noun as the
superclass.
● Verbs on the right are responsibilities
potentially defined as methods in the
object-nouns (in parentheses).
○ A noun that is “responsible” for a verb action
contains the code that implements that action.
Nouns Verbs
restaurant [regular, catering,
take-out] (location, type of
food, hours of operation,
reservations)
reservation
system
Iiformation
location
hours of operation
User [logged in, guest]
(name, rewards points,
password, Google login,
reservations)
complete (reservation)
saves (reservation)
views/modifies/deletes (reservation)
authenticate (password)
authenticate (Google login)
The “row-nouns” are
potential classes.
Nouns in square
brackets are potential
subclasses.
Nouns on the left in
parentheses are
potential fields.
Nouns on the right in
parentheses potentially
implement the
associated verbs.
First-Cut Class Decomposition Table
Classes Subclasses Attributes Responsibilities
Restaurant Regular
Catering
Take-Out
Location
Type of food
Hours of operation
Reservations
Reservation Make
Complete
Save
View
Modify
Delete
User Logged-In
Guest
Name
Rewards points
Password
Google login
Reservations
Location
Hours of Operation
CRC Cards
● The first-cut class decomposition
includes high level information about
classes/subclasses, attributes, and
responsibilities.
● The next step is to spend time
articulating the precise role and
responsibilities of each class in the
system.
● One common mechanism for doing this is
a Class-Responsibilities-Collaborators
(CRC) Card.
Class: ClassName
Responsibilities:
A description of the class’s responsibility within
the context of the system. This description
should be at least 2-3 sentences long.
Collaborators (do not write anything here)
Uses:
The list of classes that
this class uses
(depends on).
Used By:
The list of classes that
use (depend on) this
class.
Author: The team member(s) that wrote this
class.
CRC Example
Class: Restaurant
Responsibilities:
The overall responsibility of this class is to represent one of the restaurants at
which users of the system may make reservations. The class includes
information about the restaurant's location, the type of food served, hours of
operation, and maintains a list of upcoming and past reservations.
Collaborators
Uses:
Reservation, Hours of Operation,
Location
Used By:
RegularRestaurant, CateringRestaurant,
TakeOutRestauarant, User
Author: J. Smith

More Related Content

Similar to technologytechnologytechnologytechnology

College Essay Writers Block. Online assignment writing service.
College Essay Writers Block. Online assignment writing service.College Essay Writers Block. Online assignment writing service.
College Essay Writers Block. Online assignment writing service.
Erica Spivey
 
Salesforce admin training 2
Salesforce admin training 2Salesforce admin training 2
Salesforce admin training 2
HungPham381
 
SAP HCM - OM PRESENTATION
SAP HCM - OM PRESENTATIONSAP HCM - OM PRESENTATION
SAP HCM - OM PRESENTATIONAditi Sinha
 
Self managment skills
Self managment skillsSelf managment skills
Self managment skillssusanjay
 
Mother May I?
Mother May I?Mother May I?
Mother May I?
shaeesi
 
Measurement and scale
Measurement and scale Measurement and scale
Measurement and scale
Sanjay Basukala
 
Design Thinking_Creative Ideas and Presentations
Design Thinking_Creative Ideas and PresentationsDesign Thinking_Creative Ideas and Presentations
Design Thinking_Creative Ideas and Presentations
Charis Asante-Agyei
 
HR Management In Odoo
HR Management In OdooHR Management In Odoo
HR Management In Odoo
Varsha Technaureus
 
Business ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docxBusiness ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docx
dewhirstichabod
 
Business ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docxBusiness ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docx
felicidaddinwoodie
 
Becoming a Better Practitioner (BBP) Assignment (40 points) Monito.docx
Becoming a Better Practitioner (BBP) Assignment (40 points) Monito.docxBecoming a Better Practitioner (BBP) Assignment (40 points) Monito.docx
Becoming a Better Practitioner (BBP) Assignment (40 points) Monito.docx
robert345678
 
Lecture 07
Lecture 07Lecture 07
Lecture 07
MEHTAB REHMAN
 
NameHRT 4760 Assignment 06AccommodationThis is one of a p.docx
NameHRT 4760 Assignment 06AccommodationThis is one of a p.docxNameHRT 4760 Assignment 06AccommodationThis is one of a p.docx
NameHRT 4760 Assignment 06AccommodationThis is one of a p.docx
hallettfaustina
 
IRJET- Classification of Business Reviews using Sentiment Analysis
IRJET-  	  Classification of Business Reviews using Sentiment AnalysisIRJET-  	  Classification of Business Reviews using Sentiment Analysis
IRJET- Classification of Business Reviews using Sentiment Analysis
IRJET Journal
 
NameHRT 4760 Assignment 08Body LanguageThis is one of a p.docx
NameHRT 4760 Assignment 08Body LanguageThis is one of a p.docxNameHRT 4760 Assignment 08Body LanguageThis is one of a p.docx
NameHRT 4760 Assignment 08Body LanguageThis is one of a p.docx
hallettfaustina
 
Michael HricikENG 162This assignment will be about 2-3 double-sp.docx
Michael HricikENG 162This assignment will be about 2-3 double-sp.docxMichael HricikENG 162This assignment will be about 2-3 double-sp.docx
Michael HricikENG 162This assignment will be about 2-3 double-sp.docx
ARIV4
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptx
Paul Boos
 
Organizational behavior,power, politics, conflict, and stress
Organizational behavior,power, politics, conflict, and stressOrganizational behavior,power, politics, conflict, and stress
Organizational behavior,power, politics, conflict, and stressK Pavan Kumar
 
NameHRT 4760 Assignment 04CommunicationThis is one of a p.docx
NameHRT 4760 Assignment 04CommunicationThis is one of a p.docxNameHRT 4760 Assignment 04CommunicationThis is one of a p.docx
NameHRT 4760 Assignment 04CommunicationThis is one of a p.docx
gemaherd
 
Startup analytics
Startup analyticsStartup analytics
Startup analytics
Dale Beermann
 

Similar to technologytechnologytechnologytechnology (20)

College Essay Writers Block. Online assignment writing service.
College Essay Writers Block. Online assignment writing service.College Essay Writers Block. Online assignment writing service.
College Essay Writers Block. Online assignment writing service.
 
Salesforce admin training 2
Salesforce admin training 2Salesforce admin training 2
Salesforce admin training 2
 
SAP HCM - OM PRESENTATION
SAP HCM - OM PRESENTATIONSAP HCM - OM PRESENTATION
SAP HCM - OM PRESENTATION
 
Self managment skills
Self managment skillsSelf managment skills
Self managment skills
 
Mother May I?
Mother May I?Mother May I?
Mother May I?
 
Measurement and scale
Measurement and scale Measurement and scale
Measurement and scale
 
Design Thinking_Creative Ideas and Presentations
Design Thinking_Creative Ideas and PresentationsDesign Thinking_Creative Ideas and Presentations
Design Thinking_Creative Ideas and Presentations
 
HR Management In Odoo
HR Management In OdooHR Management In Odoo
HR Management In Odoo
 
Business ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docxBusiness ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docx
 
Business ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docxBusiness ManagementWord count 3,500 words (+-10)This as.docx
Business ManagementWord count 3,500 words (+-10)This as.docx
 
Becoming a Better Practitioner (BBP) Assignment (40 points) Monito.docx
Becoming a Better Practitioner (BBP) Assignment (40 points) Monito.docxBecoming a Better Practitioner (BBP) Assignment (40 points) Monito.docx
Becoming a Better Practitioner (BBP) Assignment (40 points) Monito.docx
 
Lecture 07
Lecture 07Lecture 07
Lecture 07
 
NameHRT 4760 Assignment 06AccommodationThis is one of a p.docx
NameHRT 4760 Assignment 06AccommodationThis is one of a p.docxNameHRT 4760 Assignment 06AccommodationThis is one of a p.docx
NameHRT 4760 Assignment 06AccommodationThis is one of a p.docx
 
IRJET- Classification of Business Reviews using Sentiment Analysis
IRJET-  	  Classification of Business Reviews using Sentiment AnalysisIRJET-  	  Classification of Business Reviews using Sentiment Analysis
IRJET- Classification of Business Reviews using Sentiment Analysis
 
NameHRT 4760 Assignment 08Body LanguageThis is one of a p.docx
NameHRT 4760 Assignment 08Body LanguageThis is one of a p.docxNameHRT 4760 Assignment 08Body LanguageThis is one of a p.docx
NameHRT 4760 Assignment 08Body LanguageThis is one of a p.docx
 
Michael HricikENG 162This assignment will be about 2-3 double-sp.docx
Michael HricikENG 162This assignment will be about 2-3 double-sp.docxMichael HricikENG 162This assignment will be about 2-3 double-sp.docx
Michael HricikENG 162This assignment will be about 2-3 double-sp.docx
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptx
 
Organizational behavior,power, politics, conflict, and stress
Organizational behavior,power, politics, conflict, and stressOrganizational behavior,power, politics, conflict, and stress
Organizational behavior,power, politics, conflict, and stress
 
NameHRT 4760 Assignment 04CommunicationThis is one of a p.docx
NameHRT 4760 Assignment 04CommunicationThis is one of a p.docxNameHRT 4760 Assignment 04CommunicationThis is one of a p.docx
NameHRT 4760 Assignment 04CommunicationThis is one of a p.docx
 
Startup analytics
Startup analyticsStartup analytics
Startup analytics
 

Recently uploaded

Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
JEE1_This_section_contains_FOUR_ questions
JEE1_This_section_contains_FOUR_ questionsJEE1_This_section_contains_FOUR_ questions
JEE1_This_section_contains_FOUR_ questions
ShivajiThube2
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
kimdan468
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
Krisztián Száraz
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
chanes7
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
goswamiyash170123
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
Mohammed Sikander
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 

Recently uploaded (20)

Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
JEE1_This_section_contains_FOUR_ questions
JEE1_This_section_contains_FOUR_ questionsJEE1_This_section_contains_FOUR_ questions
JEE1_This_section_contains_FOUR_ questions
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 

technologytechnologytechnologytechnology

  • 1. SWEN 262 Engineering of Software Subsystems Noun & Verb Analysis
  • 2. Nouns & Verbs ● Breaking a large problem down into a class structure is referred to as class decomposition. ● Analyzing the nouns and verbs in the problem statement can be the first step in creating a class decomposition. ● Nouns may represent: ○ Classes ○ Specializations (i.e. subclasses) ○ Attributes (i.e. fields) ○ Data elements ● Verbs may represent: ○ Services (i.e. methods) provided by a class ○ Services used by a class
  • 3. Intentional Analysis ● An intentional analysis goes beyond simply listing the nouns and verbs and provides more guidance. ● Using structure and annotating the nouns and verbs list moves you toward a class decomposition. ● This helps yield a class structure that is isomorphic to the world view of the problem domain. ● It also helps identify the location for services/responsibilities. We do typically begin by highlighting the nouns and verbs in the original problem statement, but this is just the first step. Let’s take a look at a detailed example.
  • 4. A Restaurant Reservation System You are designing a restaurant reservation system. Each restaurant has information about its location, type of food, hours of operation, and reservations. The restaurants are broken up into regular, catering, and take-out where making a reservation means a different thing for each category of restaurant. Diners will be able to use the system either when logged into their account or as a guest. Diners, either as guests or logged in users, can make reservations. Reservations will be saved to a user's account if they are logged in. Logged in users can also view, modify, or delete reservations in their account. A user's account will store a name, rewards points, and their upcoming and past reservations. Restaurant users will have an account which can view, modify, or delete any reservation made for their restaurant. The restaurant user can also complete a reservation when diners arrive. All users will authenticate using a password or Google login.
  • 5. Step 1 - Identify the Nouns You are designing a restaurant reservation system. Each restaurant has information about its location, type of food, hours of operation, and reservations. The restaurants are broken up into regular, catering, and take-out where making a reservation means a different thing for each category of restaurant. Diners will be able to use the system either when logged into their account or as a guest. Diners, either as guests or logged in users, can make reservations. Reservations will be saved to a user's account if they are logged in. Logged in users can also view, modify, or delete reservations in their account. A user's account will store a name, rewards points, and their upcoming and past reservations. Restaurant users will have an account which can view, modify, or delete any reservation made for their restaurant. The restaurant user can also complete a reservation when diners arrive. All users will authenticate using a password or Google login. You do not need to highlight the same (or similar) nouns more than once. Some nouns may obviously not make it into the design, but be thorough.
  • 6. Initial Noun List ● List all of the nouns in the left column of a two-column table. ○ Put each noun in its own row in the table. Nouns Verbs You restaurant reservation system information location type of food hours of operation regular catering take-out thing category of restaurant diners account guest logged in user name rewards points password Google login
  • 7. Nouns Verbs You restaurant [regular, catering, take-out] reservation system information location type of food hours of operation regular catering take-out thing category of restaurant diners account guest User [logged in, guest] name rewards points password Google login Step 2 - Identify Specializations ● Identify the nouns that might be specializations of other nouns. ○ Put the specializing word in square brackets ([]) next to the noun it is specializing. ○ If the noun has no other use than its specialization, remove its row from the table. Here, specializations are shown in red just to make them more visually distinctive. You may also combine or rearrange nouns to create specializations that make sense. In your assignments, do not remove the rows, but use shading to show that they are eliminated.
  • 8. Nouns Verbs You restaurant [regular, catering, take-out] (location, type of food, hours of operation, reservations) reservation system information location type of food hours of operation thing diners account User [logged in, guest] (name, rewards points, password, Google login, reservations) name rewards points password Google login Step 3 - Identify Attributes ● Identify nouns that may be: ○ Attributes of other nouns ○ Properties of other nouns ○ Information/data owned by other nouns. ● Connect the nouns together. ○ Put the associated noun in parentheses (()) next to the noun it is associated with. ○ Remove the associated nouns row only if it is a primitive data type. Err in the direction of keeping nouns in the list. Here again color is used just to make the associations visually distinctive. Again, in your assignments, you should not delete the rows, but use shading.
  • 9. Domain Analysis ● Now that we have completed a thorough noun analysis, it is time to pivot to creating a domain model. ● A domain model uses a simplified UML class diagram notation and should show the following information: ○ Domain entities ○ Attributes ○ Relationships ● The domain model should only use language from the original domain, i.e. the nouns from your analysis. Domain Entity1 attribute 1 attribute 2 Domain Entity2 <relationship> The relationship should complete a phrase when read Domain Entity1 <relationship> Domain Entity2 .
  • 10. Nouns You restaurant [regular, catering, take-out] (location, type of food, hours of operation, reservations) reservation system information location hours of operation thing diners account User [logged in, guest] (name, rewards points, password, Google login, reservations) Each noun in the analysis is a potential entity in the domain mode. But we can make some educated guesses about nouns that probably won't be in the model. For example, nouns that seem unimportant (e.g you, thing) or redundant (e.g. account, diners). As well as nouns that appear as the attribute of another noun and don't seem important enough to be a separate entity. Domain Analysis Restaurant location type of food hours of operation User name rewards points password Google login Regular Catering Take-Out Reservation Logged-In Guest
  • 11. Domain Analysis The next step is to connect the entities that are related to each other in some way. If the relationship is inheritance, then we use the standard UML notation for that.
  • 12. Domain Analysis Every relationship should be labeled using a descriptive phrase directly from the problem statement. Arrows should be used to indicate the direction of the relationship.
  • 13. Domain Analysis Finally, be sure to indicate the multiplicity for any relationships that are not 1-to-1.
  • 14. Interlude - Domain Analysis ● The purpose of a domain analysis is to start a conversation with the customer. ○ The model is presented to the customer along with the question: did I get this right? ○ The customer will provide feedback and request changes to the model. ○ The purpose of the conversation is to establish a shared understanding of the customer's vision before beginning a detailed design of the system. ○ As a result of the conversation with your customer, you may revise the model before continuing. For the purposes of this exercise, we will assume that the domain model presented accurately captured the customer's vision of the product.
  • 15. Next - Identify the Verbs You are designing a restaurant reservation system. Each restaurant has information about its location, type of food, hours of operation, and reservations. The restaurants are broken up into regular, catering, and take-out where making a reservation means a different thing for each category of restaurant. Diners will be able to use the system either when logged into their account or as a guest. Diners, either as guests or logged in users, can make reservations. Reservations will be saved to a user's account if they are logged in. Logged in users can also view, modify, or delete reservations in their account. A user's account will store a name, rewards points, and their upcoming and past reservations. Restaurant users will have an account which can view, modify, or delete any reservation made for their restaurant. The restaurant user can also complete a reservation when diners arrive. All users will authenticate using a password or Google login. You may want to highlight the same verb more than once if it appears in different contexts. Just as with nouns, some verbs may obviously not make it into the design, but be thorough.
  • 16. Expressing Verbs ● For each verb, express its use in a phrase of the form subject-noun verb object-noun. ○ The subject noun invokes the action (the doer). ○ The object noun has the action performed on it (the receiver). ● Use the active voice for the verb. ○ If it is in the passive voice, rephrase it. You are designing a restaurant reservation system. Restaurant has information Diners are able to use system Diners make reservations Reservations will be saved (by the user? system?) User saves reservations to account User views/modifies/deletes reservations (Restaurant) user completes reservation Users authenticate with password Users authenticate with Google login Subject noun (doer). Verb. Object noun (receiver).
  • 17. Nouns Verbs You designing (restaurant reservation system) restaurant [regular, catering, take-out] (location, type of food, hours of operation, reservations) has (information) reservation system information location hours of operation thing diners use (system) make (reservation) account User [logged in, guest] (name, rewards points, password, Google login, reservations) complete (reservation) saves (reservation) views/modifies/deletes (reservation) authenticate (password) authenticate (Google login) Connect Verbs to Nouns ● Connect each verb to the nouns in the phrase expressing the verb’s use. ○ Put each verb in the right column and the same row as the subject noun (the doer). ○ Put the object noun (the receiver) in parentheses (()) next to the verb. Here again color is used just to make the associations visually distinctive.
  • 18. Pruning ● If a noun has no attributes, no specializations, and does not invoke or receive any verbs, consider eliminating it from the table. ○ Is there a verb missing that this noun invokes or expresses an action performed on this noun? ○ Is this noun really outside of the system boundary? ● Are some nouns synonyms? ● Are some verbs of little relevance? Nouns Verbs You designing (restaurant reservation system) restaurant [regular, catering, take-out] (location, type of food, hours of operation, reservations) has (information) reservation system information location hours of operation thing diners use (system) make (reservation) account User [logged in, guest] (name, rewards points, password, Google login, reservations) complete (reservation) saves (reservation) views/modifies/deletes (reservation) authenticate (password) authenticate (Google login) Again, in your assignments, you should not delete the rows, but use shading.
  • 19. First-Cut Class Decomposition ● Nouns in a table row (row-nouns) are potential classes. ● Nouns in the left in parentheses are potential attributes (fields) of the row-noun. ● Nouns on the left in brackets are potential subclasses with the row-noun as the superclass. ● Verbs on the right are responsibilities potentially defined as methods in the object-nouns (in parentheses). ○ A noun that is “responsible” for a verb action contains the code that implements that action. Nouns Verbs restaurant [regular, catering, take-out] (location, type of food, hours of operation, reservations) reservation system Iiformation location hours of operation User [logged in, guest] (name, rewards points, password, Google login, reservations) complete (reservation) saves (reservation) views/modifies/deletes (reservation) authenticate (password) authenticate (Google login) The “row-nouns” are potential classes. Nouns in square brackets are potential subclasses. Nouns on the left in parentheses are potential fields. Nouns on the right in parentheses potentially implement the associated verbs.
  • 20. First-Cut Class Decomposition Table Classes Subclasses Attributes Responsibilities Restaurant Regular Catering Take-Out Location Type of food Hours of operation Reservations Reservation Make Complete Save View Modify Delete User Logged-In Guest Name Rewards points Password Google login Reservations Location Hours of Operation
  • 21. CRC Cards ● The first-cut class decomposition includes high level information about classes/subclasses, attributes, and responsibilities. ● The next step is to spend time articulating the precise role and responsibilities of each class in the system. ● One common mechanism for doing this is a Class-Responsibilities-Collaborators (CRC) Card. Class: ClassName Responsibilities: A description of the class’s responsibility within the context of the system. This description should be at least 2-3 sentences long. Collaborators (do not write anything here) Uses: The list of classes that this class uses (depends on). Used By: The list of classes that use (depend on) this class. Author: The team member(s) that wrote this class.
  • 22. CRC Example Class: Restaurant Responsibilities: The overall responsibility of this class is to represent one of the restaurants at which users of the system may make reservations. The class includes information about the restaurant's location, the type of food served, hours of operation, and maintains a list of upcoming and past reservations. Collaborators Uses: Reservation, Hours of Operation, Location Used By: RegularRestaurant, CateringRestaurant, TakeOutRestauarant, User Author: J. Smith