We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 7
SPECIALIZED PROCESS MODELS
“These models tend to be applied when a specialized or
narrowly defined software engineering approach is chosen” COMPONENT-BASED DEVELOPMENT
• Commercial off-the-shelf (COTS) software components, developed by vendors
who offer them as products, provide targeted functionality with well-defined interfaces that enable the component to be integrated into the software that is to be built.
• The component-based development model incorporates many of the
characteristics of the spiral model. It is evolutionary in nature, demanding an iterative approach to the creation of software. Regardless of the technology that is used to create the components, the component-based development model incorporates the following steps(implemented using an evolutionary approach): 1. Available component-based products are researched and evaluated for the application domain in question. 2. Component integration issues are considered. 3. A software architecture is designed to accommodate the components. 4. Components are integrated into the architecture. 5. Comprehensive testing is conducted to ensure proper functionality.
The component-based development model leads to software reuse, and
reusability provides software engineers with a number of measurable benefits. Your software engineering team can achieve a reduction in development cycle time as well as a reduction in project cost if component reuse becomes part of your culture THE FORMAL METHODS MODEL • The formal methods model encompasses a set of activities that leads to formal mathematical specification of computer software. • Formal methods enable you to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation. • When formal methods are used during development, they provide a mechanism for eliminating many of the problems that are difficult to overcome using other software engineering paradigms. • Ambiguity, incompleteness, and inconsistency can be discovered and corrected more easily—not through ad hoc review, but through the application of mathematical analysis. • When formal methods are used during design, they serve as a basis for program verification and therefore enable you to discover and correct errors that might otherwise go undetected. Yet, concern about its applicability in a business environment has been voiced: • 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 is required. • It is difficult to use the models as a communication mechanism for technically unsophisticated customers. ASPECT-ORIENTED SOFTWARE DEVELOPMENT
• As modern computer-based systems become more sophisticated (and
complex), certain concerns—customer required properties or areas of technical interest—span the entire architecture.
• Some concerns are high-level properties of a system (e.g., security, fault
tolerance).
• Other concerns affect functions (e.g., the application of business rules),
while others are systemic (e.g., task synchronization or memory management). • When concerns cut across multiple system functions, features, and information, they are often referred to as crosscutting concerns.
• Aspectual requirements define those crosscutting concerns that have an
impact across the software architecture.
• Aspect-oriented software development (AOSD), often referred to as aspect-
oriented programming (AOP), is a relatively new software engineering paradigm that provides a process and methodological approach for defining, specifying, designing, and constructing Aspects.
• However, it is likely that such a process will adopt characteristics of both