
이러한 가정에서 수립된 목표의 달성을 예측(천재지변을 제외한) 가능하게 하는 것이 바로 잘 구성된 프레임워크이며 프레임워크는 어플리케이션의 실행을 위한 구체적이고 확장 가능한 기반 코드로 구성되어 있으며 어플리케이션의 구현에 대한 규칙(패턴)을 담고 있다. 제시된 규칙(패턴)을 준수하면 프레임워크에 의하여 구현 되어 질 수 있는 결과물에 대한 평균적인 기간에서의 달성을 가능하게하는 것이 프레임워크의 기능이다. 계획된 목표의 기술적 필요사항이 프레임워크의 확장을 통하여 충족될 수 있도록 프레임워크를 선정하여야하며, 프레임워크를 통한 어플리케이션의 구현이 계획된 기간 내에 이루어지도록 운영하는 것이 프레임워크의 기능이다.
소프트웨어 개발 상의 시행착오를 부정적으로만 볼 수는 없다. 프로젝트 진행 중의 시행착오는 프로젝트팀의 역량을 강화 시켜 주고 참여자들의 경험을 향상시키는 효과를 기대 할 수 있겠으나 기간의 지연을 초래하게 되거나 추가적인 비용이 발생하는 바람직하지 않은 결과를 낳을 수도 있다. 그러나 프레임워크는 이러한 시행착오를 축소하며, 참여자의 다양한 시행착오 가능성을 배제하여 성공 가능한 구성에 대한 규칙들(디자인패턴)을 제시한다.
1. 플랫폼 구성(개발 환경)
프레임워크는 개발자의 로컬 테스트 환경에서 부터 엔터프라이즈급의 대용량 비즈니스 서버에 까지 공통적으로 사용 될 수 있으며, 특정 연결에 대한 목 오브젝트(Mok Object)나 스텁(Stub)으로 대체하는 기능을 제공하여 자바의 이식성을 십분 활용 할 수 있다.
2. 유지보수(운영계획)
기업 혹은 조직은 시간이 흐름에따라 혹은 시장이나 서비스의 수요자의 패턴에 따라서 유기적으로 변화하며 이미 구현이 완료된 소프트웨어의 변경이 필요하게 된다. 이러한 변경을 위한 확장성은 차세대 시스템 도입의 시점까지 이어지게되며 소프트웨어의 설계 단계에서 고려해야하는 사항이 바로 조직의 변화로 인한 시스템의 확장 및 축소에 대한 탄력성을 유지하는 것 이다. 기존 구축된 시스템에서 확장한 새로운 서비스의 연결을 고려하고 시스템의 증설이나 분할에 대한 원격통신 기법을 적용하여야하고, 사소한 데이터 변경에서 부터 코드시스템의 재정의로 인한 변화에 대해서도 대한 소프트웨어 수정을 최소화 할 수 있도록 데이터 구조와 서비스 구조 패턴에 대한 분리를 제공하여야한다.
3. 테스트(검수:검증절차)
프레임워크는 실행가능하고 검증된 구체적인 기능의 조합을 제공함으로서 업무 구현을 위한 POJO 로직에 대한 테스트에 비중을 실을 수 있어 테스트와 검증 절차에 대한 효율성을 제공한다.
4. 인력 수급
프레임워크는 소프트웨어 개발에 대한 규칙(디자인패턴)들을 제시하며 준수하도록 요구하므로 프레임워크의 기본 활용에 대한 교육을 받은 개발자를 필요로 하게 된다. 이로 인하여 잘 알려진 프레임워크일 수록 인력의 수급에 더욱 유리하다.
5. 개발 속도
숙련된 개발자에게는 개발을 쉽고 편하게 해주며 가독성이 높은 코드의 작성을 유도함으로서 개발생산성을 높이고 반복적인 작업을 단순화시켜 POJO의 구현에 집중할 수 있도록 하며 사용하는 프레임워크에 익숙하지 않은 개발자들도 일정 정도의 교육을 통하여 개발 업무를 수행 할 수 있다.
6. 기술 종속
프레임워크를 채용하여 시스템을 구축하는 경우 기반 시스템과 결합된 프레임워크의 프로토타입에 따라서 코드를 작성하여야 함으로 인하여 프레임워크에서 지원되는 기능 으로 구현 가능 범위가 한정되어 질 수 있으며, 프레임워크를 통하여 개발하기 위해서는 일정 정도의 교육이 필요하다.
프레임워크의 설계자가 프로젝트 내에 있다면 업무변화에 따라 새로운 코드를 포함시키며 기존 코드를 리팩토링 할 수 있을 것 이다. 그러나 외부의 프레임워크를 도입하여 프로젝트를 수행하는 경우 프레임워크에 의한 기술 종속 현상이 발생 할 수 있다.
different hemisphere didn revolution high partially
답글삭제