반응형
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), 효율성, 안정성 관점으로 감리/감사의 필요성
반응형
'TechNote > 소프트웨어 공학(SW)' 카테고리의 다른 글
006. 소프트웨어 아키텍처 평가 방법론 (0) | 2022.09.30 |
---|---|
005. 소프트웨어 아키텍처 스타일 (0) | 2022.09.30 |
004. 소프트웨어 아키 (0) | 2022.09.29 |
003. 요구 공학 (0) | 2022.09.29 |
002. Software Development Life Cycle의 정의 (0) | 2022.09.29 |
댓글