Software is nowadays a critical component of our lives and everyday-work working activities. However, as the technological infrastructure of the modern world evolves a great challenge arises for developing high quality software systems with increasing size and complexity. Software engineers and researchers are striving to meet this challenge by developing and implementing software engineering methodologies able to deliver software products of high quality, within budget and time constraints. The field of machine learning in software engineering has recently emerged to provide means for addressing, studying, analyzing, and understanding critical software development issues and at the same time to offer mature machine learning techniques such as artificial neural network, Bayesian networks, decision trees, fuzzy logic, genetic algorithms, and rule induction. Machine learning algorithms have proven to be of great practical value to software engineering. Not surprisingly, the field of software engineering turns out to be a fertile ground where many software development tasks could be formulated as learning problems and approached in terms of learning algorithms. In this paper, we first take a look at the characteristics and applicability of some frequently utilized machine learning algorithms. We then present the application of machine learning in the different phases of software engineering that include project planning, requirements analysis, design, implementation, testing and maintenance.
This is a review presentation of a research paper on machine learning. The importance of ML applications for software engineering have been discussed in this paper.
Design and Implementation in Software EngineeringKourosh Sajjadi
These slides were presented to the software engineering class held in IAUN. The main context is provided from the "Software Engineering" book authored by Sommerville.
Most of the icons used in the slides are provided in the flaticon.com website.
Thanks to our professor Habib Seifzadeh.
A cooperation with Mohammad Mostajeran.
This is a detail lecture about software re-engineering. To make software more maintainable. This lecture also give detail about software reverse engineering. When to re-engineer and how to re-engineer software.
This is a review presentation of a research paper on machine learning. The importance of ML applications for software engineering have been discussed in this paper.
Design and Implementation in Software EngineeringKourosh Sajjadi
These slides were presented to the software engineering class held in IAUN. The main context is provided from the "Software Engineering" book authored by Sommerville.
Most of the icons used in the slides are provided in the flaticon.com website.
Thanks to our professor Habib Seifzadeh.
A cooperation with Mohammad Mostajeran.
This is a detail lecture about software re-engineering. To make software more maintainable. This lecture also give detail about software reverse engineering. When to re-engineer and how to re-engineer software.
what is Software Generic Design Process.
Software Generic Design Process
what is software generic model
what is software process model
what is sdlc model
how to use design process model in software
DSDM is currently known as an agile development type. DSDM is a methodology that prioritizes schedule and quality over functionality. DSDM methodology has evolved and matured to provide a comprehensive foundation for planning, managing, executing and scaling agile process and iterative software development projects.
> It’s Straight forward framework.
> Simple & Extensible.
> But not suitable for all projects.
This presentation describes:
- What is software size?
- How to Measure Software size?
- Techniques and parameters in Software Size estimation
- Where and how to apply the techniques?
what is Software Generic Design Process.
Software Generic Design Process
what is software generic model
what is software process model
what is sdlc model
how to use design process model in software
DSDM is currently known as an agile development type. DSDM is a methodology that prioritizes schedule and quality over functionality. DSDM methodology has evolved and matured to provide a comprehensive foundation for planning, managing, executing and scaling agile process and iterative software development projects.
> It’s Straight forward framework.
> Simple & Extensible.
> But not suitable for all projects.
This presentation describes:
- What is software size?
- How to Measure Software size?
- Techniques and parameters in Software Size estimation
- Where and how to apply the techniques?
What Every Software Engineer Should Know About Machine Learning - Peter NorvigWithTheBest
I discuss how machine learning has great potential for innovation and how machine learning can be applied to various aspects of technology.
Peter Norvig, Director of Research at Google Inc.
Predictive Performance Testing: Integrating Statistical Tests into Agile Deve...Tom Kleingarn
This presentation was delivered by Tom Kleingarn at HP Software Universe 2010 in Washington DC. It describes basic statistical tests that can be applied to any performance engineering practice to improve accuracy and confidence in your test results.
Software quality improvement expert Jan Princen and XBOSoft CEO Philip Lew discuss the use of Predictive Analytics to prevent software defects in this XBOSoft webinar on Defect Prevention.
Automated testing of software applications using machine learning editedMilind Kelkar
Machine Learning is the next internet. It is the backbone of search engines, driverless car, paperless banking, and facial recognition in forensics. Running automated software tests with lesser human intervention without the risk of schedule delays is now a reality. This presentation will explore several practical machine learning concepts that are being adopted to test software applications.
software engineering , its characteristic ,changing nature of software,evolving nature of software,legacy software,generic view of software,process flow ,umbrella activity,CMMI,PROCESS ASSESSMENT ,team and personal software process
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
CFD analysis is incredibly effective at solving mysteries and improving the performance of complex systems!
Here's a great example: At a large natural gas-fired power plant, where they use waste heat to generate steam and energy, they were puzzled that their boiler wasn't producing as much steam as expected.
R&R and Tetra Engineering Group Inc. were asked to solve the issue with reduced steam production.
An inspection had shown that a significant amount of hot flue gas was bypassing the boiler tubes, where the heat was supposed to be transferred.
R&R Consult conducted a CFD analysis, which revealed that 6.3% of the flue gas was bypassing the boiler tubes without transferring heat. The analysis also showed that the flue gas was instead being directed along the sides of the boiler and between the modules that were supposed to capture the heat. This was the cause of the reduced performance.
Based on our results, Tetra Engineering installed covering plates to reduce the bypass flow. This improved the boiler's performance and increased electricity production.
It is always satisfying when we can help solve complex challenges like this. Do your systems also need a check-up or optimization? Give us a call!
Work done in cooperation with James Malloy and David Moelling from Tetra Engineering.
More examples of our work https://www.r-r-consult.dk/en/cases-en/
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
This paper addresses the vulnerability of deep learning models, particularly convolutional neural networks
(CNN)s, to adversarial attacks and presents a proactive training technique designed to counter them. We
introduce a novel volumization algorithm, which transforms 2D images into 3D volumetric representations.
When combined with 3D convolution and deep curriculum learning optimization (CLO), itsignificantly improves
the immunity of models against localized universal attacks by up to 40%. We evaluate our proposed approach
using contemporary CNN architectures and the modified Canadian Institute for Advanced Research (CIFAR-10
and CIFAR-100) and ImageNet Large Scale Visual Recognition Challenge (ILSVRC12) datasets, showcasing
accuracy improvements over previous techniques. The results indicate that the combination of the volumetric
input and curriculum learning holds significant promise for mitigating adversarial attacks without necessitating
adversary training.
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Final project report on grocery store management system..pdf
Machine Learning in Software Engineering
1. NEW TRENDS IN LEARNING FOR
SOFTWARE ENGINEERING
Alaa Hamouda
Department of Computer Engineering,
Engineering Faculty,
Al-Azhar University, Egypt
1
2. Agenda
• Introduction
• Software Engineering Phases
• Machine Learning Overview
• Applications of ML in SWE with each process:
– Project Planning
– Requirements
– Design
– Implementation
– Testing
– Maintenance
• Conclusion
2
3. Problem Definition
• There is a need to meet the challenge of
developing and maintaining large and complex
software systems.
• Machine learning methods have been playing
an increasingly important role in many
software development and maintenance
tasks.
3
5. Overview of ML
• Machine learning methods fall into the following
broad categories: supervised learning and
unsupervised learning. Supervised learning deals
with learning a target function from labeled
examples. Unsupervised learning attempts to
learn patterns and associations from a set of
objects that do not have attached class labels.
• Supervised learning can be divided into eager and
lazy classifiers
5
9. 9
A decision tree from the loan data
Decision nodes and leaf nodes (classes)
10. Agenda
• Introduction
• Software Engineering Phases
• Machine Learning Overview
• Applications of ML in SWE with each process:
– Project Planning
– Requirements
– Design
– Implementation
– Testing
– Maintenance
• Conclusion
10
11. Project Planning
• The statistics report failure rate of 70% for the
software
• The cost overrun has been indicated 189%
• The researches show that inaccurate
estimation is the root factor of fail in the most
software project fails.
11
12. Size Estimation
• Size -- Effort - Cost
• twenty-eight out of the collected sixty
publications (almost 47%) deal with the issue
of how to build models to predict or estimate
certain property of software development
process or artifacts.
12
13. Function Point
13
Internal Logical File: File accessed and maintained by the application under
development
External Interface File: File accessed by the Processing Logic, but maintained
by another application
External Input: An elementary process that processes data that comes from
outside the application boundary.
–Maintains ILF
External Output: An elementary process that sends data outside the
application boundary.
-EO represents information to user through processing logic in addition to
retrieval of data
External in Query: An elementary process that sends data outside the
application boundary
-EQ presents information to a user through retrieval of data from ILF/EIF.
-No data manipulation or processing logic.
14. Size estimation (Cont’)
Input:
• Function points
• Project domains
• Number of components types:
– Number of menu components
– Number of inputs components
– Number of output components
ML Algorithm:
• Neural Network
Output:
• LOC to be fed to the cost estimation stage
14
16. Effort Estimation
Input:
• Line of Code (generated from the size estimation)
• Scale factors
• Cost Drivers
Algorithm:
• Fuzzy Inference Engine
Output:
• Estimated efforts (e.g. man-hours)
16
17. Inputs (scale factors)
Factor Explanation
Precedentedness
(PREC)
Reflects the previous experience of the
organization
Development
Flexibility (FLEX)
Reflects the degree of flexibility in the
development process.
Risk Resolution (RESL) Reflects the extent of risk analysis carried out.
Team Cohesion (TEAM) Reflects how well the development team knows
each other and work together.
Process maturity (PMAT) Reflects the process maturity of the organization.
17
Factor Explanation
LOC Line of Code
18. Inputs (Cost Drivers)
Attribute Type Description
RELY Product Required system reliability
CPLX Product Complexity of system modules
DOCU Product Extent of documentation required
DATA Product Size of database used
RUSE Product Required percentage of reusable components
TIME Computer Execution time constraint
PVOL Computer Volatility of development platform
STOR Computer Memory constraints
ACAP Personnel Capability of project analysts
PCON Personnel Personnel continuity
PCAP Personnel Programmer capability
PEXP Personnel Programmer experience in project domain
AEXP Personnel Analyst experience in project domain
LTEX Personnel Language and tool experience
TOOL Project Use of software tools
SCED Project Development schedule compression
SITE Project Extent of multisite working and quality of inter-
site communications 18
24. Project Complexity
• Level 1: the project team is familiar with this type of
project and the team has developed similar projects in
the past. The number and type of interfaces are simple.
The project will be installed in normal conditions
where high security or safety factors are not required.
Moreover, Level 1 projects are those of which around
20% of their design or implementation parts are reused
(came from old similar projects).
• Level 2: This is similar to level1 category with a
difference that only about 10% of these projects are
reused.
24
25. Project Complexity (Cont’d)
• Level 3: the technology, interface, installation conditions
are normal. Furthermore, no parts of the projects had been
previously designed or implemented.
• Level 4: the project is required to be installed on a
complicated topology/architecture such as distributed
systems. Moreover, in this level, the number of variables
and interface is large.
• Level 5: This is similar to Level4 but with additional
constraints such as a special type of security or high safety
factors.
25
33. Requirements
• Reverse engineering where we have legacy systems
that are critical to the operation of an organization
which uses them and that must still be maintained.
• Most legacy systems were developed before software
engineering techniques were widely used. Thus they
may be poorly structured and their documentation
may be either out-of-date or non-existent.
• In order to bring to bear the legacy system
maintenance, the first task is to recover the design or
specification of a legacy system from its source or
executable code
33
34. Agenda
• Introduction
• Software Engineering Phases
• Machine Learning Overview
• Applications of ML in SWE with each process:
– Project Planning
– Requirements
– Design
– Implementation
– Testing
– Maintenance
• Conclusion
34
36. Components Re-use
• Software quality classification models can be
used to indicate which program modules are
fault-prone (FP) and not fault-prone (NFP).
• These models can be used to select the best
candidate modules.
36
37. Components Re-use
Attribute
U_1 Number of unique operators
N_1 Total number of operators
U_2 Number of unique operands
N_2 Total number of operands
V(G) McCabe’s cyclomatic complexity
N_L Number of logical operators
LOC Lines of code
ELOC Executable lines of code
37
38. User Interface Design
• Learnability is an important aspect of usability
• users lose up to 40% of their time due to
“frustrating experiences” with computers,
with one of the most common causes of these
frustrations being missing, hard to find, and
unusable features of the software.
38
39. User Interface Design
• Nielsen defines that a highly learnable system
could be categorized as “allowing users to
reach a reasonable level of usage proficiency
within a short time”.
• Web usage map is mined through Label
Sequential Rule
39
41. Agenda
• Introduction
• Software Engineering Phases
• Machine Learning Overview
• Applications of ML in SWE with each process:
– Project Planning
– Requirements
– Design
– Implementation
– Testing
– Maintenance
• Conclusion
41
42. Implementation
• Implementation is a core process in the software
engineering life cycle.
• One of the challenges in this phase is the
modularization –or remodularization-.
• Genetic algorithms have been successfully used
to address this problem.
• The objective is to improve the module quality
(MQ). All versions of MQ are combinations of
cohesion and coupling into a single weighted
fitness function.
42
43. Implementation (Cont’d)
• Clustering has also been applied to package
coupling, to reduce overall package size and to
explore the relationship between design and
code level software structure.
• Additional objectives might include closeness to
original module structure, business goals,
technical constraints, testability, and other
metrics that may be important in finding a good
module structure.
43
45. Implementation (Cont’d)
• Refactoring is to rewrite existing source code in
order to improve its readability, reusability or
structure without affecting its meaning or
behavior.
• For project managers it is interesting to know
which locations are likely to demand refactoring.
Refactoring improves the understandability of the
code, but on the other hand requires
development time
45
46. Implementation (Cont’d)
• Researches screen evolution data from
versioning systems of open source projects.
• ArgoUML and the Spring framework are
examples developed in Java and consist of
5000 and 10000 classes each.
• Each class is usually placed in a separate file in
Java, thus they use files equivalent to classes
and focus on files for our analysis.
46
47. Implementation (Cont’d)
The used features can be divided into different
categories:
• Size
This category contains size measures such as
lines of code from an evolution perspective:
linesAdded, linesModified, or linesDeleted
relative to the total LOC (lines of code) of a file.
47
48. Implementation (Cont’d)
• Team
The number of authors of files influences the way
software is developed. It is expected that the more
authors are working on the changes the higher the
probability of rework and mistakes.
• Complexity of existing solution
According to the laws of software evolution, software
continuously becomes more and more complex. Changes
are more difficult to add as the software is more difficult
to understand and the contracts between existing parts
have to retain. As a result they investigate the
changeCount in relation to the number of changes during
the entire history of each file.
48
49. Implementation (Cont’d)
• New Requirements
In software development projects usually new
classes are added to object-oriented systems when
new requirements have to be satisfied. They use
the information whether a file was newly
introduced during the prediction period
• Relational Aspects
One of the most important features of this category
are couplings such as the number of
changes/revisions where other files have been
committed with.
49
51. Implementation (Cont’d)
• Decision tree and neural network are used as
classifiers.
• The F-measure was about 65%.
• It is clear that several features such as lines
activity rate and number of lines altered per
commit provide much information for the
assessment of refactorings.
• But also the structure of the system is crucial for
refactorings, as the number of co-changed files
and the number of files introduced during the
maintenance are relevant features.
51
52. Agenda
• Introduction
• Software Engineering Phases
• Machine Learning Overview
• Applications of ML in SWE with each process:
– Project Planning
– Requirements
– Design
– Implementation
– Testing
– Maintenance
• Conclusion
52
53. Testing
• Software quality models help ensure the
reliability of the delivered products.
• Early detection of fault-prone software
components enables verification experts to
concentrate their time and resources on the
problem areas of the software system under
development.
• Accurate prediction of fault-prone modules
enables the verification and validation activities
focused on the critical software components.
53
55. Testing (Cont’d)
• Decision trees correctly predicted 79.3% of
high development effort fault-prone modules
(detection rate), while the trees generated
from the best parameter combinations
correctly identified 88.4% of those modules
on the average.
55
56. Agenda
• Introduction
• Software Engineering Phases
• Machine Learning Overview
• Applications of ML in SWE with each process:
– Project Planning
– Requirements
– Design
– Implementation
– Testing
– Maintenance
• Conclusion
56
57. Maintenance
• Software maintenance is widely recognized to be
the most expensive and time-consuming aspect
of the software process.
• A relevance relation maps a tuple of system
elements to a value indicating how related they
are.
• These software change repositories reflect a
history of the system, which includes actions that
result in the creation of new relationships and the
strengthening of the existing relationships in the
software.
57
59. Maintenance (Cont’d)
• Software entities include documents, source files,
routines, modules, variables, and even the entire
software system.
• A relevance relation is a predictor that maps
tuples of two or more software entities to a value
r quantifying how relevant, that is, connected or
related, the entities are to each other.
• r shows the strength of relevance among the
entities.
59
61. Maintenance Effort Prediction
• If the predictions are based on formal software
development effort prediction models, such as the
estimation part of the Function Point Analysis, essential
differences in characteristics between software
development and software maintenance are neglected
• The focus of software development is the creation of
software, but the focus of software maintenance is more
the change of software.
• The development of a software application typically is a
one-of-a-kind project, but the maintenance activities on an
application usually comprise a large number of tasks
carried out over a long period of time in a relatively stable
environment.
62
62. Maintenance Effort Prediction
• Some researches collected data on:
– 109 randomly selected maintenance tasks
– 70 applications
– The size of the applications varied from a few
thousand lines of code (LOC) to about 500,000 LOC
– the age of the applications varied from less than a
year to more than 20 years
– The functions of the applications included payroll,
order entry, billing and invoicing, inventory control,
service management, and personnel administration.
63
63. Maintenance Effort Prediction
The following data was collected for each maintenance task:
• Type of maintenance task, i.e., corrective or perfective.
• Priority of task, i.e., high, medium or low priority.
• Maintainer’s knowledge and confidence about how to solve
the task immediately after having read or heard the task
specification.
• Years of experience as maintainer, and on the maintained
application.
• Education level of the maintainer.
• Work-hours (effort) spent on the task.
• Task size and the programming language
• Age and size of the changed application.
64
64. Maintenance Effort Prediction
Most Important features:
• Cause: Corrective maintenance = 0, otherwise = 1
• Change: More than 50% of the effort is believed to be
spent on updating of code compared to inserting and
deleting the code = 0, otherwise = l
• Mode: More than 50% of the effort is believed to be
spent on development of new modules (New module
mode) = 0, otherwise (Embedded mode) = 1
• Confidence: The maintainer believes he knows how to
solve the task when the task specification is read/heard
the first time = 0 (High confidence), otherwise = 1
(Medium or low confidence).
65
65. Maintenance Effort Prediction
Less effect features:
• Type of language
• Maintainer experience
• Task priority
• Application age
• Application size
66
66. Maintenance Effort Prediction
• Neural network and regression were used as
approaches for effort prediction.
• The prediction accuracy was acceptable (error of 60%).
• A recommended use of an effort prediction model is,
therefore, to support the expert predictions.
• Another important use of a formal prediction model
may be to support the collection and analysis of
maintenance data in order to enable improvement of
the maintenance process and product.
67
67. Open Problems
• Most of presented work are immature and a
lot of related issues are still open.
• Machine learning can help in the
requirements engineering phase in developing
knowledge based systems and ontologies to
manage the requirements and model problem
domains
68
68. Open Problems (Cont’d)
• One of the most difficult problems is the
problem of transforming requirements into
architectures. Much research is needed in this
area to address the ever increasing complexity
of functional and non-functional
requirements.
69
69. Open Problems (Cont’d)
• One area that has received some attention is
the use of automated algorithms with
machine learning to make repair assignments.
• In any case, more studies with respect to the
appropriate criteria for selecting assignment
policy, reward mechanisms and management
goals need to be undertaken.
70
70. Conclusion
• The existing work certainly proves that the
field of software engineering is a fertile
ground for the application of machine learning
methods.
• It is clear that there is an increased interest in
the niche area of machine learning and
software engineering.
71
71. Conclusion (cont’d)
• The strength of machine learning methods lies
in the fact that they have sound mathematical
and logical justifications
• The power of machine learning methods does
not come from a particular induction method,
but instead from proper formulation of the
problems and from crafting the representation
to make learning tractable.
72
72. Conclusion (cont’d)
• Machine learning can play a good role in the
different phases of software engineering; project
planning, requirements analysis, design,
implementation, testing, and even in maintenance
• It is expected that this interest in applying
machine learning in software engineering tasks
will increase significantly especially with the
increase interest in the empirical software
engineering.
73