software-design

database archiving vs timeperiod based tables/fields

I am working on an employee objectives web application. Lead/Manager sets objectives for team members after discussing with them. This is an yearly/half-yearly/quarterly depending on appraisal cycle the organization follows. Now question is is better approach to add time period based fields or archive previous quarter's/year's data. Wh...

Software Design Implementation - Issue/Module/Bug/Feature Tracking Solution

The company is growing and we're starting to implement more and more complex software designs. I feel a need for some tracking software... I just don't know if it exists. I currently maintain a Google Doc Folder (shared by our 3 developers) with a well-organized doc for each module. A doc is also created per major upgrade to a module o...

Class Design: Demeter vs. Connection Lifetimes

Okay, so here's a problem I'm running into. I have some classes in my application that have methods that require a database connection. I am torn between two different ways to design the classes, both of which are centered around dependency injection: Provide a property for the connection that is set by the caller prior to method invo...

How can i write Addon/Plugin-friendly code ?

Hi there , i want to know how i can make my code Plugin/Priendliy. Lets say : I have a program and on the User interface there would be an Addons section , where other developers can offer Plugins.But how do i have to design such an interface , that my code works with other code. i can't imagine :( ...

Predictive vs Reactive software design

I know that for me I first got started following the waterfall method of project management and along with that I went with the predictive approach to software design. In this I mean we had huge packets of documentation, UML, database schemas, data dictionaries, workflows, activity diagrams, etc. Having worked in software for over 10...

What is the current software development/design book you are reading?

Hello *, I am constantly interested in reading interesting software development or design books. I think this post could be a great source to share opinions on books currently read by users. Especially I would be interested to know if the book is worth buying/reading and what is the summary in the user own words (pretty short mini-revie...

Communication between programs in .NET

Hi, I want to separate modules of my program to communicate with each other. They could be on the same computer, but possibly on different ones. I was considering 2 methods: create a class with all details. Send it of to the communication layer. This one serializes it, sends it, the other side deserializes it back to the class and th...

Java: Using one class to generate objects of another

I have two classes. SpeciesReader takes files and parses them. Species stores certain data about a species, which has been parsed from the file. Currently, I have a method: SpeciesReader.generateSpecies(), which uses the file with which it was instantiated to create a Species object. Is this bad practice/design? Should I somehow find a ...

Java: Using one function to return a few different types of value

I have a readData() function that reads files a returns a few different objects of parsed data. Right now, the return type of readData() is Object[]: Object[] data = readData(); MyGenome genome = data[0]; Species[] breeds = data[1]; //etc This feels awkward. Is there a better way to return this data? I don't want to have separate func...

Communication between components (software design question)

I have an application with the following UI components: Main Menu Folders Tree Query Builder Tabbed Lists (each tab has a grid that can display data entities) The application is based on MVC, so each component listed above has a controller and a view. The first three components need to display data entities on the list (as new tabs...

handling amorphous subsystems in formal software design

People like Alexander Stepanov and Sean Parent vote for a formal and abstract approach on software design. The idea is to break complex systems down into a directed acyclic graph and hide cyclic behaviour in nodes representing that behaviour. Parent gave presentations at boost-con and google (sheets from boost-con, p.24 introduces the ap...

Fun Ideas for an embedded senior design project?

I have a class called Senior Design next semester and we are looking for fun or interesting ideas that anyone might have for an embedded project. We will have Electrical Engineers, Computer Sciene, and Software Engineering majors working on this. All suggestions are welcome. Some ideas we are thinking about now are: Software Define...

Collection item knows about collection it is contained - does this smell?

Allright, this might be a strange question and maybe I am heading the wrong direction, but here is my problem: I have a SearchForm object which holds a collection of Tag objects. When a Tag object is clicked by the user, it highlights itself and triggers an event. The SearchForm class listens to this event and submits itself. The Tag o...

What are some good 'software design' books / resources that are currently recommended?

Hi all, Before you flag this as question that is too general, I'm simply looking for a resource or two. I recently applied to several full time positions among some of the tech giants, and this was among some of the feedback I received. I know what good coding practice generally entails, but am not so sure on largescale software des...

Tools for software architecture and design

I want to know if there exist different tools to develop software architecture and software design.. If so how do they differ and can you please mention few tools for software design and software architecture? ...

Too much control is bad. But when?

I remember reading a law (well, maybe not exactly a law), but in software design, providing user with a lot of control without really giving him an option of a Basic and an Advanced Mode will sometimes backfire and make the user to end up not using any of the options in the first place because they are just too many of them. Did I read t...

How to design an application in a modular way?

I am looking for pointers, suggestions, links, warnings, ideas and even anecdotical accounts about "how to design an application in a modular way". I am going to use python for this project, but advice does not need to necessarily refer to this language, although I am only willing to implement a design based on OOP. Here's some context ...

Design principles for complete noobs?

I've been programming for around a year now, and all the stuff that I've written works - it's just extremely poorly written from my point of view. I'd like to know if there are any (free) good books on Software Design out there that can offer a little guidance to the beginning programmer? I don't think I'd have as many problems if I knew...

Java Inner Class Iterator Problem

I'm having difficulty using an inner Iterator. private List<List<? extends HasWord>> sentences = new ArrayList<List<? extends HasWord>>(); private Iterator<String> wordIterator = new Words(); private class Words implements Iterator<String> { int currSentence = 0; int currWord = 0; @Override public boolean hasNext() { return cur...

Using constant fields vs initial data

Hi, I'm designing some new class diagrams for extending an existing office automation application. In a special case I have an option to use extra fields on Entity1 to determine something or use additional data rows in Entity2 to determine that. I believe first approach is better because it does not force us to insert initial data while...