Process Models

Ace your homework & exams now with Quizwiz!

Concurrent Activities Applicability

- For small or medium-size interactive systems. - For parts of large systems (e.g., the user interface). - For short-lifetime systems.

Iterative Approach Advantages

- Generates working software quickly and early during the software life cycle. - More flexible - less costly to change the scope and requirements. - Easier to test and debug during a smaller iteration.

Spiral Model

- Invented by Barry Boehm (1988). - Not a silver bullet, but considered to be one of the best approaches. - Is a realistic approach to the problems of large-scale software development. - Cycles so as to involve users after every development phase. -Can use prototyping during any phase in the evolution of a product. - Requires excellent management and risk assessment skills.

Concurrent Activities Problems

- Lack of process visibility. - Systems are often poorly structured. - Special skills may be required.

Agile Methodologies

- Motivated by recognition of software development as fluid, unpredictable, and dynamic. - Some key principles - Adaptive rather than predictive. -Emphasize people rather than roles. -Self-adaptive processes.

Commercial Off-the-Shelf Software

- Often the best solution for organizations is to purchase an existing information system from a vendor. This solution may need to be customized to the organization. - Payroll applications are rarely effective for an organization to build from scratch. - ERP systems like SAP or PeopleSoft are examples of generic commercial systems that are available. - Shopping cart applications are another example.

Rational Unified Process

- RUP establishes four phases of development: inception, elaboration, construction, and transition. - Each phase is organized into a number of separate iterations. - RUP is the most commonly used object-oriented analysis and design process.

Rapid Application Development Features

- Similar to the waterfall but uses a very short development cycle (60 to 90 days to completion). - Uses component-based construction and emphasizes reuse and code generation. - Use multiple teams on scalable projects. - Requires developers and customers who are heavily committed. - Performance can be a problem. - Difficult to use with new technology.

Object-Oriented

- The development is based primarily on the objects (related data and behaviors grouped together) rather than data or processes. - Class diagrams, interaction diagrams, state diagrams and object-oriented programming are the tools most commonly used in this type of methodology. - There are many different versions of this methodology, but the Rational Unified Process (RUP) is the most commonly used.

Evolutionary Approach

- The system is developed using a prototype and refined through user feedback. - Changes are viewed as the norm of the model. - The spiral, iterative, Agile, prototyping and incremental models are all evolutionary.

Types of Prototypes

- Throwaway prototypes - functional but not full-featured model; may be inefficient (also called patched-up prototype). - Nonoperational prototypes - nonworking scale model for the purpose of testing certain aspects of design (may omit error handling, help, etc., in order to test specific features). - First-of-a-series prototype - fully functional, but restricted to a single site until thoroughly tested. - Selected features prototype - includes some, but not all of the desired features (stubs); may evolve into final system

Incremental Approach Features

Applies an iterative philosophy to the waterfall model. Divides the functionality of a system into increments and uses a linear sequence of development on each increment. The first increment delivered is usually the core product, i.e., only the basic functionality. Reviews of each increment impact the design of later increments. Manages risk well. Agile lifecycles are often variations on this basic lifecycle, with the increment period being from 1 to 4 weeks. Traditionally, the increment period is 3 to 6 months.

Iterative Approach Disadvantages

Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle.

Prototyping

Prototyping is a method of quickly developing a version of the new system that allows users to interact, evaluate, and provide feedback.

Iterative Approach

Iterative development does not necessarily refer to the development of independent parts, but rather each iteration refines what has been developed in previous iterations. Iterative and incremental development are essential parts of the modified waterfall models, Rational Unified Process, Extreme Programming and generally the various agile software development frameworks.

Incremental Approach Benifits

Less cost and time is required to make the first delivery. Less risk is incurred to develop the smaller systems represented by the increments. User requirement changes may decrease because of the quicker time to first release. Incremental funding is allowed; that is, only one or two increments might be funded when the program starts.

Waterfall Model

Most widely used. Each step results in documentation. May be suitable for well-understood developments using familiar technology. Not suited to new, different systems because of specification uncertainty.

All are techniques designed to combine analysis, design, and implementation into a single iterative and parallel process of activities.

Waterfall Model Spiral Model Prototyping Incremental Approach Iterative Approach Evolutionary Approach Rapid Application Development CASE Agile Object-Oriented Commercial Off-the-Shelf Software (COTS)

Rapid Application Development

is a software development process that builds usable systems quickly (less than six months) and without extensive planning by using prototyping and by providing a number of tools to help build graphical user interfaces that would normally take a large development effort.

Computer-Aided Software Engineering (CASE) Tools

- Diagramming tools enable graphical representation. - Computer displays and report generators help prototype how systems "look and feel". - Analysis tools automatically check for consistency in diagrams, forms, and reports. - A central repository provides integrated storage of diagrams, reports, and project management specifications. - Documentation generators standardize technical and user documentation. - Code generators enable automatic generation of programs and database code directly from design documents, diagrams, forms, and reports

Stedent course objective

1. The student will be able to list and explain a variety of system development methodologies. 2. Students will learn to evaluate and assess the multitude of system development methodologies available. 3. Students will be able to explain that some methodologies, combination of methodologies, or adaptation of methodologies are more appropriate for certain types of projects. 4. Students will be able to discuss some of the conveniences and shortcomings of commercial off-the-shelf software

Incremental Approach Drawbacks

Fielding of initial increments may destabilize later increments through unplanned levels of user change requests. If requirements are not as stable or complete as initially thought, increments might be withdrawn from service, reworked, and rereleased. Managing the resulting cost, schedule, and configuration complexity may exceed the capabilities of the organization.

When to use Agile Methodologies?

If your project is small and involves - Unpredictable or dynamic requirements. - Responsible and motivated developers. - Customers who understand the process and will get involved

Waterfall Model Problems (no iteration)

System requirements are "locked in" after being determined (can't change). Limited user involvement (only in requirements phase, and only if a developer has no common sense). Too much focus on milestone deadlines of Systems Development Life Cycle (SDLC) phases to the detriment of sound development practices. Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase has to be completed before moving onto the next phase.

Incremental Approach

The incremental approach involves dividing the project into various independent parts and developing these sub-parts at the same rate or even at the different rate and integrating them when ready.


Related study sets

Honors English - Canterbury Tales

View Set

MKG 300 - Ch 14 - Personal Selling and Customer Service

View Set

ESF Diversity of plants lab practical 2

View Set

Hon Econ Chapter 1 Quiz Questions

View Set

Supplier and Supply Chain Relationships 22

View Set

Pectoralis Major, Minor, and Subclavius AOI

View Set

Cryptography: Transport Layer Security

View Set

EXAM 3 - chapter 19 wind and desert

View Set

PC AWL 1-7 Word Forms for Quizlet Live

View Set