Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In an hypothetic situation of a company that have infinite resources (time/budget) to develop a product.

can someone list me ALL possible steps that are required in my system development life cycle to reach the goal, in a state of the art software engineering view ?

The GOAL of this question is to get a detailed list of all different aspects that i would do in "a state of the art" software development life cycle. I'm not interested in the paths (software development methodologies) but in all kind of steps.

Example: Focusing on the "software test step" i can test a products to archive different goals:

* 5.1 Test target
      o 5.1.1 Unit testing
      o 5.1.2 Integration testing
      o 5.1.3 System testing
      o 5.1.4 System integration testing
* 5.2 Objectives of testing
      o 5.2.1 Regression testing
      o 5.2.2 Acceptance testing
      o 5.2.3 Alpha testing
      o 5.2.4 Beta testing

* 6.1 Software performance testing and load testing
* 6.2 Stability testing
* 6.3 Usability testing
* 6.4 Security testing
* 6.5 Internationalization and localization
* 6.6 Destructive testing

And others .. Trying to enumerate all aspects of software testing, what else aspect i need to test ?

Do this kind of reasoning to all aspect of software development life cycle.

share|improve this question

closed as not constructive by Thomas Owens Mar 9 '12 at 16:04

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Please expand your question. It's not clear what you want to know. All hypothetic steps == all possible steps == any random activity whether it leads to the goal or not. Why not start step 1 "Give S.Lott a Bentley"? Please explain more. – S.Lott Mar 23 '11 at 18:34
With infinite resources (including time) one can just use the hundred-monkeys approach. – Apalala Mar 23 '11 at 18:59
1. Plot world domination. 2. Execute plot successfully given limitless power. 3. Cackle triumphantly for winning the world. :) – JB King Mar 23 '11 at 20:17
I have tried to expand my question. In all Hypothetic step i mean "all possible steps" to archive the goal in a state of the art software engineering perspective. – boos Mar 24 '11 at 10:47
up vote 0 down vote accepted

Trying to enumerate all aspects of software testing, what else aspect i need to test ?

You can't enumerate all.

Do this kind of reasoning to all aspect of software development life cycle.

You still can't do all.

All is impossible. If you want to do all possible steps you have to allow for all possible time and all possible resources.

All steps is effectively infinite.

You could, for example, include "translate all test plans into all human languages". That's a possible step.

You could also include "rewrite all test results in all numeric bases from base 2 to base 65,635 (using Unicode characters for digits)." That's a possible step.

Asking for all is silly. It will include activities that don't really create the required deliverables.

An SDLC has a minimal number of steps that seem like they'll get the job done.

You can add as many more steps as seem necessary to get the job done. Indeed, you can add an infinite number of extra steps.

You can add all possible steps, including steps which don't get the job done.

The trick is this.

The correct number of steps is the exact number of steps to get the job done. Not all.

share|improve this answer
As I say in the question, I suppose to have infinite resource. I think don't exist any situation where 'rewrite all test results in all numeric bases ..' make any sense. The point of the question is to enumerate any possible aspects of SDLC. it's just an exercise in academic software engineering to check my knowledge in this field. – boos Mar 31 '11 at 7:58
@boos: "it's just an exercise in academic software engineering". Correct. "Translate all specifications into all human languages" is something we do when we have infinite resources. – S.Lott Mar 31 '11 at 9:50
So, in Software engineering discipline there is a branch which study how translate software requirements in all human languages ? I think you have miss the focus of my question. – boos Mar 31 '11 at 9:55
@boos: your question says "infinite resources". When we have infinite resources, we can do infinite things. Your question is very hard to answer because you don't have any focus. "Infinite" means infinite -- all people in the world, all computers in the world, all money in the world, and all the time in the world. "ALL possible steps" means "All". Every possible step that could ever be done by people. "ALL" means "ALL". No focus. All possible work. – S.Lott Mar 31 '11 at 9:58
I think and talk about it with a colleague right now, you are in true, with infinite resource, infinite things. The purpose of the question for me is to try to get an overview over the fields of software engineering to have a better general knowledge about it, but as you say, there are infinite things to do with infinite resource and more Infinite steps to think without a specific context. To conclude, My question is a stupid one. :) Or to better say it, I have tried to find a short-path about a things where only experience can do a better general overview of the whole complexity. – boos Mar 31 '11 at 10:17

Actually, there are many paths to reach the goal, such as waterfall or agile methodologies. And there are many variants of any of these paths.

All of this a whole academic subject called software engineering.

share|improve this answer
Of course, I'm not interested in the paths aka "development software methodologies" but in steps. I'm not interested in how archive this goal but in what i can do with infinite resources. – boos Mar 24 '11 at 11:11
A succession of steps makes a path. My point is that there are many paths and thus there are many differents steps depending on which path you take. For instance, unit testing may be useless if code is automatically generated. – mouviciel Mar 24 '11 at 11:15
Ok, but "automatically generation of code" can be put in the step of coding, so trying to list all steps of SDLC i can write: ..., coding; testing, ... i wrote down the question badly, useless or no, i'm trying to get a list of all aspects of SDLC. – boos Mar 24 '11 at 11:25
So, you are interested in the names of the steps and not their contents? I would not put traditional coding, automatic code generation and pair programming in the same bag. – mouviciel Mar 24 '11 at 14:38
yes, the goal is try to have a overview of all aspects in software engineering. if i made test i made test on security, performance, etc. in which bag do you put this three different type of producing code ? – boos Mar 24 '11 at 14:47

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