4

I am starting a new embedded software project. I am going to use Enterprise Architect to capture the requirements and to design the software architecture.

How should I structure/organize the project in Enterprise Architect?

My idea is to do something like (edited, thanks to Aleks):

ProjectName
|
+-Analysis
|   +-Deployment (ECU HW, External Devices)
|   +-Actors
|   +-Use Cases
|   +-Requirements
|
+-Design
|   +-Static Views
|   |    +-Component Diagrams
|   |    +-Class Diagrams
|   +-Dynamic Views
|        +-Activity Diagrams
|
+-Testing
    +-Test Cases
         +-Sequence Diagrams

Does it make sense?

sergej
  • 17,147
  • 6
  • 52
  • 89
  • Deployment should better go under design/static, as it's a physical view that shows the system structure (and uses components which are also there). – Aleks May 24 '14 at 10:58
  • Does that picture show your model tree? If yes, what type do you use as nodes in this UML model tree, are they packages? – falkb Nov 28 '18 at 15:55
  • 1
    @falkb Yes, packages. – sergej Nov 28 '18 at 16:08

3 Answers3

3

It looks good, following the project phases. The most important thing is that the model structure follows your methodology and that you feel comfortable with it and navigate is fast and naturally. With EA in particupar, there is also report generation, that works perfect if the model is properly structured - so if you want to generate documents, keep this in mind.

For an embedded system it is likely to have some classes with state machines. The most natural place to put those is inside the corresponsing classes (although dynamic views can also be used and later linked to class)

Another important diagram would be a component diagram under static view. It shows the overall system modules and their interfaces (architecture).

A deployment can also come in handy, if the system has some distributed components or external systems.

With EA you should always consider traceability matrix, as a tool to trace elements across packages and models. It's my favourite EA feature. :)

Aleks
  • 5,674
  • 1
  • 28
  • 54
1

If you are starting fresh new project and don't have a specific organization requirements set (e.g. you work in a company where you'll have to colaborate on the analysis with other team members and there are already established tools and processes for this cooperation) then I'd recommend instead of trying to re-invent the wheel just use the organization recommendations that the Enterprise Architect gives you through the Model Wizard.

Also check the help file chapter Modeling Basics->Model Templates and there should be some lots of resources available outside the Stack Overflow programing site - at the Enterprise Architect resource pages and at Enterprise Architect forums

xmojmr
  • 8,073
  • 5
  • 31
  • 54
1

As Aleks says, for an embedded project the state machines become pretty important. I will create a high-level diagram and then drag all of the state machine diagrams onto it. This keeps them all in one place and when I want to communicate my interpretation of the domain to someone, I just need to print out the static domain model diagram and the consolidated state-engine diagram.

Chris Reynolds
  • 5,453
  • 1
  • 15
  • 12
  • Do you think that the separation between static and dynamic views is not a good idea in this case? – sergej May 28 '14 at 10:38