High quality software examples [closed] - uml

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 7 years ago.
Improve this question
One of the best ways to learn about programming is reading high quality code/projects from great engineers. Which open-source projects do you think is worth looking at? I mean, that code that you can print and sit under a tree with a glass of wine and enjoy reading.
If you can, also specify if the software is great to look at because its documentation, design, UML diagrams or just plain code. I believe UML is not very common within open-source projects.
Is there such a thing as a project branch that polishes code and design with the sole objective to give other programmers a great example of great software?

I'm pretty impressed with the Chrome source code. Note: I work on the Chrome team but I'm just one of many. I've learned quite a bit from other people's code, the classes used, their design, the methods of unit testing, integration testing, their code review system, their continuous build system and more.

At the risk of being perceived as a Jon Skeet fanboy, I've looked to his miscellaneous utilities libraries for examples of clear, self-contained, well-documented and well-tested code. .NET, if it matters.

Sharp develop is very well designed and written and comes with a book explaining the design.

It is also very important to understand various different software quality characteristics when you are reading the code samples. This would help you to identify why the coding is good, and which aspect of software quality it gets associated with?
You may want to check out eight different characteristics of software quality specified by ISO 25000 series, also termed as SQUARE specifications.

Related

Check list of agile eligibility criterias [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 5 years ago.
Improve this question
Does anyone have any good documents talking about agile eligibility criterias of a project ? maybe a checklist to identify opportunities and risks before the beginning of the project.
Thanks :)
The short answer is this: If your project is all of the following:
Short (no longer than a month, as a rule of thumb)
Simple (everything there will be to know about the project is presently known)
Straight Forward (After delivery, there will be no future development / maintenance)
Then you may consider not doing agile!
In all other cases, you will be well served by developing your project in an agile manner.
From small start ups to large multinational companies (Microsoft, for example) more and more companies are implementing agile mindsets and methodologies.
From small clients to middle-sized financial institutes to gigantic ones (United States Department of Defense, for example), more and more are accepting, encouraging or even demanding a flexible and incremental delivery and an open visible development project.
The important thing to understand, though is that perceptions of what agile is and isn't are often wrong. not planning, for example, or not documenting are, despite popular belief not agile.
What I would suggest, is to first make sure you understand what agile really is. Here are a few good resources:
The agile manifesto (Important note: while the things on the left are more important, we still value the things on the right).
Scrum.org's Scrum Guide
Lyssa Adkins' Blog
If you pardon my own shameless plug, you can read my blog, too.
Here are they:
http://pm.versionone.com/AgileChecklist.html
http://standard-data-systems.net/Project_Checklist/Agile%20Audit.pdf
Also, you can google it for: agile project checklists.
Good luck.

