Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Similar presentations


Presentation on theme: "Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,"— Presentation transcript:

1

2 Software Development L. Grewe

3 A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development, operation, and maintenance of software. The application of a systemic, disciplined, quantifiable approach to development, operation, and maintenance of software. IEEE Standard Computer Dictionary, 610, ISBN Software Engineering: A Practitioner's Approach IEEE Standard Computer Dictionary, 610, ISBN Software Engineering: A Practitioner's Approach

4 Why study Software Development? Understand Understand Development problemsDevelopment problems Software FailuresSoftware Failures Failure ImpactFailure Impact Develop better softwareDevelop better software

5 Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of softwaresoftware Wikipedia Wikipedia The discipline of software engineering encompasses knowledge, tools, and methods for defining software requirements, and performing software design, computer programming, user interface design, software testing, and software maintenance tasks. The discipline of software engineering encompasses knowledge, tools, and methods for defining software requirements, and performing software design, computer programming, user interface design, software testing, and software maintenance tasks. requirementssoftware design computer programminguser interface design software testingsoftware maintenance requirementssoftware design computer programminguser interface design software testingsoftware maintenance

6 Who’s Involved CUSTOMER Sponsors system development USER Uses system DEVELOPER Builds system Contractual obligation $$$, needs Software system Needs

7 Software Development Lifecycle Steps Planning Planning Analysis Analysis Design Design Development Development Testing Testing Deployment Deployment Maintenance Maintenance

8 Planning - Lifecycle Step establishing the plans for creating an information system by Defining the system to be developed – based on the systems prioritized according to the organization’s critical success factor (CSF), a system must be identified and chosenDefining the system to be developed – based on the systems prioritized according to the organization’s critical success factor (CSF), a system must be identified and chosen the project scope – a high level of system requirements must be defined and put into a project scope documentthe project scope – a high level of system requirements must be defined and put into a project scope document Developing the project plan - – all details from tasks to be completed, who completed them and when they were completed must be formalizedDeveloping the project plan - – all details from tasks to be completed, who completed them and when they were completed must be formalized Managing and monitoring the project plan – this allows the organization to stay on track, creating project milestones and feature creeps which allow you to add to the initial planManaging and monitoring the project plan – this allows the organization to stay on track, creating project milestones and feature creeps which allow you to add to the initial plan

9 Analysis - Lifecycle Step Developers with users collaborate to collect, comprehend, and logistically formalize requirements by Developers with users collaborate to collect, comprehend, and logistically formalize requirements by Collaboratively discuss which tasks to undertake to make the system most successfulCollaboratively discuss which tasks to undertake to make the system most successful Define RequirementsDefine Requirements Prioritize requirementsPrioritize requirements

10 Design - Lifecycle Step this is where the technical blueprint of the system is created by this is where the technical blueprint of the system is created by Architecture: choosing design of networking, hardware and other softwareArchitecture: choosing design of networking, hardware and other software Presentation Layer: GUI screen design,Presentation Layer: GUI screen design, Data Layer: databases / data needs.Data Layer: databases / data needs. Business Layer: Process design.Business Layer: Process design. Test: possibly write test conditions (work with the end users to develop the test scripts according to the system requirements)Test: possibly write test conditions (work with the end users to develop the test scripts according to the system requirements)

11 Development - Lifecycle Step executing the design into a physical system by executing the design into a physical system by Actual implementationActual implementation Use good tools for layer/ component of system implmenting.Use good tools for layer/ component of system implmenting.

12 Testing - Lifecycle Step testing the developed system testing the developed system (Q&A- quality and assurance) Test the system using the established test scripts – test conditions are conducted by comparing expected outcomes to actual outcomes. If these differ, a bug is generated and a backtrack to the development stage must occur.(Q&A- quality and assurance) Test the system using the established test scripts – test conditions are conducted by comparing expected outcomes to actual outcomes. If these differ, a bug is generated and a backtrack to the development stage must occur.

13 Deployment - Lifecycle Step the systems are placed and used in the actual workforce and the systems are placed and used in the actual workforce and The user manual is createdThe user manual is created Training providedTraining provided

14 Maintenance - Lifecycle Step keeping the system up to date keeping the system up to date HelpHelp RevisionsRevisions

15 Classic Life Cycle Models Linear sequential (Waterfall) Linear sequential (Waterfall) Prototyping Prototyping Rapid Application Development (RAD) Rapid Application Development (RAD) Incremental (Block Release) Incremental (Block Release) Spiral Spiral Component Assembly Component Assembly Concurrent Development Concurrent Development Fourth Generation techniques Fourth Generation techniques

