OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q76001074 薛弘志 P76014020 蔡文豪 F74982155 周詩御.

Slides:



Advertisements
Similar presentations
A Method for Validating Software Security Constraints Filaret Ilas Matt Henry CS 527 Dr. O.J. Pilskalns.
Advertisements

Object-oriented Software Change Dynamic Impact Analysis Lulu Huang and Yeong-Tae Song Dept. of Computer and Information Sciences Towson University Towson,
Benjamin J. Deaver Advisor – Dr. LiGuo Huang Department of Computer Science and Engineering Southern Methodist University.
Funding Networks Abdullah Sevincer University of Nevada, Reno Department of Computer Science & Engineering.
SSP Re-hosting System Development: CLBM Overview and Module Recognition SSP Team Department of ECE Stevens Institute of Technology Presented by Hongbing.
Fall 2007CS 2251 Software Engineering Intro. Fall 2007CS 2252 Topics Software challenge Life-cycle models Design Issues Documentation Abstraction.
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Facilitating Decision making through Knowledge Capitalization of Maintenance Projects Management with KDD technique OLADEJO Bolanle F.(Ph.D) Department.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
1 Shawlands Academy Higher Computing Software Development Unit.
GLOSSARY COMPILATION Alex Kotov (akotov2) Hanna Zhong (hzhong) Hoa Nguyen (hnguyen4) Zhenyu Yang (zyang2)
Chapter 1 Introduction to Data Mining
CSC-115 Introduction to Computer Programming
Software Requirements Engineering CSE 305 Lecture-2.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
CSE 219 Computer Science III Program Design Principles.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
1 Introduction to Software Engineering Lecture 1.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
SEMINAR WEI GUO. Software Visualization in the Large.
2007. Software Engineering Laboratory, School of Computer Science S E Web-Harvest Web-Harvest: Open Source Web Data Extraction tool 이재정 Software Engineering.
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
MODES-650 Advanced System Simulation Presented by Olgun Karademirci VERIFICATION AND VALIDATION OF SIMULATION MODELS.
The Software Development Process
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Intelligent Database Systems Lab 國立雲林科技大學 National Yunlin University of Science and Technology Mining Logs Files for Data-Driven System Management Advisor.
Systems Development Life Cycle
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
1 Software Engineering and Security DJPS April 12, 2005 Professor Richard Sinn CMPE 297: Software Security Technologies.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Search Engine using Web Mining COMS E Web Enhanced Information Mgmt Prof. Gail Kaiser Presented By: Rupal Shah (UNI: rrs2146)
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Introduction to Data Mining by Yen-Hsien Lee Department of Information Management College of Management National Sun Yat-Sen University March 4, 2003.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Software Configuration Management SEII-Lecture 21
Software Quality Assurance and Testing Fazal Rehman Shamil.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Programming & Debugging. Key Programming Issues Modularity Modifiability Ease of Use Fail-safe programming Style Debugging.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CODING VOCABULARY.  Binary  A number system based on 2  Hexadecimal  A number system based on 16  Domain  An internet location registered with the.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Introduction to Machine Learning, its potential usage in network area,
Integrating Algorithms and Coding into the Mathematics Classroom
Advanced Higher Computing Science
CS 325: Software Engineering
Software Metrics 1.
C++ Plus Data Structures
  Performance Pitfalls in Large-Scale Java Applications Translated from COBOL Toshio Suganuma Toshiaki Yasue Tamiya Onodera Toshio Nakatani Presented.
Complexity Time: 2 Hours.
Software Maintenance PPT By :Dr. R. Mall.
Applications of Data Mining in Software Engineering
Chapter 1 Introduction(1.1)
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Design Methodologies and Testing
Bug Localization with Combination of Deep Learning and Information Retrieval A. N. Lam et al. International Conference on Program Comprehension 2017.
Presentation transcript:

OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御

Reference Prasad, A.V.K. and Ramakrishna, S. (2010b), ‘Data Mining for Secure Software Engineering – Source Code Management Tool Case Study’, International Journal of Engineering Science and Technology, vol. 2 (7), pp

Introduction To improve software productivity and quality, software engineers are increasingly applying data mining algorithms to various software engineering tasks. However mining software engineering data poses several challenges, requiring various algorithms to effectively mine sequences, graphs and text from such data. Using well established data mining techniques, it can explore the potential of this valuable data in order to better manage their projects and do produce higher-quality software systems that are delivered on time and with in budget. 3

Introduction(cont.) Mining algorithms for software engineering falls into four main categories: 1. Frequent pattern mining – finding commonly occurring patterns. 2. Pattern matching – finding data instances for given patterns. 3. Clustering – grouping data into clusters and 4. Classification – predicting labels of data based on already labeled data. 4

Introduction(cont.) Software engineering data can be broadly categorized into: 1. Sequences such as execution traces collected at runtime, static traces extracted from source code, and co-changed code locations. 2. Graphs such as dynamic call graphs collected at runtime and static call graphs extracted from source code. 3. Text such as bug reports, s, code comments, and documentation. 5

Objectives The objective of the research work to propose strategic Data Mining tools for program source code debugging which improves Software Reliability & Quality. Software engineers can start with either a problem driven approach, but in practice they commonly adopt a mixture of the first two steps: collecting data to mine and determining the SE tasks to assist. The three remaining steps are inorder, preprocessing data, adopting a mining algorithm, and post processing applying mining results. 6

Objectives(cont.) Processing data involved first extracting relevant data from the raw SE data. This data is further processed by cleaning and properly formatting it for the mining algorithm. The next step produces a mining algorithm and its supporting tool, based on the mining requirements derived in the first two steps. The final step transforms the mining algorithm results in to an appropriate format required to assist the SE task. 7

Objectives(cont.) Further, many such tools are general purpose and should be adapted to assist the particular task at hand. However, software engineering researchers may lack the expertise to adapt mining algorithms, while data mining researchers may lack the background to understand mining requirements in the software engineering domain. On promise way to reduce this gap is to foster close collaborations between the software engineering community(requirement providers) and data mining community(solution providers). 8

Implementations The management of source code is one of the greatest challenges facing programmers today. As programs become larger and more complex, the need to organize and manage source code increases. Author’s motivation is to implement source code maintenance routines which parse tokens from an ANSI C++ file, formats the file, extract header files and colorize a file. 9

Implementations(cont.) When files are shared among objects, it is difficult to track which files are dependent on others. A source code maintenance program can parse the source code and produce documentation that describes each class its member variables and functions. Maintaining structure code amongst team members is extremely difficult and time consuming because programmers must modify their individual styles. A source code formatter offers a convenient solution to this problem. 10

Implementations(cont.) Code maintenance modules receive source code as input, break the code down into tokens and then output them in a new format. The utility is based on three class groups: A scanner reads the code and breaks it down into tokens and returns them back to the parser. It also identifies the type of token to return. The parser requests successive tokens from the scanner and takes appropriate action before requesting the next token. The action of parser is to write out the token. 11

The sequence diagram of the overall code maintenance process 12

The Sample Class Diagram of the CToken Hierarchy 13

Token Classes Derived from CToken Token Classes Derived from CToken 14

Valid Formatting flags Valid Formatting flags 15

Format Strings for C++ Format Strings for C++ 16

Result 17

Conclusion The mining algorithms works on software engineering data like text, sequences, graphs which improves software engineering tasks like Programming, Maintenance, Bug Detection & Debugging. The author only implemented the tool for source code management, it is useful for code maintenance and programming. For a programmer, bug detection and debugging is more important, so how to use the mining algorithms to assist programmer is the future work. 18

Thank you for your listening!