Is Design specification is discussed in SRS document? - srs

This question was asked in GATE 2015 CSE, I think design specs should not be discussed in SRS.

Ans: (C) Design specifications should not be discussed in the SRS. Instead, they are reserved for the SDD(Software design description).
A SRS does discuss (A) (B) and (D).

SRS document does not contain design specifications. It mainly contains the following things:
Functional/Non Functional Requirement
Scope
Targeted Audience
Purpose
UML Diagrams which will be base on the requirement

Related

Difference between standard and non-standard diagrams in Software engineering

I am writing a documentation for my Software engineering subject. My project is on a Hospital Managements System. Here is the question that is making me confused.
(2. Architectural design) Present the overall software architecture, stating whether it’s Layered,
Repository, Client-Server, or Pipe and Filter architecture( – skim through pages 155 to 164 of our text
reference book to see descriptions of these different architectures). Describe and present it on a standard or non-standard diagram.
So what is the difference between standard and non-standard diagram?
The question is indeed confusing, since it presents architectural models as if they were mutually exclusive (i.e. it can be at the same time layered and client-server) and relies on ambiguous terminology.
When it comes to architectural diagrams, there are standard diagrams, which follow a well known formal graphical notation. Typical examples are:
UML
Older OO notation (e.g. Booch, Rumbaugh or Objectory - it's really old because these have been merged together to make UML).
Non OO notations, such for example the IDEF suite (which was enriched in the meantime with an OO layer), SADT, Gane & Sarson (it's also quite old, less and less used, except in some niche markets).
Among those, the only which qualifies officially and unambiguously as a standard is UML: it's the only one that is recognized by an international standard setting body (ISO/IEC 19505).
But in architecture you have also a fair bunch of non-standard diagrams that convey graphically the structural intent. Typically, a layered arrangement of services, or an hexagonal or a concentric presentations are frequently used. Sometimes it's even more visual with clients shown as PC, and several servers in the network. All these use non-standard notations.

What is the name of the logic used in CLIPS?

I am writing a formal document about a software which uses CLIPS. I need to mention the logic (propositional, first-order, temporal etc) used in Computer science. I need to cite some reference which mentions the logic used in CLIPS. I guess it is deductive logic (a top-down approach) but I am not an expert in Logics, so any help is welcome.
Thanks
According to the wikipedia entry for production systems, there are multiple opinions. One is that production systems do not have logical semantics and another is that forward chaining is the means of logical reasoning.

How the semantics aspect of UML model can be used in code generation, validity checking and complexity metrics?

I've found the definition of model in UML reference manual (chapter 2) and I can't get what the authors mean by the following sentence:
The semantic modeling elements are used for code generation, validity
checking, complexity metrics.
How can the semantic aspect of UML model be used in
1) code generation,
2) validity checking and
3) complexity metrics
I hope I can find someone help me understand it through simple example
If you are referring to book "The Unified Modeling Language Reference Manual" by James Rumbaugh, Ivar Jacobson, Grady Booch, Copyright © 1999 by Addison Wesley Longman, Inc. then the part you are quoting from chapter 2 starts with
What Is in a Model?
Semantics and presentation. Models have two major aspects: semantic information (semantics) and visual presentation (notation).
The semantic aspect captures the meaning of an application as a network of logical constructs, such as classes, associations, states, use cases, and messages. Semantic model elements carry the meaning of the model - that is, they convey the semantics. The semantic modeling elements are used for code generation, validity checking, complexity metrics, and so on. The visual appearance is irrelevant to most tools that process models...
So there is an invisible semantic model, database of things, usually represented as file in XML Metadata Interchange (XMI) format. This database is used for generation of code and everything. Many modeling tools support import/export of models in this format. At the time the book was written XMI even did not support importing/exporting diagrams (pictures, the visual presentation), only the semantic part of the models.
On the other hand there are "only pictures" shown as UML diagrams that display various aspects of the model. But they are only pictures to be read by humans with no value for machines.
See e.g. this https://stackoverflow.com/a/23308423/2626313 for an example. The right-lower corner shows what is in the model, the other things are "only pictures"
EDIT: for hands-on experience evaluate some tool that can do the code generation and take a look at what it does.
Professional tool that can do/explain a lot is Sparx Systems Enterprise Architect with some community of users available here on Stack Overflow.
An easy to get started way using some more light-weight tool:
open the link in Stack Overflow answer https://stackoverflow.com/a/22694685/2626313 leading to the GenMyModel website
in the GenMyModel application click "Tools → Direct Generation → Java". Download and explore the generated code

interoperability

I am having a bit of trouble understanding what "interoperability" and "interoperability concerns" mean in terms of Software Engineering. Can someone please give me an example of what an interoperability concern is may be?
Thanks in advance
Interoperability means intercommunication of code written in different programming languages. For example, when you call a WINAPI function (which is in C) from your C# code you are using interop.
Interop concerns are therefore concerns about interoperability. For example, when writing a C++ dll, you might want to keep your interface types POD's to enable later interoperability with C and .NET
From wiki:
According to ISO/IEC 2382-01,
Information Technology Vocabulary,
Fundamental Terms, interoperability is
defined as follows: "The capability to
communicate, execute programs, or
transfer data among various functional
units in a manner that requires the
user to have little or no knowledge of
the unique characteristics of those
units".
Example: The interoperability of .doc documents between different word processors.
See interoperability in Wikipedia
the ability of two or more systems or components to exchange information and to use the information that has been exchanged.

Where to start for Tech Specs of an IT project.. more specifically functional specifications

Hi I'm wonderingif someone knows some good resources on writing project specs.
I'm a freelance developer more focused on actual development and less focused
on tech specs.
I'm involved in a proj where have to write technical
specs (& functional req specs) and have absolutely no idea where to
start.. any good site or sample or book you would advise ?
Strongly recommend User Stories Applied by Mike Cohn
Any non-trivial project requires Tech Spec. By non-trivial I mean more than about 1 week of coding or more than 1 programmer.
Although there no much resources online which may help to realize how to make good Tech Specs. So Let me share my vision in this field.
Every spec should contain:
List item
Title
Overview (general words what about the project is)
Operational purpose (what for the project is, the goal)
Functional purpose (the ways and technical methods/resources attained for fulfilling Operational purpose)
Definitions (to avoid polysemy and for clarification purposes)
DATA AND LISTS (the most important and the biggest part of Tech Spec. The section where described data structures, relational database models, choice of programming languages and tools, algorithms, etc)
Wireframes and pages descriptions
Technical requirements (hosting conditions, system requirements, etc)
Сommissioning and acceptance conditions (all criteria which make your job completed)

Resources