You are currently viewing the personal blog of Wiras Adi, a web designer and application developer, located in Jakarta, Indonesia.

System Development Life Cycle (SDLC) Methodologies

SDLC (System Development Life Cycle), just as the name implies, is defined as the process (as a whole) of developing system or software to meet certain requirements. It covers many activities; starts from understanding why the system should be built, studying the project feasibility, analyzing problems, choosing the system design and architecture, implementing and testing it, up to delivering the system as product to the user. SDLC is a process of gradual refinement, meaning that it is done through several development phases. Each phase continues and refines what’s done in the previous phase. Commonly known development phases in SDLC are:

  • Planning. It is the process of understanding why the system should be built and defining its requirements. It also includes feasibility study from several different perspectives, technical, economic, and organization feasibility aspects.
  • Analysis. This phase includes activities such as problems identifying and analysis, and even predicting potential problems that may arise in the future regarding the system. The deliverables / products of this phase will drive how the system will be built and guide the developers’ works.
  • Design. System analysis leads to design decision, which exactly determines how the system operates in terms of process, data, hardware, network infrastructures, user interface, and other important factors in the system environment.
  • Implementation. This is probably the most resource-, cost-, and time-consuming phase of all. This is when the system is actually built, tested, and finally installed. It also includes activities such as user training and system maintenance. Some experts like to separate them into different phases Deployment and Maintenance. However the four phases are the most commonly known and accepted steps.

SDLC tries to achieve high quality system that meets or exceeds the requirements. Many methodologies have been developed and introduced in order to implement SDLC; some of them also try to improve other (previously) known methodology. Although each method follows certain different techniques and steps, they are all must go into the same development phases described above. There are many system development methods known today, but most of them basically are extended from three main methodologies which are Structured Design, RAD (Rapid Application Development), and Object-oriented Analysis and Design.

Structured Design

This method follows a step-by-step approach which moves logically from one phase to the next. The works done in each phase need to be approved by the project sponsor (this is usually the customer or the business analyst in an organization) before it can proceed to the next development phase. The Waterfall development methodology can be classified as this kind of methodology. This rigor and inflexible manner make this methodology vulnerable to any business changes that happen while the development is still on the way, as it is extremely difficult to go backwards. This may require repeating the whole development process from the start and throw away all that’s been done, and in the worst case it could cause the change of project contract or agreement with the customer.

There are two approaches in developing system using this methodology, process-centered and data-centered approaches. Process-centered approach attempts to get the works done mainly from the perspective of the processes that exist in the operation of the system, which will likely result in system that constructed by process-oriented components. On the other hand, the data-centered approach concentrates on the data used by and involved in the system.

Structured design methodology has some advantages in that the rigor manner of this method forces the developers (analyst and his/her team) to well identify and understand system requirements long time before the implementation phase begins. At least it should have been approved by the sponsor before the developers start coding any programs.

The lack of ability to go backwards of the development phases makes this methodology unaccommodateable to business process changes as the project proceeds. Projects done using this methodology take a long time until users receive some deliverables because usually the system being built can not be presented until it is completely done at the end of the implementation phase.

Structured Design Methodology

RAD (Rapid Application Development)

RAD methodology enters to overcome the weaknesses of Structured Design method. RAD-based development tries to adjust the SDLC phases to have some part of the system (most likely the core function of the system) developed quickly to be delivered to the users. Certain types of RAD method also try to be adaptive to possible changes in the business process by concurrently perform all development phases at (roughly) the same time, like those manifested in the Prototyping RAD and Agile Development Methodology.

RAD methodology introduced the use of advance development tools like code generators and the visual fourth-generation (4G) programming languages such as Microsoft Visual Basic and Borland Delphi. The use of these tools speed up the development process and in some degree produces higher quality of codes. However as the system can be delivered quickly, users tend to change their expectations of what the system can do, thus the requirements tend to change and expand.

