sw engineering

Edit

우리가 ‘소프트웨어 공학’이라고 믿는 것의 정체는 무엇일까? : SE는 공학이라기보다는 공학으로 향하는 무언가”

소프트웨어 유지보수란?(소프트웨어 컨플릭트2.0)

소프트웨어 컨플릭트2.0

은총알은 없다

(번역) 소프트웨어 공학이라는 단어를 묻어버리자. ( Let’s Bury the Term Software Engineering )

소프트웨어 엔지니어링 이해하기: 학생 관점에서 바라본 모습

On the Criteria To Be Used in Decomposing Systems into Modules

http://portal.acm.org/citation.cfm?id=1005943

장점

단점

구조적 방법론

• 철저한 모듈화로 추상화와 정보은닉을 이루어 프로그램의 구조를 읽기 쉽게 단순화함

• 데이터의 구성에 대한 설계 방안이 부족

• 프로젝트 관리 및 조직, 역할 등 방법론적 다른 요소들의 정의가 없음

정보공학 방법론

• 경쟁우위 확보의 전략적 기회 식별 및 방안 제공

• 일관성 있고 통일된 정보시스템 구축 가능

• 시스템의 장기적인 진화, 발전 허용

• 데이터 중심으로 업무절차 및 환경변화에 유연

• 정보공학의 효과를 위해 장기간 필요

• 소규모의 자동화 요구 사업영역에는 시간이 오래 걸림

• 특정 사업영역으로부터 독립된 시스템 개발에는 부적합

객체지향 방법론

• 데이터와 로직을 통합(객체)

• 상속에 의한 재사용 (White Box Reuse)

• 분석-설계간 Gap이 없음

• 상속에 의한 재사용의 장점이 있음에도 불구하고 상속의 깊이가 깊어질수록, 변경 등에 대한 유지보수가 어렵움.

• 객체 개념을 기존의 관계형 모델에 기반한 Database에 반영하기가 쉽지 않음

CBD방법론

• Interface 중시 (구현에 제약

없음) Black Box Reuse 지향

• 재사용성이 증대되어 직접 개발해야 하는 비용이 줄고 복잡성이 줄게됨으로써 품질 향상을 얻을 수 있음

• 제대로 된 품질을 유지하기 위해서는 보다 많은 협업이 강조된다.

CBD

component도출:

모듈내부의 응집도는 강하게, 모듈간의 결합도는 낮게

정보공학방법론

구조적 방법론

생산성 차이

http://forums.construx.com/blogs/stevemcc/archive/2008/03/27/productivity-variations-among-software-developers-and-teams-the-origin-of-quot-10x-quot.aspx

소프트웨어 컨플릭트 2.0 디버깅 , P68페이지

추정

추정을 전혀 하지 않은 프로젝트가 생산성 측면에서 가장 성공적이었고, 그 다음은 기술자들이 추정을 수행한 프로젝트, 관리자가 추정을 한 프로젝트는 최악. 생산성 수준과 통제에 대한 감사이에 밀접한 관계, 프로그래머는 그들의 운명을 스스로 통제할 수 있다는 느낌을 가질 때 생산성이훨씬 높았다.

Jeffery, D.R., and M.J.Lawrence. 1985, "Managing Programmer Productivity." Journal of System and Software, Jan.

Lnadsbaum, Jerome B. and Robert L.Glass. 1992. Measuring and Motivating Maintenance Programmers. Englewood Cliffs, NH: Prentice-Hall

카드와 수신호

요구분석 기법

유스케이스 모델링 → 웹화면 프로토타이핑→ 요구사항명세화 → 시스템화 범위 및 우선 순위 결정

필름기법: FilmStrip

StateChart Diagram