Are there any software to generate UML Diagrams from analyzing code? [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 4 years ago.
Improve this question
I have a complex application with lots of class files. I'm using Doxygen to generate some documentation, but would love a tool that can statically analyze my code and generate some UML diagrams. Not sure if a product like this exists, but would love to hear the community input.
There are many tools doing exactly this on various levels of quality. I would like to mention, that generating UML diagrams for documentation purposes might not be a great idea, especially in large projects. The problem is, that in complex code bases, there are many relationships between classes a lot of code is called etc. basically any diagram type you choose might in a particular project look bloated. Confusing diagram might be worse than well structured textual documentation. Basically what I am trying to say is, that main idea of modeling is to abstract from unimportant details and deciding automatically what is unimportant is not easy and often project dependent, therefore it is most of the times more useful to create far less diagrams manually, which will conatin much more useful information.
Visual Studio 2010 kind of has this for C# and VB projects, and Visio 2003 back in the day could do them for .NET and C++ projects... Other tools, I don't know.
If you're asking about class diagrams, Sparx Enterprise Architect can do this for several languages, including Visual Basic, C#, Java and Python.
I also know that it has the ability to generate sequence diagrams by running .NET code in the debugger, but I don't know if that feature is available for other languages.
UMLGraph or apiviz may help if you're working in a java environment.
hth.

What is "Boeing Agile Software Process?" [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 5 years ago.
Improve this question
I was surfing the web, and I came across the term "Boeing Agile Software Process," but I was unable to find a definition or any details. Presumably, this is the software process used at Boeing and it's Agile, but could anyone explain what the Boeing Agile Software process is/was?
You can read the first several pages of the paper:
"A Tail of Two Projects: How 'Agile'
Methods Succeeded After 'Traditional'
Methods Had Failed in a Critical
System-Development Project"
that Robert Bedoll wrote about agile methods at Boeing and published for XP/Agile Universe 2003 here, on Google Books. Here's a summary:
We adopted the following principles:
Rapid prototyping of designs, with immediate customer feedback
Continuous involvement of the customer Weekly production releases:
Follow our standard development cycle
(requirements - design – code – test -
release) but compress it from formal
releases every three months to formal
releases every week.
Start simple and keep it simple
Evolve the tool to follow the evolving business process
Provide a one to three week cycle time for new feature introduction
Maintain a small development team
Produce abbreviated versions of our standard design documents.Let the
prototyping drive the design
documentation.
Retain our SEI (Software Engineering Institute) Level 2 rating.
It looks like there's a draft "not yet been formally approved by Boeing for publication" in .doc format here, that explains the principles in more detail. I'm not not a lawyer and don't know if there are legal implications if one were to read that draft. You can buy the whole published paper as a .pdf here and probably other places.

Do you employ any tools for managing technical debt? [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 4 years ago.
Improve this question
The site I work with on a day-to-day basis has its share of shortcomings and we often make design decisions to "get us by right now" with the intention of fixing those up later.
I've found that making the time to actually go back and fix them, let alone remembering what the full list of to-do items is can be challenging at best.
Can you recommend any tools, resources or tricks that help you effectively manage your technical debt?
You could use any bug/task tracking software, eg see this stack overflow question: https://stackoverflow.com/questions/101774/what-is-your-bug-task-tracking-tool.
Of course, a simple solution is just to have a text file called TODO or similar. It's low maintenance, and particularly appropriate if it's a WORN file (write once, read never).
Unit testing
Refactoring
Continuous Integration
Planning (XP, Kanban, etc.) to avoid adding more technical debt
Standards
Code reviews
Project retrospectives
Static analysis tools (like FxCop) integrated with the CI build or check in process
I'd say TODO comments in the code, but my experience has been that developers generally ignore these.
I would suggest you add an item in your product backlog whenever you deliberately incur technical debt. This way, it is possible to consciously spend time during each iteration.
There is a plug-in for Sonar that you can use to find potential problems in your code base.
/Roger

What's available for livecoding music? [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 5 years ago.
Improve this question
I recently found out about livecoding where someone will program something on the fly to make music. Apparently there are special languages and libraries for this sort of thing. So I'd like to know if anyone has any experience with it and if they have any languages, libraries or tools to suggest.
Check these resources:
SuperCollider (Environment and programming language for real time audio synthesis and algorithmic composition)
ChucK (Strongly-timed, Concurrent, and On-the-fly Audio Programming Language)
TOPLAP (temporary organization for the proliferation of live audio programming)
I want to second the recommendation for Impromptu as well:
Wholesale utilization of your Mac: audio units, camera, openGL...etc (I actually ended up buying a Mac after playing around with this app.)
Very simple and easy to start : The tutorial gets to the fun fast. Perhaps the clumsiest aspect is getting the keybindings installed : (you will need to install in ~/Library/KeyBindings/DefaultKeyBinding.dict)
It uses Scheme(Lisp dialect) a highly iterative language, suitable for prototyping apps one line at a time.
Now there is also Sonic Pi which is a lot of fun.
It is an Open Source live coding environment based on Ruby that runs in a variety of environments including the Raspberry Pi and is build on top of the Supercollider synthesis engine.
Sonic Pi has been designed with the aim to find a harmonious balance between three core principles:
Simple enough for the 10 year old within you
Joyful enough for you to lose yourself through play
Powerful enough for your own expressions
Sample code:
loop do
sample :perc_bell, rate: (rrand 0.125, 1.5)
sleep rrand(0, 2)
end
You should check out RTcmix (Real-time Cmix). I saw a great livecoding demo by one its developers, but I haven't been able to find any videos online.
I've been using RTcmix with its Python front-end module to experiment with algorithmic composition. It's very easy to use and has nice results.
EDIT
I've been investigating livecoding further recently, and RTcmix is not intended for this, but in some cases, it can work. It's much better for pre-processed scores. Sorry for any confusion. :)

Resources