1. 소프트웨어 개발이란?
- 원하는 목적을 달성하기 위해 기준이 되는 개념이나 철학(구조적, 객체지향적)을 바탕으로 특정한 과정을 거쳐 소프트웨어적인 해결책을 만들어 내는 것.
1.1. 구조적(Structured)
① 원하는 목적을 직접적인 기능으로 세분화 구체화
② 간단한 구조(하향식, 서브트리구조)
③ 어려운 유지, 보수
④ 하나의 기능 수정시 전체 구조를 확인
1.2. 객체지향적(Object Oriented)
① 객체들 간의 상호 관련이 중요
② 2단계 방식 (ⅰ.클래스 설계 ⅱ.기능수행)
③ 복잡한 네트워크 구조
④ 쉬운 유지, 보수
⑤ 객체의 재사용 가능
⑥ 클래스 상속을 통해 확장이용이
2. 소프트웨어 개발과정
① 요구사항 명세 - 요구사항을 조정
② 요구사항 분석 - 환경,기능,행위 등의 요구사항을 검토
③ 기본 설계 - 전체적인 아키텍쳐 구상
④ 상세 설계 - 구체적인 자료구조, 알고리즘
⑤ 구현 - 프로그램 코딩
⑥ 테스팅 - 모듈별, 통합적인 테스트
⑦ 유지보수 - 소프트웨어의 지속적인 모니터링
3. 설계
- 여러 가능한 방법 중 최적의 어느 하나를 선택
1.1. 좋은 소프트웨어 설계의 특성
- 쉬운 이해
- 수정
- 관리
- 재사용
- 테스트
- 높은 안전성
1.2. 좋은 소프트웨어 설계 도구
① 추상화와 구체화 - 적절한 추상화와 구체화가 필요
② 모듈화와 계층화 - 모듈간의 상호 연관 관계
③ 정보 은닉과 변경의 국지화 - 정보 은닉에 따른 소프트웨어 변경 범위의 한정
④ 방법론 및 지침
'기타 > Design pattern' 카테고리의 다른 글
Singleton pattern (0) | 2009.04.27 |
---|---|
Decorator pattern (0) | 2009.04.27 |
Builder pattern (0) | 2009.04.27 |
Adapter pattern (0) | 2009.04.27 |
Abstract Factory pattern (0) | 2009.04.27 |