16 SO……TECHNIQUES? A number of Lifecycle Models exist. A number of Lifecycle Models exist.

17 Waterfall Model REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE

18 Waterfall Model Described ANALOGY: Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. ANALOGY: Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back. ADVANTAGE: ADVANTAGE: departmentalization and managerial control.departmentalization and managerial control. schedule can be set with deadlines for each stage of development and a product can proceed step –by- step.schedule can be set with deadlines for each stage of development and a product can proceed step –by- step. Each phase of development proceeds in strict order, without any overlapping or iterative steps.Each phase of development proceeds in strict order, without any overlapping or iterative steps. DISADVANTAGE: DISADVANTAGE: Does not allow for much reflection or revision.Does not allow for much reflection or revision.

19 Prototyping quickly put together a working model quickly put together a working model illustrate ideas or features and gather early user feedback. illustrate ideas or features and gather early user feedback. More prototypes are made iteratively and incrementally More prototypes are made iteratively and incrementally When the prototype is sufficiently refined and meets the functionality, robustness, manufacturability and other design goals, the product is ready for production. When the prototype is sufficiently refined and meets the functionality, robustness, manufacturability and other design goals, the product is ready for production. ADVANTAGES: it is believed to reduce project risk and cost. ADVANTAGES: it is believed to reduce project risk and cost.

20 Prototyping Cycles LIST OF REVISIONS LIST OF REVISIONS LIST OF REVISIONS PROTOTYPE REQUIREMENTS PROTOTYPE DESIGN PROTOTYPE SYSTEM TEST DELIVERED SYSTEM REQUIREMENTS (sometimes informal or incomplete) revise prototype user/ customer review

21 Rapid Application Development (RAD) Response to fact that non-agile processes like waterfall TAKE LONG TIME. Response to fact that non-agile processes like waterfall TAKE LONG TIME. involves iterative development, and the construction of prototypes. involves iterative development, and the construction of prototypes. involves compromises in usability, features, and/or execution speed. involves compromises in usability, features, and/or execution speed. development cycle expedited ….thus, products developed faster. development cycle expedited ….thus, products developed faster.

22 RAD….how is the rapid done? CASE Tools: CASE Tools: use of Computer Aided Software Engineering or CASE tools, which focus on converting requirements to code as quickly as possibleuse of Computer Aided Software Engineering or CASE tools, which focus on converting requirements to code as quickly as possible Time Boxing: Time Boxing: features are pushed out to future releases in order to complete a feature light version quickly.features are pushed out to future releases in order to complete a feature light version quickly.

23 RAD ADVANTAGES: ADVANTAGES: Increased speed of development through methods including rapid prototyping, virtualization of system related routines, and other techniques.Increased speed of development through methods including rapid prototyping, virtualization of system related routines, and other techniques. Decreased end-user functionality (arising from narrower design focus), hence reduced complexityDecreased end-user functionality (arising from narrower design focus), hence reduced complexity Larger emphasis on simplicity and usability of GUI designLarger emphasis on simplicity and usability of GUI design DISADVANTAGES DISADVANTAGES Reduced Scalability, and reduced features when a RAD developed application starts as a prototype and evolves into a finished applicationReduced Scalability, and reduced features when a RAD developed application starts as a prototype and evolves into a finished application Reduced features occur when features are pushed to later versions in order to finish a release in a short amount of timeReduced features occur when features are pushed to later versions in order to finish a release in a short amount of time The data needed should already be existingThe data needed should already be existing

24 Spiral Model Described combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. combines the features of the prototyping model and the waterfall model. combines the features of the prototyping model and the waterfall model. intended for large, expensive and complicated projects. intended for large, expensive and complicated projects.

25 Spiral Model 1. System Requirements 2. Preliminary Design 3. First Prototype done 4. Evaluations, redefining of requirements and redesign 5. 2 nd Prototype 6. THE SPIRAL…..2 nd evaluation, redesign and so on until customer satisfied. 7. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.

26 Spiral Model Start Axis Customer Communication Planning Risk Analysis Development Integration Customer Evaluation

27 …..now some more models

28 Extreme Programming (XP) Agile method Agile method early 2000's, the most popular of which is Extreme Programming. early 2000's, the most popular of which is Extreme Programming. Kent Beck wrote the first book on the topic in 1999 and expanded it with a second edition in Kent Beck wrote the first book on the topic in 1999 and expanded it with a second edition in Extreme programming is a somewhat controversial methodology: Extreme programming is a somewhat controversial methodology: 1.Deemphasizes formalized requirements gathering 2.Short development cycles 3.Constant User feedback

