Hi
First of all, sorry for not responding promptly to the answers that you kindly presented me. It was due to some difficulties both regarding to the definition of the "methodology" itself as well as the actual work of creating the suitable documents.
Well, our boss (who was engaged in aeronautical software development 20 years ago) likes methodologies like Ward-Mellor and Hatley-Pirbhai. His vision is tied to the functional decomposition, data flows and some architecture diagrams.
Our goal, more than effectively design the system, is to justify the use of UML to the design. However, it is necessary to show the design from the functional point of view.
Roughly speaking, by now the point we got to is:
1. The system is represented by a node in a Deployment Diagram, where other systems are also nodes. The target system has some exposed logical interfaces. This can, more or less, represent the Context Diagram from SA/SD.
2. The following step is to functionally define the system. To do this, we are using the UML 2.1 Activity Diagrams, which allows for the control and data flows. This diagram supersedes the DFD (Data-flow Diagrams) with advantages, presenting the sequence of processes besides the data interchange architecture.
3. A Component diagram can show the internal architecture of the system in terms of hardware and software.
Basically, these two steps define the system, allowing us to describe the system itself, its functions and interfaces. We did not start to design the software, but we are expecting to do the following:
1. Define the architecture of the software as a Component Diagram.
2. Define the internals of each component as a set of modules. The modules are effectively classes stereotyped as a <<Module>> or something like that, as cpns stated in his first post.
3. Generate Interactions diagrams to show the dynamic relationship between the modules.
There are still doubts, some related to UML itself and some related to the process as we intend to create. Here they go:
1. What is the best way to represent a physical interface such that:
a - It can represent a physical channel (e.g. RS422) implementing a set of logical data (e.g. Inertial Unit telemetry)?
b - It can be traceable to lower levels of the system detail?
c - The information regarding to the interface can be exported in a document (I guess I should use Tagged Values, but I am not sure)
2. How would I represent a Function Tree?
3. How would I represent a product tree?
4. Is it reasonable to somehow relate (by realization or something like that) the data interfaces of the Activity Diagrams representing the functions of the system to the physical/logical interfaces defined in the upper definition levesl? It would be good for traceability (a constant worry in aerospace development), but is it acceptable from an UML point of view?
As soon as we get into the software development (we are hopefully finishing the system design phase) I think that more doubts will arise.
By now, once again sorry for the long delay and thanks for the answers.
If some of you could help, thanks in advance
Best regards
Ronaldo Juliatto