what is the best practice for app documentation? [closed] - documentation

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
Having worked for a couple of years in software development, I grew wondering how to effectively communicate at work as of nitty gritty details of UX, functionality changes, error reporting system, and so on.
I have worked for two small companies here in South Korea and found out communication is done only orally from the start to the end, and never had any habit of software documentation.
I think it’s very odd because meticulous planning and effective software management cannot be done with spoken communication only.
(Although, I think in some sense, it may be justified if a company is not big enough to handle the extra workload.)
So, recently, I am genuinely interested in written communication for software, trying to rekindle a little bit knowledge of software engineering that I learned at college.
I’m trying to teach myself how to visualise my work and practice documentation on my own in practical level.
So, my question would be
Do you know any free graphic tools that can help me draw diagrams or UML, or etc?
Also, It will be appreciated if you could talk about how you document your app for future refactoring and better management.
Thank you.

Also, It will be appreciated if you could talk about how you document your app for future refactoring and better management.
I think you need to read about Agile software development.
Manifesto for Agile Software Development
Make attention on the next point:
Working software over comprehensive documentation
In your situation this can be explained as software writed in "clean" and understandable way with suits of unit and acceptance tests will be more effective then writing static documentation and UML diagrams.
I found UML diagrams are good for designing components in the beginning(but usually had used white boards). Then all diagrams was thrown away after all needed unit, acceptance tests was created.
Regular code reviews are good dynamic tool for sharing best practices, code styles or other information about developing software. So while you sharing knowledge about your software between members regularly, information will stay up-to-date inside team.

Related

