1 / 52

Software Development

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

Download Presentation

Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Development L. Grewe

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

  3. Why study Software Development? • Understand • Development problems • Software Failures • Failure Impact • Develop better software

  4. Software Engineering • is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software • 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.

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

  6. Software Development Lifecycle Steps • Planning • Analysis • Design • Development • Testing • Deployment • Maintenance

  7. 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 chosen • the 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 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 plan

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

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

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

  11. Testing - Lifecycle Step • 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.

  12. Deployment - Lifecycle Step • the systems are placed and used in the actual workforce and • The user manual is created • Training provided

  13. Maintenance - Lifecycle Step • keeping the system up to date • Help • Revisions

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

  15. SO……TECHNIQUES? • A number of Lifecycle Models exist.

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

  17. 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. • Once a phase of development is completed, the development proceeds to the next phase and there is no turning back. • ADVANTAGE: • departmentalization and managerial control. • 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. • DISADVANTAGE: • Does not allow for much reflection or revision.

  18. Prototyping • quickly put together a working model • illustrate ideas or features and gather early user feedback. • 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. • ADVANTAGES:it is believed to reduce project risk and cost.

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

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

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

  22. RAD • ADVANTAGES: • 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 complexity • Larger emphasis on simplicity and usability of GUI design • DISADVANTAGES • Reduced 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 time • The data needed should already be existing

  23. 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. • combines the features of the prototyping model and the waterfall model. • intended for large, expensive and complicated projects.

  24. Spiral Model • System Requirements • Preliminary Design • First Prototype done • Evaluations, redefining of requirements and redesign • 2nd Prototype • THE SPIRAL…..2nd evaluation, redesign and so on until customer satisfied. • 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.

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

  26. …..now some more models

  27. Extreme Programming (XP) • Agile method • 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 2005. • Extreme programming is a somewhat controversial methodology: • Deemphasizes formalized requirements gathering • Short development cycles • Constant User feedback

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

  29. Extreme Programming Values • Communication • Simplicity • Feedback • Courage • Respect

  30. Extreme Programming – a techniques (e.g. of controversy) • Pair programming • 2 programmers work together at one keyboard. • 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. • 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.

  31. …..now some more models

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

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

  34. …..some things to consider about stages

  35. 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 • Objectives that the solution is to meet • Boundaries of solution Feasibility Study Modelling System Design Specifications User Requirements System Requirements

  36. Stage 1: Design specification • 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. • The Design specifications give a workable framework to aid development of the system (and further understanding of the system).

  37. Stage 1: • 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” Software Productivity Research Inc (1996)

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

  39. Stage 1:Activity: • Developer's perspective • Algorithms, • Variables • Software design approach • Modelling the system • Documentation • User's perspective • Screen design • Ergonomic issues • Appropriate icons • Appropriate screen messages • Social and ethical issues • Relevant data formats for display

  40. 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. • They use diagrammatic methods and include: • ·   Input Process Output (IPO) diagrams • ·   System Flowcharts • ·   Storyboards • ·   Screen designs • ·   Dataflow diagrams • ·   Prototype

  41.   Stage 1: Questions: • 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 3: Why are modelling tools used in this stage?

  42. 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.

  43. 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.

  44. Stage 2 : • Use structured programming techniques of writing programs. • 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 test your algorithm • Documentation tools used to represent the overall software solution in diagrammatic form • Chose your programming language wisely

  45. 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 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 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 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

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

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

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

  49. 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. • Testing and Evaluation is integral to all stages. • Test that the Systems original “System Requirements and Objectives” are being met. • Are we doing the “RIGHT JOB?” • Are we doing the “JOB RIGHT?”

  50. Stage 4: Testing and Evaluation of Software Solution • 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?” .”

More Related