CHAPTER ONE Problem Solving © Prepared By: Razif Razali1.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Prescriptive Process models
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Software Development Life Cycle (SDLC)
Lecture # 2 : Process Models
Software Engineering Saeed Akhtar The University of Lahore Lecture 4 Originally shared for: mashhoood.webs.com.
CS487 Software Engineering Omar Aldawud
SDLC Software Development Life Cycle. SDLC Acronym for system development life cycle. Acronym for system development life cycle. Is the process of developing.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Adapted from a presentation by John Petlicki of DePaul University, USA.
Software Process Models
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternate Software Development Methodologies
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
Software Engineering.
CS 425/625 Software Engineering Software Processes
Software Development Life Cycle (SDLC)
Chapter : Software Process
CSI315 Web Technology and Applications
Systems Analysis and Design
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
IT Systems Analysis & Design
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
Objectives:  To define RAD  Describe RAD as a system development method  List the advantages of RAD as a method  List the disadvantages of RAD  State.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Prescriptive Process Models
Rapid Application Development. What is RAD……..?  Rapid Application Development (RAD) is a software development process.  first developed during the.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
IT2005 System Analysis & Design
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development Life Cycle (SDLC)
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
By : Hisham Kahlifa Shreef Foda Khaled monir Tamer medhat Supervisor : Dr Doaa Nabil.
SE 548 IŞIL ÖZTÜRK.  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development.
Systems Development Life Cycle
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Development - Methodologies
Programming Language Syntax and semantics
Software Development Life Cycle (SDLC) by Manoj V. Nikum
Lecture 3 Prescriptive Process Models
Software development life cycle models
Software Development Life Cycle (SDLC)
IT Systems Analysis & Design
CMPE 412 Software Engineering
Introduction to Software Engineering
Software Development Life Cycle (SDLC)
SDLC Model A framework that describes the activities performed at each stage of a software development project.
Software life cycle models
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Presentation transcript:

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

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

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

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 Software Engineering: A Practitioner's Approach

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

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

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

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

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

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)

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.

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

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

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

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.

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

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

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

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

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

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

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.

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.

“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

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

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

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

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

END OF CHAPTER ONE © Prepared By: Razif Razali 30