SlideShare a Scribd company logo
1 of 25
Click To Edit Title Style                                                              LOGO Engineering
                                                                                               Software
                                                                                                  Expert Group




   Click to add text to your presentation




                           코드품질 및 구조 개선 제안서




                                               Copyrightⓒ 2013 by SEEG, All Rights Reserved
Copyrightⓒ 2010 by SEEG, All Rights Reserved                                                            Software Engineering
                                                                                                            Expert Group
일반적인 SW 개발 현상
       Click To Edit Title Style                                                                       LOGO


An intrinsic property of software in a real-world environment
   Click to add text to your presentation




          Enhanced
                                                                                          More complex

            Modified

                                                                                            Drift away
            Adapted                                                                  from its original design




                                               Tom Mens and Tom Tourwe, “A Survey of Software Refactoring”, IEEE Transactions
                                               on Software Engineering, 2004, Vol. 30, Issue 2, pp. 126 - 139

Copyrightⓒ 2013 by SEEG, All Rights Reserved                2                                                      Software Engineering
                                                                                                                       Expert Group
유지보수에서 대부분의 비용발생
      Click To Edit Title Style                                    LOGO


the major part of the total software development cost is devoted to …
   Click to add text to your presentation




Copyrightⓒ 2013 by SEEG, All Rights Reserved   3                          Software Engineering
                                                                              Expert Group
구조의Edit Title없는 요구사항 구현
      Click To
               개선 Style                                          LOGO


Most software products are developed from legacy code with small modifications.
   Click to add text to your presentation




                                               productization




                             Legacy Code

                                                  update




Copyrightⓒ 2013 by SEEG, All Rights Reserved          4                 Software Engineering
                                                                            Expert Group
Click To Edit Title Style                                                                LOGO
       Software aging

Better software development methods and tools do not solve this problem.
Their increased text to your used to implement more new requirements within the
  Click to add capacity is presentation
same time frame




                                                     The Spiral of Complex




                                               R.L. Glass, “Maintenance: Less Is Not More,” IEEE Software, July/Aug. 1998.


Copyrightⓒ 2013 by SEEG, All Rights Reserved     5                                                           Software Engineering
                                                                                                                 Expert Group
AgingEdit Title Style
       Click To
                Symptom                                                                                    LOGO



   Click to add text to your presentation
       Symptom                        Description                                                             Metrics

                                  the system includes many components not necessary to carry out      Unused data,
  Pollution
                                  the business functions                                              Duplicated code
                                  the knowledge of the application domain and its evolution is        Design spec,
  No documents                    spread over the programs and can no longer be derived from the      API doc,
                                  documentation                                                       References
                                  the names of components have little lexical meaning or are in any
  Poor lexicons                   case inconsistent with the meaning of the components they           Naming convention
                                  identify
                                                                                                      Call graph,
                                  the programs and their components are linked by an extensive
  Tightly Coupling                                                                                    Fan-in,
                                  network of data or control flows
                                                                                                      Fan-out
                                  the system’s architecture consists of several different solutions
                                  that can no longer be distinguished; even though the software
  Architecture Erosion            started out with a high quality basic architecture, the             Dependency
                                  superimposition of these other hacked solutions during
                                  maintenance has damaged its quality




Copyrightⓒ 2013 by SEEG, All Rights Reserved                     6                                                      Software Engineering
                                                                                                                            Expert Group
Click To Edit Title Style
        Software aging                         현상의 예                                    LOGO



   Click to add text to your presentation
   • Bad smell code  고수준의 결함밀도
                                               Domain                defect density
                               Small devices                                   4.787
                               Wireless capabilities                           3.092
                               Target HW is new or evolving                    2.588
                               Large stationery equipment                      2.495
                               Real time                                       2.172
                               Multi-tasking                                   2.104
                               DB interface                                    1.459
                               Biometrics                                      1.290
                               Power systems                                   1.093
                               Client Server                                   0.434
                               Command, control and communications             0.366
                               Satellite                                       0.358
                               Command and control                             0.180
                               GPS                                             0.134
                               Military ground vehicle                         0.106
                               Web based                                       0.091
                                                                      [SoftRel, 2007]

Copyrightⓒ 2013 by SEEG, All Rights Reserved              7                                    Software Engineering
                                                                                                   Expert Group
Click To Edit Title Style
        Software aging                         현상의 예                    LOGO



   Click to add text to your presentation
   • Bad smell code  Not maintainable

                                                           스파게티 코드 다수 존재



                                                       Feature enhance, bug fixing으로
                                                            인한 코드 수정 어려움



                                                       미흡한 영향평가로 new bug 등장



                                                             코드 수정 비용 증가



Copyrightⓒ 2013 by SEEG, All Rights Reserved      8                            Software Engineering
                                                                                   Expert Group
Click To Edit Title Style
        Software aging                          현상의 예                               LOGO



   Click to add text to your presentation
   • Bad smell code  duplicated code


                        일반적인 재사용

               기능 A                            기능 A’
                                                            동일한 코드 A1, A2, A3 존재
              함수 A1                            함수 A1
                                                            파일단위 재사용이 아닌 함수단위 재사용의 문제
                                 코             함수 A2
              함수 A2
                                 드                          미사용 변수 다수 존재 유발: 메모리 낭비
              함수 A3              복             함수 A3        추후 코드수정의 대상 설정 불명확
                                 사             함수 A4’
              함수 A4
                                                            소스사이즈의 15% 이상 code clone 발생(S사)
                a.c                              a’.c




