Vous êtes sur la page 1sur 4

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 4, APRIL 2011, ISSN 2151-9617

HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 61

Techniques developed in Artificial Intelligence


from the standpoint of their application in
software Engineering
A.Sharmila Dhana Joy, Dr. R.Dhanapal
Abstract—Software development process is very complex process is primarily a human activity. Programming, in software
development, requires the use of different types of knowledge: about the problem domain and the programming domain. It
also requires many different steps in combining these types of knowledge into one final solution. This paper intends to
study the techniques developed in artificial intelligence (AI) from the standpoint of their application in software engineering.
In particular, it focuses on techniques developed (or that are being developed) in artificial intelligence that can be deployed
in solving problems associated with software engineering processes. This paper highlights a comparative study between
the software development and expert system development. This paper also highlights absence of risk management strate-
gies or risk management phases in AI based systems.

Index Terms – Knowledge intensive activity, Programmer’s apprentice, automated programming, genetic code.

——————————  ——————————

1 INTRODUCTION

A rtificial Intelligence is concerned with the study


and creation of computer systems that exhibit some
form of intelligence and attempts to apply such know-
called the Programmer’s apprentice.
One of my key observations is that expert programmers
rely heavily on a large body of standard implementation
ledge to the design of computer based systems that can methods and program forms. A central part of the re-
understand a natural language or understanding of natu- search has therefore been to identify and codify these
ral intelligence. Software Engineering is a knowledge- standard forms. For this purpose many expert system
intensive activity, requiring extensive knowledge of the programming languages have been developed in which
application domain and of the target software itself. these standard forms can be written down in a canonical
Many Software products costs can be attributed to the and abstract way, and used by an automatic program-
ineffectiveness of current techniques for managing this ming systems. Basically Conventional programming is a
knowledge, and Artificial Intelligence techniques can help sequential, three step process. Design, Code, Debug.
alleviate this situation. Knowledge engineering, which is the process of building
an expert system, also involves assessment, knowledge
The goal of this research paper is to give a comparative acquisition, design, testing, documentation and mainten-
study of how expert programmers analyze, synthesize, ances. However, there are some key differences between
modify, explain, verify and document programs, and to the two programming paradigms. Conventional pro-
apply that theory towards automating the programming gramming focuses on solution, while ES programming
process. Recognizing that the long-term goal of totally focuses on problem.
automatic programming is very far off, we are presently
concentrating on applying our research towards develop-
ing an intelligent computer assistant for programmers,
2 SOFTWARE ENGINEERING AND ARTIFICAL
———————————————— INTELLIGENCE
 A.Sharmila Dhana Joy is with the Department of Computer Applica-
tion,Research Scholar,Dravidian university, Andhra Pradesh,India
Software development
 Dr. R.Dhanapal is with the Department of Computer Application, Software development problems includes conceptual spe-
Easwari Engg. College, Affiliated to Anna University, Chennai, India cifying, designing, testing the conceptual construct and

© 2011 Journal of Computing Press, NY, USA, ISSN 2151-9617


http://sites.google.com/site/journalofcomputing/
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 4, APRIL 2011, ISSN 2151-9617
HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 62

representation problems that comprising representing  System evaluation


software and testing the reliability of a representation.
Planning phase involves feasibility assessment, resource
The traditional view of software development process allocation, task phasing and scheduling requirements
begins at the requirements specification and ends at test- analysis. Knowledge acquisition is the most important
ing the software. At each of these stages, different kinds stage in the development of ES. During this stage the
of knowledge (design  knowledge at design stage and knowledge engineer works with the domain expert to
programming and domain knowledge at the coding acquire, organize and analyze the domain knowledge for
stage) are required. At each of the two stages: design and the ES. The goal of knowledge analysis is to analyze and
coding, exist a cycle: error recognition and error correc- structure the knowledge gained during the knowledge
tion. Experience show that errors can occur at any stage acquisition phase. After knowledge analysis is done, we
of software development. Errors due to coding may oc- enter the knowledge design phase. At the end of design
cur because of faulty design. Such errors are usually ex- we have Knowledge definition, detailed of a development
pensive to correct. tool. Consider whether it supports your planned strategy,
internal fact structure, Mock interface. Coding this phase
A basic problem of software engineering is the long delay occupies the least time in the Expert System Development
between the requirements specification and the delivery Life Cycle. It involves coding, preparing test cases, com-
of a product. This long development cycle causes re- menting code, developing user’s manual and installation
quirements to change before product arrival. guide.

