software-engineering

When deciding on a feature, what do you do?

Do you primarily think of reasons TO implement it, or reasons NOT TO implement it? What are the advantages of each? ...

What defines a "safe" programming language/framework?

People may like this discussion of the history of innovation. What caught my eye was the remark about the importance of providing learning environments where failure is safe (gymnast mats, for instance). It caused me to wonder what makes programming environments characteristically safe. Here are three attributes that I have identified...

What is a "Unit"?

In the context of unit testing, what is a "unit"? ...

Best language for safety-critical software

If you were going to write some safety-critical software, what language would you prefer and why? ...

What is the HOME method?

A client asked me if I knew anything about the HOME development method. I, together with wikipedia and acronymfinder, drew a complete blank. Has anyone here heard about a development method called HOME? ...

Can there ever be a "silver bullet" for software development?

I recently read the great article by Fred Brooks, "No Silver Bullet". He argues that there hasn't been a silver bullet that made software devlopment remarkably easier and that there never will be one. His argument is very convincing and I certainly agree with it. What is the stack overflow community's take on it? Is it possible for a ...

What is the best modeling methodology for representing software system?

What is the best modeling methodology for representing software system. I mean like UML and so on. Is UML better or is there something better than that out there? My need is to represent graphically my web application , which is a 3-tier architecture. I need a engineering model methodology like UML to depict the entire software system f...

Besides version control systems, are there any tools that support release management?

Most of the time, I've seen release management handled as a defined process with the supporting tool as the version control system (usually via branching and tagging). However, are there any tools dedicated to release management? I'm looking for both open source and closed source tools, if any exist. ...

Release early/release often for commercial software?

Are there anyone with experiences/examples on releasing early/releasing often for commercial software? Does it work? I was thinking of VMware where they have a lot of revisions release between each major version. And the installation experience was awful, sometimes they would break the existing VMs and other times the VMware Tools insid...

What is source code control for?

There was a recent question about, effectively, replacing a local source code control system with a "keep all versions" file system or tool. Many of the answers said in essence that source code control systems are for more than just keeping past versions, even for an individual developer - something I think is correct. So, the question...

Basic steps for Agile software development methodology

Hi, What are the basic steps for Agile software development? And how you start a new project with agile methodology? ...

Encapsulation Principle

There's some object-oriented engineering principle that states something along the lines of "a class should only know about the contracts of the classes that it takes as arguments, or any internal ones it uses." The counter-example, in C++, is: Foo::bar( Baz* baz) { baz()->blargh()->pants()->soil(); // this is bad, Foo knows about b...

Need for refactoring ?

Why should companies invest in refactoring components, though it is not going to add any new feature to the product ? I agree it is to clean the code, fix bugs and remove dead code - but what is the take ?? ...

Will the accessibility of supercomputers change software engineering?

After reading this Computer World article, I've found some supercomputers that I readily available for less than $10000US. To me, that's a huge shock. However, I'm curious as to how this will impact software engineering and computer science, especially in the design and construction of applications. ...

Product Line Engineering

Some of the work we do at my company is slowly edging towards a product family with different products in the same family and different flavours (or feature sets) in each product. I am looking for some product line engineering techniques that might help us. Web search leads to a lot of resources and a lot of different sources of informat...

Should the definition of a 'software engineer' be different to a standard, i.e. non-IT 'engineer'?

A similar question has been discussed in Programmer vs. software engineer but most of the responses miss the essential point, which is - what is engineering. The standard definition is: The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economica...

how much time should you spend on a feature?

I'm currently working on a asp.net web form project by myself. How much time should i spend per feature, UI or backend...etc.? Currently i feel like i spend way too much time on little detail. Should i focus on the overall and just build the whole app and come back to the UI or little detail later on? ...

Designing extensible software (plugin architecture)

I need some resources that talk about how to design your software to be extensible, i.e. so that other people can write add-ons/plug-ins that adds functionality to it. What do you recommend? Any books out there that discuss the subject? I would prefer something that's short and to the point; a bit of theory and a bunch of concrete examp...

I want to introduce a new methodology into my company. What preparation and approaches would be best?

I am interested in trying to introduce a new methodology to my company. This new methodology is Correctness by Construction (CbyC). This would be using ADA SPARK. The company I work for is an Aerospace company that has used ADA on many projects. Another factor is I am pretty low on the company hierarchical structure (Software Engineer I...

Software engineering and patterns in Matlab GUI application?

I've been asked to develop a simple GUI application using Matlab and GUIDE, which will interact with a separate backend engine (also Matlab). I'm coming from a Java and .Net background. The Matlab documentation is strong on how to technically do this, but says little about the "engineering" process, in particular: How to package/names...