Copyrightⓒ 2013 by SEEG, All Rights Reserved            9                                     Software Engineering
                                                                                                  Expert Group
Click To Edit Title Style
        Software aging                         현상의 예                          LOGO



   Click to add text to your presentation
   • 관리되지 않는 코드

                                                                   Domain Average
                                                    YOUR COMPANY
                                                                    (Multimedia)

                   # of Functions / Source File          ?             18.5
                   Build LOC / Function                  ?             30.2
                   Average Function Complexity           ?              6.0
                   Ratio of function complexity >
                   20                                    ?            5.4%
                   Ratio of function complexity >
                   50                                    ?            0.9%


Copyrightⓒ 2013 by SEEG, All Rights Reserved        10                               Software Engineering
                                                                                         Expert Group
Click To Edit Title Style
        Software aging                         현상의 예             LOGO



   Click to add text to your presentation
   • Deadcode

                  int deadcode_example1(int *p) {
                     if( p == NULL ) {
                     return -1;
                     }
                     use_p( *p );
                     if( p == NULL ) { // p cannot be null.
                         handle_error(); // Defect: Dead code.
                         return -1;
                     }
                     return 0;
                  }


Copyrightⓒ 2013 by SEEG, All Rights Reserved      11                    Software Engineering
                                                                            Expert Group
Click To Edit Title Style
        Software aging                         현상의 예               LOGO



   Click to add text to your presentation
   • Negative Returns

           void basic_negative() {
              int buff[1024];
              int x = some_function(); // some_function() might    return -1
              buff[x] = 0; // ERROR: buffer underrun at buff[-1]
           }




Copyrightⓒ 2013 by SEEG, All Rights Reserved      12                       Software Engineering
                                                                               Expert Group
Click To Edit Title Style
        Software aging                         현상의 예                LOGO



   Click to add text to your presentation
   • Overrun static

           void overrun() {
              struct some_struct vmax_mtd[2]; // vmax_mtd has 2 elements,
              // index 0 and 1
              if (!vmax_mtd[1] && !vmax_mtd[2]) { // incorrectly accessing
                                                       // vmax_mtd[2]

                         iounmap((void *)iomapadr);
                         return -ENXIO;
                  }
           }




Copyrightⓒ 2013 by SEEG, All Rights Reserved      13                       Software Engineering
                                                                               Expert Group
Click To Edit Title Style
          Software aging                       현상의 예   LOGO



   Click to add text Base Code로는 새로운 기능 보강 혹은 HW 변경에 대응 하기에
    • 기존 사용되는 to your presentation
           많은 시간과 수작업이 들어간다

     •     새로운 기능을 추가할 때에 기존 코드를 많이 수정해야 한다

     •     누적된 버전 업과 사양 변경으로 인한 SW 품질을 만족하기 어렵다

     •     개발자 교체 및 문서화 부족으로 인한 SW 코드 이해력이 떨어진다

     •     버그를 수정하면 예상치 않은 다른 버그가 발견된다

     •     우리 제품의 전체적인 아키텍처가 명확하지 않다

     •    어느 모듈을 집중적으로 테스트해야 할지 객관적인 판단 기준이
          필요하다

     •     릴리즈 후 보고되는 버그가 이젠 당연스럽다

Copyrightⓒ 2013 by SEEG, All Rights Reserved      14          Software Engineering
                                                                  Expert Group
Click To Edit Title Style                                                                  LOGO
       Reengineering is …


   Click to add text to your presentation




                                               *E.J. Chikofsky and J.H. Cross, “Reverse Engineering and Design Recovery:
                                               A Taxonomy,” IEEE Software, vol. 7, no. 1, pp. 13-17,1990.

Copyrightⓒ 2013 by SEEG, All Rights Reserved        15                                                        Software Engineering
                                                                                                                  Expert Group
Why To Edit Title Style
      Click
            Reengineering                                                                            LOGO


There is an urgent need for techniques that reduce software complexity by
incrementally improving thepresentation
   Click to add text to your internal software quality




                                               W.G. Griswold and D. Notkin, “Automated Assistance for Program Restructuring,”
                                               Trans. Software Eng. and Methodology, vol. 2, no. 3, pp. 228-269, July 1993.

Copyrightⓒ 2013 by SEEG, All Rights Reserved           16                                                        Software Engineering
                                                                                                                     Expert Group
Click
             Re-Engineering을 통한 품질 및 생산성 확보
       SW To Edit Title Style            LOGO



   Click급변하는 사업화에 대응할 수 있는 효과적인 대응 체계
    • to add text to your presentation



         개발 기간 짧고, 확장성                                SW Re-Engineering
          및 품질 개선 시급
                                                    방법 적용이 문제 해결의 Key

         기 검증된 코드 최대한
                                                      아키텍처 구조 개선
             재사용
                                                       프로그램 모듈화
          아키텍처 변경에 대한
                                                     SW 설계 문서 재 구축
           위험 부담 최소화




