• AI글쓰기 2.1 업데이트

좋은코드 나쁜코드

미리보기 파일은 샘플 파일 입니다.
최초 생성일 2024.12.31
4,500원
AI자료를 구입 시 아래 자료도 다운로드 가능 합니다.
다운로드

상세정보

소개글

"좋은코드 나쁜코드"에 대한 내용입니다.

목차

1. 소프트웨어 진화
1.1. 소프트웨어의 정의
1.2. 소프트웨어 진화 프로세스
1.2.1. 개발과 진화
1.2.2. 일반적인 진화 프로세스
1.2.3. 특수 상황의 진화 프로세스
1.3. 프로그램 진화 역학
1.3.1. 리먼의 법칙
1.3.2. 법칙의 적용 가능성
1.4. 소프트웨어 유지보수
1.4.1. 유지보수 유형과 비용
1.4.2. 유지보수 예측
1.4.3. 시스템 재공학
1.4.4. 리팩토링
1.5. 레거시 시스템 관리
1.5.1. 레거시 시스템 관리 전략
1.5.2. 비즈니스 가치 평가
1.5.3. 시스템 품질 평가

2. 이상지질혈증과 심혈관질환
2.1. 이상지질혈증의 개요
2.2. 콜레스테롤과 중성지방
2.3. 심혈관질환과 죽상경화증
2.4. 이상지질혈증 치료법
2.5. 동맥경화와 심혈관질환 위험요인
2.6. 심혈관질환 예방 방법

3. 참고 문헌

본문내용

1. 소프트웨어 진화
1.1. 소프트웨어의 정의

소프트웨어는 "물리적 실체인 하드웨어의 반대어로 만들어진 용어로, 컴퓨터 프로그램과 같은 뜻으로 해석되는 경우도 있으나 프로그램 자신 외에 그 프로그램 자신의 설명서, 그 프로그램에 의해 업무를 수행할 때의 사무 상의 규정이나 절차, 이들을 문서화한 설명서나 색인서도 모두 포함한 전체를 가리킨다"이다. 또한 "컴퓨터 시스템을 가동시키는 데 필수가 되는 시스템 소프트웨어(system software)와 이용자 측의 업무에 특유한 응용 프로그램(applications program)을 구별해 왔으나 현재는 양자를 포함하여 소프트웨어라고 하며, 시스템 개발(system development)과 소프트웨어 개발(software development)은 동의어로 취급되고 있다."라고 할 수 있다.


1.2. 소프트웨어 진화 프로세스
1.2.1. 개발과 진화

소프트웨어 개발은 일반적으로 명세(specification), 구현(implementation), 검증(validation), 운영(operation)의 단계로 이루어지며, 새로운 요구사항이 제안되면 다시 위 과정이 반복되면서 소프트웨어가 진화하게 된다. 이러한 소프트웨어의 개발과 진화는 나선형 모델로 표현될 수 있다. 나선형 모델은 한 기업이 개발과 유지보수를 모두 수행하는 것을 가정하며, 상업용 소프트웨어의 경우에 해당한다.

또한 소프트웨어의 진화는 초기 개발(initial development), 진화(evolution), 서비스(servicing), 단계적 폐지(phaseout)의 단계로 진행되는 모델로 설명될 수 있다. 진화 단계는 소프트웨어가 성공적으로 사용되고 있는 단계로, 새로운 요구사항이 등장하며 시스템은 지속적으로 개선된다. 서비스 단계에서는 새로운 기능이 추가되지 않고, 버그를 수정하는 등의 간단한 수정만 행해진다. 단계적 폐지 단계에 있는 소프트웨어는 계속하여 사용될 수는 있지만 변경되지는 않는다. 이는 소프트웨어가 계속 수정되면 일반적으로 품질은 저하되기 때문에, 시간이 지나면 소프트웨어를 수정하는 것이 비용 면에서 효율적이지 않다는 점을 반영한 모델이다.


1.2.2. 일반적인 진화 프로세스

일반적인 진화 프로세스는 소프트웨어가 지속적으로 변화하고 진화하는 과정을 설명한다. 이 프로세스는 변경 요청(Change Requests), 영향력 분석(Impact Analysis), 출시계획 수립(Release Planning), 변경의 구현(Change Implementation), 시스템 출시(System Release) 등 5단계로 구성된다.

