19
Specialized Process Models

Specialized Process Models

  • Upload
    rhyngel

  • View
    396

  • Download
    34

Embed Size (px)

DESCRIPTION

Software Engineering

Citation preview

Specialized Process Models

Special process models take on many of the

characteristics of one or more of the conventional models.

However, specialized models tend to be applied when a narrowly defined software engineering approach is chosen.

Special Process Models

Commercial off-the-shelf (COTS) Software

components can be used when Software is to be built.

COTS describes software or hardware products that are ready-made and available for sale to the general public.

Component-based Development

These components provide targeted

functionality with well-defined interfaces that enable the component to be integrated into the Software.

Component-based Development

The component-based development model

incorporates many of the characteristics of the spiral model.

Component-based Development

The component-based development model

incorporates the following steps: Available component-based products are

researched and evaluated for the application domain in question.

Component integration issues are considered. Software architecture is designed to accommodate

the components. Components are integrated into the architecture. Comprehensive testing is conducted to ensure

proper functionality.

Component-based Development

The component-based development model

leads to Software reuse, and reusability provides Software engineers with a number of measurable benefits.

Component-based Development

Based on studies of reusability Component-based development leads to a: 70% reduction in development cycle time; 84% reduction in project cost; Productivity increases Faster development and testing

Component-based Development

Encompasses a set of activities that leads to

formal mathematical specification of computer software.

Formal Method Models

Enables a software engineer to specify,

develop, and verify a computer-based system by applying a rigorous, mathematical notation.

Formal Method Models

Ambiguity, incompleteness, and inconsistency

can be discovered and corrected more easily through mathematical analysis.

When formal methods are used during design, they serve as a basis for program verification and therefore enable the software engineer to discover and correct errors that might otherwise go undetected.

Formal Method Models

Offers the promise of defect-free software Used often when building safety-critical

systems

Formal Method Models

The development of formal models is currently

quite time-consuming and expensive. Because few software developers have the

necessary background to apply formal methods, extensive training id required.

It is difficult to use the models as a communication mechanism for technically unsophisticated customers.

Drawbacks

Aspect-oriented software development (AOSD)

is a new approach to software development that addresses limitations inherent in other approaches, including object-oriented programming.

AOSD is also known as aspect-oriented programming (AOP).

Aspect-Oriented Software Development

OOP works on System level code, looks at

an application as a set of collaborating objects.

OOP works on elements like classes, objects, interfaces etc.

Provides benefits such as code reuse, flexibility, improved maintainability, modular architecture, reduced development time etc. with the help of polymorphism, inheritance and encapsulation.

Differences between AOP and OOP

AOP works at the complex software system. AOP has join points, point cuts, advice,

and aspects. AOP implementation coexists with the OOP by

choosing OOP as the base language.

Differences between AOP and OOP

AOSD aims to address crosscutting concerns by

providing means for systematic identification, separation, representation and composition.

Cross-cutting concerns are aspects of a program that affect other concerns. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and can result in either scattering (code duplication), tangling (significant dependencies between systems), or both.

Aspect-Oriented Software Development

Aspect-oriented software development (AOSD)

is a software design solution that helps address the modularity issues that are not properly resolved by other software approaches, like procedural, structured and object-oriented programming (OOP).

AOSD complements, rather than replaces, these other types of software approaches.

Aspect-Oriented Software Development

This results in better support for

modularization hence reducing development, maintenance and evolution costs.

Aspect-Oriented Software Development