Copyrightⓒ 2013 by SEEG, All Rights Reserved   17                         Software Engineering
                                                                              Expert Group
BaseTo Edit Title Style 통한 품질 및 생산성 증대 효과LOGO
      Click Code 정비를




• Click to add text to your presentation 따라 크게 10배 정도 차이가 나타남
   SW 품질 및 생산성은 개발 환경 구축에
  -> 재사용 가능한 Base Code 확보를 통한 제품 융복합화, 다양한 제품
     개발 요구 대응



                                               A제품
                                        재사용                   [DTV 개발 사례]

                                         재사용
                                               B제품
                                                          개발 일정 및 투입인력 50% 단축

                                        재사용
     재사용 컴포넌트 기반                               C제품
    소프트웨어 아키텍처 운영

Copyrightⓒ 2013 by SEEG, All Rights Reserved         18                     Software Engineering
                                                                                Expert Group
효과적인 Title Style
      Click To Edit
                    SW Re-Engineering 단계                                 LOGO



   Click to add text to your presentation


              Legacy System                    現 제품 군 내 공용으로       재사용 가능 영역 선정
                 코드 및                             사용할 수 있는         (재사용 과 신규 개발
              아키텍처 분석                               Reference
                                                                      부문 구분)
                                                 Architecture 설계




                                                   Reference         System 빌드 및
              재사용 가능한                             Architecture      품질 기준에 따라
              컴포넌트 생성                          구조에 맞추어 구조화           검증 활동 수행




Copyrightⓒ 2013 by SEEG, All Rights Reserved          19                           Software Engineering
                                                                                       Expert Group
Click
            Re-Engineering의 핵심 기술
      SW To Edit Title Style                                            LOGO



   Click to 기존 text 시스템에presentation
            add SW to your 대한
                                                    아키텍처 및 코드 재구성
                  품질 및 재사용성 분석



                        코드 품질 측정                        재구조화
                                                      (Restructuring)


                                                         재분할
                    아키텍처 품질 분석
                                                       (Refactoring)




                    현 SW 수준 분석을 통해                  아키텍처 및 모듈화를 통한
                       재사용 수준 파악                      SW 시스템 재 구축



Copyrightⓒ 2013 by SEEG, All Rights Reserved   20                              Software Engineering
                                                                                   Expert Group
SW To Edit Title 을 통한 SW Quality 확보
      Click
            Re-Eng’ Style                                              LOGO


  •     아키텍처 및 컴포넌트의 품질 확보를 위해서는 정량적으로 측정 가능한
      Click to add text to your presentation 함
       목표 기준을 가지고 개선 활동을 수행해야

                        Code Quality                 Architecture Quality


                           함수 복잡도                   요구 사양 및 설계 문서 상태

                          함수간 호출 관계                    모듈간 호출 관계

                            전역 변수 수                     모듈화 상태


                      함수 및 모듈(File) 수                  아키텍처 스타일


                사용되지 않는 변수 및 함수                     아키텍처 및 모듈 재 사용성




Copyrightⓒ 2013 by SEEG, All Rights Reserved   21                             Software Engineering
                                                                                  Expert Group
SEEG SW Re-Engineering 방법론
       Click To Edit Title Style                    LOGO



   • 데이터 기반 개선활동presentation
   Click to add text to your




Copyrightⓒ 2013 by SEEG, All Rights Reserved   24          Software Engineering
                                                               Expert Group
Click To
               SW Re-Engineering 방법론
      SEEG Edit Title Style                                                    LOGO



   Click to add text to your presentation
    • 실무 Practice 기술 이전



                                                                  • 코드버전관리방법
                                               •성과분석및 운영          • 이슈관리방법




                                                             •재구조화방법
                                   •개선방법수립 및 개선              •Refactoring 방법




                          •기반코드분석                          •기반코드분석방법
                          •개선목표수립                          •지표수립방법



Copyrightⓒ 2013 by SEEG, All Rights Reserved          25                              Software Engineering
                                                                                          Expert Group