먼저 변경 요청 단계에서는 소프트웨어에 대한 변경 사항을 제안한다. 이어서 영향력 분석 단계에서는 변경 사항이 어떤 소프트웨어 컴포넌트에 영향을 미치는지 분석하고, 변경에 소요되는 비용과 영향을 예측한다. 출시계획 수립 단계에서는 어떤 변경 요청을 구현할지 결정한다. 변경의 구현 단계에서는 변경 사항을 실제로 구현하고 검증한다. 마지막으로 시스템 출시 단계에서는 새로운 시스템을 배포한다.

이러한 프로세스는 새로운 변경 요구사항이 제시되면 반복된다. 소프트웨어는 지속적으로 변화하므로 이 프로세스는 소프트웨어의 진화를 이끄는 중요한 메커니즘이 된다. 변경 요청의 종류, 조직의 개발 프로세스, 참여 인력의 경험 수준 등이 이 프로세스에 영향을 미친다.

이처럼 일반적인 진화 프로세스는 소프트웨어가 변화하고 진화하는 과정을 단계적으로 설명한다. 이를 통해 소프트웨어 시스템이 지속적으로 발전하고 개선될 수 있도록 한다.


1.2.3. 특수 상황의 진화 프로세스

특수 상황의 진화 프로세스는 긴급한 변경 요청이나 애자일 방법으로 개발된 프로젝트의 진화 시 적용되는 프로세스이다.""

긴급한 진화 프로세스는 정상적으로 작동되려면 반드시 고쳐야 하는 심각한 결함이 있을 때, 운영체제 업그레이드와 같은 시스템 환경이 변함에 따라 소프트웨어가 예상치 않은 결과를 나타낼 때, 경쟁사의 제품이 출시되는 것과 같은 빠른 대응을 필요로 하는 비즈니스적 요구가 있을 때 사용된다.""이때는 요구사항이나 설계 문서의 분석에 앞서 급하게 코드를 수정하며, 차후의 유지보수 작업이 어려워질 수 있다.""

애자일 방법으로 개발된 프로젝트의 경우, 진화 프로세스는 개발 프로세스의 연속이라 볼 수 있다.""소프트웨어를 변경할 때 자동화된 회귀 테스팅이 유용하며, 변동 사항은 추가적인 유저 스토리로 표현된다.""다만 개발 팀과 유지보수 팀이 다른 경우 문제가 발생할 수 있는데, 개발 팀이 애자일 방식을 이용했지만 유지보수 팀은 계획 기반의 방식을 선호하거나, 반대의 경우에도 문제가 생길 수 있다.""


1.3. 프로그램 진화 역학
1.3.1. 리먼의 법칙

리먼의 법칙은 진화하는 '대형 소프트웨어'에 적용될 수 있는 몇 가지 법칙으로, 리먼(Lehman)과 벨라디(Belady)에 의해 제안되었다"". 이러한 법칙은 소프트웨어의 변화와 진화 과정을 설명하며, 소프트웨어 유지보수를 계획할 때 고려해야 할 중요한 특징들을 보여준다"".

첫째, 지속적인 변화(continuing change) 법칙은 소프트웨어가 계속해서 변화하지 않으면 유용성이 저하된다는 것을 말한다"". 즉, 소프트웨어는 지속적으로 변화해야 하며, 그렇지 않으면 소프트웨어의 가치가 떨어지게 된다"".

둘째, 증가하는 복잡도(increasing complexity) 법칙은 소프트웨어가 변경될수록 시스템의 구조가 점점 더 복잡해지고 나빠진다는 것을 의미한다"". 따라서 소프트웨어 구조 개선을 위한 추가적인 노력이 필요하게 된다"".

셋째, 거대 프로그램 진화(large program evolution) 법칙은 프로그램의 크기, 릴리스 간격, 보고되는 에러의 개수 등이 변경 후에도 거의 일정하다는 것을 ...


참고 자료

KBS 생로병사의 비밀, 혈관의 적, 콜레스테롤과 중성지방
http://vod.kbs.co.kr/index.html?source=episode&sname=vod&stype=vod&program_code=T2002-0429&program_id=PS-2019197315-01-000&broadcast_complete_yn=&local_station_code=00§ion_code=05

주의사항

저작권 EasyAI로 생성된 자료입니다.
EasyAI 자료는 참고 자료로 활용하시고, 추가 검증을 권장 드립니다. 결과물 사용에 대한 책임은 사용자에게 있습니다.
AI자료의 경우 별도의 저작권이 없으므로 구매하신 회원님에게도 저작권이 없습니다.
다른 해피캠퍼스 판매 자료와 마찬가지로 개인적 용도로만 이용해 주셔야 하며, 수정 후 재판매 하시는 등의 상업적인 용도로는 활용 불가합니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우