Esoft Metro Campus - Diploma in Software Engineering - (Module I) Introduction to Software Engineering
(Template - Virtusa Corporate)
Contents:
What is software?
Software classification
Generic Software vs Custom Software
Attributes of Software
What is Software Engineering?
Software Engineering Process Model
Waterfall Model
Waterfall Model Stages
Extended Waterfall Model
Prototype Model
Throw away prototype model
Evolutionary prototype model
Rapid application development model (RAD)
Stages in the RAD
Study of solution development methodology for small size projects.Joon ho Park
Medium-size system integration or IT Solution Company’s solution development project has limitation as like human resource limitation, budget limitation and expert limitation. Especially it is hard to maintain many IT experts for medium-size and small-size system integration or IT Solution Company. Thus in order to efficiently and beneficially complete projects, medium-size and small-size system integration or IT Solution Company should have appropriate solution development methodology.Solution development projects for medium-size and small-size system integration or IT Solution Company are usually shot-term and small budget so that they need slim and light-weight solution development methodology. But usual medium-size and small-size system integration or IT Solution Company do not have their own appropriate solution development methodology. Thus, if those kinds of solution development methodologies are applied to solution development projects for medium-size and small-size system integration or IT solution company without some modifications, shortage of human resources, incompleteness of solution and deliverables could arouse.Especially unnecessary paper works (deliverables and documentations) to both of projects teams and client’s wastes project resources and time. We analyze previous solution development methodologies and derive mandatory deliverables and optional deliverables. Before deriving them, we newly define procedures and tasks for each project stages which are necessary to projects team and clients, from client and expert of interviews. Our proposed solution development methodology can easily leverage the development overhead of short-term projects. Optional deliverables can be omitted by the contraction between project team and client.
Is software engineering research addressing software engineering problems?Gail Murphy
Keynote from Automated Software Engineering 2020. (See https://www.cs.ubc.ca/~murphy for video)
Brian Randell described software engineering as “the multi-person development of multi-version programs”. David Parnas has expressed that this “pithy phrase implies everything that differentiates software engineering from other programming”. How does current software engineering research compare against this definition? Is there currently too much focus on research into problems and techniques more associated with programming than software engineering? Are there opportunities to use Randell’s description of software engineering to guide the community to new research directions? In this talk, I will explore these questions and discuss how a consideration of the development streams used by multiple individuals to produce multiple versions of software opens up new avenues for impactful software engineering research.
Software engineering practices and software quality empirical research resultsNikolai Avteniev
This presentation summarizes empirical research findings in software engineering practices including test driven development, peer code reviews, and defect prediction.
During the Spring semester, I teach a 3 credit survey course in software development, at UW-Madison (IS 371), which is the first in the series of courses in the Information Systems major track. As part of this course, I devote an entire lecture to discussing different types of software development (Agile, Waterfall, Extreme, Spiral, etc.) I hope it helps the students better understand the different types of software development styles, as well as the benefits and drawbacks of each. In my opinion, they need to learn early on that there is more than one way to go about a software development challenge, and they need to figure out which style works best for them.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
Esoft Metro Campus - Diploma in Software Engineering - (Module I) Introduction to Software Engineering
(Template - Virtusa Corporate)
Contents:
What is software?
Software classification
Generic Software vs Custom Software
Attributes of Software
What is Software Engineering?
Software Engineering Process Model
Waterfall Model
Waterfall Model Stages
Extended Waterfall Model
Prototype Model
Throw away prototype model
Evolutionary prototype model
Rapid application development model (RAD)
Stages in the RAD
Study of solution development methodology for small size projects.Joon ho Park
Medium-size system integration or IT Solution Company’s solution development project has limitation as like human resource limitation, budget limitation and expert limitation. Especially it is hard to maintain many IT experts for medium-size and small-size system integration or IT Solution Company. Thus in order to efficiently and beneficially complete projects, medium-size and small-size system integration or IT Solution Company should have appropriate solution development methodology.Solution development projects for medium-size and small-size system integration or IT Solution Company are usually shot-term and small budget so that they need slim and light-weight solution development methodology. But usual medium-size and small-size system integration or IT Solution Company do not have their own appropriate solution development methodology. Thus, if those kinds of solution development methodologies are applied to solution development projects for medium-size and small-size system integration or IT solution company without some modifications, shortage of human resources, incompleteness of solution and deliverables could arouse.Especially unnecessary paper works (deliverables and documentations) to both of projects teams and client’s wastes project resources and time. We analyze previous solution development methodologies and derive mandatory deliverables and optional deliverables. Before deriving them, we newly define procedures and tasks for each project stages which are necessary to projects team and clients, from client and expert of interviews. Our proposed solution development methodology can easily leverage the development overhead of short-term projects. Optional deliverables can be omitted by the contraction between project team and client.
Is software engineering research addressing software engineering problems?Gail Murphy
Keynote from Automated Software Engineering 2020. (See https://www.cs.ubc.ca/~murphy for video)
Brian Randell described software engineering as “the multi-person development of multi-version programs”. David Parnas has expressed that this “pithy phrase implies everything that differentiates software engineering from other programming”. How does current software engineering research compare against this definition? Is there currently too much focus on research into problems and techniques more associated with programming than software engineering? Are there opportunities to use Randell’s description of software engineering to guide the community to new research directions? In this talk, I will explore these questions and discuss how a consideration of the development streams used by multiple individuals to produce multiple versions of software opens up new avenues for impactful software engineering research.
Software engineering practices and software quality empirical research resultsNikolai Avteniev
This presentation summarizes empirical research findings in software engineering practices including test driven development, peer code reviews, and defect prediction.
During the Spring semester, I teach a 3 credit survey course in software development, at UW-Madison (IS 371), which is the first in the series of courses in the Information Systems major track. As part of this course, I devote an entire lecture to discussing different types of software development (Agile, Waterfall, Extreme, Spiral, etc.) I hope it helps the students better understand the different types of software development styles, as well as the benefits and drawbacks of each. In my opinion, they need to learn early on that there is more than one way to go about a software development challenge, and they need to figure out which style works best for them.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
This presentation explains what is software development methodology. It also explores various methodologies such as Waterfall Model, Prototype Model, Incremental Model, Spiral Model, RAD Model, and V-Model.
http://www.ifour-consultancy.com/
http://www.ifourtechnolab.com
Software Crisis
Software products:
fail to meet user requirements.
Software product
expensive.
difficult to alter, debug, and enhance.
often delivered late.
use resources non-optimally.
Factors contributing to the software crisis
Computer Systems Engineering
Software Life Cycle
Life Cycle Model
Software Development Life Cycle: Traditional and Agile- A Comparative Studyijsrd.com
In the field of software development, software development lifecycle is the most important component. There is a number of software development methodologies used in software industry today. The paper discussed below focuses on the modern SDLC which are traditional methods and the agile methods. It also explains the compensation and shortcomings of the traditional as well as agile methods. Along with this, it suggests some improvements which could help in improving current agile development
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
In the past few years, agile software development approach has emerged as a most attractive software development approach. A typical CASE environment consists of a number of CASE tools operating on a common hardware and software platform and note that there are a number of different classes of users of a CASE environment. In fact, some users such as software developers and managers wish to make use of CASE tools to support them in developing application systems and monitoring the progress of a project. This development approach has quickly caught the attention of a large number of software development firms. However, this approach particularly pays attention to development side of software development project while neglects critical aspects of requirements engineering process. In fact, there is no standard requirement engineering process in this approach and requirements engineering activities vary from situation to situation. As a result, there emerge a large number of problems which can lead the software development projects to failure. One of major drawbacks of agile approach is that it is suitable for small size projects with limited team size. Hence, it cannot be adopted for large size projects. We claim that this approach can be used for large size projects if traditional requirements engineering approach is combined with agile manifesto. In fact, the combination of traditional requirements engineering process and agile manifesto can also help resolve a large number of problems exist in agile development methodologies. As in software development the most important thing is to know the clear customer’s requirements and also through modeling (data modeling, functional modeling, behavior modeling). Using UML we are able to build efficient system starting from scratch towards the desired goal. Through UML we start from abstract model and develop the required system through going in details with different UML diagrams. Each UML diagram serves different goal towards implementing a whole project.
This is short review of project matrices. This short lecture provides an overview that how software project matrices help software project manager to make accurate estimates.
An introduction to software engineering, based on the first chapter of "A (Partial) Introduction to Software Engineering
Practices and Methods" By Laurie Williams
OO Development 2 - Software Development MethodologiesRandy Connolly
Course material from my Object-Oriented Development course. This presentation discusses methodologies, development processes, the waterfall model and interative development.
In this presentation, we will discuss about software development techniques, where we will cover life cycle model, life cycle of a system, system requirement analysis and various software development life cycle models.
To know more about Welingkar School’s Distance Learning Program and courses offered, visit:
http://www.welingkaronline.org/distance-learning/online-mba.html
This presentation explains what is software development methodology. It also explores various methodologies such as Waterfall Model, Prototype Model, Incremental Model, Spiral Model, RAD Model, and V-Model.
http://www.ifour-consultancy.com/
http://www.ifourtechnolab.com
Software Crisis
Software products:
fail to meet user requirements.
Software product
expensive.
difficult to alter, debug, and enhance.
often delivered late.
use resources non-optimally.
Factors contributing to the software crisis
Computer Systems Engineering
Software Life Cycle
Life Cycle Model
Software Development Life Cycle: Traditional and Agile- A Comparative Studyijsrd.com
In the field of software development, software development lifecycle is the most important component. There is a number of software development methodologies used in software industry today. The paper discussed below focuses on the modern SDLC which are traditional methods and the agile methods. It also explains the compensation and shortcomings of the traditional as well as agile methods. Along with this, it suggests some improvements which could help in improving current agile development
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
In the past few years, agile software development approach has emerged as a most attractive software development approach. A typical CASE environment consists of a number of CASE tools operating on a common hardware and software platform and note that there are a number of different classes of users of a CASE environment. In fact, some users such as software developers and managers wish to make use of CASE tools to support them in developing application systems and monitoring the progress of a project. This development approach has quickly caught the attention of a large number of software development firms. However, this approach particularly pays attention to development side of software development project while neglects critical aspects of requirements engineering process. In fact, there is no standard requirement engineering process in this approach and requirements engineering activities vary from situation to situation. As a result, there emerge a large number of problems which can lead the software development projects to failure. One of major drawbacks of agile approach is that it is suitable for small size projects with limited team size. Hence, it cannot be adopted for large size projects. We claim that this approach can be used for large size projects if traditional requirements engineering approach is combined with agile manifesto. In fact, the combination of traditional requirements engineering process and agile manifesto can also help resolve a large number of problems exist in agile development methodologies. As in software development the most important thing is to know the clear customer’s requirements and also through modeling (data modeling, functional modeling, behavior modeling). Using UML we are able to build efficient system starting from scratch towards the desired goal. Through UML we start from abstract model and develop the required system through going in details with different UML diagrams. Each UML diagram serves different goal towards implementing a whole project.
This is short review of project matrices. This short lecture provides an overview that how software project matrices help software project manager to make accurate estimates.
An introduction to software engineering, based on the first chapter of "A (Partial) Introduction to Software Engineering
Practices and Methods" By Laurie Williams
OO Development 2 - Software Development MethodologiesRandy Connolly
Course material from my Object-Oriented Development course. This presentation discusses methodologies, development processes, the waterfall model and interative development.
In this presentation, we will discuss about software development techniques, where we will cover life cycle model, life cycle of a system, system requirement analysis and various software development life cycle models.
To know more about Welingkar School’s Distance Learning Program and courses offered, visit:
http://www.welingkaronline.org/distance-learning/online-mba.html
Today in era of software industry there is no perfect software framework available for
analysis and software development. Currently there are enormous number of software development
process exists which can be implemented to stabilize the process of developing a software system. But no
perfect system is recognized till yet which can help software developers for opting of best software
development process. This paper present the framework of skillful system combined with Likert scale. With
the help of Likert scale we define a rule based model and delegate some mass score to every process and
develop one tool name as MuxSet which will help the software developers to select an appropriate
development process that may enhance the probability of system success.
Identification of required software, Analysis of the software requirements, Detailed specification of the software requirements, Software design, Programming, Testing, Maintenance
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models – Introduction to Agility – Agile process – Extreme programming – XP process - Estimation-FP,LOC and COCOMO I and II,Risk Management, Project Scheduling.
International Journal of Computational Engineering Research(IJCER)ijceronline
International Journal of Computational Engineering Research(IJCER) is an intentional online Journal in English monthly publishing journal. This Journal publish original research work that contributes significantly to further the scientific knowledge in engineering and Technology.
Abstract
The methods used for conventional software development cannot be used directly for the development of web applications. Today
most of the companies use scrum methodology for the development of web applications. But it seem to be difficult to use the scrum
in large projects because of the change of requirement late in the project and also it is difficult apply scrum in a big team. This
paper identifies and analyses the various changes required in the scrum methodology to make them applicable for the large
projects and reduce the cost.
Keywords: software development model, hybrid model, scrum methodology, prototype models
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT ijseajournal
With the increasing in mobile application systems and a high competition between companies, that led to
increase in the number of mobile application projects.
Mobile software development is a group of process for creating software for mobile devices with limited
resources like small screen, low-power. The development of mobile applications is a big challenging
because of rapidly changing business requirements and technical constraints for mobile systems. So,
developers faced the challenge of a dynamic environment and the Changing of mobile application
requirements. Moreover, Mobile applications should adapt appropriate software development methods that
act in response efficiently to these challenges.
However, at the moment, there is limited knowledge about the suitability of different software practices for
the development of mobile applications. According to many researchers ,Agile methodologies was found to
be most suitable for mobile development projects as they are short time, require flexibility, reduces waste
and time to market.
Finally, in this research we are looking for a suitable process model that conforms to the requirement of
mobile application, we are going to investigate agile development methods to find a way, making the
development of mobile application easy and compatible with mobile device features.
Melamchi Drinking Water Project was initiated in Nepal. It was supposed to be completed in between 5 years, but due to many reasons, it is not completed till now. So, it is one of the most unsuccessful project in the history of Nepal.
Economical empowerment project in Namibia in order to eradicate the unemployment opportunities and sexual diseases from Namibia.
I believe that this documents will show the clear life cycle of the Project Hope.
A brief overview of Supply Chain Management including explanation of different types of Stock. This documents contains the brief explanation of Demand and Supply
We all have good and bad thoughts from time to time and situation to situation. We are bombarded daily with spiraling thoughts(both negative and positive) creating all-consuming feel , making us difficult to manage with associated suffering. Good thoughts are like our Mob Signal (Positive thought) amidst noise(negative thought) in the atmosphere. Negative thoughts like noise outweigh positive thoughts. These thoughts often create unwanted confusion, trouble, stress and frustration in our mind as well as chaos in our physical world. Negative thoughts are also known as “distorted thinking”.
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
How to Split Bills in the Odoo 17 POS ModuleCeline George
Bills have a main role in point of sale procedure. It will help to track sales, handling payments and giving receipts to customers. Bill splitting also has an important role in POS. For example, If some friends come together for dinner and if they want to divide the bill then it is possible by POS bill splitting. This slide will show how to split bills in odoo 17 POS.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
1. Micro Patterns
in Agile Software
Presented by
Joshi, Ujjwal Kumar
11/27/13
Special Methods and Tools for IT Projects
1
2. Agenda
•
•
•
•
Introduction to Agile Software
Evolution of Micro Patterns in Agile Software Development
Introduction to Micro Patterns
Gil and Maman Approach
–
–
–
–
–
Methodology
Bug-linking Methodology
Survey: Collaborations
Main phases of Development
Conclusion
• References
11/27/13
Special Methods and Tools for IT Projects
2
3. Introduction to Agile Software
Agile Software development is a
group of software development
methods based on iterative and
incremental development, where
requirements and solutions evolve
through collaboration between selforganizing, cross-functional teams.
It promotes adaptive planning,
evolutionary development and
delivery and encourages rapid and
flexible responses to change.
Source: http://en.wikipedia.org/wiki/Agile_software_development#Agile_methods
11/27/13
Special Methods and Tools for IT Projects
3
4. Evolution of Micro Pattern in Agile
Software Development
11/27/13
Special Methods and Tools for IT Projects
4
5. Introduction to Micro Pattern
• Micro Pattern are similar to design pattern
but are at a lower level of abstraction with
respect to design pattern, their characteristics
is that they can be identified automatically.
• Gil and Maman defined the micro pattern
catalogue that consists of 27 micro pattern.
pattern
11/27/13
Special Methods and Tools for IT Projects
5
6. Introduction to Micro Pattern
• Gil and Maman stated that
75% of classes belong to at
least one micro pattern.
• Even though the Micro
patterns are correlated to each
others,
they
can
be
categorized.
• Anti-micro
pattern
are
associated
to
poor
programming and thus, they
are proved to be more fault
prone.
11/27/13
Fig. Micro Patterns in JAVA Code
Source: http://www.google.de/imgres
Special Methods and Tools for IT Projects
6
7. Fig. Global Map of the catalog, showing 8 catalogue and placement of 27 Micro Patterns
11/27/13
Special Methods and Tools for IT Projects
7
9. Micro Pattern Examples
• Implementor
– A concrete class, where all the methods override
inherited abstract methods.
• Function Pointer
– A class with a single public instance method, but
with no fields.
11/27/13
Special Methods and Tools for IT Projects
9
10. Gil and Maman Approach
Gil and Maman conducted their study of
Micro Patterns in following two basis:
• Floss-AR
– Web application
management.
for
research
publications
• jAPS
– Java framework for enterprise portal building
11/27/13
Special Methods and Tools for IT Projects
10
11. Methodology
• At first, they developed a tool to detect the micro
pattern present in the class using Arcelli and Maggioni
principle.
• They proposed a survey to the software development
team to discover which agile methodologies were
adopted.
• They belonged source code repository to link classes to
the bugs in order to find the relationship between
number of faults and anti-micro patterns.
• Then, they asses micro pattern fault proneness by the
means of faulty classes.
11/27/13
Special Methods and Tools for IT Projects
11
12. Methodology: Bug-Class linking
Source Code and the bug fixes are linked using
the Bachmann and Bernstein’s heuristics:
Scan through the change logs for the bug reports in a
given format (e.g. fix bug, fix issue and so on).
Exclude all false positive bug numbers (e.g. 2009-0607 10:47:39-0400 and so on).
Check if there are other potential bug number
formats or false positive number formats, add the
new formats and scan the change iteratively.
Check if potential bug numbers exist in the bugtracking database with their status marked as fixed.
11/27/13
Special Methods and Tools for IT Projects
12
13. Survey: Collaborations
Survey Question on Collaboration
Question
Very
Good
Good
Discrete
Adequate
Not
Adequate
How would you
describe the
collaboration of
the team?
4
1
0
0
0
Table 1. floss-AR Developers Survey (5 developers)
11/27/13
Special Methods and Tools for IT Projects
13
14. Survey Question on Collaboration
Question
Yes
No
The collaboration inside the team increased
the productivity?
5
0
Did you take part in developing the whole
system?
3
2
Do you have favorite programming styles?
2
3
Have the project decision been discussed
together with the team?
5
0
Did you interact directly with the customer?
4
1
Did you use refactoring?
5
0
Table 2. floss-AR Developers Survey (5 developers)
11/27/13
Special Methods and Tools for IT Projects
14
15. Survey Question to the Project Manager
Question
Answer
Which Agile methodologies did you use during software
development?
Pair Programming
Stand up Meeting
Refactoring
On Site Customer
How often did you interact with the customer?
1-2 times per month
How often did you use refactoring?
2-3 times per month
Table 3. floss-AR Project Manager
11/27/13
Special Methods and Tools for IT Projects
15
16. Main phases of development
11/27/13
Special Methods and Tools for IT Projects
16
18. Source Code Analysis for floss-AR
Micro Pattern
CA
SAR
SS
OS
2.1.1
Designator
1.5
1.5
1.6
1.38
0.9
Taxonomy
0
0
0
0
0
Pool
0.2
0.2
0.36
0.3
0.76
Joiner
0
0
0
0
0
Extender
28.4
28.8
27.7
28.4
16.58
Function Pointer
20.2
19.7
22.8
17.8
13.31
Functionobject
2.5
2.4
2
4.45
1.53
Overrider
0.33
0.34
0.29
1.07
0.2
Total
85.1
84.8
85.8
75.5
81.6
…..
Table showing source code analysis for floss-AR
11/27/13
Special Methods and Tools for IT Projects
18
19. Conclusion
OS(%)
Distribution
of faulty
classes
CA(%)
SAR(%)
SS(%)
2.1.1(%)
NMP
63.12
62.41
71.63
70.92
23.4
MP
36.87
37.58
28.36
29.07
76.59
Percentage of MP Faults
Fault % of AMP
12.76
12.05
7.8
7.8
23.4
Fault % of fault-prone MP
faults
18.43
14.89
11.34
13.47
23.4
Fault % of other MP
5.67
10.63
9.21
7.8
20.56
Non Micro Pattern are the most faulty Micro Pattern
Both systems respect the Gill and Maman statement. This means the Micro Patterns are good descriptors
for the software development.
Micro Patterns such as Function Pointer, Sink and Extender are common to all the releases of Floss-AR and
jAPS. So, they have highest value in the distribution. Whereas, Taxonomy, Pool, Sampler and Record are
almost absent so, they have minimal value.
11/27/13
Special Methods and Tools for IT Projects
19
20. References
http://www.japsportal.org ; JAPS: Java Agile Portal System
Gil and Maman case study
http://veprints.unica.it/859/1/DeStefanis_PHD_Thesis.pdf
http://www.cs.technion.ac.il/~imaman/stuff/ip-oopsla05-c.pdf
11/27/13
Special Methods and Tools for IT Projects
20
21. There are no significant bugs in our released software
that any significant number of users want fixed.
--- Bill Gates
11/27/13
Special Methods and Tools for IT Projects
21
Editor's Notes
shows a global map of the catalog, including the 8 categories, and the
placement of the 27 micro patterns into these. The X dimension corresponds to class
behavior. The Y dimension of the figure correspond to class state: categories at the upper portion
of the map are of patterns restricting the class state more than patterns which belong
to categories at the bottom of the map.
They investigated if the agile methodologies influence the distribution of micro pattern during software evolution by studying two industrial cases:
Arcelli and Maggioni suggested an operative definition to automate micro pattern detection. On that basis, they developed a tool to detect the micro pattern present in the class.
Based on these heuristics, they connected the source code in order to fix a bug by taking into account the associated Micro pattern and the times a class have been debugged and then, they evaluated the fault proneness of the micro patterns.
Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. In simple way, Refactoring means making code simple, clear and elegant.
This suggest that the constant application of the Agile methodologies during the software development across different releases may impact positively the software quality, carrying as side effect the reduction in the use of bad programming practices.