Would you include an XML schema for a new file format in a software specification document or would you consider this too specific? Or would it be already too specific to require XML at this point?
|
If the schema already exists, then I don't see why you wouldn't want to specify that your system must use a particular schema (and version of that schema) for data storage or transfer. This sounds like a non-functional requirement to me, specifically what Karl Wiegers refers to as either a Software Interface Requirement or a Communications Interface Requirement. However, if the schema is to be constructed, then the requirement itself should not even specify that XML is used to store and transfer data, but the constraints should be documented elsewhere in the requirements document(s). In this case, the requirement should be written to inform the developers of what must be accomplished, giving them as much room to make design decisions as possible. Again, the SRS template provided by Karl Wiegers has sections titled Operating Environment and Design and Implementation Constraints where you can specify various considerations that developers must be aware of when making the system. |
|||
|
|
|
If it's a high-level specification which just says "System X will do task Y with file Z", then yes, it's too specific. If it's a detailed spec that says "System X will implement a web service to perform task Y using XML file Z that is sent from client system A", then yes, you should include the schema. It does not have to be in the main document, but make sure it's in an appendix somewhere so readers can get the right idea. |
|||
|
|
|
XML schema is part of the design because the way schema is designed affects the algorithms of reading, writing and searching which have impact on performance.
If the system is simple and the schema design will have no great impact on performance or in case the schema is straight forward generated by a software component you may just skip it. |
|||
|
|
|
Well like anything else, "it depends". If the interface is essential to your product/project and the details of the specification will influence a lot of work that needs to be done within or outside your team then absolutely I'd specify it up front. |
|||
|
|
|
If the XML Schema constrains data/documents on the boundary of your system then they can be referenced by the document that defines the system interfaces. Some projects refer to this as the Interface Control Document (ICD). The ICD distinguishes between supplied and provided interfaces and acts as a kind of contract between your system and one or more other systems. |
|||
|
|
