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.

  • 1
    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, 2011 at 18:34
  • 1
    With infinite resources (including time) one can just use the hundred-monkeys approach.
    – Apalala
    Mar 23, 2011 at 18:59
  • 4
    1. Plot world domination. 2. Execute plot successfully given limitless power. 3. Cackle triumphantly for winning the world. :)
    – JB King
    Mar 23, 2011 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, 2011 at 10:47

2 Answers 2


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.

  • 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, 2011 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, 2011 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, 2011 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, 2011 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, 2011 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.

  • 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, 2011 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, 2011 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, 2011 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, 2011 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, 2011 at 14:47

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