The document discusses software maintenance and reuse. It covers topics like the types of software maintenance including corrective, adaptive, perfective and inspection maintenance. It also discusses maintenance process models, maintenance cost estimation using annual change traffic, and software configuration management. Regarding reuse, it discusses what can be reused, reasons for lack of reuse, and basic issues to consider for any reuse program including component creation, indexing, searching, understanding, adaptation and repository maintenance.
This document discusses software reuse and the benefits and challenges of different approaches. It begins by defining software reuse and explaining its benefits like increased dependability and accelerated development. It describes different levels of reuse from whole applications to objects and functions. Challenges are also outlined such as increased maintenance costs. Commercial-off-the-shelf (COTS) product reuse is specifically examined, noting how products can be configured but also issues in requirements adaptation and vendor control.
Developing reusable software components for distributed embedded systemseSAT Publishing House
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
This document discusses software reuse and component-based development. It defines software reuse as creating software from existing software components rather than building from scratch. Component-based development allows large, abstract enterprise components to be reused to reduce development time. There are different types of software reuse and several benefits including increased reliability, reduced risks, and accelerated development. Component retrieval is discussed as an important part of software reuse, but it remains a difficult problem to find efficient solutions. Overall, the document presents an overview of software reuse and component-based development while noting that more work is still needed to improve component retrieval methods.
This document discusses various approaches to software reuse, including design patterns, application frameworks, component-based development, and generative programming. Design patterns describe abstract solutions to common problems in a reusable form. Application frameworks provide reusable abstract and concrete classes that can be adapted and extended to create application systems. Conceptual reuse through design patterns and generative programming allows reuse of ideas rather than just code.
This document discusses different software processes and activities. It covers incremental development, which delivers software in increments and allows for early customer feedback. Reuse-oriented engineering focuses on integrating existing components. Key process activities include specification, design/implementation, validation, and evolution. Specification involves requirements analysis. Design translates requirements into a structure, while implementation creates an executable program. Validation verifies the system meets requirements through testing. Evolution allows software to change with changing needs.
This document discusses software reuse and its benefits and challenges. It describes different levels of reuse from whole application systems and components to objects and functions. Reusing software can increase dependability, reduce costs and risks, allow specialists to develop reusable assets, and accelerate development. However, reuse also poses challenges such as increased maintenance costs, lack of tool support, and difficulties finding, understanding and adapting reusable components.
This document discusses various topics related to software engineering including:
- Software evolution and the need for maintenance to fix bugs and adapt to changes.
- The different categories of software maintenance including corrective, adaptive, and perfective maintenance.
- The high cost of software maintenance, which accounts for over 65% of the total software lifecycle costs.
- Software re-engineering to modify legacy code and make it more maintainable without changing functionality.
- Other topics covered include reverse engineering, configuration management, version control, risk analysis, and the COCOMO cost estimation model.
This document discusses software reuse and the benefits and challenges of different approaches. It begins by defining software reuse and explaining its benefits like increased dependability and accelerated development. It describes different levels of reuse from whole applications to objects and functions. Challenges are also outlined such as increased maintenance costs. Commercial-off-the-shelf (COTS) product reuse is specifically examined, noting how products can be configured but also issues in requirements adaptation and vendor control.
Developing reusable software components for distributed embedded systemseSAT Publishing House
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
This document discusses software reuse and component-based development. It defines software reuse as creating software from existing software components rather than building from scratch. Component-based development allows large, abstract enterprise components to be reused to reduce development time. There are different types of software reuse and several benefits including increased reliability, reduced risks, and accelerated development. Component retrieval is discussed as an important part of software reuse, but it remains a difficult problem to find efficient solutions. Overall, the document presents an overview of software reuse and component-based development while noting that more work is still needed to improve component retrieval methods.
This document discusses various approaches to software reuse, including design patterns, application frameworks, component-based development, and generative programming. Design patterns describe abstract solutions to common problems in a reusable form. Application frameworks provide reusable abstract and concrete classes that can be adapted and extended to create application systems. Conceptual reuse through design patterns and generative programming allows reuse of ideas rather than just code.
This document discusses different software processes and activities. It covers incremental development, which delivers software in increments and allows for early customer feedback. Reuse-oriented engineering focuses on integrating existing components. Key process activities include specification, design/implementation, validation, and evolution. Specification involves requirements analysis. Design translates requirements into a structure, while implementation creates an executable program. Validation verifies the system meets requirements through testing. Evolution allows software to change with changing needs.
This document discusses software reuse and its benefits and challenges. It describes different levels of reuse from whole application systems and components to objects and functions. Reusing software can increase dependability, reduce costs and risks, allow specialists to develop reusable assets, and accelerate development. However, reuse also poses challenges such as increased maintenance costs, lack of tool support, and difficulties finding, understanding and adapting reusable components.
This document discusses various topics related to software engineering including:
- Software evolution and the need for maintenance to fix bugs and adapt to changes.
- The different categories of software maintenance including corrective, adaptive, and perfective maintenance.
- The high cost of software maintenance, which accounts for over 65% of the total software lifecycle costs.
- Software re-engineering to modify legacy code and make it more maintainable without changing functionality.
- Other topics covered include reverse engineering, configuration management, version control, risk analysis, and the COCOMO cost estimation model.
The document discusses software reuse and chapter 16 of an unknown textbook. It covers several topics related to software reuse including application frameworks, software product lines, and COTS product reuse. Application frameworks provide a collection of abstract and concrete classes that can be extended and customized to create specific applications. Frameworks aim to increase reuse by providing a standardized architecture and interfaces that applications can build upon rather than developing everything from scratch. They must be extended by adding new classes and methods to create a complete application or subsystem.
Introduction to database m Chapter 9.pptxMohammedNouh7
This document discusses software reuse, including approaches like application frameworks, software product lines, and COTS product reuse. It describes benefits of reuse like increased dependability and accelerated development, as well as challenges like increased maintenance costs and difficulty finding reusable components. Software product lines are defined as applications with generic functionality that can be configured for specific contexts, while COTS products are reusable commercial software systems adapted through configuration.
IRJET- Code Reuse & Reusability of the SoftwareIRJET Journal
This document discusses code reuse and reusability in software development. It defines code reuse as using existing software to create new software. Reuse can reduce costs and improve software quality by reusing code, structures, architectures and other components from one application to another. The document reviews literature on software metrics and reuse programs. It describes an ideal software reuse process with four components: create reusable assets, use assets to develop new products, support the asset library, and manage the overall reuse process and organization.
The document discusses various types of audit software and tools used by auditors. It describes generalized audit software (GAS) that can automate audit tasks and specialized audit software designed for specific audit objectives. It also covers integrated test facilities, snapshot techniques, data security procedures like backups, replication, and server clusters. The system development life cycle and auditor's role in reviewing each phase is explained.
The document discusses analyzing software architectures and making design decisions. It describes several benefits of architecture evaluation such as cost savings, early problem detection, and improved quality. It also outlines techniques for architecture evaluation including ATAM and CBAM. The document discusses moving from single systems to product lines, using off-the-shelf components which requires managing architectural mismatches, and searching for compatible components. Finally, it examines how software architecture may evolve in the future as programming languages and tools continue to develop.
BSG SE4201 Software Configuration Management and Maintenance Lesson 1 Novembe...ZaharaddeenAbubuakar
This document provides an introduction to a course on software configuration management and maintenance. It outlines the topics that will be covered in the course, including why configuration management is important, what the key activities are, and some terminology. The course will examine how to manage changing software systems and evolving versions using configuration management tools and practices. It will also explore concepts like version control, multi-version systems, baselines, and maintaining different versions for development, testing, and release.
The document discusses product line architecture and the separation of concerns. It introduces the concept of a separation continuum, which separates architectural elements based on their use and applicability both vertically and horizontally. Vertically, elements are separated based on levels of abstraction from business models to implementation. Horizontally, elements are separated based on whether they are customer-facing or infrastructure-facing. The document argues that applying the separation continuum to a product line architecture can help achieve high levels of reuse and productivity when developing product lines by clearly separating concerns.
This document provides an overview of software reuse techniques discussed in Chapter 16, including:
1) Application frameworks which provide reusable skeleton designs through abstract and concrete classes;
2) Software product lines which allow generic applications to be adapted through configuration, component selection, and specialization for different requirements;
3) COTS (commercial off-the-shelf) product reuse where pre-existing software systems can be customized through deployment configuration without changing source code.
This document discusses software maintenance. It defines maintenance as modifying software after delivery to fix bugs, improve performance, or adapt to changes. Approximately 70% of software costs are for maintenance. Maintainability refers to how easy software is to correct, adapt, or enhance. Common maintenance types are corrective, adaptive, and perfective. Proper documentation and design are important to reduce maintenance costs and issues like degraded structure over time.
This document discusses different approaches to software reuse, including design patterns, application frameworks, component reuse, and generator-based reuse. It covers the benefits of reuse, such as increased dependability and accelerated development, as well as potential problems like increased maintenance costs and the "not invented here" syndrome. Design patterns and generator-based reuse are highlighted as approaches that allow for concept reuse through reusable abstractions rather than just code or component reuse. The Observer design pattern is presented as a specific example.
A good process of software reuse leads to improved reliability, productivity, quality, and reductions in time and cost. Software can be reused at different scales, from complete systems to individual objects and functions. The benefits of reuse include accelerated development, effective use of specialists, increased dependability, lower development costs, reduced project risk, and standards compliance. However, problems with reuse include the costs of creating and maintaining component libraries, difficulties finding and adapting components, potential increased maintenance costs, lack of tool support, and reluctance to reuse outside components. Successful reuse depends on factors like development schedules, software lifetimes, team skills, requirements, application domains, and execution platforms.
The document discusses software reuse and component-based software engineering. It describes how reuse can happen at different levels from full application systems down to individual functions. Reusing code, specifications, and designs can improve reliability, reduce risks and costs, and speed up development time. However, reuse requires an organized component library, confidence in component quality, and documentation to support adaptation. The document also outlines processes for incorporating reuse into development and enhancing the reusability of components.
The document discusses the software crisis that occurred from 1960-1980 when many software projects unsuccessfully attempted to build large systems. This was due to increasing demands, low expectations, and a lack of problem understanding. Software engineering principles were developed to address this crisis by applying systematic and disciplined approaches. The key characteristics of software like maintainability and security are discussed. The software development process includes specification, design/implementation, validation, and evolution. Different software development models like waterfall, prototyping, and spiral are also summarized.
The document discusses various approaches to software reuse, including design patterns, program generators, application frameworks, and application system reuse through component-based development, commercial off-the-shelf (COTS) integration, and software product lines. Design patterns describe reusable solutions to common problems, while program generators embed reusable concepts. Application frameworks provide reusable sub-system designs. COTS integration and software product lines allow entire applications to be reused through configuration or customization. The benefits of reuse include increased dependability, reduced costs and time, while challenges include maintenance overhead and cultural resistance.
The document is a term paper on efficient performance models in component-based software engineering. It discusses component-based software engineering as a development model that allows developers to rapidly assemble systems from pre-existing commercial off-the-shelf components. It describes what components are, component models, advantages and disadvantages of the approach, and concludes that component-based engineering provides an easy way to develop software but relies on well-defined component standards.
This document provides information about obtaining fully solved assignments from an assignment help service. It lists the email and phone contact information and requests students to send their semester and specialization to receive help with assignments. It also lists some of the programs and subjects that assignments are available for, including MBADS, MBAFLEX, MBAN2, and PGDISMN.
This document provides an overview of a bug tracking system. It discusses that bug tracking systems can automatically assign bugs to experts based on their experience, maintain a history of resolved bugs to avoid duplicate work, and reduce the time and costs of troubleshooting. The document also summarizes the key modules of a bug tracking system including administration, management, development, testing, and reporting. It outlines how these modules interact and describes strategies to improve bug tracking systems by making them more tool-centric, information-centric, process-centric, and user-centric.
How to Build Software from Scratch in 5 Simple Steps.pdfBaek Yongsun
Learn how to build software from scratch in 5 simple steps. From defining requirements to deployment and maintenance, follow this guide for successful software development.
This document provides a summary of the system analysis for a project on a Nokia Mobile Shop Management System. It includes event tables describing interactions between users and the system, use case diagrams showing functions users can perform, and entity relationship diagrams, activity diagrams, class diagrams and object diagrams modeling the data and workflow. The analysis identifies customers, employees, orders, products, bills, suppliers, and stock as key entities and defines their attributes and relationships.
The document discusses software reuse and chapter 16 of an unknown textbook. It covers several topics related to software reuse including application frameworks, software product lines, and COTS product reuse. Application frameworks provide a collection of abstract and concrete classes that can be extended and customized to create specific applications. Frameworks aim to increase reuse by providing a standardized architecture and interfaces that applications can build upon rather than developing everything from scratch. They must be extended by adding new classes and methods to create a complete application or subsystem.
Introduction to database m Chapter 9.pptxMohammedNouh7
This document discusses software reuse, including approaches like application frameworks, software product lines, and COTS product reuse. It describes benefits of reuse like increased dependability and accelerated development, as well as challenges like increased maintenance costs and difficulty finding reusable components. Software product lines are defined as applications with generic functionality that can be configured for specific contexts, while COTS products are reusable commercial software systems adapted through configuration.
IRJET- Code Reuse & Reusability of the SoftwareIRJET Journal
This document discusses code reuse and reusability in software development. It defines code reuse as using existing software to create new software. Reuse can reduce costs and improve software quality by reusing code, structures, architectures and other components from one application to another. The document reviews literature on software metrics and reuse programs. It describes an ideal software reuse process with four components: create reusable assets, use assets to develop new products, support the asset library, and manage the overall reuse process and organization.
The document discusses various types of audit software and tools used by auditors. It describes generalized audit software (GAS) that can automate audit tasks and specialized audit software designed for specific audit objectives. It also covers integrated test facilities, snapshot techniques, data security procedures like backups, replication, and server clusters. The system development life cycle and auditor's role in reviewing each phase is explained.
The document discusses analyzing software architectures and making design decisions. It describes several benefits of architecture evaluation such as cost savings, early problem detection, and improved quality. It also outlines techniques for architecture evaluation including ATAM and CBAM. The document discusses moving from single systems to product lines, using off-the-shelf components which requires managing architectural mismatches, and searching for compatible components. Finally, it examines how software architecture may evolve in the future as programming languages and tools continue to develop.
BSG SE4201 Software Configuration Management and Maintenance Lesson 1 Novembe...ZaharaddeenAbubuakar
This document provides an introduction to a course on software configuration management and maintenance. It outlines the topics that will be covered in the course, including why configuration management is important, what the key activities are, and some terminology. The course will examine how to manage changing software systems and evolving versions using configuration management tools and practices. It will also explore concepts like version control, multi-version systems, baselines, and maintaining different versions for development, testing, and release.
The document discusses product line architecture and the separation of concerns. It introduces the concept of a separation continuum, which separates architectural elements based on their use and applicability both vertically and horizontally. Vertically, elements are separated based on levels of abstraction from business models to implementation. Horizontally, elements are separated based on whether they are customer-facing or infrastructure-facing. The document argues that applying the separation continuum to a product line architecture can help achieve high levels of reuse and productivity when developing product lines by clearly separating concerns.
This document provides an overview of software reuse techniques discussed in Chapter 16, including:
1) Application frameworks which provide reusable skeleton designs through abstract and concrete classes;
2) Software product lines which allow generic applications to be adapted through configuration, component selection, and specialization for different requirements;
3) COTS (commercial off-the-shelf) product reuse where pre-existing software systems can be customized through deployment configuration without changing source code.
This document discusses software maintenance. It defines maintenance as modifying software after delivery to fix bugs, improve performance, or adapt to changes. Approximately 70% of software costs are for maintenance. Maintainability refers to how easy software is to correct, adapt, or enhance. Common maintenance types are corrective, adaptive, and perfective. Proper documentation and design are important to reduce maintenance costs and issues like degraded structure over time.
This document discusses different approaches to software reuse, including design patterns, application frameworks, component reuse, and generator-based reuse. It covers the benefits of reuse, such as increased dependability and accelerated development, as well as potential problems like increased maintenance costs and the "not invented here" syndrome. Design patterns and generator-based reuse are highlighted as approaches that allow for concept reuse through reusable abstractions rather than just code or component reuse. The Observer design pattern is presented as a specific example.
A good process of software reuse leads to improved reliability, productivity, quality, and reductions in time and cost. Software can be reused at different scales, from complete systems to individual objects and functions. The benefits of reuse include accelerated development, effective use of specialists, increased dependability, lower development costs, reduced project risk, and standards compliance. However, problems with reuse include the costs of creating and maintaining component libraries, difficulties finding and adapting components, potential increased maintenance costs, lack of tool support, and reluctance to reuse outside components. Successful reuse depends on factors like development schedules, software lifetimes, team skills, requirements, application domains, and execution platforms.
The document discusses software reuse and component-based software engineering. It describes how reuse can happen at different levels from full application systems down to individual functions. Reusing code, specifications, and designs can improve reliability, reduce risks and costs, and speed up development time. However, reuse requires an organized component library, confidence in component quality, and documentation to support adaptation. The document also outlines processes for incorporating reuse into development and enhancing the reusability of components.
The document discusses the software crisis that occurred from 1960-1980 when many software projects unsuccessfully attempted to build large systems. This was due to increasing demands, low expectations, and a lack of problem understanding. Software engineering principles were developed to address this crisis by applying systematic and disciplined approaches. The key characteristics of software like maintainability and security are discussed. The software development process includes specification, design/implementation, validation, and evolution. Different software development models like waterfall, prototyping, and spiral are also summarized.
The document discusses various approaches to software reuse, including design patterns, program generators, application frameworks, and application system reuse through component-based development, commercial off-the-shelf (COTS) integration, and software product lines. Design patterns describe reusable solutions to common problems, while program generators embed reusable concepts. Application frameworks provide reusable sub-system designs. COTS integration and software product lines allow entire applications to be reused through configuration or customization. The benefits of reuse include increased dependability, reduced costs and time, while challenges include maintenance overhead and cultural resistance.
The document is a term paper on efficient performance models in component-based software engineering. It discusses component-based software engineering as a development model that allows developers to rapidly assemble systems from pre-existing commercial off-the-shelf components. It describes what components are, component models, advantages and disadvantages of the approach, and concludes that component-based engineering provides an easy way to develop software but relies on well-defined component standards.
This document provides information about obtaining fully solved assignments from an assignment help service. It lists the email and phone contact information and requests students to send their semester and specialization to receive help with assignments. It also lists some of the programs and subjects that assignments are available for, including MBADS, MBAFLEX, MBAN2, and PGDISMN.
This document provides an overview of a bug tracking system. It discusses that bug tracking systems can automatically assign bugs to experts based on their experience, maintain a history of resolved bugs to avoid duplicate work, and reduce the time and costs of troubleshooting. The document also summarizes the key modules of a bug tracking system including administration, management, development, testing, and reporting. It outlines how these modules interact and describes strategies to improve bug tracking systems by making them more tool-centric, information-centric, process-centric, and user-centric.
How to Build Software from Scratch in 5 Simple Steps.pdfBaek Yongsun
Learn how to build software from scratch in 5 simple steps. From defining requirements to deployment and maintenance, follow this guide for successful software development.
This document provides a summary of the system analysis for a project on a Nokia Mobile Shop Management System. It includes event tables describing interactions between users and the system, use case diagrams showing functions users can perform, and entity relationship diagrams, activity diagrams, class diagrams and object diagrams modeling the data and workflow. The analysis identifies customers, employees, orders, products, bills, suppliers, and stock as key entities and defines their attributes and relationships.
Similar to Unit V _Software Engineering_21CSCST4050.pptx (20)
Discover the latest insights on Data Driven Maintenance with our comprehensive webinar presentation. Learn about traditional maintenance challenges, the right approach to utilizing data, and the benefits of adopting a Data Driven Maintenance strategy. Explore real-world examples, industry best practices, and innovative solutions like FMECA and the D3M model. This presentation, led by expert Jules Oudmans, is essential for asset owners looking to optimize their maintenance processes and leverage digital technologies for improved efficiency and performance. Download now to stay ahead in the evolving maintenance landscape.
Design and optimization of ion propulsion dronebjmsejournal
Electric propulsion technology is widely used in many kinds of vehicles in recent years, and aircrafts are no exception. Technically, UAVs are electrically propelled but tend to produce a significant amount of noise and vibrations. Ion propulsion technology for drones is a potential solution to this problem. Ion propulsion technology is proven to be feasible in the earth’s atmosphere. The study presented in this article shows the design of EHD thrusters and power supply for ion propulsion drones along with performance optimization of high-voltage power supply for endurance in earth’s atmosphere.
Build the Next Generation of Apps with the Einstein 1 Platform.
Rejoignez Philippe Ozil pour une session de workshops qui vous guidera à travers les détails de la plateforme Einstein 1, l'importance des données pour la création d'applications d'intelligence artificielle et les différents outils et technologies que Salesforce propose pour vous apporter tous les bénéfices de l'IA.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
Software Engineering and Project Management - Software Testing + Agile Method...Prakhyath Rai
Software Testing: A Strategic Approach to Software Testing, Strategic Issues, Test Strategies for Conventional Software, Test Strategies for Object -Oriented Software, Validation Testing, System Testing, The Art of Debugging.
Agile Methodology: Before Agile – Waterfall, Agile Development.
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...PriyankaKilaniya
Energy efficiency has been important since the latter part of the last century. The main object of this survey is to determine the energy efficiency knowledge among consumers. Two separate districts in Bangladesh are selected to conduct the survey on households and showrooms about the energy and seller also. The survey uses the data to find some regression equations from which it is easy to predict energy efficiency knowledge. The data is analyzed and calculated based on five important criteria. The initial target was to find some factors that help predict a person's energy efficiency knowledge. From the survey, it is found that the energy efficiency awareness among the people of our country is very low. Relationships between household energy use behaviors are estimated using a unique dataset of about 40 households and 20 showrooms in Bangladesh's Chapainawabganj and Bagerhat districts. Knowledge of energy consumption and energy efficiency technology options is found to be associated with household use of energy conservation practices. Household characteristics also influence household energy use behavior. Younger household cohorts are more likely to adopt energy-efficient technologies and energy conservation practices and place primary importance on energy saving for environmental reasons. Education also influences attitudes toward energy conservation in Bangladesh. Low-education households indicate they primarily save electricity for the environment while high-education households indicate they are motivated by environmental concerns.
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...IJECEIAES
Climate change's impact on the planet forced the United Nations and governments to promote green energies and electric transportation. The deployments of photovoltaic (PV) and electric vehicle (EV) systems gained stronger momentum due to their numerous advantages over fossil fuel types. The advantages go beyond sustainability to reach financial support and stability. The work in this paper introduces the hybrid system between PV and EV to support industrial and commercial plants. This paper covers the theoretical framework of the proposed hybrid system including the required equation to complete the cost analysis when PV and EV are present. In addition, the proposed design diagram which sets the priorities and requirements of the system is presented. The proposed approach allows setup to advance their power stability, especially during power outages. The presented information supports researchers and plant owners to complete the necessary analysis while promoting the deployment of clean energy. The result of a case study that represents a dairy milk farmer supports the theoretical works and highlights its advanced benefits to existing plants. The short return on investment of the proposed approach supports the paper's novelty approach for the sustainable electrical system. In addition, the proposed system allows for an isolated power setup without the need for a transmission line which enhances the safety of the electrical network
2. Tables of Content
Software Maintenance, Maintenance Process
Models, Maintenance Cost, Software
Configuration Management
Software Reuse: What can be Reused? Why
almost no Reuse, Basic Issues in Reuse
Approach, Reuse at Organization level
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
2
3. SOFTWARE
MAINTENANCE
Software maintenance denotes any changes
made to a software product after it has been
delivered to the customer.
On the other hand, software products do not
need maintenance on this count, but need
maintenance to correct errors, enhance
features, port to new platforms, etc.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
3
4. Types of Software
Maintenance
Corrective: It is necessary either to rectify the bugs
observed while the system is in use.
Adaptive: Adding new features to the existing code.
Perfective: Typically made to improve the
maintainability of the code.
Inspection: They are usually made as a result of
code inspection to reduce the likelihood of a failure.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
4
5. Maintenance Process
Models
Two types of models for s/w maintenance is
proposed
1st model – Small networks were the code is
changed directly and changes are reflected in the
relevant documents later.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
5
7. Maintenance Process
Models
2nd model – The amount of rework required is
significant.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
7
9. Maintenance Cost
Boehm [1981] proposed a formula for estimating
maintenance costs as part of his COCOMO cost
estimation model.
Boehm’s maintenance cost estimation is made
in terms of a quantity called the annual change
traffic (ACT).
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
9
10. Maintenance Cost
Annual Change Traffic (ACT)
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
10
The annual change traffic (ACT) is multiplied
with the total development cost to arrive at
the maintenance cost:
Maintenance cost = ACT × Development cost
11. Maintenance Cost
Most maintenance cost estimation models, give
only approximate results because they do not
take into account several factors such as
experience level of the engineers, and
familiarity of the engineers with the product,
hardware requirements,
software complexity, etc.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
11
12. Software Configuration
Management
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
12
The configuration of the software is the state
of all project deliverables at any point of time;
and software configuration management
deals with effectively tracking and controlling
the configuration of a software during its life
cycle.
13. Necessity of Software
Configuration Management
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
13
Problems associated with concurrent access
Providing a stable development environment
System accounting and maintaining status
information
Handling variants
15. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
15
Configuration identification
Project managers normally classify the
objects associated with a software
development into three main categories—
Controlled,
Pre-controlled, and
Uncontrolled.
16. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
16
Controlled objects are those that are
already under configuration control.
Pre-controlled objects are not yet under
configuration control, but will eventually be
under configuration control.
Uncontrolled objects are not subject to
configuration control.
17. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
17
Controllable objects include both controlled and pre-
controlled objects. Typical controllable objects include:
Requirements specification document
Design documents
Tools used to build the system, such as compilers,
linkers, lexical analyzers, parsers, etc.
Source code for each module
Test cases
Problem reports
18. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
18
Configuration control allows only authorized changes to
the controlled objects to occur and prevents unauthorized
changes.
In order to change a controlled object such as a module, a
developer can get a private copy of the module by a reserve
operation (see in the Figure).
Configuration management tools allow only one person to
reserve a module at any time.
Once an object is reserved, it does not allow any one else to
reserve this module until the reserved module is restored.
20. Tables of Content
Software Maintenance, Maintenance Process
Models, Maintenance Cost, Software
Configuration Management
Software Reuse: What can be Reused? Why
almost no Reuse, Basic Issues in Reuse
Approach, Reuse at Organization level
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
20
21. Software Reuse
Software products are expensive.
A possible way to reduce development cost
is to reuse parts from previously developed
software.
A reuse approach that is of late gaining
prominence is component-based
development.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
21
22. What can be reused?
The prominent items that can be effectively
reused are:
Requirements specification
Design
Code
Test cases
Knowledge
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
22
23. Why almost no reuse
so far?
Engineers feeling that the current system that
they are developing is similar to the last few
systems built.
No attention is paid on how not to duplicate
what can be reused from previously
developed systems.
Everything is being built from scratch.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
23
24. Why almost no reuse
so far?
Creation of components that are reusable in
different applications is a difficult problem.
It is very difficult to anticipate the exact
components that can be reused across
different applications.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
24
25. Why almost no reuse
so far?
The following observation is significant:
Mathematical libraries are being reused
No one in their mind would think of writing
a routine to compute sine or cosine.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
25
26. Basic issues in any
reuse program
The following are some of the basic
issues that must be clearly understood
for starting any reuse program:
Component creation.
Component indexing and storing.
Component search.
Component understanding.
Component adaptation.
Repository maintenance.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
26
27. Basic issues in any
reuse program
Component creation - the reusable components
have to be first identified. Selection of the right kind of
components having potential for reuse is important.
Component indexing and storing - Indexing
requires classification of the reusable components so
that they can be easily searched when we look for a
component for reuse. The components need to be
stored in a relational database management system
(RDBMS) or an object-oriented database system
(ODBMS) for efficient access when the number of
components becomes large.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
27
28. Basic issues in any
reuse program
Component search - The programmers
need to search for right components matching
their requirements in a database of
components.
Component understanding - The
programmers need a precise and sufficiently
complete understanding of what the
component does to be able to decide whether
they can reuse the component.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
28
29. Basic issues in any
reuse program
Component adaptation - Often, the components
may need adaptation before they can be reused,
since a selected component may not exactly fit the
problem at hand.
Repository maintenance - A component
repository once is created requires continuous
maintenance. New components, as and when
created have to be entered into the repository. The
faulty components have to be tracked.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
29
30. Basic issues in any
Reuse Approach
A promising approach that is being adopted by
many organizations is to introduce a building block
approach into the software development process.
Domain Analysis
Component Classification
Searching
Repository Maintenance
Reuse without Modifications
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
30
31. Basic issues in any
Reuse Approach
Domain Analysis:
The aim of domain analysis is to identify the reusable
components for a problem domain.
1. Reuse domain
2. Evolution of a reuse domain
1. Reuse domain – Application Areas
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
31
32. Basic issues in any
Reuse Approach
2. Evolution of a reuse domain - The ultimate results
of domain analysis is development of problem oriented
languages. The problem-oriented languages are also
known as application generators.
Stage 1 : There is no clear and consistent set of notations.
Stage 2 : Here, only experience from similar projects are
used in a development effort.
Stage 3: At this stage, the domain is ripe for reuse.
Stage 4: The domain has been fully explored.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
32
33. Basic issues in any
Reuse Approach
Component Classification
Properly classified in order to develop an effective
indexing and storage scheme
Hardware reuse has been very successful
At the lowest level, the components are described
in several forms — natural language, description,
logic schema, timing information, etc.
The higher the level at which a component is
described, the more is the ambiguity.
This has motivated the Prieto-Diaz’s
classification scheme.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
33
34. Basic issues in any
Reuse Approach
Prieto-Diaz’s classification scheme
Each component is best described using a
number of different characteristics or facets.
For example, objects can be classified using
the following:
Actions they embody.
Objects they manipulate.
Data structures used.
Systems they are part of, etc.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
34
35. Basic issues in any
Reuse Approach
Searching
A popular search technique that has proved to be
very effective is one that provides a web interface
to the repository.
Using such a web interface, one would search an
item using an approximate automated search
using key words, and then from these results
would do a browsing using the links provided to
look up related items.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
35
36. Basic issues in any
Reuse Approach
Searching
Repository Maintenance
Reuse without Modifications
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
36
37. Basic issues in any
Reuse Approach
Searching
Repository Maintenance
Reuse without Modifications
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
37