Embedded device drivers development notes [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
I want to develop some HAL (Hardware Abstraction Layers) to use in PIC32 and some ARM.
Basically I want to make some code that's usually available on a OS, like generic pin access, communication libraries, device I/O, etc.
Could you advise me with good books/websites?
I'll start with one that I've found a few weeks ago: http://www.kalinskyassociates.com/OnLineLearning.html
Thanks
Have you tried looking at some implementations?
eCos has a HAL, which has some documentation to go along with it.
eLua also has a HAL that has grown around it to support the platforms it runs on (ARM, AVR32, etc..), check the architecture information and the "Platform Interface" and "Generic Modules" menus. If you strip out the Lua, eLua is essentially a HAL.
There are likely other examples as well, but I'd recommend looking at living examples of cross-platform and non-cross-platform hardware APIs. Also, if/when you go and start putting together interfaces, make sure to examine individual platform peripheral implementations before nailing down the API. You will find that certain interaction models are commonly supported across many platforms, and others are very platform specific. If your API assumes functionality will always be available, it will be difficult to port to platforms that either have lacking or non-existent support for the functionality you want. Sometimes you may be able to work around this in software with simple solutions, other times you may find it is either impossible or horribly complicated to make behavior consistent across platforms.
You can try also looking at the OSEK interface documents. The standard does a good job of abstracting accesses to most commonly used peripherals. However, bear in mind that this is only a spec and you'd have to work out all implementation details.

Decent tool for producing a glossary of technical terms [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'm currently developing the front end of a new CMS for a digital streaming company, the main problem the project has is keeping track of the technical language that has sprung up around it.
It currently involves around 60 staff in four countries, aside from a wiki (which has thus far failed to be kept up-to-date), anyone have any good tools or tips for building and maintaining a glossary for a project like this?
aside from a wiki (which has thus far failed to be kept up-to-date)
This comment makes me pretty nervous about suggesting other solutions. Wiki's can come with their own problems, but keeping it up to date is not a problem inherent in the platform. It's a cultural or organizational problem. A wiki provides a very easy way to track and update data. If, today, you cannot keep it up to date, ask yourself how you will solve this problem if you change the tool?
Changing to another platform could solve things like: The wiki isn't scalable for that amount of data; we want to make controlled edits; we need to release in multiple languages; we need to release in other formats.
For the updating problem, try something simple to start, like assigning a dedicated team member to glossary maintenance. They don't have to be the only contributor, but if you have someone who is dedicated to paying some attention to this area you will have a much better chance of keeping things up to date.
In an untended garden, it's not the fault of the soil that you have no flowers.
DITA has a glossary specialization. You can maintain a central company glossary in it. In individual company documents, you create a mini glossary topic then use a content reference to pull any terms you need into your document.
It does sound more like a version control issue though.

Software Design Website(s) [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
What websites (not books) document designs (UML or otherwise) for software applications?
Building architects have many resources available for inspiration and construction. I do not seek resources on constructing software (such as Meyer's Object-Oriented Software Construction), but rather examples of designs for software components or class diagrams that can be used as a starting point for developing an applcation.
Example applications might include:
Game System
Word Processor
User Interface
Telephony Call Control
Clinic Scheduling
Notification System
Incident Management
Network Monitoring
Restaurant Catering
Dispatching (Taxi, Police)
Selling Vacation Packages
The Design Patterns book is a good start, but a bit too low level.
Grady Booch has a great site for just this thing at
http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Main
But you do have to register to look at the diagrams.
Do you mean things like Microsoft's Patterns and Practices?
For simple explanations, sample codes and use cases of common software design patterns, you can check out http://sourcemaking.com/design_patterns. They are generally aimed at solving common problems and can, in fact, be considered as re-usable architectures in software development.
For information related to domain-specific systems, such as games, there can be other domain-specific problems that have been addressed in different architectures, such as some of the links you have provided. Finding a single source which can list all this information in a unified architecture may not be possible, at best. Generic design patterns, such as those from the Gang of Four, is a better start for this reason, I believe.

How to write articles about software applications. Where to find free examples? [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
A lot of you have starting to write programs since college or even earlier.
When you were on university the level of professionalism increased.
If you have to write an article about your software application how do you do it? I'm not talking about a documentation or help manual. I'm talking about an article/paper for academia world. Do you have any idea where can I find those type of articles for free?
This is also a programmer job, even we like to do it or not.
Here's one I made (much) earlier.
Abstract:
This paper presents details of the
Safety Argument Manager (SAM) a PC
based tool to support safety case
construction. SAM is novel in that it
stresses total system safety and is
designed to support an integrated
process for design and assessment. SAM
provides facilities for the
construction of high level safety
arguments and for building up complete
and consistent supporting evidence. In
this paper we focus on the achievement
of high quality supporting evidence,
by describing SAM's facilities for
integrated modeling and safety
assessment. We also illustrate the use
of SAM with a car braking system
example.
What it does, why it's novel, how it does it at a high level, small concrete example shown end-to-end.
Usually papers are rarely about software itself but rather about concepts, ideas and algorithms. Those are explored through software and the authors may give specific examples how they implemented those in their software but most papers are not specifically about a software application itself as those usually have very little valuable content.
There are only few of such papers I've come across so far:
SPRNG: a scalable library for pseudorandom number generation.
Presto: An Experimental Architecture for Fluid Interactive Document Spaces.
Other papers may follow which then concentrate on how specific optimizations or changes were implemented and also new ideas. But I think in those areas real innovation is rare and there is much more text than actual content.
Google Scholar is exceptionally useful for finding freely available academic publications, particularly in the CS/software world.
While many peer-reviewed journals hide things behind paywalls, academics have a tendency to publish working versions or drafts on their personal websites and such. You can find these using Google Scholar (by clicking the "See all X versions" link).

Best Resources to learn OO Design and Analysis [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
I am looking for the best resources, videos, books, magazines(I like videos) to learn and master Object Oriented design and analysis. I would really like to know more about trusted and reputable methodologies for structuring your programs, designing classes, and dealing with databases in your programs. So, my question is what are the best resources?
thanks
The 'Head First' books are very good:
Object oriented analysis and design
Design patterns
Gotta read Uncle Bob Martin's columns at Object Mentor. He's been writing good things about object-oriented programming since C++ Report in the 90s. His SOLID ideas are language-agnostic.
Design Patterns by the Gang of Four. One reference book you will always need. It gives great detail on how to structure your code using OO design.
http://en.wikipedia.org/wiki/Design_Patterns
I would definitely recommend the "Head First Design Patterns" book. My suggestion is to read through that book atleast once. And once you get a feel of design patterns, use the "Gang of Four Design Patterns" book for quick reference/refresh.
And here are a few links from my bookmarks:
http://sourcemaking.com/design-patterns-and-tips
http://www.dofactory.com/Patterns/Patterns.aspx
Hope it helps.
You will learn this best on a University course, or atleast a good one. You don't have to spend 2 years out to do this - if you can afford £400 - $500 I'd recommend this one.
It teaches you about state, and the other 4 concepts you can read about in a badly expressed way on wikipedia. I'm not convinced you will learn it properly from free resources online, I'd guess you'll just get patchy information.
You can be extremely brainy but the information out there isn't going to be that high calibre for a reason - the brightest minds in software pay for their university courses, lectures, assignments and exams, not just read it on the internet.
For analysis try the M256 course, which is about Object Oriented software development, UML and system design. It sounds dull but contains a lot of background information that you probably will never use but will want to know anyway.