Chapter 13 Current Trends in System Development

Slides:



Advertisements
Similar presentations
Lecture # 2 : Process Models
Advertisements

Chapter 2: Approaches to System Development
CS487 Software Engineering Omar Aldawud
Chapter 2 Approaches to System Development
Chapter 3 Process Models
INFO415 Approaches to System Development: Part 1
Ch 3 System Development Environment
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Alternate Software Development Methodologies
8.
Introduction to System Analysis and Design
Chapter Extension 19 Alternative Development Techniques © 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Chapter 1 The Systems Development Environment
Chapter 6 Systems Development.
Fundamentals of Information Systems, Second Edition
1 Chapter 6 Systems Development. 2 Learning Objectives  Know the characteristics of systems development.  Understand what professional systems analysts.
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 9: Moving to Design
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
CHAPTER 17 Building Software to Support an Agile Organization
Introduction to Systems Analysis and Design
CHAPTER 19 Building Software.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
Deployment Activities to make a new system operational
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
CSI315 Web Technology and Applications
17 Chapter 16: Trends in System Development Systems Analysis and Design in a Changing World.
Chapter 17: Current Trends in System Development
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
Transforming Organizations
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2 nd Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
Chapter 1: Introduction to Systems Analysis and Design
Topic 1: Approaches to System Development
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.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Content The system development life cycle
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
System Development 1 u Systems development life cycle (SDLC) l Provides overall framework for managing system development process u Two main approaches.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
2 Systems Analysis and Design in a Changing World, Fourth Edition.
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
The Systems Development Environment Systems Analysis and Design II.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1. WHAT IS AN INFORMATION SYSTEM? An information system is a collection of interrelated components that collect,
SYSTEM ANALYSIS AND DESIGN SAFAA S.Y. DALLOUL. INTRODUCTION.
2 Systems Analysis – ITEC 3155 Systems Analysis Tasks.
Methodologies and Algorithms
Chapter 1: Introduction to Systems Analysis and Design
CASE Tools and Joint and Rapid Application Development
Software life cycle models
Chapter 1: Introduction to Systems Analysis and Design
Systems development life cycle (SDLC)
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Chapter 13 Current Trends in System Development Systems Analysis and Design in a Changing World, 3rd Edition

Rapid Application Development RAD is overused and poorly understood Software developers claim they do, but cannot precisely define Equated with tools and techniques Prototyping, fourth-generation programming languages, CASE tools Object-oriented analysis, design, and development Tool vendors and methodologies claim RAD Competing and confusing claims

Reasons for Slow Development Rework Using the wrong software Not meeting minimum quality standards Shifting requirements and project changes Changes to design and construction Improper tools and techniques for project Reduces quality, increases development time

Cost of Change in Each Project Phase

What is RAD? Collection of development approaches, techniques, tools, and technologies RAD proven to shorten development schedules No universal RAD approach shortens every project schedule No technique, tools or technology fits perfectly Key is identifying overall development approach and matching set of techniques, tools, techniques most suitable to approach and specific project

RAD in Perspective Conventional SDLC approach typically sequential Completely define requirements before design Make major design decisions before implementation Systems were simple, development tools were primitive, hardware was expensive and slow Project characteristics determine approach Iterative approaches better for large project and/or uncertain requirements

Development Approach as a Function of Project Characteristics

Prototyping Approach to Development Discovery prototype Used in analysis or early design Uncover or refine system requirements Can be thrown away Developmental prototype Not thrown away Part of iterative development until final system complete

System Development Based on Developmental Prototypes Planning Analysis Architectural Design Analysis & Design Construction Testing & Evaluation Additional Implementation

When to Use a Prototyping Approach Requirements cannot be fully specified outside of architectural or detailed design Technical feasibility unknown or uncertain Development tools powerful enough to create functional system When not to use: System is non-interactive or internally complex Strict security or performance requirements exist

Prototyping Tool Requirements Development speed Flexibility and power Techniques and capabilities WYSIWYG (what you see is what you get) Generation of complete programs, program skeletons, or database schemas from diagrams Rapid customization of software libraries or components Error-checking and debugging capabilities

Project Conditions Determine Prototyping Tools Suitability for technical environment in which system will be deployed Ability to implement all system requirements Ability to interface with software developed with other tools Object-oriented, component-based, and Web service technologies and standards make software interoperability more achievable.

Spiral Approach to Development Iterative development approach Each iteration may include combination of planning, analysis, design, or development steps More radical departure from traditional development than prototyping development

The Spiral Life Cycle

Steps in the Spiral Development Approach Criteria for feature selection for each prototype User priorities Uncertain requirements Function reuse Implementation risk Break into categories “Must have”, “Should have”, “Nice to have” Complete high priorities earlier to reduce risk

Benefits and Risks of Spiral Development High parallelism High user involvement Gradual resource commitment Frequent product delivery Risks Management difficulties and design complexity More potential for rework

Cumulative Cost Plotted Against Time

