Presentation is loading. Please wait.

Presentation is loading. Please wait.

CHAPTER ONE Problem Solving © Prepared By: Razif Razali1.

Similar presentations


Presentation on theme: "CHAPTER ONE Problem Solving © Prepared By: Razif Razali1."— Presentation transcript:

1 CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

2 “ Do Something. If it doesn’t work, do something else. No idea is too crazy” - Jim Hightower © Prepared By: Razif Razali 2

3 OBJECTIVES To list types of software development life cycle (SDLC). To understand the use of SDLC. To differentiate between types of SDLC approach. To have a view the use of programming tool © Prepared By: Razif Razali 3

4 What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures enable the programs to adequately manipulate information Documents that describe the operation and use of the program Software engineering : A Practitioner's Approach

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

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

7 What is the Software Life Cycle? Software Engineering is a series of steps for producing software. Methods, procedures, and tools are defined. Engineering discipline Metrics and measures - prediction

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

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

10 Waterfall Strengths Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Sets requirements stability Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule

11 Waterfall Deficiencies All requirements must be known upfront Deliverables created for each phase are considered frozen – inhibits flexibility Can give a false impression of progress Does not reflect problem-solving nature of software development – iterations of phases Integration is one big bang at the end Little opportunity for customer to preview the system (until it may be too late)

12 When to use the Waterfall Model? Requirements are very well known Product definition is stable Technology is understood New version of an existing product Porting an existing product to a new platform.

13 “Interactive” (Chaotic) Model REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN PROGRAM IMPLEMENTATION UNIT TESTING INTEGRATION TESTING SYSTEM TESTING DELIVERY MAINTENANCE

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

15 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

16 Structured Evolutionary Prototyping Model Developers build a prototype during the requirements phase Prototype is evaluated by end users Users give corrective feedback Developers further refine the prototype When the user is satisfied, the prototype code is brought up to the standards needed for a final product.

17 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

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

19 Spiral Model Strengths Provides early indication of insurmountable risks, without much cost Users see the system early because of rapid prototyping tools Critical high-risk functions are developed first The design does not have to be perfect Users can be closely tied to all lifecycle steps Early and frequent feedback from users Cumulative costs assessed frequently

20 Spiral Model Weaknesses Time spent for evaluating risks too large for small or low-risk projects Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive The model is complex Risk assessment expertise is required Spiral may continue indefinitely Developers must be reassigned during non-development phase activities May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration

21 Rapid Application Development (RAD) A good model for small VB systems The IDE is designed to allow us to develop the small system.

22 Rapid Application Model (RAD) Requirements planning phase (a workshop utilizing structured discussion of business problems) User description phase – automated tools capture information from users Construction phase – productivity tools, such as code generators, screen generators, etc. inside a time-box. (“Do until done”) Cutover phase -- installation of the system, user acceptance testing and user training

23 RAD Strengths Reduced cycle time and improved productivity with fewer people means lower costs Time-box approach mitigates cost and schedule risk Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs Focus moves from documentation to code (WYSIWYG). Uses modeling concepts to capture information about business, data, and processes.

24 RAD Weaknesses Accelerated development process must give quick responses to the user Risk of never achieving closure Hard to use with legacy systems Requires a system that can be modularized Developers and customers must be committed to rapid-fire activities in an abbreviated time frame.

25 “You’ve got to be very careful if you don’t know where you’re going, because you might not get there.” - Yogi Berra © Prepared By: Razif Razali 25

26 PROGRAMMING TOOL A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. © Prepared By: Razif Razali 26

27 CATEGORIES Software development tools can be roughly divided into the following categories: ◦ performance analysis tools ◦ debugging tools ◦ static analysis and formal verification tools ◦ correctness checking tools ◦ memory usage tools ◦ application build tools ◦ integrated development environment © Prepared By: Razif Razali 27

28 LIST OF TOOL Compilation and linking tools: GNU toolchain, Microsoft Visual Studio, CodeWarrior, ICC Scripting languages: Awk, Perl, Python, REXX, Ruby, Shell, Tcl Search: grep, find © Prepared By: Razif Razali 28

29 SUMMARY Types of SDLC approach. The differences between the approaches. The use of programming tools © Prepared By: Razif Razali 29

30 END OF CHAPTER ONE © Prepared By: Razif Razali 30


Download ppt "CHAPTER ONE Problem Solving © Prepared By: Razif Razali1."

Similar presentations


Ads by Google