SEEG is …
       Click To Edit Title Style                                                                      LOGO


  • 2009년 12월에 설립된 SW Engineering 전문 회사
  • Click to add 조직운영, 개발 컨설팅 서비스 수행
      SW 기획, text to your presentation
               서비스                                     개요                              특징 (효과)            적용도메인
                                    국제 공인 수준의 개발 프로세스                           국제 수준 프로세스
          SW Process Model          프레임워크 및 SPI 조직 설정                           프레임워크 확보              •서비스 영역

          SW Process                프로세스 평가 기반 개발 능력 수준 파악,                     프로세스 품질 수준            IT, 정보 가전,
   SPI                              프로세스 개선, 프로세스 구축 가이드                        향상
          Assessment                                                                                  산업용 기기 ,
                                                                                                      산업용 시스템
                                    SW개발 특수성에 입각한 프로젝트 관리                       효율적인 프로젝트 관리           全 SW 개발 영역
          SW Project Mgt.           및 조직 운영 프로세스 구축 가이드                         능력 확보 (독립 조직 운영)
                                    UML 1.4, 2.0 기반 객체지향 개발 프로세스                Code Modularity &     특히, 전기 전자 제품
          객체지향 개발 방법론               및 분석 설계 방법 가이드                              Reusability 확보        제조업 기반 적용
                                                                                                      경험이 풍부
                                    실시간 시스템 대상 Top down 기능 분할                   정교한 Task설계 가이드를
          실시간 구조적 방법론               중심 분석/설계 개발 방법 가이드                          통한 Reliability확보
                                    제품 군 Roadmap에 따른 SW Platform 구축             제품 군 단위 대단위           *적용 회사
          Product Line Eng.         및 Platform기반 재사용 방법 가이드                     SW 재사용
   개발                                                                                                 삼성 전자
   방법                               복잡하고 재사용이 어려운 Legacy System을                Base Code 의 Quality   LG 전자
    론     Software Re-Eng.          Re structuring & Re-factoring을 통해 재사용이 용이   및 Reusability 향상      LS 산전
                                    한 SW 구조 및 컴포넌트로 재편                                                한전 KDN
                                                                                                      Telechips
                                    개발 기본 요소인 요구사항의 도출/정립/                      요구사항 기반 품질            Inpion
          Requirement Eng.          추적성 확보를 위한 체계적인 프로세스 가이드                    관리 능력 향상              Ezcaretech
          Attribute Driven          품질 속설 기반 요구사항 도출, 아키텍처 설계                   품질 요구사항 적용
          Design                    및 검증 방법론 가이드                                능력 향상

                                    SW 품질 활동 전문화를 위한 품질 검증 및                    SW 산출물 품질 수준
   SQA Process & Organization       품질 Audit 가이드                                향상


Copyrightⓒ 2013 by SEEG, All Rights Reserved                  26                                                   Software Engineering
                                                                                                                       Expert Group
Click To Edit Title Style                                     LOGO
        Contact us

   Click to add text to your presentation




                                                •   김진태
                                                •   사무실: 070-7584-4797
                                                •   모바일: 010-9962-4567
                                                •   Email:
                                                     jtkim@swexpertgroup.com



Copyrightⓒ 2013 by SEEG, All Rights Reserved   27                           Software Engineering
                                                                                Expert Group

More Related Content

What's hot

Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testingikhwanhayat
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.Andrey Oleynik
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesDerek Smith
 
CXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptxCXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptxkirankumarpalakurthi
 
TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)Mr. Vengineer
 
Git을 조금 더 알아보자!
Git을 조금 더 알아보자!Git을 조금 더 알아보자!
Git을 조금 더 알아보자!Young Kim
 
Code Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCoCode Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCoEvgeny Mandrikov
 
Test case design techniques
Test case design techniquesTest case design techniques
Test case design techniquesAshutosh Garg
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesNirav Desai
 
Unit Testing vs Integration Testing
Unit Testing vs Integration TestingUnit Testing vs Integration Testing
Unit Testing vs Integration TestingRock Interview
 
Code coverage & tools
Code coverage & toolsCode coverage & tools
Code coverage & toolsRajesh Kumar
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다Arawn Park
 
[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균
[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균
[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균NAVER D2
 
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)Amazon Web Services Korea
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
 
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話Takuto Wada
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best PracticesTrisha Gee
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider貴志 上坂
 

What's hot (20)

Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testing
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best Practices
 
CXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptxCXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptx
 
Comparison manual & automation
Comparison manual & automationComparison manual & automation
Comparison manual & automation
 
TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)
 
Git을 조금 더 알아보자!
Git을 조금 더 알아보자!Git을 조금 더 알아보자!
Git을 조금 더 알아보자!
 
Code Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCoCode Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCo
 
Test case design techniques
Test case design techniquesTest case design techniques
Test case design techniques
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfaces
 
Unit Testing vs Integration Testing
Unit Testing vs Integration TestingUnit Testing vs Integration Testing
Unit Testing vs Integration Testing
 
Code coverage & tools
Code coverage & toolsCode coverage & tools
Code coverage & tools
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
 
[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균
[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균
[135] 우리 팀에서도 코드리뷰를 할 수 있을까 안오균
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 

Viewers also liked

코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)ChulHui Lee
 
간단하게 알아보는 좋은 코드 서영훈
간단하게 알아보는 좋은 코드   서영훈간단하게 알아보는 좋은 코드   서영훈
간단하게 알아보는 좋은 코드 서영훈Seo YoungHoon
 
[2012 03 17]clean_code 14장 점진적개선
[2012 03 17]clean_code 14장 점진적개선[2012 03 17]clean_code 14장 점진적개선
[2012 03 17]clean_code 14장 점진적개선Jong Pil Won
 
Code Review with Sonar
Code Review with SonarCode Review with Sonar
Code Review with SonarMax Kleiner
 
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점Jubok Kim
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)영기 김
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)영기 김
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)영기 김
 
애자일은 반드시 없어져야 한다
애자일은 반드시 없어져야 한다애자일은 반드시 없어져야 한다
애자일은 반드시 없어져야 한다종범 고
 
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...Jemin Huh
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법 YoungSu Son
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱NAVER D2
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Viewers also liked (17)