eXtreme Programming (XP) Rapid development approach Focused on creating user stories, delivering releases of system, and quickly testing Developed by Kent Beck in mid-1990’s Borrows heavily on earlier development approaches such as prototyping, object-oriented development, and pair programming

eXtreme Programming System Development Approach

XP Principles and Techniques Continuous automated testing Continuous integration Heavy user involvement Team programming or pair programming Specific attention to human interactions and limitations

Comparison of Traditional, Spiral, and XP Development

When to Use XP Small development teams (12 or less) Talented development personnel with broad range of skills Limited scope of projects Stand-alone New systems Minimal interfaces to legacy system Extensive use of high-quality OO development and testing tools

The Unified Process Comprehensive development approach Originally developed by Jacobsen, Booch, and Rumbaugh in late 1990s Dominant approach for developing software with OO models and tools Adopts iteration from prototyping and spiral development approaches Exclusive reliance on OO models, tools, and techniques

How the UP Organizes Software Development UP’s SDLC includes four high-level activities: Inception – similar to project planning Elaboration – defining requirements in more detail and concentrate on analysis, design, construction for high risk and complex activities Construction – complete programming, testing, and installation for lower-risk and simpler activities Transition – test and deploy entire production system

Iterations and Disciplines Timeboxing - organizing a complex task or project into series of equal-length time intervals More effective when iterations are relatively short and each iteration produces concrete result Frequent testing, immediate user feedback, motivation, and greater accomplishment Disciplines include business modeling, requirements, design, implementation, and project management

UP Development is Series of Iterations

When to Use the Unified Process Benefits and risks mirror spiral development Major obstacles to adopt UP include: Complex project management (compared to sequential development) required Need to adopt OO models, tools, techniques throughout project UP’s formal steps, well-defined roles, attention to model building and validation makes UP preferred approach for large-scale development

Rapid Development Techniques Collection of guidelines used to help an analyst complete system development activities or tasks Risk management Joint application design (JAD) Tool-based development Software reuse Object frameworks

Risk Management Systematic process of identifying and mitigating software development risks Most risks can be identified if specific attention is directed to them Risks appear, disappear, increase, and decrease as development process proceeds Small risks should be monitored and large risks mitigated Every project should use risk management

Major Categories of Development Schedule Risk

Steps in Risk Management Identify project risks Estimate risk outcomes & probabilities Prioritize risks Develop & implement mitigation strategies Project completed

Joint Application Design Effective technique for quickly defining system requirements Shortens development time by including all key decision makers Can be incorporated into any development approach Well suited to iterative development approaches

Tool-Based Development Chooses tool(s) that best match system requirements Do not develop any requirements not easily implemented with selected tool (s) Applies generic 80/20 or 90/10 rule - resources best used to construct system that satisfies 80% or 90% of requirements most easily implemented System limited by tool No tool works for all development approaches

Software Reuse Mechanism that allows software used for one purpose to be reused for another Can shorten development schedule Possible time savings must also consider Effort required to identify reusable software Effort required for modification Extent to which software must be repackaged

Comparison of Various OO Code Reuse Methods

Object Frameworks Set of foundation classes specifically designed to be reused in wide variety of programs or systems User-interface classes Generic data structure classes Relational database interface classes Classes specific to an application area Programmers modify class attributes and methods for requirements of specific applications

Impact of Object Frameworks on Design Frameworks must be chosen before detailed design begins System must conform to specific assumptions about application program structure and operation that framework imposes Development personnel must be trained on frameworks Multiple frameworks might be required Early compatibility and integration testing

Components Standardized and interchangeable software module that is fully assembled and ready to use Well-defined interfaces to connect component to clients or other components Components are reusable packages of executable code Structured design and object frameworks are methods of reusing source code

Component Standards and Infrastructure Interoperability of components requires standards Common Object Request Broker Architecture (CORBA) Component Object Model Plus (COM+) Enterprise JavaBean (EJB) Simple Object Access Protocol (SOAP) and .NET Web services

Component Communication Using SOAP

Components and the Development Life Cycle Purchased components can form part or all of system Components provide one model for designing and deploying systems Component issues Internally developed components Object-oriented techniques Designing components for reuse

Activities Added to SDLC Phases when Components are Purchased

Components and System Performance Examine component-based designs to estimate network traffic patterns Examine existing server capacity and network infrastructure to determine communication ability Upgrade network and server prior to development Test system performance and make adjustments Continuously monitor system performance Redeploy components, upgrade server capacity, and upgrade network to reflect changed conditions

Summary Rapid application development (RAD) has goal of speeding application development RAD techniques include risk management, joint application design, tool-based design, and software reuse RAD approaches include prototyping, eXtreme programming, spiral development, the Unified Process RAD tools include object frameworks and components and supporting infrastructure

Summary (continued) Developer must examine project characteristics to determine which RAD concepts are likely to speed development Software reuse and inheritance Providing a library of reusable source code Can be quickly adapted to new application requirements and operating environment Components are units of reusable executable code that can be plugged into applications