chapter one problem solving © prepared by: razif razali1

30
CHAPTER ONE CHAPTER ONE Problem Solving © Prepared By: Razif Razali 1

Upload: eileen-ferguson

Post on 19-Jan-2016

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

CHAPTER ONECHAPTER ONEProblem Solving

© Prepared By:Razif Razali 1

Page 2: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

“ Do Something. If it doesn’t work, do something else. No idea is too crazy”

- Jim Hightower

© Prepared By:Razif Razali

2

Page 3: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

OBJECTIVESOBJECTIVES

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

Page 4: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

What is Software?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

Page 5: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

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

Page 6: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Who’s Who

CUSTOMER Sponsors systemdevelopment

USER

Usessystem

DEVELOPER

Buildssystem

Contractualobligation

$$$,needs

Software system

Needs

Page 7: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

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

Page 8: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Classic Life Cycle ModelsLinear sequential (Waterfall)PrototypingRapid Application Development

(RAD) Incremental (Block Release)SpiralComponent AssemblyConcurrent DevelopmentFourth Generation techniques

Page 9: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Waterfall Model

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING OPERATION

& MAINTENANCE

Page 10: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Waterfall Strengths

Easy to understand, easy to useProvides structure to inexperienced staffMilestones are well understoodSets requirements stabilityGood for management control (plan, staff,

track)Works well when quality is more important

than cost or schedule

Page 11: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Waterfall Deficiencies

All requirements must be known upfrontDeliverables created for each phase are

considered frozen – inhibits flexibilityCan give a false impression of progressDoes not reflect problem-solving nature of

software development – iterations of phases

Integration is one big bang at the endLittle opportunity for customer to preview

the system (until it may be too late)

Page 12: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

When to use the Waterfall Model?

Requirements are very well knownProduct definition is stableTechnology is understoodNew version of an existing productPorting an existing product to a new

platform.

Page 13: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

“Interactive” (Chaotic) Model

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

PROGRAMIMPLEMENTATION

UNITTESTING

INTEGRATIONTESTING

SYSTEMTESTING

DELIVERY

MAINTENANCE

Page 14: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Waterfall with PrototypingWaterfall with Prototyping

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING OPERATION

& MAINTENANCE

PROTOTYPING

Verify

Validate

Page 15: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Prototyping Cycles

LIST OFREVISIONS

LIST OFREVISIONS

LIST OFREVISIONS

PROTOTYPEREQUIREMENTS

PROTOTYPEDESIGN

PROTOTYPESYSTEM

TEST

DELIVEREDSYSTEMSYSTEM

REQUIREMENTS(sometimes informal

or incomplete)

reviseprototype

user/customer

review

Page 16: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Structured Evolutionary Prototyping Model

Developers build a prototype during the requirements phase

Prototype is evaluated by end usersUsers give corrective feedback Developers further refine the prototypeWhen the user is satisfied, the

prototype code is brought up to the standards needed for a final product.

Page 17: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Multiple Builds

Development systems

Production systems

DEV

ELO

PER

SU

SER

S

Build Release 1

Use Release 1

Build Release 2

Use Release 2

Build Release 3

Use Release 3

Time

Page 18: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Spiral Model

Start Axis

Customer Communication

Planning

Risk Analysis

Development

Integration

Customer Evaluation

Page 19: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

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 firstThe design does not have to be perfect Users can be closely tied to all lifecycle stepsEarly and frequent feedback from usersCumulative costs assessed frequently

Page 20: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

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 requiredSpiral may continue indefinitelyDevelopers must be reassigned during non-

development phase activitiesMay be hard to define objective, verifiable

milestones that indicate readiness to proceed through the next iteration

Page 21: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Rapid Application Development (RAD)

A good model for small VB systemsThe IDE is designed to allow us to

develop the small system.

Page 22: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

Rapid Application Model (RAD)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

Page 23: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

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.

Page 24: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

RAD Weaknesses

Accelerated development process must give quick responses to the user

Risk of never achieving closure Hard to use with legacy systemsRequires a system that can be modularizedDevelopers and customers must be committed to

rapid-fire activities in an abbreviated time frame.

Page 25: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

“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

Page 26: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

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

Page 27: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

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

Page 28: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

LIST OF TOOLLIST 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

Page 29: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

SUMMARY

Types of SDLC approach.The differences between the

approaches.The use of programming tools

© Prepared By:Razif Razali

29

Page 30: CHAPTER ONE Problem Solving © Prepared By: Razif Razali1

END OF CHAPTER ONEEND OF CHAPTER ONE

© Prepared By:Razif Razali

30