Diagram uses for structural programming? - diagram

Currently I'm writing a theses for software project, Which uses structural programming techniques. DFD,Context diagrams may helps to depict the software, is there any other diagrams could help to describe the software?

This isn't a programming related question but Structure Charts are probably your best bet.
http://en.wikipedia.org/wiki/Structure_chart
This may also be of interest:
http://en.wikipedia.org/wiki/Jackson_structured_programming

Related

Object oriented modeling and UML for agile development [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 12 months ago.
Improve this question
UML has come into many projects with object-oriented programming and is widely taught in colleges. However, today many software projects use a more or less agile approach, avoiding up-front in-depth analysis and leading to many changes ("welcome change"). In contrast, creating correct and readable UML (class) diagrams is still time-consuming; hence the value of documenting the model is in practice often considered time waste, as it changes often.
Even autogenerated (from source code) diagrams are not solving the problem, as they cannot correctly resolve class relationships often have insufficient graph layouts and distracting extensions.
Can UML be used in an agile context in a way that avoids the overhead of frequent manual updates? Or are other lighter alternatives to UML more suitable in such a context?
UML can be used in a light way in an agile context. The key is simply to be clear about its purpose and what you expect from modeling in your project.
Class diagrams and sequence diagrams are proven to be good candidates for helping teams to discuss points of concerns. It can express clearly ideas that are not obvious in the code (or scattered across many source files).
Scott Ambler for example wrote a lot on agile modeling, based on UML. Of course, you will not use it for producing an exhaustive model with all classes and all properties. But you'd sketch the core with some relevant classes, and only a few properties that matter in the discussion (Ambler says "Just barely enough" modeling).
However, for architectural modeling (deployment diagrams and the like), UML requires a degree of precision that is not always possible in early stages. Here C4 models has established as a convenient and flexible alternative. But C4 relies on UML for the OOP design discussion. There is simply no alternative that allows to easily show classes and interaction between them, and that would be sufficiently widely known.
Conclusion: In an agile context, don't get misguided thinking that UML would require an exhaustive up-front design. Don't use it as for visual programming either, slavishly replicating details of the code. But use it as a communication tool to highlight key ideas and allow everyone to grasp the design and contribute productively.

Software designing process with UML

When designing for a software, what is the correct order of UML diagrams we have to do? Starting from the Use Case diagram, what would be the next diagrams until we have enough to start coding?
UML is just a modeling language, not a software development methodology. A well-known methodology that provides guidelines for using UML in its software development process is the Rational Unified Process, although its popularity has declined. Still, it is not easy to determine the order of the UML diagrams prescribed by RUP from the available material provided by IBM. I have written a paper http://admiraalit.nl/admiraal/WhichUMLmodels.pdf which may help you with that.
For a simple application, a class diagram and a component diagram may be enough, but it depends very much on the type of application.

Is Object Oriented Modelling And Design part of Software Architecture?

Is Object Oriented Modelling And Design part of Software Architecture?
I am confused between Object Oriented Modelling & Design and Software Architecure. In Software Achitecture we are providing the skeleton for system (as I understand) In Objet Oriented Modelling and design we design the system using different UML Digrams. So are we doing same thing in Software architecture ?
Because a skeleton could be defined using diagrams only,right?
Can someone please explain me with Example of Software architecture?
No, Object Oriented Modeling is a toolset or process, Software Architecture is a deliverable artifact.
Related:
Wikipedia: Software architecture
Wikipedia: Object-oriented analysis and design
Kirill Fakhroutdinov's uml-diagrams.org: examples of UML diagrams documenting a software architecture
Scott W. Ambler's Agile Modeling: Architecture Envisioning: An Agile Best Practice
Software Architecture is a very broad term. It can describe the software of the tiniest component, to the largest systems.
OOMD is the process of arriving at a design that may be a part of a software architecture, typically by using Class Diagrams. But OOMD can be used outside of designing something new. It can be used to help analyse and understand a piece of legacy code.
UML is a language which is used in conjunction with OOMD. It is nothing more than that. A UML diagram doesn't necessarily 'contain' an architectual concept, just as much as a picture of an apple is an apple. One would use UML to illustrate and solidify concepts that will eventually go into the finished product.
Not all of UML is concerned with OOMD (eg. Use Cases, and Activity Diagrams). And not all of OOMD is concerned with Software Architecture.
No, object oriented modelling and design is not part of the software architecture.
The software achitecture is independent of the platform that is used to implement it. The platform doesn't even have to be object oriented.
Software architecture has been around since before object oriented development even existed. I remember learning software achitecture approaches (JSP) before even hearing about object oriented development (OO was a very recent concept when I was in school).
Part of the software architecture could be used to automatically generate object models using some tool, but this a different part. By doing that you have taken the step beyond the software achitecture and chosen a platform for the implementation.

Is there a standardised modelling language at a level higher than UML? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
What is nice about UML is that it offers a unified suite of defined diagrams for expressing software architecture. However, the diagrams are about the system being built and do not help for helping represent requirements and understand user-level issues (use-case diagram is the highest level and it's still very specific, we are looking for diagrams to use as input into a use-case).
So we've been using a hodge-podge of diagrams leaning heavily on dataflow diagrams, but I was wondering if there was a standard with a suite of diagrams like UML in existence for gather requirements etc.
I've seen individual diagrams that are useful, but never a suite of them that are standardised and interwork.
Is there something like a RML "Requirements Modeling Language" which a family of related diagrams for requirements and other more abstract concerns?
Depends what you mean by 'Higher Level'. Dataflow Diagrams are good - but to a large extent still define 'how' things work, not 'why'. I assume that since you've looked at DFDs you've also looked at and rejected business process diagrams in some form, e.g. bpmn/bpml.
Some other suggestions that may (or may not) be useful to you:
Feature Models, particularly useful for understanding Software Product Lines and the variability/commonality among variants;
Business Motivation Models which model the 'why's; objectives, constraints etc.
SBVR. A formalism for capturing business vocabulary & rules. Note it's textual rather than diagrammatic so might not be applicable.
Behaviour Trees, a notation for Behaviour Engineering.
That's a pretty broad spectrum. If you can be more specific about needs then it can be narrowed down. Worth noting however that none of the above have widespread industry acceptance; certainly not to the level UML has.
hth.
The Archimate modelling language is used for enterprise architecture modelling and might address some of your needs. The language is standardised by the OMG.
OMG page: http://www.opengroup.org/subjectareas/enterprise/archimate
A very useful blog from an experienced user of Archimate is here: http://masteringarchimate.com/ He has also written a useful book, sold through his web site.
Orbus Software have created a very nice Visio stencil for Archimate diagrams: http://www.orbussoftware.com/downloads/visio-starter-packs/archimate-starter-pack
A freely available single-user tool for Archimate modelling is Archi: http://www.archimatetool.com/
There are also a number of commercial tools including those from Orbus, BizzDesign, Corso, Avolution and others.
Eoin.
OMG, the standardization body which maintains UML, has a higher-level language for systems modelling: SysML.
SysML is intended to be higher-level than UML. It includes a "requirement" element type and omits many of UML's low-level constructs, but is still closely enough related that someone familiar with UML will recognize most of SysML.
UML itself is a model in a higher modelling language: The Meta Object Facility (MOF) which you could consider the supreme abstraction, because MOF is defined by itself (i.e. there is a MOF model that represents the MOF language). You can use MOF to describe a modelling language which can then contain diagrams/classes that you can define.
Link to MOF homepage: http://www.omg.org/mof/
And wikipedia: http://en.wikipedia.org/wiki/Meta-Object_Facility
Although UML is billed as a low level language you can certainly use it for higher level concepts either through UML profiles (See UML Profiles) or through a more developed extension. One such extension is UPDM which takes UML and SysML and extends it for use in architectures in the Defence industry (also applicable to more general uses) by representing the DoDAF and MODAF frameworks.
Just because UPDM is typically used to model lower level software architectures it doesn't mean that its extension mechanisms like MOF can't be used to model anything you want.
There is a modeling language called RML developed by Seilevel (full disclosure- I work there) that is specifically designed for requirements. You can read about it in this book
http://www.amazon.com/Visual-Software-Requirements-Developer-Practices/dp/0735667721/ref=sr_1_1?ie=UTF8&qid=1463064250&sr=8-1&keywords=requirements+models
Our blog has a lot of posts about it
http://www.seilevel.com/requirements/
Models are designed to be friendly to business users. The categories of models are
Objectives (Business objectives model, requirements mapping matrix, objective chain etc)
People (Org chart, process flow, KPI model etc)
Systems (eco system map, system flow, system interface)
Data (business data diagram, data flow, data dictionary)

Visio the standard for software development sketching? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I feel that my professional exposure has been biased towards Visio, by the choice of IT managers and project managers. I've worked only in Microsoft solution centric shops where MS Office was the standard.
Are there any other professional shops out there using other tools?
A whiteboard is pretty good. Bad upgrade path though.
Well the current star product for user interface prototyping is Balsamiq Mockups:
http://balsamiq.com/products/mockups
Another new and good choice is FlairBuilder:
http://www.flairbuilder.com/
Another similar tool is ForeUI:
http://www.foreui.com/
Yes, Enterprise Architect by Sparx Systems is very popular. I have used it at several places I have worked.
I either use my whiteboard, or a nifty little Free Software tool called UMLPad.
It would be really nifty if there was a nice standard vector drawing file format so that these tools could interoperate. SVG is close, but IE doesn't support it. In the meantime UMLPad does what I need.
UModel is a very good diagramming tool which I prefer greatly over Visio.
Rational Rose is another major player in the diagramming and modeling world.
Both of these products above generally will be more expensive than Visio, making them not as widely used in all software development circles. There are also lots of smaller and pretty popular free alternatives out there like UMLPad.
Visio is only the most widely used because it is the one people tend to gravitate towards through their Microsoft Office familiarity, not generally because it's the best product out there (far from it in my opinion). I wouldn't call it a standard other than maybe a de facto standard due to its high numbers.
I've used Smartdraw during my college time and I really like it,but at the company I work we use all Microsoft stuff.
Assuming you're talking about UML diagrams, I've not worked professionally with any, but I find different free diagramming are good for different diagrams.
I prefer
ArgoUML for class diagrams, sequence diagrams
UMLet for deployment and component diagrams
Dia for activity diagrams
That covers the diagrams I spend most of my time drawing.
I find UMLet and Dia are easy to use and put together nearly all diagrams I'd need, and ArgoUML has additional features that help with specific diagrams, and also provides code generation from class diagrams.
I've also used Borland Together, and also it's round robin features are nice, I found it really hard to work with unless you used it the way the Borland intended you, which often becomes fustrating
You might want to try Lovely Charts, if your doing something pretty light weight, their free version might work out for you.
For flow charts, I love bubbl.us
Both of these are in flash.
+1 to ForeUI, switching themes + DHTML interactive simulation, really powerful and handy.

Resources