Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have to document my program for a school project and we have section called "problem domain" but I have no idea what to discuss in this section.

So the question is: What should be discussed in the problem domain?

share|improve this question
Problem domain = Programm topic/theme/subject –  Ivan Crojach Karačić Dec 19 '11 at 11:37
Given the way you have formulated your question, the answer @qes provided pretty much closes it. If you want any more specific advice you will need to give a few details as to what your program is about. –  Mike Nakis Dec 19 '11 at 11:42
Because if you can't tell us what your program is about, you don't know the problem domain. –  JeffO Dec 19 '11 at 15:52
add comment

3 Answers

up vote 10 down vote accepted

I write embedded software for telecommunications equipment. My problem domain is ethernet, voice, and video protocols. In other words, all the stuff that has nothing to do with the language I'm programming in, but that I still must understand in order to write the software. If you're making a website for selling photography services, the problem domain is photography and ecommerce. If you write firmware for military aircraft, the problem domain is weapons, sensors, and control systems. Get the picture?

share|improve this answer
Absolutely correct. And in the commercial-software business, folks who know the problem domain are frequently referred to as Subject Matter Experts (SMEs), rather than programmers, because their value to and role in the organization is different from (and often higher than) programmers. –  Ross Patterson Jan 16 '12 at 14:02
add comment

From the Wikipedia article on problem domain:

A problem domain is the area of expertise or application that needs to be examined to solve a problem. A problem domain is simply looking at only the topics you are interested in, and excluding everything else.

It is the area where the problems your application is intended to solve, belong to.

share|improve this answer
@Murph, edits during the first 5 minutes of a post aren't recorded explicitly. –  Péter Török Dec 19 '11 at 13:40
Can you provide an example pls? –  Samantha Catania Dec 19 '11 at 14:47
@PéterTörök never an (entirely) bad day when you learn something new (-: –  Murph Dec 19 '11 at 16:14
@SamanthaCatania, in the case of the project I am currently working on, the problem domain is car rentals. A central area in this is vehicle checkout&checkin itself, but apart from this, there are many other subdomains, such as: fleet management, revenue management, rates etc. –  Péter Török Dec 19 '11 at 16:25
add comment

Not everyone writes compilers, bug trackers, frameworks, or other straight computery software packages.

Some people write software for the sand and gravel industry. Some people write software for monitoring refinery refraction towers. Some people write software to control the manufacturing of plastic grocery bags. Some people write software to fill ketchup packets.

Those are all problem domains, where in order to write good software, you need to know a bit about the domain, e.g. ready-mix concrete.

share|improve this answer
A compiler writer also have a problem domain, among other things; CPU architecture. –  Prof. Falken Apr 16 '13 at 9:02
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.