코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)
 
간단하게 알아보는 좋은 코드 서영훈
간단하게 알아보는 좋은 코드   서영훈간단하게 알아보는 좋은 코드   서영훈
간단하게 알아보는 좋은 코드 서영훈
 
[2012 03 17]clean_code 14장 점진적개선
[2012 03 17]clean_code 14장 점진적개선[2012 03 17]clean_code 14장 점진적개선
[2012 03 17]clean_code 14장 점진적개선
 
Code Review with Sonar
Code Review with SonarCode Review with Sonar
Code Review with Sonar
 
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)
 
The Introduction to Refactoring
The Introduction to Refactoring The Introduction to Refactoring
The Introduction to Refactoring
 
What is agile
What is agileWhat is agile
What is agile
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)
 
애자일은 반드시 없어져야 한다
애자일은 반드시 없어져야 한다애자일은 반드시 없어져야 한다
애자일은 반드시 없어져야 한다
 
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to 소스코드를 개선하여 효율성과 품질을 향상 시키는 방법

Clean code 정보통신대학원_2012_spring
Clean code 정보통신대학원_2012_springClean code 정보통신대학원_2012_spring
Clean code 정보통신대학원_2012_spring김진태 Jintae Kim
 
How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)Ye Joo Park
 
Cloud_Talent_Management
Cloud_Talent_ManagementCloud_Talent_Management
Cloud_Talent_ManagementAdam Park
 
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입Chanjin Park
 
SAP 플랫폼을 활용한 혁신전략
SAP 플랫폼을 활용한 혁신전략SAP 플랫폼을 활용한 혁신전략
SAP 플랫폼을 활용한 혁신전략mosaicnet
 
StarUML NS Guide - Introduction
StarUML NS Guide -  IntroductionStarUML NS Guide -  Introduction
StarUML NS Guide - Introduction태욱 양
 
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...Hannah Kim
 
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXpressEngine
 
스마트 모바일 앱 개발 방법론(2)
스마트 모바일 앱 개발 방법론(2)스마트 모바일 앱 개발 방법론(2)
스마트 모바일 앱 개발 방법론(2)mosaicnet
 
Dev rookie codecomplete-1
Dev rookie codecomplete-1Dev rookie codecomplete-1
Dev rookie codecomplete-1대영 노
 
RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개
RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개
RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개Lee Sangboo
 
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTIONKOPENS .Inc
 
한국 비즈니스 소프트웨어 산업 문제점과 개선방안
한국 비즈니스 소프트웨어 산업 문제점과 개선방안한국 비즈니스 소프트웨어 산업 문제점과 개선방안
한국 비즈니스 소프트웨어 산업 문제점과 개선방안Yongkyoo Park
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처영기 김
 
Backend Master | 3.1.3 Build - Java build tool - Gradle
Backend Master | 3.1.3 Build - Java build tool - GradleBackend Master | 3.1.3 Build - Java build tool - Gradle
Backend Master | 3.1.3 Build - Java build tool - GradleKyunghun Jeon
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?John Kim
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장sung ki choi
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020AeYeong Kim
 
더 나은 SW프로젝트를 위해
 더 나은 SW프로젝트를 위해 더 나은 SW프로젝트를 위해
더 나은 SW프로젝트를 위해지수 윤
 
모바일, 클라우드, 웹 환경에 필요한 DB관리
모바일, 클라우드, 웹 환경에 필요한 DB관리모바일, 클라우드, 웹 환경에 필요한 DB관리
모바일, 클라우드, 웹 환경에 필요한 DB관리mosaicnet
 

Similar to 소스코드를 개선하여 효율성과 품질을 향상 시키는 방법 (20)

Clean code 정보통신대학원_2012_spring
Clean code 정보통신대학원_2012_springClean code 정보통신대학원_2012_spring
Clean code 정보통신대학원_2012_spring
 
How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)
 
Cloud_Talent_Management
Cloud_Talent_ManagementCloud_Talent_Management
Cloud_Talent_Management
 
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
 
SAP 플랫폼을 활용한 혁신전략
SAP 플랫폼을 활용한 혁신전략SAP 플랫폼을 활용한 혁신전략
SAP 플랫폼을 활용한 혁신전략
 
StarUML NS Guide - Introduction
StarUML NS Guide -  IntroductionStarUML NS Guide -  Introduction
StarUML NS Guide - Introduction
 
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
 
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynote
 
스마트 모바일 앱 개발 방법론(2)
스마트 모바일 앱 개발 방법론(2)스마트 모바일 앱 개발 방법론(2)
스마트 모바일 앱 개발 방법론(2)
 
Dev rookie codecomplete-1
Dev rookie codecomplete-1Dev rookie codecomplete-1
Dev rookie codecomplete-1
 
RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개
RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개
RealDisplay Platform 으로 구현하는 REAL-TIME 로그 분석 및 관리 솔루션 소개
 
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
 
한국 비즈니스 소프트웨어 산업 문제점과 개선방안
한국 비즈니스 소프트웨어 산업 문제점과 개선방안한국 비즈니스 소프트웨어 산업 문제점과 개선방안
한국 비즈니스 소프트웨어 산업 문제점과 개선방안
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
 
