본문 바로가기
TechNote/소프트웨어 공학(SW)

001.소프트웨어 공학

by 도지웅 2022. 9. 29.
반응형

1. 기업 경영 전략 달성을 위한 소프트웨어 공학

가. 소프트웨어 공학의 정의

  • 소프트웨어 Product를 생산하기 위해 소프트웨어 개발과 운영, 유지보수 활동에 프로세스(절차)-방법-도구 등 적용 및 연구를 개발하는 활동
  • 사용자가 요구하는 소프트웨어 요구사항을 공학적인 기법을 이용하여 개발하고 관리/운영하기 위한 이론 및 실무적 기술
  • 소프트웨어 위기를 극복하기 위한 공학적/실무적 차원의 접근 학문

나. 소프트웨어 공학의 목표

중요성 설명
경영적 목표 기업 경영 전략 달성
IT Governance 체제 수립
재무적 이익 달성
관리적 목표 IT투자 비용의 감소, 사용자 만족도의 향상
업무 효과성, 효율성의 향상
프로세스 낭비요소 제거
기술적 목표 소프트웨어 자산의 재사용, 고품질의 소프트웨어 생산, 소프트웨어 개발 생산성 향상
일정/비용/인력의 최대 활용을 통한 납기 유지

다. 소프트웨어 공학의 등장 배경

  • 소프트웨어 복잡도 및 요구사항 증가
  • 소프트웨어 개발비용, 일정, 자원 예측의 어려움
  • 낮은 품질의 소프트웨어 개발과 생산성의 하락

 

2. 소프트웨어 공학의 원리와 구성요소

가. 소프트웨어 공학의 원리

원리 설명 사례
정형성과
엄격
명확한 표현을 통해 모호함을 줄임
엄격 : 정형화 기법 대체
구현하려는 소프트웨어에 대한 정형화된 명세 및 엄격한 설계
프로그래밍 언어, 분석, 설계의 정형화, 사용자 요구사항을 UML로 표현
SW 명세, 문서화를 엄격, 프로세스 재사용성 증가
관심사 분리 단계별, 역할별로 문제를 분리하여 해결 분석, 설계, 개발단계로 분리하여 솔루션을 찾아 처리함
모듈화 유사한 기능의 모듈 구성을 통한 그룹핑 낮은 결합도, 높은 응집도
추상화 목적에 필요한 정보 외 생략 객체지향 기법, 디자인 패턴
변환예측 미래에 예상되는 예측, 수용
소프트웨어 공학의 기술 트랜드 미리 예측
3  Tire C/S : 프리젠테이션과 비즈니스 로직을 분리
SOA(Service Oriented Architectrue), web 3.0
일반화 구체적인 사실로부터 일반적인 이론을 추출 공통 S/W를 개발 재사용성 높임
컴포넌트 기반 개발(CBD)
점진화 개략적인 단계부터 구체적인 단계로 점진적 진화 테스트(단위->통합->시스템->인수 테스트)

 

나. 소프트웨어 공학의 구성요소

구성요소 설명
도구(Tools) 소프트웨어 개발에 쓰이는 모든 수단
언어, 컴파일러, CASE 툴
방법론 SW 개발에 필요한 포괄적 접근 방법
구조적 방법론, 정보공학방법론, 객체지향 방법론, CBD방법론
구축기술 소프트웨어 구축기술
자료구조, 알고리즘, 테스팅
원리 SW공학에 적용되는 공통 특징
정,관,모,추,변,일,점
정형성과 엄격, 관심사의 분리, 모듈화, 추상화, 변화예측, 일반화, 점진화

 

3. 소프트웨어 공학을 지원하는기술 유형과 유형별 특징

가. 소프트웨어 공학의 기술 유형

유형 내용 사례
개발기술 요구공학기술, SW설계기술, SW구현기술, SW테스팅기술, SW유지보수 기술 Object Z, UML, ERD, Spring,
개발지원기술 SW재사용기술, SW프로세스 기술, SW정보저장기술 CBD, SOA, CMMI, DBMS, ITIL
관리기술 프로젝트관리기술, SW품질관리기술, 형상관리기술, 교육 및 커뮤니케이션 기술, 문제 해결 기술 PMBOK, ISO9126, ISO12119,
CVS, SVN

나. 소프트웨어 공학 기술의 유형별 특징

구분 내용 주체
개발기술 개발의 생산성 향상, 구체적인 사용자 요구사항의 구현에 관연, 코딩과 연관, 자동화와 정형화 및 표준화가 요구되는 기술 개발자, 모델러, 분석가
개발 지원기술 - 개발/운영의 생산성 향상
- 자동화를 통한 개발자의 부담감소
- 강제성이 부여되며 전사적인 관리 필요
PMO, QA, DBA
관리기술 -소프트웨어 품질과 관계
-관리자의 관점을 지원함
-프로젝트 전체적인 관리를 가능하게 함
PM, PMO, QA, 고객사 사용자, Steering Committe

 

4. 소프트웨어 위기 극복 방안 및 적용방안

가. 소프트웨어 위기 극복방안

접근방법 내용
공학적 접근 구조적방법론, 객체지향 방법론, CBD방법론, RAD, 프로젝트관리
자동화도구활용 CASE, 코드생성/관리기, Repository, 형상관리, 변경관리
표준화 SW데이터의 표준화, 표준 프로세스 내제화, SW 재사용의 체계화, 역공학, 재공학 활용, 관리 표준 수립
품질보증체계 품질경영, 품질관리, 정보시스템 감리, 감사, ISO 등 품질 표준도입, CMMI, ITIL, 품질보증활동 내제화

나. 기업경영전략 달성을 위한 소프트웨어 공학 적용방안

  • 프로세스 정립(CMMI, SPICE, ITIL)
  • 개발 방법론의 정립(정보공학, 객체지향
  • 인적 자원의 개발(PSP, TSP)
  • 효과성(ROI, TCO), 효율성, 안정성 관점으로 감리/감사의 필요성
반응형

댓글