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.
Related
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.
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 3 years ago.
Improve this question
I want to understand how exactly the OMG Data distribution service works and how it can be used for real time inter process communication with better performance.Please suggest me the best resources/books? i tried with Google and YouTube but could not able to get the exact DDS functionality related information and DDS implementation in real time.
The Data Distribution Service Portal at the OMG contains several tutorials contributed by the different vendors. See http://portals.omg.org/dds/tutorials these can be good references as they tend to focus on the standard features and less on vendor-specific details.
That said several of the vendors have created excellent tutorials. In addition to the one mentioned in the previous post I like the one by Twin Oaks Computing. The whole tutorial fits in one (long) HTML page with nice concept and figures: http://www.twinoakscomputing.com/coredx/dds_tour
For more in depth coverage I like the eLearning program from RTI (the company where I work) http://www.rti.com/elearning/index.html
Two of the modules that are available for free provide very good intro material on concepts and design patterns:
Introduction -- http://vimeo.com/user14186439/review/57448029/6138f1e5c1
Instances Samples and Data-Types -- http://vimeo.com/user14186439/review/61771143/d59ca69515
Also I would recommend the Case+Code (use-case) examples in the RTI Community Portal. They provide complete code examples illustrating how the different DDS APIs and QoS can be use to meet realistic use-cases. See http://community.rti.com/case-and-code
Gerardo
No books that I know of, but I like this paper...
http://www.slideshare.net/Angelo.Corsaro/the-data-distribution-service-tutorial
It guides you through some of the features of DDS and how you could utilize them by referring to a temperature sensor example.
If you want something more hands-on, there is an Open Source implementation of DDS at
http://www.prismtech.com/opensplice/opensplice-dds-community
which contains a set of examples and a lot of other documentation about the features and API.
Thanks
James
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 5 years ago.
Improve this question
Based on the different views documented in SAD which RUP roles should should be responsible for creating the SAD? I thought from the beginning that the SAD was only for a technical audience but from what i can see in RUP it is more than that so it seems like it is not only the Software Architect that should be involved.
Well, according to RUP's documentation, it's the Software Architect.
Quoting the Artifact: Software Architecture Document online reference:
Responsibility
A software architect is responsible
for producing the Software
Architecture Document, which captures
the most important design decisions in
multiple architectural views.
The software architect establishes the
overall structure for each
architectural view: the decomposition
of the view, the grouping of elements,
and the interfaces between these major
groupings. Therefore, in contrast with
the other roles, the software
architect's view is one of breadth, as
opposed to depth.
The software architect is also
responsible for maintaining the
architectural integrity of the system
through the development process by:
Approving all changes to architecturally significant elements,
such as major interfaces, described in
the Software Architecture Document.
Being part of the "change-control board" decisions to resolve problems
that impact the software architecture.
Well,
Do not think "roles" as job titles...
If you work in a traditonal enviroment, generally there is a guy who is job title is also "Software Architect"...If you work in an agile enviroment generally you can not find a job title like "software architect" in team...So the important thing is who knows and who gives the important decisons about architecture: Who fills the role of the architect not title....
In an healty enviromement[ traditional or agile] one guy can not give all decisons, so SAD is a workproduct of all team in practice because all teams members sometimes play the role of "architect"...
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).
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
Does anyone know any source of examples and templates for software requirements, build environment description and other kind of documentations that are common for software development?
Thanks!
The ReadySet templates from tigris are quite comprehensive though you need to know html or have a good html editor to use them.
The IEEE provides standards for software documentation. For instance, high level requirements are defined in IEEE 830-1993 Software Requirements Specification.
This is a standard I've learned in school (using a book called Software Engineering - an object oriented perspective by Eric J. Braude, but I would not specifically recommend it.) It's more suited to a traditional waterfall development model though.
Googling the standard number should get you a couple of interesting links.
(The IEEE 830-1993 standard is superseded by IEEE 830-1998.)
The arc42 project is about a free Software Architecture Documentation template similar to the Software Architecture Document of the Rational Unified Process (commercial).
The state of Texas has a fine framework for the whole system development cycle.