In addition, there is the problem of phase independence Knowledge based techniques in AI can be used to modify
of requirements, design and codes. Phase independence this traditional approach the AI technique that handles
means that any decision made at one level becomes fixed this problem is automated programming which results in
for the next level. Thus, the coding team is forced to re- reusable code. Thus, when a change is made in the de-
code whenever there is change in design. sign, that part of the design that does not change remains
unaffected. Thus, automated tools for system redesign
Programing
and reconfiguration resulting from a change in the re-
Design
Knowledge Knowledge quirements will serve a useful purpose. This technique
requires constraint propagation technique. With the help
of automated programming approach AI based systems
Requirements
Specification Design
Design
Testing
Coding Code
Testing
are free from risk management strategies.

Planning Knowldge Knowldge Code Knowldge System


Acquisition Design Verificaion Evaluaion
and
Analysis

Error
Detection Error Work Encoding of
Detection Knowledge Design Knowledge Actual
Baseline Baseline using a testing Product
development evaluation
Fig.1: Traditional Software Development Process Process by user
tool

Expert system development

Expert system use knowledge rather than data to control Fig 2: Expert System development
the solution process. Knowledge engineers build systems
by eliciting knowledge from experts, coding, that know-
ledge, and ultimately constructing a system using a varie-
ty of building tools. 3 TECHNIQUES AND TOOLS OF AUTOMATED
The main phases the expert system development PROGRAMMING
processes are:-
 Planning
Because of the evolutionary nature of software products,
 Knowledge acquisition and analysis
by the time coding is completed, requirements would
 Knowledge design
have changed (because of the long processes and stages of
 Code development required in software engineering): a situa-
 Knowledge verification

© 2011 Journal of Computing Press, NY, USA, ISSN 2151-9617


http://sites.google.com/site/journalofcomputing/
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 4, APRIL 2011, ISSN 2151-9617
HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 63

tion that results in delay between requirement specifica- out the product development phase.
tion and product delivery. There is therefore a need for
design by experimentation, the feasibility of which lies in The given Figure displays the steps of the risk manage-
automated programming. Some of the techniques and ment process. Formally, articulated, risk management
tools that have been successfully demonstrated in auto- process consists of three steps:
mated programming environments include Language
Feature: this technique adopts the concept of late binding
(i.e. making data structures very flexible). In late binding,
data structures are not finalized into particular imple-
mentation structures. Thus, quick prototypes are created
which result in efficient codes that can be easily changed. Risk
Management
Another important language feature is the packaging of
data and procedures together in an object, thus giving rise
to object-oriented programming: a notion that has been
found useful in environments where codes, data struc-
Risk Risk Risk
tures and concepts are constantly changing. Lisp provides Identification Analysis Mitigation
these facilities.
• Meta Programming: this concept is developed in natu-
ral language processing (a sub field of AI). It uses auto-
mated parser generators and interpreters to generate ex- Risk
probability
Risk
Avoidance
ecutable lisp codes. Its use lies in the modelling of transi-
tion sequences, user interfaces and data transformations.
Risk
• Program Browsers: these look at different portions of a Risk Impact Monitoring
code that are still being developed or analyzed, possibly
to make changes, thus obviating the need for an ordinary Contingen-
cy Plan-
text editor. The browser understands the structures and Risk Factor
ning
declarations of the program and can focus on the portion
of the program that is of interest.
• Automated Data Structuring: this means going from a Fig 3 : Risk Management Process
high-level specification of data structures to a particular
implementation structure.
AI based systems are free form risk management strate-
When systematic changes need to be made throughout a
gies because of automated programming techniques mak-
code, it is more efficient and controllable to do it through
ing data structures flexible. Automatic programming is
another program (i.e., program update manager) than
the generation of programs by computer, usually based
through a manual txt editor. For instance, a change in
on specifications that are higher – level and easier for
program X may be required whenever h is being updated
humans to specify than ordinary programming languag-
by b-1 under the condition that b is less than C. Assume
es.
that a program W makes a systematic change in all such
places. If another program makes a change in W, then any
program changed by W also must be updated. Thus, pro-
gram update managers propagate changes. Because of
Requirement Automatic Executable
this ability, program update managers are useful when
Specification Programing System Program
prototypes need to be developed quickly

Fig 4: Automatic Programming system (APS)


4 RISK MANAGEMENT
The goal is to make the specification smaller, easier to
write, easier to understand (closer to application con-
The Risk Management process is a method of identifying
cepts), Less error-prone better than programming lan-
risks in advance and establishing methods of avoiding
guages.
those risks and / or reducing the impact of those risks
should they occur. Genetic Code
The Process of risk management begins during the analy- Genetic programming is a technique which enables com-
sis phase of software development life cycle. However, puters to solve problems without being explicitly pro-
the actual process of managing risks continues through- grammed. It works by using genetic algorithms to auto-

© 2011 Journal of Computing Press, NY, USA, ISSN 2151-9617


http://sites.google.com/site/journalofcomputing/
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 4, APRIL 2011, ISSN 2151-9617
HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 64

matically generate computer programs. (2005) 373-401

