728x90
정보처리기사 실기- 알고리즘과 소프트웨어 개발
소프트웨어 생명주기
소프트웨어가 필요에 의하여 만들어진 후 운영되기까지 전체 과정을 말한다.
소프트웨어 개발 활동은 소프트웨어 생명주기를 기반으로 이루어진다.
일반적인 소프트웨어 생명주기 8단계
개발 타당성 검토 |
▶ | 개발 계획 수립 |
▶ | 요구사항 분석 |
▶ | 소프트웨어 설계 |
▶ | 소프트웨어 구현 |
▶ | 테스트 | ▶ | 운용 | ▶ | 유지보수 |
알고리즘 설계는 문제의 요구사항을 분석하여 소프트웨어를 설계하는 단계에 해당한다.
C나 JAVA와 같은 프로그래밍 언어를 선택하여 알고리즘에 대하여 codding(programming)을 하는 것은 소프트웨어를 구현하는 단계이다.
소프트웨어 관리 | 요구관리 |
---|---|
요구관리 | 소프트웨어 개발이 이루어지기도 전에 고객의 요구가 불시에 바뀜으로 인하여 개발이 지연되거나 낭비되는 것을 예방하기 위하여 고객의 요구를 정확하게 추출하고 이를 문서화하여 고객과 개발자가 상호 동의하는 과정에 대한 관리 |
형상관리 | 소프트웨어를 개발하는 전체 과정에서나 유지보수 과정 중에서 발생하는 각종 산출물(소드 코드, 문서)들을 중심으로 시간흐름에 따라 시스템 형상을 만들어 가면서 소프트웨어 버전을 체계적으로 관리 |
유지관리 | 소프트웨어가 개발되어 고객이 사용하는 과정 중에서 변경 사항이 발생할 경우 이를 수용하여 소프트웨어를 수정함으로써 고객이 소프트웨어를 지속적으로 잘 사용하도록 하는 소프트웨어 관리 |
품질관리 | 개발된 소프트웨어가 원래의 개발 목적에 부합하여 요구를 만족하는지 검증 |
소프트웨어 품질관리(ISO 9216 기준)
품질 특성 | 품질관리 기준 질문 |
---|---|
기능성(Functionality) |
|
사용성(Usability) |
|
신뢰성(Reliability) |
|
유지보수성(Maintainability) |
|
이식성(Portability) |
|
효율성(Efficiency) |
|
알고리즘의 효율성
공간 효율성 (공간복잡도): 알고리즘을 실행하는 동안 알고리즘이 필요로하는 메모리 공간(컴퓨팅 자원)의 효율성을 말한다.
시간 효율성 (시간 복잡도): 알고리즘을 실행하여 종료하기 까지 걸리는 시간의 효율성을 말한다.
소프트웨어 아키텍쳐: 개발하려는 소프트웨어의 전체 골격에 대한 논리적인 구조라고 하며 어플리케이션 개발 모델 이라고도 한다.
MVC 구조
구현하려는 전체 어플리케이션을
Model 비즈니스 로직,
View 프리젠테이션 로직,
Control 사용자 인터페이스로 구분하여 개발하는 구조이다.
MVC는 GUI를 사용하는 어플리케이션 개발 모델에서 많이 사용한다.
Client/Server 구조
C/S 구조는 서비스를 요구하는 클라이언트와 서비스를 제공하는 서버로 구성되며 네트워크 기반의 분산 소프트웨어 아키텍쳐에 주로 적용된다. 성형 구조와 비슷한 성격을 갖는다.
다층(n-tier)구조
C/S구조의 단점을 극복하기위해 클라이언트에 해당하는 최상위계층과 서버에 해당하는 최하위계층 사이에 비즈니스 로직을 전담하는 중간계층을 둠으로써 비즈니스 로직을 완전히 분리시켰다.
저장소(Repository)구조
소프트웨어 아키텍쳐가 다수의 서브 시스템들로 구성되어 있을 때, 특정한 서브 시스템에 공유 저장소를 두고 나머지 서브 시스템들이 이곳을 통해 데이터를 공유하며 효율적으로 관리하고 서비스를 제공하는 구조이다.
'정보처리기사 > 어플리케이션개발' 카테고리의 다른 글
정보처리기사 실기 어플리케이션 개발 [객체지향 소프트웨어 공학] (2) | 2017.04.15 |
---|---|
정보처리기사실기 알고리즘[6] (0) | 2017.03.14 |
정보처리기사실기 알고리즘[5] (0) | 2017.03.14 |
정보처리기사실기 알고리즘[4] (0) | 2017.03.14 |
정보처리기사실기 알고리즘[3] (0) | 2017.03.14 |
댓글