schema.org / Product - property to store industry standards - schema

what is the best place in a [Product] to attach information about achieved/fulfilled industry standards e.g. DIN norm, fire resistance class and stuff like that?
Thank You

It depends on the product. For medical devices, https://schema.org/legalStatus would be appropriate.
For other things, I think https://schema.org/PropertyValue is probably the most appropriate.

Related

Projects to practice class inheritance and OOP

I am wondering if there are any good small/medium sized programs that I or others could make that would be good for practicing OOP or using inheritance in. I haven't seen any questions asked like this, so I figure it would be a good question for others to use in the future as well.
A project I have done already:
Inventory Manager: Controls the inventory of a shop and assigns the item type, price, etc. All of which you use inheritance to sort out products
The problem with this is that it can only go so far into the practice.
Any other ideas for projects that you have used to further your knowledge of the subject?
Thanks in advance!
A simple photo editor that lets you apply filters such as blur, sharpen or emboss can make a good example of using the command pattern. It's interesting to find the best way to implement the undo/redo feature. The memento may come in handy!
When designing the application structure keep in mind that later you will want to add new filters/effects. Then try adding them! If you're saving the image to a jpg, try adding a "save to png" feature. What if later you decide to support another format? Is your application easily extensible? Leave it be for a couple weeks and come back to it later. Can you still easily add a new effect or a new export format? Try it out!
A automobile dealership or rental car agency makes a good OO modeling problem. As far as inheritance, there are different kinds of vehicles and different kinds of contracts (sale, lease, loaner).

What is the term for improving an object/class model?

How do you call it when your buddy designs a class Dinosaur, that represents at the same time prehistoric dinosaurs (animals), contemporary robotic dinosaurs (toys) and US laws regarding keeping such animals and/or robots, and you come and break it down into classes DinosaurProper, DinosaurRobot, ExoticPetKeepingInUS and RobotOwnershipInUS? What is the smartass catchphrase or catchword for this?
Refactoring aimed at satisfying the Single Responsibility Principle (SRP).
Depdning on the exact structure of the initial design it may be sometimes called
ReplaceTypeCodeWithSubclasses or ExtractSubclass

Standards for taxonomy terms or categories

Every time I build an ecommerce application I need to invest a considerable amount of time into categorising products. Factors such as ambiguoty, duplication and subjectivity can often lead to rework and wasted time.
Are there any standards available (such as ISOs) that can be applied to categorising products like computer or car parts for example?
EDIT: I know the client should categorise their information for me. I'm just looking for a resource to make that task easier for anyone.
I would think it depends on the industry. Some industries might have ISO standards, others might not (most probably do NOT). Really, it comes down to what the client wants. You have to get them to agree to a standard and stick to it. In the worst cases, it may actually require a change to their own business model, and that can be brutal if they've been in business for decades. Sometimes they may even classify product differently based on who the customer is and how much they like them (but you can't do that on a PUBLIC e-commerce site). Sometimes product taxonomy may be as subjective as the mood they wake up in that day. You can provide a model for them to work with but it's up to them to stick to it.
In short, this process can be painful, and since every business can vary as much as the business owner wants it to, there doesn't seem to be much standard. The one thing I've noticed is that customers that are web-savvy and already make their own purchases online have a good idea of how to format their product data, versus customers who aren't.

Object Modelling -UML or other modelling tools?

Just I am new to Object Modelling.I want to know still there is a need to use Sequence Diagram, Use case Diagram to develop an object model or any other new technology is available?
Update :
CRC (Class,Responsibilites,Collaborator) is very limited ?
It depends on the team or teams you're working with. The chief benefit of UML is that you can share diagrams with other individuals and teams without having to learn each others diagramming language. If the team you're working with doesn't know UML, it may not be worth going down that road unless everyone is interested and you know you'll be working together for a while.
In my experience UML sequence diagrams and object model diagrams are very usefully and generally understood by all. Sequence diagrams in particular have the ability to resolve design issues through the disipline of their construction. I haven't found use case diagrams to be as useful. Requirements are challenging and strongly dependent on human and organizational factors regardless of the methodology.
If you're communcating with non-technical stakeholders, UML is a waste of time because they won't have studied it. Use simple, well annotated diagrams. Colors are very effective.
If your team is all onsite, sometimes there's nothing better than a couple of whiteboards and a freeform diagramming style.
You don't necessarily need these items. They are just aids which are available if you choose to utilise them. They are particularly useful in a business environment where you need to articulate your architecture to fellow developers, but you can choose to use whatever you like, inc. your own personal standards or no standards at all!
"any other new technology is available?"
No.
UML pretty much dominates. A classic ERD is just a specialized class diagram that omits the method box from each class. Also, classic ERD's use crows feet instead of text annotation for cardinality and optionality. So ERD's are actually part of UML.
You can read about OPM, if you want something slightly different. They appear to combine an activity diagram and a class diagram into one thing: a process-data diagram.

Coupling and cohesion

I'm trying to boil down the concepts of coupling and cohesion to a concise definition. Can someone give me a short and understandable explanation (shorter than the definitions on Wikipedia here and here)? How do they interact?
Thanks.
Anybody have a good, short example?
Coupling
Loose: You and the guy at the convenience store. You communicate through a well-defined protocol to achieve your respective goals - you pay money, he lets you walk out with the bag of Cheetos. Either one of you can be replaced without disrupting the system.
Tight: You and your wife.
Cohesion
Low: The convenience store. You go there for everything from gas to milk to ATM banking. Products and services have little in common, and the convenience of having them all in one place may not be enough to offset the resulting increase in cost and decrease in quality.
High: The cheese store. They sell cheese. Nothing else. Can't beat 'em when it comes to cheese though.
Coupling - A measure of how much a module (package, class, method) relies on other modules. It is desirable to reduce coupling, or reduce the amount that a given module relies on the other modules of a system.
Cohesion - A measure of how closely related the members (classes, methods, functionality within a method) of a module are to the other members of the same module. It is desirable to increase cohesion as that indicates that a module has a very specific task and does only that task.
Coupling means dependency on others.
Cohesion means completeness with itself.
One of the best comprehensive discussions of software design concepts related to OO (including these ones) is Bertrand Meyer's Object Oriented Software Construction.
Regarding 'coupling', he gives his Weak Coupling / Small Interfaces rule as follows:
If two modules communicate, they should exchange as little information as possible.
Meyer's material related to cohesion isn't ever boiled down to a single pithy statement, but I think this sentence from Steve McConnell's Code Complete sums it up pretty well:
Cohesion refers to how closely all the routines in a class or all the code in a routine support a central purpose
A quick-and-dirty way to measure coupling is to measure your import (or similar) statements.
"Coupling is a measure of interdependencies between modules,
which should be minimized"
"cohesion, a quality to be maximized, focuses on the relationships
between the activities performed by each module."
quoted from this paper: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf