SW 위기
SW 위기 = F.L.바우어 1968년 SW 공학 학회에서 사용 / 독일 가미시
- 규모의 대규모화, 복잡화 -> 개발비용 증대
- HW 비용에 대한 SW 가격 상승폭 증가
- 유지보수 어려움 및 개발정체 현상 발생
- 신기술에 대한 교육 및 훈련 부족
-> 프로젝트의 성공 확률이 높지 않은 편임
- Success = be completed on-time & on-budget
- Challenged = be completed and operational but over-budget, over the time estimate, and offers fewer features
and function than originally specified
-> 대형 프로젝트 일수록 성공보다 실패의 확률이 높게 나타남
SW 공학 출현
대량생산체계가 급격한 수요의 증가에 대응할 수 있는 공급 체계를 갖출 수 있게 했다는 사실
- SW 개발에도 이와 같은 원리를 적용 (Software Engineering)
IEEE SW 공학에 대한 정의
= 소프트웨어의 개발, 운용, 유지보수 및 파기에 대한 체계적인 접근 방법
= 사용자 요구사항을 만족하고 품질이 좋은 SW를 최소한의 비용으로 계획된 일정에 맞추어 개발하는 방식을 정의한
방법 및 절차와 산출물
SW 공학 계층 구조
- 도구
- 개발과정에서 사용되는 툴 지칭
- Estimation (LoC, FP 등) 툴, 요구사항 관리 툴, 설계(UML 등) 툴, Testing 툴, 문서화 툴, Case 툴
- CASE는 SW 개발 전 단계 지원하는 도구 - 방법론
- 프로세스 중심 방법론 ('70년대)
> 자료의 변환과정과 프로세스 강조
> 파일시스템에 기반한 절차적 언어 (Fortran, Cobol, Basic, Pascal, c 등)
- 자료 중심 방법론
> 프로그램 개발에 사용할 자료를 정의하고 자료와 자료간의 관계를 분석하여 자료구조를 정의하고
이를 토대로 프로세스 구조를 고안
> DB에 기반한 쿼리 중심의 프로그램 방식 (ADABAS/NATURAL)
- OO 방법론
> 객체(Object = Data + Process) 를 캡슐화 함으로써 좀더 쉽게
프로세스의 모듈화, 정보은닉, 코드 재사용의 효율을 꾀하는 방법
> 프로세스 중심 방법론과 자료 중심 방법론의 장점을 묶어 진화한 방법
- 프로세스
- SW 개발에 필요한 작업 이름, 내용, 결과물
- 영역
> SW 명세 (요구분석)
> SW 개발 : 명세를 바탕으로 SW 개발하는 과정
> SW 검증 : Validation(분석, 설계 검토, 단위 테스트 / 검토) & Verification (통합, 시스템, 인수 테스트 / 테스트)
> SW 진화 : SW의 버전업 작업
SW 프로세스 : Carnegie Mellon University SEI (Software Engineering Institute)
프로세스 일반적인 정의
- 주어진 목적 달성을 위해 수행하는 행위의 집합
- 도구, 방법, 자료, 사람을 포함
- 프로세스, 기술, 사람
- PSP = 개인들이 설계를 할때, 투입된 시간을 기록 -> 거기 맞도록 돈을 받어 (담배피는 시간도 일하는 시간에 포함)
- CMMI
CMMI 성숙도
- 품질
'Software Architect' 카테고리의 다른 글
[Software Architecture] SA 개요 - 추가 (0) | 2022.03.29 |
---|---|
[Sofrware Architecture] SA 개요 (0) | 2022.03.28 |
[Design Pattern] Command / Strategy / State Pattern (0) | 2022.03.25 |
[Design Pattern] Flyweight pattern (0) | 2022.03.25 |
[Design Pattern] Observer Pattern (0) | 2022.03.25 |