자격증/정보처리기사

SW 구축 _ 소프트웨어 공학

2주녘 2023. 9. 19. 21:09
반응형

🔶 SW 공학

소프트웨어 공학

SW 위기를 극복하고 효율적으로 품질 높은 SW를 개발하기 위한 학문

 

소프트웨어 공학의 3R

역공학(Reverse Engineering)

기존 개발된 시스템을 CASE도구를 이용하여 요구 분석서, 설계서 등의 문서로 추출하는 작업
개발 단계를 역으로 올라간다고 생각!

재공학(Re-Engineering)

SW의 위기를 해결하기 위해 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법
예방 유지보수 측면에서 SW 위기 해결

재공학의 과정

분석(Analysis) / 재구성(Restructuring) / 역공학(Reverse Engineering) / 이관(Migration)

재사용(Reuse)

이미 개발되어 있는 SW의 전체 또는 일부분을 다시 사용

재사용 방법

합성중심(Composition Based, 블록구성)
- 전자 칩과 같은 SW부품, 블록(모듈)을 만들어서 끼워 맞추어 SW를 완성시키는 방법

생성중심(Generation Based, 패턴 구성)
- 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법

SW 개발단계

계획 > 요구사항분석 > 설계 > 구현 > 테스트 > 유지보수

 

🔶 SW 개발 방법론

소프트웨어 개발 방법론 종류

구조적 방법론

절차지향 SW 개발 방법론
구성요소 : 데이터 흐름도(DFD), 자료사전(DD), 상태전이도(STD), 소단위 명세서(Minispec)

정보공학 방법론

기업의 주요 부분을 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합, 적용하는 데이터 중심 방법론

객체지향 개발 방법론

현실세계의 개체(Entity)를 속성(Attribute)과 메서드(Method) 형태로 표현
특징 : 캡슐화 / 정보은닉 / 상속 / 다형성 / 추상화

CBD(Component Based Development) 분석 방법론

재사용 가능한 컴포넌트의 개발 또는 상용 컴포넌트를 조합해 애플리케이션 개발

애자일 방법론

기존 방법론들이 절차를 중시한 나머지, 변화에 빠른 대응을 할 수 없다는 단점 개선을 위해 등장
종류 : XP, SCRUM, FDD, Crystal 방법론 등등...

 

소프트웨어 개발 모델

폭포수 모델(Waterfall Model)

  • 계획, 분석, 설계, 구현, 테스트, 운영 등 전 과정을 순차적으로 접근하는 개발 모델
  • 각 단계가 순차적으로 진행, 병행되거나 거슬러 반복 진행 불가
  • 요구사항 변경이 어렵다

 

프로토타이핑 모델(Prototyping Model)

  • 고객이 요구한 주요 기능을 프로토타입으로 구현하여 완성해가는 모델

 

나선형 모델(Spiral Model)

  • 폭포수 모델과 프로토타이핑 모델의 장점 수용, 위험 분석을 추가한 점증적 개발 모델

출처  : IT위키(https://itwiki.kr/w/%EB%82%98%EC%84%A0%ED%98%95_%EB%AA%A8%EB%8D%B8)

 

RAD(Rapid Application Development) 모델

  • 매우 짧은 개발 주기를 강조하는 점진적 SW 개발 방식
  • CASE(Computer Adied Software Engineering) 도구를 이용해 시스템을 개발

 

V 모형

  • 폭포수 모델에 시스템 검증과 테스트 작업을 강조

출처 : IT 위키

 

4세대 기법(4th Generation Techniques)

  • 요구사항 명세로부터 원시코드를 자동으로 생성할 수 있게 해주는 모델

 

애자일 방법론

개념

  • 신속한 반복 작업을 통해 실제 작동 가능한 SW를 개발하여 지속적으로 제공하기 위한 SW 개발 방식

 

종류

1) XP(eXtream Programming)

✏️ XP 5가지 핵심가치 (의사존중, 피드백, 존중, 용기, 단순성)

  1. 용기 : 고객의 요구사항 변화에 능동적인 대처
  2. 존중 : 개발자의 역량 존중, 충분한 권한과 권리 부여
  3. 의사소통 : 개발자, 관리자, 고객 간의 원할한 의사소통
  4. 피드백 : 의사소통에 따른 즉각적인 피드백
  5. 단순성 : 부가적 기능, 사용되지 않는 구조와 알고리즘 배제

2) 스크럼(Scrum)

🔶 특징

  • 개발 주기는 30일 정도로 조절, 개발 주기마다 실제 동작할 수 있는 결과를 제공
  • 항상 팀 단위로 생각, 매일 15분 정도의 회의

 

3) 그 외 애자일 방법론

🔶 크리스털(Crystal)

  • 프로젝트의 규모와 영향의 크기에 따라서 여러 종류의 방법론을 제공

🔶 FDD(Feature-Driven Development)

  • 신규 기능 단위로 하는 개발 방법론

🔶 ASD(Adaptive Software Development)

  • 합동 애플리케이션 개발을 사용하는 방법론

🔶린(Lean)

  • 도요타 린 시스템 품질기법

 

IT 서비스 관리

SLM(Service Level Management)

  • 서비스 수준을 정량적으로 측정, 실적을 평가, 미흡한 부분을 개선함으로써 서비스의 품질을 높이는 일련의 관리 및 활동
  • 사용자의 관점으로 서비스 요구사항을 파악하고, 서비스 수준 개선을 위한 우선순위를 판단하기 위한 도구이며, 사용자의 기대수준에 부합하는 서비스, 프로세스, 조직역량 및 기술을 통합적으로 관리하기 위한 체계

 

SLA(Service Level Agreement)

  • 정보시스템 수요자와 공급자 사이의 상호 동의에 의하여 서비스 수준을 명시적으로 정의하고 이를 문서화한것

 

ITSM(Information Technology Service Management)

  • 최종 사용자를 위한 IT 서비스를 구현, 전달 및 관리하기 위한 일련의 정책

 

ITIL(IT Infrastructure Library)

  • IT서비스 관리 업계의 모범사례를 집대성한 IT서비스 관리 프레임워크
  • ITSM을 실현하는 도구 또는 방법
반응형