본문 바로가기
호기심_메모

SW공학 : SW공학

by 겸손하게 빚진자로, 밝게 인사 2016. 4. 19.
728x90

□ SW의 발전과정


1세대 : Batch 처리

2세대 : 멀티유저, 실시간 SW 및 DB

3세대 : 분산시스템

4세대 : 객체지향, Reuse

5세대 : Component 기반 SW



□ SW의 특성 (비복변순무비복개)


- 비가시성 : code가 외부에 노출되지 않고 기억소자에 내재

- 복잡성 : 정형적인 구조가 아닌 비규칙적이고 비정규적임

- 변경성 : 필요에 따라 수정 및 개선이 가능한 진화성(Evolution)

- 순응성 : 사용자 요구 또는 환경변화에 순응하여 적절히 변형

- 무형성 : 형체없음

- 비마모성 : 외부의 환경에 의해 마모되지 않음

- 복제성 : 간단하고 쉽게 다양한 형태와 노력으로 쉽게 복제

- 개발성 : 제조가 아닌 소스코드 개발의 산출물



□ SW의 위기


- 품질문제(Snowball Effect), 유지보수의 어려움, 동일한 문제의 반복, Reuse 불가, 품질저하, 

  생산성 약화, 개발납기 미준수, 전문가 부족, 복잡화 등으로 인해 사용자 요구사항에

  대응 및 대처가 어려움


- 배경 

  1. 전문가부족

  2. SW 개발방식

  3. SW 산업인식


 - SW위기 해결방법

  1. SW 개발 및 유지보수에 SW 공학적 접근 필요

  2. 표준화, 자동화 도구, 품질보증 체계 확립 등이 필요(프로세스화)



□ SW 공학의 구성요소  (도언기원)

 

 1. 도구 : SW 개발절차의 일부를 돕기위한 SW 프로그램

 2. 언어 : 기호, 단어, 문장 등을 구성하는 규칙, 언어는 최종단계에서 SW 제품을 표현하는 수단

 3. 기법 ; SW프로세스의 일부분을 수행하는 것을 돕는 순차적인 절차

 4. 원리 : 수많은 경험자와 전문가의 지혜를 집대성한 것



□ SW 공학의 원리 (정관모추변일점)


 1. 정형성 엄격 : 

    - 수학적 표현과 증명, 정형화 기법(고신뢰도)

      SW명세 도는 문서화를 엄격히 관리

    - 기술 : UML, Design Pattern(모호성을 줄임)

 2. 관심사의 분리

    - 개발 진행 단계의 분리

      단계별, 품질별, 크기별 역할별 분리

    - 분석 -> 설계 -> 개발단계 분리

 3. 모듈화

    - 결합도는 낮추고 (loosely coupled) 응집력은 높임 (highly cohesive)

    - 최소한의 공유 또는 교환 횟수

 4. 추상화

    - 각 단계별 목적에 부합된 정보만 취득

    - 객체지향 기법의 class 관계

    - 기술 : Design pattern

 5. 변화예측

    - 변화가 예상되는 부분을 가능하면 다른 부분으로 독립 (분리)

    - 기술 : 3-Tier(CVM : Contorl View Model), client / Server

 6. 일반화

    - 공통적인 SW를 개발하여 그 SW의 재사용 가능성을 높이고자 함

    - 기술 : CBD 개발 방법론

 7. 점진화

    - 단위 테스트 완료된 모듈은 통합 검증

    - 단위 -> 통합테스트



□ SWEBOK (SW Engineering Body of Knowledge)


- 5가지 목적 

 1. 세계적으로 소프트웨어 공학에 대해 일관성 있는 정보를 전달한다. 

 2. 소프트웨어 공학의 범위를 명확히 정하고 전산학, 수학, 프로젝트 관리와 같은 다른 활동과의 차이를 명백히 한다. 

 3. 소프트웨어 공학의 내용을 설명한다. 

 4. 소프트웨어 공학 지식체계에 대한 쉬운 Top-Down 접근법을 제공한다. 

 5. 인증이나 자격증의 교과과정을 위한 기반을 제공한다.


- 영역 



1 소프트웨어 요구사항(Software Requirements)

2 소프트웨어 설계(Software Design)

3 소프트웨어 구현(Software Construction)

4 소프트웨어 테스팅(Software Testing)

5 소프트웨어 유지보수(Software Maintenance)

6 소프트웨어 형상관리(Software Configuration Management)

7 소프트웨어 공학 관리(Software Engineering Management)

8 소프트웨어 공학 프로세스(Software Engineering Process)

9 소프트웨어 공학 모델과 방법론(Software Engineering Models and Methods)

10 소프트웨어 품질(Software Quality)

11 소프트웨어 공학 전문 관례(Software Engineering Professional Practice)

12 소프트웨어 공학 경제론(Software Engineering Economics)

13 컴퓨팅 기초론(Computing Foundations)

14 수학적 기초론(Mathematical Foundations)

15 공학 기초론(Engineering Foundations)



□ 국내 SW 산업 육성 방안 : 5대 과제

 - R&D 기술기반 구축

 - 최고수준의 인재발굴

 - SW 생태계를 개선

 - 국제 협력 강화

 - 선택과 집중

※ OSS : Open Source Software




□ SW 설계원리 중 Module화

 - 결합도(coupling)과 응집도(Cohesion)을 통해 측정
















반응형

'호기심_메모' 카테고리의 다른 글

SW공학 : SW개발 방법론  (0) 2016.04.20
SW공학 : SW 개발 모델(모형)  (0) 2016.04.19
[유용한사이트] 공개 SW 테크앤팁  (0) 2016.04.09
인터클라우드(Intercloud)  (0) 2016.02.13
방화벽 모드  (0) 2015.11.05