You are on page 1of 19

Specialized

Process Models

Special 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.

Component-based Development

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
incorporates the following steps:

model

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

Formal Method
Models

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

Drawbacks

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.

Aspect-Oriented Software
Development

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).

Differences between AOP and OOP

OOP works on System level code, looks at


anapplicationas a set of collaboratingobjects.
OOP works on elements like classes, objects,
interfaces etc.
Provides benefits such as code reuse,
flexibility, improvedmaintainability, modular
architecture, reduceddevelopment 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, pointcuts, advice,
andaspects.
AOP implementation coexists with the OOP by
choosing OOPas the base language.

Aspect-Oriented Software
Development

AOSD aims to address crosscutting concerns by


providing means for systematic identification,
separation, representation and composition.
Cross-cutting
concernsare
aspects
of
aprogramthat affect otherconcerns. These
concerns often cannot be cleanlydecomposed
from the rest of the system in both the design and
implementation,
and
can
result
in
eitherscattering(codeduplication),tangling(sign
ificant 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.

You might also like