There are three categories of RAD:

  1. Phased Development
    This method breaks the requirements into a series of versions, based on which several versions of system will be built sequentially, being the most fundamental and important functions bundled in the first version. Sequentially here means that the next version development will begin only after the preceding version has been approved and implemented. Each version has its own Analysis-Design-Implementation phases (in a smaller scale compared to the overall system). All of these versions will later be tailored to form a complete system that meets the requirements.This method delivers useful system very quickly to users, though it doesn’t cover all functions just yet. And as the system will be built based on many sequential versions, it is very critical to identify important and fundamental functions to be included in the first version, an in-depth initial analysis of the system is needed.

    Phased Development Methodology

  2. Prototyping
    This methodology used usually when the business process is likely to be changed as the project proceeds or when the project sponsor has little idea of what system to be built. The Analysis, Design, and Implementation phases performed concurrently and on each cycle resulting in a system prototype that will be reviewed by the project sponsor. The cycle repeated continually based on the sponsor comments until the prototype successfully meets the requirements. The last prototype will then be called the system.Prototyping development needs only initial basic analysis and design, but as the result important system functions may not be recognized until somewhere in the middle of project timeline. Thus there is a possibility to alter the initial design decision and start all over again from the beginning. It can delivers system quickly to users, though it not exactly meets the requirements.

    Prototyping Methodology

  3. Throw-away Prototyping
    Throw-away Prototyping is similar to the Prototyping method in that it also develops a prototype. But the throw-away prototype is rather presentational only, the prototype actually does nothing. It is intended to help users visualize the system being built. Based on the user’s comments, the next prototype continuously built until it can visualize the real working system. The next step would be implementing the real system. This throw-away prototype is also called dummy (mock-up) prototype.It is best if possible to do a thorough initial analysis before the developers start working on the first dummy prototype, as the dummy needs to contain enough details about the real system. This method doesn’t deliver incomplete systems within the project timeline like prototyping method, but in the end it delivers the complete system very quickly. It generally has shorter project timeline compared to other methods, because building dummies is considered easier and less time-consuming than building working prototypes.

    Throw-away Prototyping Methodology

Object-oriented Analysis and Design

The Object-oriented methodology developed based on the lack of synergy between process-centered and data-centered approaches in SDLC. Decomposition of system into a set of process (process centric) or data (data centric) can not be easily obtained, as both aspects are closely related one another. It is difficult to develop system by primarily focusing only to one aspect. As result, the system produced tends to be extendable only in one world. A process centric developed system can not be easily extended when there are changes in type of data in the system. This kind of problems also exists in the data centric developed system.

OO methodology decomposes problems into objects. Objects are considered part of the system that contain both process and data, an object may do some activities/processes (mapped as object methods), an object may also have states (mapped as object attributes). This way, developers will focus on the entity in the system that actually does processes and carries data, rather than focus primarily only to one aspect. OO-based system development extensively uses a tool called UML (Unified Modeling Language), which is a set of standard in diagramming and modeling techniques invented by three OO champions, Grady Booch, Ivar Jacobson, and James Rumbaugh, when they worked together in Rational Software. In 1997 UML proposed to and accepted by the Object Management Group (OMG) as a standard diagramming notation in object-oriented system development.

An OO approaches in system development must be:

  • Use-case Drive
    This means that use-case is the primary modeling tool to define system behavior. Use-cases describe how the users of the system interact with the system to perform activity. And as a use-case focuses only to one activity at a time, it is inherently simple.
  • Architecture Centric
    The term architecture centric gives a high level view of the system being developed. The software architecture chosen for the system should drive the specification, construction, and documentation of the system itself. The system architecture must support three views of the system:

    • Functional view
      Describes system behavior from the perspective of users of the system. Use-case diagrams used to depict this functional view.
    • Static view
      Describes the structure of the system in terms of classes, methods, attributes, and relationships of objects in the system. This view is depicted using CRC (Class Responsibility Collaboration) cards, as well using class and object diagrams.
    • Dynamic view
      Describes the internal system behavior in terms of object communications and change of states. UML tools used to depict this view are sequence diagrams, collaboration diagrams, and object state-charts.
  • Iterative and Incremental
    Iterative and Incremental paradigm means that each iteration of the system development must bring the system closer to the requirements. As SDLC is a gradual process, the UML diagrams used in OO-based development moves from a conceptual and abstract thing in the analysis and design phase to become more and more detail in the implementation phase.
 