[9] Fenton NE, Neil M A critique of software defect prediction


Evaluate each of the attempted solution
models IEEE Transactions on Software Engineering 25 (5): 675–689
Keep the best solutions Sep–Oct 1999
Produce next generation from these solution (using mu-
tation and crossover) [10] Dr.R.Dhanapal, “An Intelligent Information Retrieval Agent”.
Quit when you have a satisfactory solution (or you run Elsevier International Journal on Knowledge-Based Systems, The
out of time) Netherlands, Vol. 21 No. 6, pp. 466 – 470, 2008.
Genetic algorithm contains a population of trail solutions
to a problem. In genetic programming the individuals in
the population are computer programs.

AUTHOR BIBILIOGRAPHY
5 CONCLUSION
A. Sharmila Dhana joy is with the Department of Computer Applica-
tion, Vel Sri Ranga Sanku college, Affiliated to Madras University ,
Risk management strategies utilize lot of developer time Chennai – 600 005, Tamil Nadu, India, a research scholar pursuing
and in software development phases there is a link be- PhD in Computer Science from Dravidian University .
tween all the phases by introducing a isolation phase Dr.R.Dhanapal obtained his PhD in Computer Science from Bhara-
among the phases we can reduce the time in development thidasan University, India. He is currently Professor, PG and Re-
by revisiting each phase after changes in requirements. By search Department of Computer Applications, Easwari Engineering
College, Chennai. Affiliated to Anna University of Technology Chen-
using AI based systems with the help of automated tool or nai, Tamil Nadu India. He has 25 years of teaching, research and
automated programming tool we can eliminate risk as- administrative experience. Besides being Professor, he is also a
sessment phase saving our time in software development. prolific writer, having authored twenty one books on various topics in
Because of Artificial Intelligence Techniques implemented Computer Science. His books have been prescribed as text books in
Barathidasan University and autonomous colleges affiliated to
in software engineering. We can reduce the development Bharathidasan University, Tiruchiraplli. He has served as Chairman
time in software development. Coding phase in software of Board of Studies in Computer Science of Bharathidasan Univer-
development process can be changed into Genetic Code. sity, member of Board of studies in Computer Science of several
universities and autonomous colleges. Member of standing commit-
tee of Artificial Intelligence and Expert Systems of IASTED, Canada
and Senior Member of International Association of Computer Sci-
ence and Information Technology (IACSIT), Singapore. He has Vis-
REFERENCES ited USA, Japan, Malaysia, and Singapore for presenting papers in
1] Ian Sommerville, Software Engineering (6th Edn.) (Addision the International conferences and to demonstrate the software de-
Wesley Publishers, Newyork, New York, USA) 2000 veloped by him. He is the recipient of the prestigious ‘Life-time
Achievement’ and ‘Excellence’ Awards of Govt. of India. He is serv-
ing as Principal Investigator of UGC sponsored innovative, major
[2] Roger S.Pressman, Software Engineering: A Beginner’s Guide
and minor research projects about 1.7 crore. He is the recognized
(Mc Graw Hill Higher Education Publishers, New York, New York,
supervisor for research programmes in computer Science leading to
USA) 1998 PhD and MS by research in several universities including Anna Uni-
versity of Technology Chennai, Bharathiar University Coimbatore,
[3] Seth Hock, Computers and Computing (Houghton Mifflin Manonmaniam Sundaranar University Tirunelveli, Mother Teresa
College Publishers, Boston, Massachusetts, USA) 1989 University Kodaikanal and many Deemed Universities. He has got
52 papers on his credit in international and national journals. He has
[4] Shari Lawrence P fleeger, Software Engineering: theory and been serving as Editor In chief for the International Journal of re-
Practice (Prentice Hall Publishers, Upper Saddle River, New Jersey, search and reviews in Artificial Intelligence (IJRRAI) United Kingdom
USA) 1998. and serving as reviewer and member of editorial in accredited peer
reviewed national amd international journals including Elsevier Jour-
[5] Artificial Intelligence (3rd Edition) Prentice Publisher, nals.
Henry Petrick Winston

[6] T.H. Tse, T.Y. Chen, R.L. Glass, An assessment of systems and
software engineering scholars and institutions (2000–2004), Journal
of Systems and Software 79 (6) (2006) 816–819.

[7] C. Wohlin, An analysis of the most cited articles in software


engineering journals –1999, Information and Software Technology
Vol. 47 (No. 15) (2005) 957–964.

[8] M. Zitt, S. Ramanan-Rahary, E. Bassecoulard, Relativity of cita-


tion performance and excellence measures: from cross-field to cross-
scale e ects of field normalisation, Scientometrics Vol. 63 (No. 2)

© 2011 Journal of Computing Press, NY, USA, ISSN 2151-9617


http://sites.google.com/site/journalofcomputing/

Vous aimerez peut-être aussi