Backend Master | 3.1.3 Build - Java build tool - Gradle
Backend Master | 3.1.3 Build - Java build tool - GradleBackend Master | 3.1.3 Build - Java build tool - Gradle
Backend Master | 3.1.3 Build - Java build tool - Gradle
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020
 
더 나은 SW프로젝트를 위해
 더 나은 SW프로젝트를 위해 더 나은 SW프로젝트를 위해
더 나은 SW프로젝트를 위해
 
모바일, 클라우드, 웹 환경에 필요한 DB관리
모바일, 클라우드, 웹 환경에 필요한 DB관리모바일, 클라우드, 웹 환경에 필요한 DB관리
모바일, 클라우드, 웹 환경에 필요한 DB관리
 

소스코드를 개선하여 효율성과 품질을 향상 시키는 방법

  • 1. Click To Edit Title Style LOGO Engineering Software Expert Group Click to add text to your presentation 코드품질 및 구조 개선 제안서 Copyrightⓒ 2013 by SEEG, All Rights Reserved Copyrightⓒ 2010 by SEEG, All Rights Reserved Software Engineering Expert Group
  • 2. 일반적인 SW 개발 현상 Click To Edit Title Style LOGO An intrinsic property of software in a real-world environment Click to add text to your presentation Enhanced More complex Modified Drift away Adapted from its original design Tom Mens and Tom Tourwe, “A Survey of Software Refactoring”, IEEE Transactions on Software Engineering, 2004, Vol. 30, Issue 2, pp. 126 - 139 Copyrightⓒ 2013 by SEEG, All Rights Reserved 2 Software Engineering Expert Group
  • 3. 유지보수에서 대부분의 비용발생 Click To Edit Title Style LOGO the major part of the total software development cost is devoted to … Click to add text to your presentation Copyrightⓒ 2013 by SEEG, All Rights Reserved 3 Software Engineering Expert Group
  • 4. 구조의Edit Title없는 요구사항 구현 Click To 개선 Style LOGO Most software products are developed from legacy code with small modifications. Click to add text to your presentation productization Legacy Code update Copyrightⓒ 2013 by SEEG, All Rights Reserved 4 Software Engineering Expert Group
  • 5. Click To Edit Title Style LOGO Software aging Better software development methods and tools do not solve this problem. Their increased text to your used to implement more new requirements within the Click to add capacity is presentation same time frame The Spiral of Complex R.L. Glass, “Maintenance: Less Is Not More,” IEEE Software, July/Aug. 1998. Copyrightⓒ 2013 by SEEG, All Rights Reserved 5 Software Engineering Expert Group
  • 6. AgingEdit Title Style Click To Symptom LOGO Click to add text to your presentation Symptom Description Metrics the system includes many components not necessary to carry out Unused data, Pollution the business functions Duplicated code the knowledge of the application domain and its evolution is Design spec, No documents spread over the programs and can no longer be derived from the API doc, documentation References the names of components have little lexical meaning or are in any Poor lexicons case inconsistent with the meaning of the components they Naming convention identify Call graph, the programs and their components are linked by an extensive Tightly Coupling Fan-in, network of data or control flows Fan-out the system’s architecture consists of several different solutions that can no longer be distinguished; even though the software Architecture Erosion started out with a high quality basic architecture, the Dependency superimposition of these other hacked solutions during maintenance has damaged its quality Copyrightⓒ 2013 by SEEG, All Rights Reserved 6 Software Engineering Expert Group
  • 7. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text to your presentation • Bad smell code  고수준의 결함밀도 Domain defect density Small devices 4.787 Wireless capabilities 3.092 Target HW is new or evolving 2.588 Large stationery equipment 2.495 Real time 2.172 Multi-tasking 2.104 DB interface 1.459 Biometrics 1.290 Power systems 1.093 Client Server 0.434 Command, control and communications 0.366 Satellite 0.358 Command and control 0.180 GPS 0.134 Military ground vehicle 0.106 Web based 0.091 [SoftRel, 2007] Copyrightⓒ 2013 by SEEG, All Rights Reserved 7 Software Engineering Expert Group
  • 8. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text to your presentation • Bad smell code  Not maintainable 스파게티 코드 다수 존재 Feature enhance, bug fixing으로 인한 코드 수정 어려움 미흡한 영향평가로 new bug 등장 코드 수정 비용 증가 Copyrightⓒ 2013 by SEEG, All Rights Reserved 8 Software Engineering Expert Group
  • 9. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text to your presentation • Bad smell code  duplicated code 일반적인 재사용 기능 A 기능 A’ 동일한 코드 A1, A2, A3 존재 함수 A1 함수 A1 파일단위 재사용이 아닌 함수단위 재사용의 문제 코 함수 A2 함수 A2 드 미사용 변수 다수 존재 유발: 메모리 낭비 함수 A3 복 함수 A3 추후 코드수정의 대상 설정 불명확 사 함수 A4’ 함수 A4 소스사이즈의 15% 이상 code clone 발생(S사) a.c a’.c Copyrightⓒ 2013 by SEEG, All Rights Reserved 9 Software Engineering Expert Group
  • 10. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text to your presentation • 관리되지 않는 코드 Domain Average YOUR COMPANY (Multimedia) # of Functions / Source File ? 18.5 Build LOC / Function ? 30.2 Average Function Complexity ? 6.0 Ratio of function complexity > 20 ? 5.4% Ratio of function complexity > 50 ? 0.9% Copyrightⓒ 2013 by SEEG, All Rights Reserved 10 Software Engineering Expert Group
  • 11. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text to your presentation • Deadcode int deadcode_example1(int *p) { if( p == NULL ) { return -1; } use_p( *p ); if( p == NULL ) { // p cannot be null. handle_error(); // Defect: Dead code. return -1; } return 0; } Copyrightⓒ 2013 by SEEG, All Rights Reserved 11 Software Engineering Expert Group
  • 12. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text to your presentation • Negative Returns void basic_negative() { int buff[1024]; int x = some_function(); // some_function() might return -1 buff[x] = 0; // ERROR: buffer underrun at buff[-1] } Copyrightⓒ 2013 by SEEG, All Rights Reserved 12 Software Engineering Expert Group
  • 13. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text to your presentation • Overrun static void overrun() { struct some_struct vmax_mtd[2]; // vmax_mtd has 2 elements, // index 0 and 1 if (!vmax_mtd[1] && !vmax_mtd[2]) { // incorrectly accessing // vmax_mtd[2] iounmap((void *)iomapadr); return -ENXIO; } } Copyrightⓒ 2013 by SEEG, All Rights Reserved 13 Software Engineering Expert Group
  • 14. Click To Edit Title Style Software aging 현상의 예 LOGO Click to add text Base Code로는 새로운 기능 보강 혹은 HW 변경에 대응 하기에 • 기존 사용되는 to your presentation 많은 시간과 수작업이 들어간다 • 새로운 기능을 추가할 때에 기존 코드를 많이 수정해야 한다 • 누적된 버전 업과 사양 변경으로 인한 SW 품질을 만족하기 어렵다 • 개발자 교체 및 문서화 부족으로 인한 SW 코드 이해력이 떨어진다 • 버그를 수정하면 예상치 않은 다른 버그가 발견된다 • 우리 제품의 전체적인 아키텍처가 명확하지 않다 • 어느 모듈을 집중적으로 테스트해야 할지 객관적인 판단 기준이 필요하다 • 릴리즈 후 보고되는 버그가 이젠 당연스럽다 Copyrightⓒ 2013 by SEEG, All Rights Reserved 14 Software Engineering Expert Group
  • 15. Click To Edit Title Style LOGO Reengineering is … Click to add text to your presentation *E.J. Chikofsky and J.H. Cross, “Reverse Engineering and Design Recovery: A Taxonomy,” IEEE Software, vol. 7, no. 1, pp. 13-17,1990. Copyrightⓒ 2013 by SEEG, All Rights Reserved 15 Software Engineering Expert Group
  • 16. Why To Edit Title Style Click Reengineering LOGO There is an urgent need for techniques that reduce software complexity by incrementally improving thepresentation Click to add text to your internal software quality W.G. Griswold and D. Notkin, “Automated Assistance for Program Restructuring,” Trans. Software Eng. and Methodology, vol. 2, no. 3, pp. 228-269, July 1993. Copyrightⓒ 2013 by SEEG, All Rights Reserved 16 Software Engineering Expert Group
  • 17. Click Re-Engineering을 통한 품질 및 생산성 확보 SW To Edit Title Style LOGO Click급변하는 사업화에 대응할 수 있는 효과적인 대응 체계 • to add text to your presentation 개발 기간 짧고, 확장성 SW Re-Engineering 및 품질 개선 시급 방법 적용이 문제 해결의 Key 기 검증된 코드 최대한 아키텍처 구조 개선 재사용 프로그램 모듈화 아키텍처 변경에 대한 SW 설계 문서 재 구축 위험 부담 최소화 Copyrightⓒ 2013 by SEEG, All Rights Reserved 17 Software Engineering Expert Group
  • 18. BaseTo Edit Title Style 통한 품질 및 생산성 증대 효과LOGO Click Code 정비를 • Click to add text to your presentation 따라 크게 10배 정도 차이가 나타남 SW 품질 및 생산성은 개발 환경 구축에 -> 재사용 가능한 Base Code 확보를 통한 제품 융복합화, 다양한 제품 개발 요구 대응 A제품 재사용 [DTV 개발 사례] 재사용 B제품 개발 일정 및 투입인력 50% 단축 재사용 재사용 컴포넌트 기반 C제품 소프트웨어 아키텍처 운영 Copyrightⓒ 2013 by SEEG, All Rights Reserved 18 Software Engineering Expert Group
  • 19. 효과적인 Title Style Click To Edit SW Re-Engineering 단계 LOGO Click to add text to your presentation Legacy System 現 제품 군 내 공용으로 재사용 가능 영역 선정 코드 및 사용할 수 있는 (재사용 과 신규 개발 아키텍처 분석 Reference 부문 구분) Architecture 설계 Reference System 빌드 및 재사용 가능한 Architecture 품질 기준에 따라 컴포넌트 생성 구조에 맞추어 구조화 검증 활동 수행 Copyrightⓒ 2013 by SEEG, All Rights Reserved 19 Software Engineering Expert Group
  • 20. Click Re-Engineering의 핵심 기술 SW To Edit Title Style LOGO Click to 기존 text 시스템에presentation add SW to your 대한 아키텍처 및 코드 재구성 품질 및 재사용성 분석 코드 품질 측정 재구조화 (Restructuring) 재분할 아키텍처 품질 분석 (Refactoring) 현 SW 수준 분석을 통해 아키텍처 및 모듈화를 통한 재사용 수준 파악 SW 시스템 재 구축 Copyrightⓒ 2013 by SEEG, All Rights Reserved 20 Software Engineering Expert Group
  • 21. SW To Edit Title 을 통한 SW Quality 확보 Click Re-Eng’ Style LOGO • 아키텍처 및 컴포넌트의 품질 확보를 위해서는 정량적으로 측정 가능한 Click to add text to your presentation 함 목표 기준을 가지고 개선 활동을 수행해야 Code Quality Architecture Quality 함수 복잡도 요구 사양 및 설계 문서 상태 함수간 호출 관계 모듈간 호출 관계 전역 변수 수 모듈화 상태 함수 및 모듈(File) 수 아키텍처 스타일 사용되지 않는 변수 및 함수 아키텍처 및 모듈 재 사용성 Copyrightⓒ 2013 by SEEG, All Rights Reserved 21 Software Engineering Expert Group
  • 22. SEEG SW Re-Engineering 방법론 Click To Edit Title Style LOGO • 데이터 기반 개선활동presentation Click to add text to your Copyrightⓒ 2013 by SEEG, All Rights Reserved 24 Software Engineering Expert Group
  • 23. Click To SW Re-Engineering 방법론 SEEG Edit Title Style LOGO Click to add text to your presentation • 실무 Practice 기술 이전 • 코드버전관리방법 •성과분석및 운영 • 이슈관리방법 •재구조화방법 •개선방법수립 및 개선 •Refactoring 방법 •기반코드분석 •기반코드분석방법 •개선목표수립 •지표수립방법 Copyrightⓒ 2013 by SEEG, All Rights Reserved 25 Software Engineering Expert Group
  • 24. SEEG is … Click To Edit Title Style LOGO • 2009년 12월에 설립된 SW Engineering 전문 회사 • Click to add 조직운영, 개발 컨설팅 서비스 수행 SW 기획, text to your presentation 서비스 개요 특징 (효과) 적용도메인 국제 공인 수준의 개발 프로세스 국제 수준 프로세스 SW Process Model 프레임워크 및 SPI 조직 설정 프레임워크 확보 •서비스 영역 SW Process 프로세스 평가 기반 개발 능력 수준 파악, 프로세스 품질 수준 IT, 정보 가전, SPI 프로세스 개선, 프로세스 구축 가이드 향상 Assessment 산업용 기기 , 산업용 시스템 SW개발 특수성에 입각한 프로젝트 관리 효율적인 프로젝트 관리 全 SW 개발 영역 SW Project Mgt. 및 조직 운영 프로세스 구축 가이드 능력 확보 (독립 조직 운영) UML 1.4, 2.0 기반 객체지향 개발 프로세스 Code Modularity & 특히, 전기 전자 제품 객체지향 개발 방법론 및 분석 설계 방법 가이드 Reusability 확보 제조업 기반 적용 경험이 풍부 실시간 시스템 대상 Top down 기능 분할 정교한 Task설계 가이드를 실시간 구조적 방법론 중심 분석/설계 개발 방법 가이드 통한 Reliability확보 제품 군 Roadmap에 따른 SW Platform 구축 제품 군 단위 대단위 *적용 회사 Product Line Eng. 및 Platform기반 재사용 방법 가이드 SW 재사용 개발 삼성 전자 방법 복잡하고 재사용이 어려운 Legacy System을 Base Code 의 Quality LG 전자 론 Software Re-Eng. Re structuring & Re-factoring을 통해 재사용이 용이 및 Reusability 향상 LS 산전 한 SW 구조 및 컴포넌트로 재편 한전 KDN Telechips 개발 기본 요소인 요구사항의 도출/정립/ 요구사항 기반 품질 Inpion Requirement Eng. 추적성 확보를 위한 체계적인 프로세스 가이드 관리 능력 향상 Ezcaretech Attribute Driven 품질 속설 기반 요구사항 도출, 아키텍처 설계 품질 요구사항 적용 Design 및 검증 방법론 가이드 능력 향상 SW 품질 활동 전문화를 위한 품질 검증 및 SW 산출물 품질 수준 SQA Process & Organization 품질 Audit 가이드 향상 Copyrightⓒ 2013 by SEEG, All Rights Reserved 26 Software Engineering Expert Group
  • 25. Click To Edit Title Style LOGO Contact us Click to add text to your presentation • 김진태 • 사무실: 070-7584-4797 • 모바일: 010-9962-4567 • Email: jtkim@swexpertgroup.com Copyrightⓒ 2013 by SEEG, All Rights Reserved 27 Software Engineering Expert Group