software-engineering

How do I incorporate TDD into my workflow as a scientific programmer / student / researcher?

I'm busy! Most of my time is spent using analytical techniques, or on course work, and when I switch over to programming mode I need to generate code quickly. Since, the Primary Investigator for the lab I'm in doesn't care if I'm using TDD or an abacus as long as I get results fast. I've read "TDD by example" and found it quite helpful....

Different algorithm for different inputs

In the application I am developing I am facing a situation; I want to know if there is a design pattern for this. It's as follows User is presented on a web interface with different algorithms for a process User selection is stored in the database. Now, the application should perform computations differently depending on the algorithm...

What is "Continuous Implementation"?

Is "Continuous Implementation" the name of a software development methodology? If so, what is it exactly? Do you have experience using it? Note that I know what continuous integration is, but not continuous implementation. Background: today I learned (second hand) of a company that uses "Continuous Implementation" in the context of ...

[C# 3.0] Extension Methods and its implications in Software Engineering (or is it really a good idea?)

Right, so MS introduces Extension Methods for C# 3.0. Basically, it allows you to add new methods to an existing classes without having to subclass from it or change its implementation. Immediately alarm bells go off in my mind. 1) You start implementing your own extension methods for a library or standard library classes. Now it is not...

What does the term "lasagna code" mean to you?

According to Wikipedia, the term was originally coined by a database expert Joe Celko in 1982 and here's a quote from his 1997 article revealing what he meant by it: "The standard [structured programming] solution was to replace the GOTOs with nested IF-THEN-ELSE statements and switches that were layered so deep and had so much redundanc...

Looking for articles on automated deployment pros/cons

Hello, currently my team is working on a web-based service which has a very manual deployment process. I'd like to convince my management team to consider spending the engineering effort to bake automated deployment into our engineering practice. Can anyone suggest articles that help me make this argument? ...

Unsolved problems in Software Engineering

In a recent question on unsolved issues in Computer Science, one answer was, probably correctly, criticised for not strictly being a CS problem, but a software engineering one. In software engineering we have best practices, patterns, methodologies and templates, perhaps because it's quite a woolly area - probably more art than science...

[PHP specific, could apply to others] Which 'layer' is responsible for validation of data

Let say I devise an architecture like this - an application consists of modules and modules uses domain-specific utilities to perform changes to the model or database. An example, a registration module which shows the form, accept input and then use a registration utility which will perform the calls to insert the user info do the DB. ...

If there are "known issues" why release?

I have seen many APIs which list the details about know issues? If there are known issues why release it to public before fixing them? What is the reason? Dead lines? Or fixing that can break something else? Note: I am not sure whether this question belongs here. So feel free to close if this is not a valid question. ...

Taking Over Incomplete Software

A friend of mine wants to buy a nearly bankrupt software company and is interested in one of their incomplete software. What should he get from them besides the source code as the company is willing to provide any kind of documentation he wants. And he wants to get the most essential kind of documentation to minimize the duration of the...

Is there always a clear line between front-end and back-end of a software?

Given a software, Is there always a clear line between front-end and back-end of a software? Maybe it can be split into two more parts or split at a different border. ...

How to design software

I am planning to design software, and I have two questions: Do I need to write all the documents before development? What else do you do when you are going to develop software? ...

How to write documentation when programming

Do you have such a habit that when you are coding, you write the documentation as well, and make sure that they are in sync. How can achieve that? What do you write down? The function logical? The concept? Or other best-practices? Thanks in advance! ...

How to design a class?

I want to I can improve myself, and then I can design a class as a masterpiece. But I don't how to do that, and what rules I should follow? any suggestions? Thanks in advance ! ...

Any good methods to evaluate a design before any code is implemented?

Are there any heuristic methods out there used to figure out if there are flaws in a design? Or is it pretty much a subjective skill that comes with experience? Often I see engineers go for the first design that comes to their head and then adjust according to the results, this gets the job done, but it's time consuming. I'd like to know...

Does software quality really matter for Application Developer - *Practically*?

Does software quality really matter for a Application Developer in practice? I know this question seems like the most dumb question. But please see below why I am asking this question. I am fond of such engineering principles, patterns and had been implementing and enjoying so far. But now I am realizing that such principles re...

Two approaches of task distribution in a multi tier application

I am working on a large web application in Java using Spring and Hibernate as the persistence solution. And as for the methodology, we're on Scrum. My role is that of a Scrum Master. I am also the one managing the business requirements and overall direction of the application. While dividing the requested features into tasks, we have tw...

What's wrong with the analogy between software and building construction?

Many people like to think of building software as constructing a building so we have terms like building blocks and architecture. However, lately I've been to a couple of talks and most people say this analogy is wrong especially around the idea of having a non-coding software architect in a project. In my experience, good software arch...

Where can I find SQL statements to create EAV model?

Alternatively, anyone know of where I can get the EAV model for Erwin? ...

Object oriented analysis and design: can a process be a class?

I understand that there are several questions on OOD; this one is not a duplicate (I hope) because of its specific nature - can a functionality that process data be a class? First, some background. This came up from a discussion my supervisor had with me. I was supposed to write a video loading class. His idea was to have a single Vide...