pakistannewsworldnew
8 views
26 slides
Mar 09, 2025
Slide 1 of 26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
About This Presentation
software engineering lecture
Size: 756.05 KB
Language: en
Added: Mar 09, 2025
Slides: 26 pages
Slide Content
Software Engineering Semester: Fall 2024 Riphah International University Sahiwal 1 Prepared by : Abdul Rehman
Preamble Incremental Model Iterative Model Spiral Model RAD Model Riphah International University Sahiwal 2
3 Outline Specialized Software Process Models Component based development model Formal Models Aspect Oriented Software development models 3 Riphah International University Sahiwal
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 specialized or narrowly defined software engineering approach is chosen. Riphah International University Sahiwal 4
Specialized Process Models Component-Based Development The Formal Methods Aspect-Oriented Software Development Riphah International University Sahiwal 5
Component-Based Development Model Component-based development (CBD) is defined as a set of reuse-enabling technologies, tools and techniques that allow application development (AD) organizations to go through the entire AD process (i.e., analysis design, construction and assembly) or through any particular stage via the use of predefined component-enabling technologies (such as AD patterns, frameworks, design templates) tools and application building blocks. Riphah International University Sahiwal 6
Component-Based Development Model 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. However, the component-based development model constructs applications from prepackaged software components. Modeling and construction activities begin with the identification of candidate components. These components can be designed as either conventional software modules. Riphah International University Sahiwal 7
Component-Based Development Model 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. A software architecture is designed to accommodate the components. Components are integrated into the architecture. Comprehensive testing is conducted to ensure proper functionality. Riphah International University Sahiwal 8
Component-Based Development Model The specific routines of CBD are: Component development Component lookup as well as retrieval Component analysis Component assembly Riphah International University Sahiwal 9
Component-Based Development Model (Advantages) Save time and money when building large and complex systems: Developing complex software systems with the help of off-the-shelf components helps reduce software development time substantially. Function points or similar techniques can be used to verify the affordability of the existing method. Enhance the software quality: The component quality is the key factor behind the enhancement of software quality. Developers concentrate on application development. Component developers can permit additional time to ensure quality Detect defects within the systems: The CBD strategy supports fault detection by testing the components; however, finding the source of defects is challenging in CBD. Riphah International University Sahiwal 10
Component-Based Development Model (Disadvantages) Heterogeneity of Components: Components are heterogeneous in terms of programming language, platform, data structure, naming conventions etc. They are developed by third party at different platforms under different project plans. Any internal error in the component can lead to its failure leading to overall system failure and cannot be easily corrected due to the heterogeneous nature of components. Optimal Component Selection : A promising and optimal set of components should be selected from component pool after system analysis and requirement engineering. Component selection is a hard problem which requires a lot of effort. Riphah International University Sahiwal 11
Component-Based Development Model (Disadvantages) 3.Continuous Versioning : Co-existence of different versions of a component with slight modifications creates challenge for testers to test all possible versions. 4.Improper Working due to Application Level Changes : Changes on the application or system level may affect overall working of CBS as the lifecycle of components and the application in which they are used are separate. There is a risk that this change introduced will cause system failure. 5.Component Configuration and Certification : A component must have standard configuration and must have undergone well established certification policy. This develops faith in stakeholders of CBS. But there is a lack of procedures and standards for the same . Riphah International University Sahiwal 12
Component-Based Development Model (Disadvantages) 6. Expensive and Inadequate Component Testing : Component testing is an expansive process as it involves construction of test drivers and stubs. Building and configuring separate stub and drivers for each component is a Heavy task for testers. Riphah International University Sahiwal 13
Component-Based Development Model (Example) To start with, let us give an example of simple stereo systems which consists of woofer, sub-woofer, sound box etc. If someone wants to build the stereo systems by assembling the off the shelf components like sound box etc. ,then he might be experiencing some advantage than those who build the system from the basic circuit. In-fact, now a day, all the simple and complicated systems are built using the component approach where some components are already developed by some developer and they are stored in the library for their re-use. The main concept is that those off the shelf components need not be changed for their respective purposes. If we want modify some of the components to fit according to their applicability, we need to rebuild it and store them in the library. Riphah International University Sahiwal 14
Component-Based Development Model (Example) Example of some complex system, where each components itself can be viewed as a system, is Naval Combat system. The system consists of some radar for detection, Helicopter, submarine, Rocket Launcher, some fighter plane etc. Each component here is some big systems and association is also very complicated in such cases. Riphah International University Sahiwal 15
The Formal Methods Model Formal methods are techniques used to model complex systems as mathematical entities. By building a mathematically rigorous model of a complex system, designers can not only verify the system’s properties in a more thorough fashion but also use mathematical proof as a complement to system testing so as to ensure correct behavior. Riphah International University Sahiwal 16
The Formal Methods Model Formal methods adopt a three-step approach to modeling and evaluating systems. During formal specification, an engineer or designer thoroughly defines a system using a modeling language—typically by using a formal, mathematical syntax and semantics that eliminate ambiguity. This is similar to writing down system specifications, though not in plain English. From there, based on the specification, the engineers develop a set of theorems about the behavior of a system. Riphah International University Sahiwal 17
The Formal Methods Model These theorems are verified through mathematical proofs—to ensure that the system behavior is logically consistent and is, indeed, the desirable one. As this allows designers and engineers to discover flaws in usability even before the design gets implemented into code, it prevents costly errors from emerging in the later stages of development. Finally, once the model is specified and verified, implementation can begin via converting the specification into code Riphah International University Sahiwal 18
The Formal Methods Model Applications Formal methods are applied in different areas of hardware and software, including routers, Ethernet switches, routing protocols and security applications. There are several other projects of NASA in which formal methods are applied, such as Next Generation Air Transportation System, Unmanned Aircraft System integration in National Airspace System, and Airborne Coordinated Conflict Resolution and Detection (ACCoRD). Developers of aircraft avionics. Riphah International University Sahiwal 19
The Formal Methods Model Advantages They help disambiguate system specifications and articulate implicit assumptions. They also expose flaws in system requirements, and their thoroughness enables a better understanding of the problem. Because they use a formal language, many colleagues can verify the specifications independently—thereby solving errors early on in the development process. Riphah International University Sahiwal 20
The Formal Methods Model Disadvantages Time consuming and expensive. Difficult to use this model as a communication mechanism for non technical personnel. Extensive training is required since only few developers have the essential knowledge to implement this model. However, formal methods cannot fully replace standard quality assurance methods. This is why they are just a complementary technique in system design. Riphah International University Sahiwal 21
Aspect-Oriented Software Development Model However, formal methods cannot fully replace standard quality assurance methods. This is why they are just a complementary technique in system design. Aspect-oriented software development focuses on the identification, specification and representation of cross-cutting concerns and their modularization into separate functional units as well as their automated composition into a working system. Riphah International University Sahiwal 22
Aspect-Oriented Software Development Model The motivation for aspect-oriented programming approaches stem from the problems caused by code scattering and tangling. The purpose of Aspect-Oriented Software Development is to provide systematic means to modularize crosscutting concerns. The implementation of a concern is scattered if its code is spread out over multiple modules. The implementation of a concern is tangled if its code is intermixed with code that implements other concerns. Riphah International University Sahiwal 23
Aspect-Oriented Software Development Model Riphah International University Sahiwal 24
Aspect-Oriented Software Development Model Advantages: Modularizes cross-cutting concerns improving code maintainability and understandability. Disadvantage: Not the easiest of concepts to grasp - not well documented. Riphah International University Sahiwal 25