78 responses to this entry so far.

  1. Bob Stewart

    I see you have a considerable amount of experience regarding SDLCs and related issues. At the risk of self promotion check out the free resources at http://OpenSDLC.org Thanks in advance for the consideration and keep up the good work. Sincerely, Bob Stewart

    #1
  2. Wiras Adi

    #1
    Thank you for the information Bob, that’s indeed a HUGE resource of SDLC.
    I’m currently waiting for a quite big project now, and I think it would be useful to have your site bookmarked.

    And thanks for visiting.

    #2
  3. Negin

    I have a task at hand which is to discuss common causes of software project failures and the ways in which different approaches to the System Development Life Cycle (SDLC) attempt to improve project success rate.

    Do you recommend your information as a good answer to my task/question?

    Or are there more approaches to SDLC?

    Kind regards,

    Negin

    #3
  4. System Development

    Hello. Thank you for the useful inputs you posted. It helps a lot to me. From your post I learn something new regarding on SDLC, how it flow and the uses. I already apply it on one of our projects. Good post friend. Keep it up!

    #4
  5. System Development

    Hi there! the information that you posted is really helpful to the people who needs and want to know about SDLC. Anyways everything you said is really true and in our subject in System Application and Development it was also discuss about that… NExt time I will also add some info about SDLC.

    #5
  6. Marie Claire

    Wow,nice article you’ve explained well how system development life cycle Methodologies.

    #6
  7. Paul

    I had an assignment on describing the shortfalls in ths standard SDLC and methods which help improve the performance of software systems development. This article you posted was very beneficial. Thanx alot keep up the good posts pal :-)

    #7
  8. ajeet sankhwal

    Hi,
    Thanks for the nice exlpanation.
    But if you have some images on SDLC please keep on your site, it will help us a lot.

    #8
  9. Syed Noman Mustafa

    Thank you very much.
    very nice information.
    very helpful information.
    further required if possible i.e. what is spiral Methodologies?
    differrent between waterfall & spiral.

    Thanks.

    #9
  10. Sheryl Ng

    Thanks for the information. Very helpful.

    #10
  11. Yogendra Singh Shekhawat

    Wiras Sir,
    Would you guide me what’s the actual thing ?

    What is the relation between SDLC (System Development Life Cycle) and SSADM (Structured System Analysis and Design). Is these two terms are different or separate of each other or same or one of these two is a component of another.
    Prototyping and RAD should be listed with SDLC or SSADM or with both of these ?

    I am totally confused. Plz help me.

    #11
  12. Aysha _Bahrain

    I just would like to say thanks a lot =)

    you present the subject with great simplicity
    we used to study them in deep which creates lots of confusion .. seeing the big picture from outside helped me getting a clear vision

    #12
  13. Noof (K.S.A)

    Thank you so much.
    Your explainations give me a clear picture about SDLC methodology.
    It is very helpful. I really understand it !

    Thankx

    #13
  14. Nicole H

    very useful info and i got amuch better understanding of the sdlc. would like to know if u link the various systems with their methodologies eg. waterfall & ssadm in other articles/blogs

    #14
  15. junrex Velete

    i am very grateful for your article..you explained it well…thank you…i learned a lot//,..

    #15
  16. jitendra kumar suthar

    I am a charterred accountant student in india. Your article is very informative stuctured in engrossing style. please write in depth about how each step is accomplished.

    #16
  17. tony abuga

    thanks alot for the information it really helped me secure ajob.

    #17
  18. Jonathan Malisa

    Thanks for good references

    #18
  19. Tharmini Manoharan

    I am an IT Student. Your article is very useful to my studies. Thank you very much.

    #19
  20. laila

    Thanks a lot…..
    this was a lot helpful……
    Many other websites contained wrong info….
    Bu his was absolutely goooodd……….

    Thank you…….. I needed his alot………….

    #20
  21. Anon03

    Well, thanks. SDLC proves useful when performing big projects. I have a hot project coming up and your blog and site will fit the bill.

    #21
  22. moses t sheehama

    the information was helpful… thankx

    #22
  23. Sandra aseka

    Thanks you equiped me with a full knowledge on sdlc .i see myself pass the exam.

    #23
  24. Kwesi Banson

    Hi people can anyone get me some useful resources on an SDLC for a National Identification System…its my big time project. tha

    #24
  25. jay

    this was shit get some useful information oh my god have some shame you illiterate idiots

    #25
  26. symo

    what a nyce article!congratz u people.

    #26
  27. moses aubyn

    why might it make sense to execute system analysis and design phase activities sequentially, even though in practice iterations are used in nearly all system development project

    #27
  28. bhanu

    can you please tell me what uml diagram will be used in SDLC.

    please

    #28
  29. tishora callender

    hey, i’m so grateful that i checked out this blog. it was so informative and cleared up all ambiguities that i may have. unlike jay who posted on 15/11/11, i think it clears up illeteracy. shame on him

    #29
  30. josephine

    great article sincerely grateful.

    #30
  31. George

    Just what am looking for!!!!!!
    Most comprehensive

    #31
  32. Millicent

    Hi, thank you for posting such an important article. It is wonderful. Be blessed.

    #32
  33. hayatu shehu rumah

    wow what a nice article tanx allot and i have learn many things in sdlc

    #33
  34. mosetio

    reasons why sytem analyst prefers prototyping instead of SDLC

    #34
  35. mosetio

    FOR THE SYSTEM ANALYSIS

    #35
  36. Sean

    Thanks! I have got much knowledge on this page.

    #36
  37. waleed

    this is the interesting comparison between different methodologies. i was finding comparison between different methodologies for my system development method assignment. you this help it me. so thanks for posting this up.

    #37
  38. Euro 2012 highlights

    I do understand what exactly OOADM is, but the problem is what are its disadvantages ??

    #38
  39. Fadi Khouri

    Very informative. Thank you

    #39
  40. moffat

    Hi,
    Thanks for your great article. It has helped me so much solve many problems which I had. Also I have learnt alot .
    Thanks.

    #40
  41. charles chomba jnr

    thank you for the great article you have helped my to answer my assignment….

    #41
  42. cerberus

    Hi Bob,

    Very well explained. Thank you for writing this blog. I now have my SDLC methodology to use and clear idea about this method for my current project.

    #42
  43. Mihiri

    Great Stuff !! Well done

    #43
  44. veronicah

    thanks for your help

    #44
  45. HP

    thanks a lot!!!!!!

    #45
  46. roshni rifat

    Thankx alot 4 such a nice explination!

    #46
  47. John-West

    please i need a detailed explanation of SDLC

    #47
  48. Alfy Farhan

    thankss a lot.
    it really help me in my first class
    i will use this link to complete my assignment

    #48
  49. Cheptoek Aggrey

    thx so much 4 your posts..its helping us alot in our coursworks..

    #49
  50. dinesh gurung

    thanks its really help me for my MCA paper…

    #50
  51. BWIRE SEDRICK

    this is really helpful especially in my course of business computing

    #51
  52. Leo Muteti

    you have saved my head on that assignment bro. Thanks.

    #52
  53. b mashcom

    thats a wonderfull article, now i can write my SAD exam fairly relaxed

    #53
  54. amila

    i would like to thank u all for this nice explanation on SDLC . It’s so beautiful. If u could explain some more SDLC models in this way , it’ll be much good to the reader.
    Thank U a Lot !!!

    #54
  55. Joshua Zireva

    this is excellent

    #55
  56. muntaser

    thanx alot for very good explanation ….

    #56
  57. Haroon

    That’s Amazing And Time Saving…

    #57
  58. Phillip

    Thank you Wiras Adi. This has been a great help with my college homework.

    I still need to find: Parallel, V Model, Iterative(diagram) and Extreme Programming

    (or I could just buy the book! :) )

    #58
  59. salma jahan

    What a nice and helpful post this is!!!!!!
    keep it up.

    #59
  60. EMILY GWARO

    am grateful for this explanations

    #60
  61. laizza huertas

    Thank you Mr. Bob. You have given us the answer in our group activity here in school.

    #61
  62. Festus Chimezie

    Tnks bob,I do understand vry clearly,this is just wat I need to knw….up you.!

    #62
  63. star m tunna

    i realy lov searchng with google, coz it has a good display

    #63
  64. kipkoech

    nice job.but where is the implementation part of this project.i.e the tools such as pilot,parallel,direct, & phased.thanks.

    #64
  65. joshua

    gud

    #65
  66. joshua

    good notes

    #66
  67. Rebby Rebby

    very useful information, you explain it well. Thank you very much!

    #67
  68. how to start a web designing company in india

    This design is steller! You most certainly knw
    how to keep a reader entertained. Between your wit and your videos,
    I was almost movrd too start my own blog (well, almost…HaHa!)
    Excellent job. I reallly enjoyed what you had to say, and more than that, how you presented it.
    Too cool!

    #68
  69. Ciara

    So cool. Thank you so much! This was a such a big help in my documentation.

    #69
  70. george

    nice one bro

    #70
  71. de todas recomiendo esta

    Alucinante, este articulo es sugestivo, mi padre esta leyendo con interes
    muchos este tipo de columnas, por tanto voy a decirselo y enviarle hasta aqui.

    #71
  72. hyw

    Thanks a lot…

    #72
  73. Joseph Mashauri

    hi i like your post i learn a lot which i didn’t know
    thanks much

    #73
  74. Andres Traslavina

    Hiring a Director at WholeFoods
    http://bit.ly/DIrectorSS_WF

    #74
  75. http://www.seagum.com

    Terrific work! This is the kind of information that should be shared around the web.
    Shame on Google for not positioning this post upper!

    Come on over and consult with my website . Thank you
    =)

    #75
  76. Fabrice kisaho

    Right answer

    #76
  77. Noreen

    Une fois de plus un très bon article, j’en parlerai dans la semaine avec
    mes voisins

    #77
  78. Abdu

    thanks

    #78