29 Extreme Programming – The Core Idea prescribing a set of daily stakeholder practices that embody and encourage particular XP values. prescribing a set of daily stakeholder practices that embody and encourage particular XP values. practicesXP values practicesXP values traditional software engineering practices taken to so-called "extreme" levels traditional software engineering practices taken to so-called "extreme" levels Hopes to be more responsive to customer needs ("agile") Hopes to be more responsive to customer needs ("agile") Wikipedia Wikipedia

30 Extreme Programming Values Communication Communication Communication Simplicity Simplicity Simplicity Feedback Feedback Feedback Courage Courage Courage Respect Respect Respect

31 Extreme Programming – a techniques (e.g. of controversy) Pair programming Pair programming 2 programmers work together at one keyboard.2 programmers work together at one keyboard. 1 types in code the 2nd reviews each line of code.1 types in code the 2nd reviews each line of code. Reviewer also considers the strategic direction of the work, coming up with ideas for improvements and likely future problems to address. Reviewer also considers the strategic direction of the work, coming up with ideas for improvements and likely future problems to address. This frees the coder to focus all of his or her attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide. This frees the coder to focus all of his or her attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.

32 …..now some more models

33 Multiple Builds Development systems Production systems DEVELOPERS USERS Build Release 1 Use Release 1 Build Release 2 Use Release 2 Build Release 3 Use Release 3 Time

34 Waterfall with Prototyping REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE PROTOTYPING Verify Validate

35 …..some things to consider about stages

36 Stage 1: Defining the problem What Happens in this Stage: To Identify and understand the problem you must look at the: Needs of Users and System Needs of Users and System Objectives that the solution is to meet Objectives that the solution is to meet Boundaries of solution Boundaries of solution Feasibility Study Design Specifications User RequirementsSystem Requirements Modelling System

37 The design specification helps you form the basis for the planning and designing the final solution. The design specification helps you form the basis for the planning and designing the final solution. You will use this specification throughout the system development to help plan, build and test the final solution. You will use this specification throughout the system development to help plan, build and test the final solution. The Design specifications give a workable framework to aid development of the system (and further understanding of the system). The Design specifications give a workable framework to aid development of the system (and further understanding of the system). Stage 1: Design specification

38 A quote on the problem of ill-defined system requirements: A quote on the problem of ill-defined system requirements: "the creation of software requirements is reminiscent of hiking in a fog that is gradually lifting” "the creation of software requirements is reminiscent of hiking in a fog that is gradually lifting” Software Productivity Research Inc (1996) Software Productivity Research Inc (1996) Stage 1:

39 Stage 1: Design specifications You need to consider the specification for the USER and the System (Developer's) point of view. You need to consider the specification for the USER and the System (Developer's) point of view. Developer: Overall design specifications Developer: Overall design specifications User: Interface design specifications User: Interface design specifications

40 Stage 1: Activity: Developer's perspective Developer's perspective Algorithms,Algorithms, VariablesVariables Software design approachSoftware design approach Modelling the systemModelling the system DocumentationDocumentation User's perspective User's perspective Screen designScreen design Ergonomic issuesErgonomic issues Appropriate iconsAppropriate icons Appropriate screen messagesAppropriate screen messages Social and ethical issuesSocial and ethical issues Relevant data formats for displayRelevant data formats for display

41 Stage 1: System Documentation: Modelling different aspects of the System Stage 1: System Documentation: Modelling different aspects of the System Modelling tools are part of the documentation to be interpreted by developers, maintainers and users, and are used to represent a system. Modelling tools are part of the documentation to be interpreted by developers, maintainers and users, and are used to represent a system. They use diagrammatic methods and include: They use diagrammatic methods and include:  Input Process Output (IPO) diagrams  Input Process Output (IPO) diagrams  System Flowcharts  System Flowcharts  Storyboards  Storyboards  Screen designs  Screen designs  Dataflow diagrams  Dataflow diagrams  Prototype  Prototype

42 Stage 1: Questions: Stage 1: Questions: Q 1: What are the aims of the first stage of the development cycle? Q 1: What are the aims of the first stage of the development cycle? Q 2: Why is the problem specification so important in this stage? Q 2: Why is the problem specification so important in this stage? Q 3: Why are modelling tools used in this stage? Q 3: Why are modelling tools used in this stage?

43 Stage 2: Planning and Design of Software Solution Documentation and Models developed in previous stage are used to give an overall view of system design and help in the development of data structures and logic necessary to fully develop each module. Documentation and Models developed in previous stage are used to give an overall view of system design and help in the development of data structures and logic necessary to fully develop each module.

