Software Development Techniques

10,904 views

Published on

In this presentation, we will discuss about software development techniques, where we will cover life cycle model, life cycle of a system, system requirement analysis and various software development life cycle models.
To know more about Welingkar School’s Distance Learning Program and courses offered, visit:
http://www.welingkaronline.org/distance-learning/online-mba.html

Published in: Education, Technology, Business
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,904
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
368
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Software Development Techniques

  1. 1. Chapter 8Software Development Technique 1
  2. 2. StructureLife Cycle Model Life Cycle of a System System Requirement AnalysisSoftware Development Life Cycle Models IEEE Standard for Life Cycle ModelsSummary 2
  3. 3. Life Cycle Model The concept of Life Cycle Model wasproposed by W.W.Royce in 1970. The concept is based on the idea ofmaking projects more manageable andeffective by breakdown work into similarunits.The life-cycle model of W. W. Royce wascalled as the Waterfall model. 3
  4. 4. Life Cycle Model All existing systems may broadly beclassified into natural systems ,e.g. solarsystem , neurological systems etc. The man made systems may be furtherprocedural , physical ,or conceptual. A Procedural system is a coordinatedset of consistent principles. 4
  5. 5. Life Cycle of a System 5
  6. 6. Life Cycle of a SystemSystems Request Systems Request may be initiated from several sources ranging from the management to the users either formerly or informally.System Selection However all such requests should be processed by a committee of selected representatives 6
  7. 7. Life Cycle of a SystemFeasibility Study A Feasibility study is a study of the systems done on a small scale. Determining achievability of solution It contains plans for implementing 7
  8. 8. Life Cycle of a SystemDesigning New system Systems Analysis and Systems design are ,sometimes, used interchangeability which is not correct. Systems analysis is the analysis and selection of the best possible alternatives. Systems Design is a vast activity and includes System analysis 8
  9. 9. Life Cycle of a SystemData Gathering Data Gathering is basic step for any system study. The System analyst gathers the facts & opinions pertaining problems. He must study current procedures to solve the problem. 9
  10. 10. Life Cycle of a SystemGathering Opinions Gathering Opinions is also important. These are based on one’s position in the organization. Other source of data ◦ Company’s formal records ◦ Existing system documentation ◦ Publication of government 10
  11. 11. System Requirement AnalysisThe Need Along with the analysis of data ,the System Requirement Analysis has also to be simultaneously made for the development of the final system. The Tools that the systems analyst has to use during the course of investigation are the Six Kiplings serving men :They are Why ? What ? When ? Where ? Who ? & How? 11
  12. 12. System Requirement AnalysisMethodology The System analyst carries out an interim surveys .The detailed survey includes: ◦ Facts gathering ◦ Classify Information ◦ Documentation information ◦ Establishing control 12
  13. 13. System Requirement Analysis Facts gathering TechniquesInformation is gathered by the following basic methods Interviews Observations Sampling Meetings Research 13
  14. 14. System Requirement AnalysisInterviews Interviews are the most frequently used technique of collecting information . An Interview guide is a series of logical questions. The management interviews enable the system analyst to determine overall pictures. 14
  15. 15. System Requirement AnalysisObservations Observations include gathering of data fro various completed forms used in system .Sampling Sampling is restored to when the data to be reviewed is large. 15
  16. 16. System Requirement AnalysisQuestionnaires Questionnaires are efficient when the system analyst seeks information from large group of people .Meetings Meetings are arranged to bring the user & system analyst to allow to share each others views 16
  17. 17. System Requirement AnalysisSystem investigation files System analyst also prepares work flow diagrams, document flow diagrams. system analyst collects ,records like organization chart ,staff strength & other cost details. 17
  18. 18. System Requirement AnalysisData analysis and system Specification The System analyst summarizes the data gathered. Based on the feasibility study and the analysis carried out a system specification is prepared for the user. 18
  19. 19. Software Development Life Cycle Models The Software product is first conceived, developed and the delivered. It is not practical to use the same model for development of any type of software. 19
  20. 20. Software Development Life Cycle ModelsWaterfall model Requirement specification System design Implementation Integration Operation & Maintenance 20
  21. 21. Software Development Life Cycle ModelsWaterfall model With waterfall development- based methodologies, the analysts and users proceed sequentially from one phase to the next. The two key advantages of waterfall development-based methodologies are: - The system requirements are identified long before programming begins. - Changes to the requirements are minimized as the project proceeds. 21
  22. 22. Software Development Life Cycle ModelsWaterfall model Stage Output Requirement Specification SRS Document System design System design document Implementation & testing Program code Integration and system testing System test report Operation & Maintenance Money 22
  23. 23. Software Development Life Cycle ModelsProcess Model1 Waterfall Model 23
  24. 24. Software Development Life Cycle Models Waterfall modelAdvantages: Highly visible. Project monitoring is easy.Disadvantage Freezing the specification is difficult. Freezing hardware required , may not proper in changing technology. 24
  25. 25. Software Development Life Cycle Models Process model 2 Prototype model Prototyping-based methodologies perform the analysis, design and implementation phases concurrently. All three phases are performed repeatedly in a cycle until the system is completed. A prototype is a smaller version of the system with a minimal amount of features. 25
  26. 26. Software Development Life Cycle Models Prototype model 26
  27. 27. Software Development Life Cycle Models Prototype modelAdvantage: Provides a system for the users tointeract with, even if it is not initially ready foruse.Disadvantage: Often the prototype undergoessuch significant changes that many initial designdecisions prove to be poor ones. 27
  28. 28. Software Development Life Cycle ModelsProcess model 3Evolutionary Development System is built in stages. A subset of user requirement is taken and product is developed. 28
  29. 29. Software Development Life Cycle Models Evolutionary Development Is Yes User User Final Specification UserRequirement validation Product Design Satisfi ed No Refine the Requirement document 29
  30. 30. Software Development Life Cycle Models Evolutionary DevelopmentAdvantages This model is useful in exploratory programming. In case major problem are foreseen ,the developer has choice of withdrawing at any stage. 30
  31. 31. Software Development Life Cycle Models Evolutionary DevelopmentDisadvantages Since the project is open ended ,no time frame is set. Project Monitoring is difficult. Less visibility as compared to waterfall model. 31
  32. 32. Software Development Life Cycle Models Process model 4Spiral Model In 1988,Boehm proposed this model ,it is very useful for the projects involving high risk. Each loop in a spiral represents a development phase. 32
  33. 33. Software Development Life Cycle Models Spiral Model Objectives ConstraintsPlan Next phase SRS Detailed design Design Development & Testing Risk Analysis 33
  34. 34. Software Development Life Cycle ModelsSpiral Model As shown in the figure , each loop in thespiral represents a development phaseEach loop is split into four sections. Determine Objectives Constraints Risk Analysis Development of the product Planning the next stage 34
  35. 35. Software Development Life Cycle ModelsAdvantages Spiral Model This is a flexible model ,the phase can bedetermined by an organization dependingon type of complexity of project. This model is highly suitable for high riskproject. Project monitoring is effective. 35
  36. 36. Software Development Life Cycle ModelsDisadvantages Spiral Model This model is not suitable for low riskproject. It is complicated model for Projects withclear SRS. 36
  37. 37. Software Development Life Cycle ModelsSummary of Process Models Salient Features Model Highly visible. Waterfall model Project monitoring is easy. Prototyping Mo Useful for obtaining user requirement Useful for research oriented Evolutionary Development projects Spiral Model This is a flexible model Suitable for high risk project. 37
  38. 38. Software Development Life Cycle ModelsIterative Vs Incremental Approach Iterative approach involves growing asoftware to its full functionality insuccessive iterations. In Iterative model ,each successiveIteration adds more details to previouslyimplemented functionality. 38
  39. 39. Software Development Life Cycle ModelsProcess model 5Rational Unified process IBM’s rational came up with rational Unified process along with set of tools to facilitate software life cycle Management. RUP divides a project into four broad phases. 39
  40. 40. Software Development Life Cycle ModelsRational Unified process1. Inception Phase The planning phase is represented here in the life cycle. It aims at defining the scope of project. It end with the planning of work for elaboration phase. 40
  41. 41. Software Development Life Cycle ModelsRational Unified process2. Elaboration Phase Takes about 20% of the effort. Specific use cases i.e. gives details of the use cases which need to be developed. A broad software architecture is developed. 41
  42. 42. Software Development Life Cycle ModelsRational Unified process3. Construction Phase Takes about 70% of the effort. System is built in series Primary work involves developing & testing software.4. Transition Takes about 10% of the effort. 42
  43. 43. Software Development Life Cycle ModelsRational Unified process RUP also identifies core processes which need to be performed through life cycle. There is provision to perform any of the core workflows in any stage of RUP 43
  44. 44. Software Development Life Cycle ModelsRUP Software Development process Requirement Management Analysis Design Implementation Testing Maintenance 44
  45. 45. Software Development Life Cycle ModelsProcess Model 6:Rapid Application Development (RAD) A popular design strategy used today is RAD. RAD is the merger of various structured technique. RAD calls for the interactive use of structured technique. 45
  46. 46. Software Development Life Cycle ModelsRapid Application Development (RAD) One of the well –known RAD methodologies is the Dynamic Systems Development Methodology. The DSDM approach assumes that the three main phases of software development of analysis ,design , implementation. 46
  47. 47. Software Development Life Cycle ModelsProcess Model 7:Extreme programming Agile Programming (XP) or Light weight SDLC simplifies the process of software Development. The idea of extreme programming is to create developer user pairs who work as a cohesive team. 47
  48. 48. Software Development Life Cycle ModelsImplementation of system Development form a project standpoint : The success of any project depends on the correct choice of the life line. In the context of IT/Software projects , factors considered such as ◦ Users familiarity with technology in general ◦ Users familiarity with the chosen technology 48
  49. 49. Software Development Life Cycle ModelsLight Weight SDLC: Light Weight SDLC are a compromise between no process & too much process, they are of nine types Adaptive Software Development Agile Software process Crystal Dynamic System Development method. Extreme Programming. …… Cont 49
  50. 50. Software Development Life Cycle ModelsLight Weight SDLC: Feature driven development. Rational Unified process. SCRUM. Whitewater Interactive System Development with object Models 50
  51. 51. The Capability Maturity ModelFor an organization to grow in a highlycompetitive environment paramount importanceis to be given to quality. The commitment of the management to quality isreflected in how an organization defines itsprocess for software development. The widely accepted International standards are ◦ ISO 9000 Series Standards ◦ Capability Maturity Model 51
  52. 52. The Capability Maturity Model ISO 9000 Series Standards These standards are developed by International standards Organization. As per ISO standards the management must have:◦ Quality policy.◦ Quality representative who is independent of design activities.◦ Quality plan for each project. 52
  53. 53. The Capability Maturity ModelFor the software development a more detailedframework (compared to ISO 9000 Series ) forquality a management had been developed bysoftware Engineering (SEI) at Carnegie MellonUniversity. The vision of Watts Humphrey, CMM wasdeveloped to access the capabilities oforganizations in taking up large developmentprojects. 53
  54. 54. The Capability Maturity Model Version 1 of CMM was released in August 1991& 1.1 in February 1993. Since then CMM has been adapted by a no ofsoftware development organizations. The CMM is only confined to the Softwareaspects of the project. 54
  55. 55. The Capability Maturity ModelTQM and CMM Total Quality Management (TQM) addresses theManagement of Quality across all projectsinvolving Hardware & software.CMM addresses the management of quality ofsoftware aspects of the projects. 55
  56. 56. The Capability Maturity Model Levels of Software Process Maturity in CMM Based on software process maturity ,anorganization can be at one or five levels these are: Level1 Initial Level 2 Repeatable Level 3 Defined Level 4 Managed Level 5 Optimizing 56
  57. 57. The Capability Maturity Model The organizations ,interested in following CMM,has to take up KPA’s at level 2 & implementthem.For each KPA the following template is defined inCMMGoalsCommitment to performActivitiesMeasurement & and analysis 57
  58. 58. The Capability Maturity ModelLevels & Key Process AreaLevel1 InitialLevel 2 Repeatable Software Project Planning Software Project tracking Software Quality AssuranceLevel 3 Defined Organization Process Focus Organization Process definitionLevel 4 Managed Quantities Process Management Software Quality ManagementLevel 5 Optimizing Defect prevention Technology change 58
  59. 59. The Capability Maturity Model Software Project Planning A Software development plan is prepared forevery software project covering the goals,objectives, estimates for size , time ,effort cost ,risk etc. The plan is reviewed periodically. Project tracking & oversight Using Software development plan as basisperiodic review are conducted Likely changes in cost, size , time ,effort aremade 59
  60. 60. The Capability Maturity ModelLevels 2 KPA’s Requirements Management This KPA’s ensure that a formal understanding between client and software developer is reached. A document “Requirements Management specification “ is prepared which is signed by client & developer. SRS is reviewed periodically. 60
  61. 61. The Capability Maturity Model Software Subcontract Management When a portion or complete Software is givento a subcontractor for development ,it hasensured that the subcontractor develops qualitySoftwareAfter selecting the sub contractor a writtenagreement is signed 61
  62. 62. The Capability Maturity Model Software Quality Assurance A separate quality assurance team has to beformed. The QA team has to ensure that the softwareteam has to ensure that Software has developedas per the QA Plan. Expert group has to audit the software qualityassurance activities. 62
  63. 63. The Capability Maturity Model Software Configuration Management A software Configuration Control board has tobe established which has to approve changes tobe made. If any changes made to any work product ,anEngineering Change Notice. 63
  64. 64. The Capability Maturity Model Software Configuration ManagementLevel 3 KPAs At level 3 , Organization wide processes are defined for software development. Organization Process Focus A separate group is established to define ,modify, and manage the organization wide processes for software development. 64
  65. 65. The Capability Maturity Model Software Configuration ManagementOrganization Process definition A Standard Software Process for the organization is developed and maintained.Training Program A Training group is established which will Identify needs of training & manage the organization wide processes for software development. 65
  66. 66. The Capability Maturity Model Software Configuration ManagementIntegrated Software Management The necessary tools for software development are identified. Intergroup Coordination This KPA ensures that various groups associated with Software Project resolve all the common issues. Peer reviews are conducted periodically and the results are recorded . 66
  67. 67. The Capability Maturity Model Software Configuration ManagementLevel 4 KPAs At this level ,emphasis is on quantifying the effectiveness of various processes used in Software Project .Quantitative Process Management A separate group is established to manage the Quantitative Process for software development.Software Quality Management To manage Quality ,it is necessary to measure quality. 67
  68. 68. The Capability Maturity Model Software Configuration ManagementLevel 5 KPAs At this level ,the KPAs address continuous process improvements.Defect Prevention At organization level ,a team is formed which addresses the defect prevention activities.Technology Change Management For an organization to survive and grow ,it is necessary to adapt the latest technology 68
  69. 69. The Capability Maturity Model Software Configuration ManagementProcess Change Management To prevent defects ,to incorporate new technologies and based on the lessons learned due to past mistakes the Organization Process needs to be changed periodically. Implementation of CMM Each individual in the organization has to be actively participate in implementation of CMM …….cont 69
  70. 70. The Capability Maturity Model Software Configuration ManagementFor each KPA There must be a written policy indicating the commitment of the management The management must ensure necessary infrastructure. Measurement have to be taken to quantify the process …….. cont 70
  71. 71. The Capability Maturity Model Software Configuration ManagementFor each KPA A Development group responsible for the development of Software Project ,with project manager who is responsible for day to day management of project. Software engineering process group responsible for management of the software process. 71
  72. 72. The Capability Maturity ModelShort comings of CMM The CMM is an outcome of department of defense (USA) initiates to evaluate software subcontractors for large defense projects . In software engineering ,risk management has become a key area focus because of the complexity of the software projects. 72
  73. 73. The Capability Maturity Model Software Professional’s Perspective of CMM It is not enough if the management is committedto quality and people. In some organizations ,which is ranked CMM 4/5level some engineers complain that the processesare given importance and not people. 73
  74. 74. IEEE Standard for Life Cycle Models The concept is that the organization can define alife cycle model which would optimize theprocess of software development and lead to thedevelopment of quality software.The standard detail Requirement in terms of 17processes 74
  75. 75. IEEE Standard for Life Cycle Models The standard detail Requirement in terms of 17processes They are: Software Life Cycle Model Project Initiation Project Monitoring and Control Software Quality ManagementConcept Exploration System allocation Requirements …….Cont 75
  76. 76. IEEE Standard for Life Cycle Models The standard detail Requirement in terms of 17processes They are: Design Implementation Installation Operation & support Maintenance Retirement …….Cont 76
  77. 77. IEEE Standard for Life Cycle Models The standard detail Requirement in terms of 17processes They are: Verification and validationSoftware Configuration DocumentationTraining 77
  78. 78. End of Chapter 8Software Development Technique 78
  79. 79. “Like” us on Facebook:  p // /http://www.facebook.com/welearnindia “Follow” us on Twitter:http://twitter.com/WeLearnIndiahttp://twitter com/WeLearnIndiaWatch informative videos on Youtube: http://www.youtube.com/WelingkarDLP

×