44 Stage 2: Planning and Design of Software Solution What Happens in this Stage: The Planning stage consists of designing a solution. So in this stage you need to: 1: Identify all inputs, outputs and processes 2: Select and describe relevant Data Structures 3: Create the Algorithm for final solution.

45 Stage 2 : Use structured programming techniques of writing programs. Use structured programming techniques of writing programs. You need to define your system's Data Structures and files You need to define your system's Data Structures and files You need to be able to recognize the logic in Standard Algorithms You need to be able to recognize the logic in Standard Algorithms You need to test your algorithm You need to test your algorithm Documentation tools used to represent the overall software solution in diagrammatic form Documentation tools used to represent the overall software solution in diagrammatic form Chose your programming language wisely Chose your programming language wisely

46 Stage 2 : Questions: Q 1: Which Documentation tools in the above table are used in "stage one" of the SDC to help you understand and "model" the new system. Q 1: Which Documentation tools in the above table are used in "stage one" of the SDC to help you understand and "model" the new system. Q 2: Which Documentation tools in the above table are used in "stage two" of the SDC to help you Represent a Solution to the problem. Q 2: Which Documentation tools in the above table are used in "stage two" of the SDC to help you Represent a Solution to the problem. Q 3: What is the different between customised and standard algorithms? Q 3: What is the different between customised and standard algorithms? Q 4: What information does a data dictionary hold? Q 4: What information does a data dictionary hold? Q 5: What is the term used for the ‘computer software’ that the development team uses to help with analysis documentation and development? Q 5: What is the term used for the ‘computer software’ that the development team uses to help with analysis documentation and development? Q 6: Say the Planning stage is complete and the Programmer is about to start to code. Select any two of the Representation Tools below and describe how they both can complement each other to give the programmer a better description of the system Q 6: Say the Planning stage is complete and the Programmer is about to start to code. Select any two of the Representation Tools below and describe how they both can complement each other to give the programmer a better description of the system Data dictionary, structure diagram, algorithm, IPO chart Data dictionary, structure diagram, algorithm, IPO chart

47 Stage 3: Implementation of Software Solution What happens in this stage: Source code written and tested., Ensure effective user interface Source code written and tested., Ensure effective user interface

48 Stage 3: Use tools and techniques that will help correct and detect errors. Use tools and techniques that will help correct and detect errors. Understand the Type of errors : Understand the Type of errors : Syntax, Logic, Run-time Syntax, Logic, Run-time Consider the Hardware and software requirement of new software. Consider the Hardware and software requirement of new software.

49 Stage 3: Questions Q 1: State one documentation prepared in this stage and describe why it is important AND who is it important for? Q 1: State one documentation prepared in this stage and describe why it is important AND who is it important for?

50 Stage 4: Testing and Evaluation of Software Solution What happens in this stage: Verify program solution using test data both at program and system level. Verify program solution using test data both at program and system level. Testing and Evaluation is integral to all stages. Testing and Evaluation is integral to all stages. Test that the Systems original “System Requirements and Objectives” are being met. Test that the Systems original “System Requirements and Objectives” are being met. Are we doing the “RIGHT JOB?” Are we doing the “RIGHT JOB?” Are we doing the “JOB RIGHT?” Are we doing the “JOB RIGHT?”

51 Stage 4: Testing and Evaluation of Software Solution To ensure a quality product testing and evaluation is done. To ensure a quality product testing and evaluation is done. Quote: “definitions of software testing, however, boil down to essentially the same thing: software testing is the process of executing software in a controlled manner, in order to answer the question ”Does the software behave as specified?”.” Quote: “definitions of software testing, however, boil down to essentially the same thing: software testing is the process of executing software in a controlled manner, in order to answer the question ”Does the software behave as specified?”.”

52 Stage 4: Questions Q 1: What is the result from stage one of the SDC that is used in this stage to help rest the solution? Q 1: What is the result from stage one of the SDC that is used in this stage to help rest the solution?

53 Stage 5: Maintenance of Software Solution What happens in this stage: On-going process of corrections and refinement. On-going process of corrections and refinement. Modifications to code, macro, and scripts are often required. These modifications do not need to be made by original developers. Modifications to code, macro, and scripts are often required. These modifications do not need to be made by original developers. In these situations, the original documentation is very important. In these situations, the original documentation is very important. You need to keep in mind the ethical issues associated with assessing and modifying the code of others. You need to keep in mind the ethical issues associated with assessing and modifying the code of others. For all Changes: For all Changes:  Test changes  Test changes  Document changes  Document changes Modify present documentation Modify present documentation


Download ppt "Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,"

Similar presentations


Ads by Google