Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발이글스

[정처기 실기] 1-1 소프트웨어 개발 방법론 본문

Others/정보처리기사

[정처기 실기] 1-1 소프트웨어 개발 방법론

지윤이글스 2024. 9. 25. 23:18

📚소프트웨어 개발 방법론

📙소프트웨어 생명주기 모델

🏷️소프트웨어 생명주기 모델 이란? 

       ➡️소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.

 

🏷️소프트웨어 생명주기 모델 프로세스 

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

 

🏷️소프트웨어 생명주기 모델 종류 

     1. 폭포수 모델(Waterfall Model)

         : 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음단계로 넘어가는 모델, 가장 오래된 모델

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

          : 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어나가는 모델 

     3. 나선형 모델(Spiral Model)

          : 시스템 개발 시 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델

             계획및정의 > 위험분석 > 개발 > 고객평가

     4. 반복적 모델(Iteration Model)

         : 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 완성시키는 모델

 

📙소프트웨어 개발 방법론

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

        1. 구조적 방법론(Structured Development) - 나씨-슈나이더만 차트 사용

            :  전체시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론

        2. 정보공학 방법론(Information Engineering Development)

            : 정보시스템 개발에 필요한 관리절차와 작업기법을 체계화한 방법론

        3. 객체 지향 방법론(Object-Oriented Development)

            : 복잡한 현실세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론

        4. 컴포넌트 기반 방법론(CBD, Component Based Development)

            : 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용프로그램을 작성하는 방법론

        5. 애자일 방법론(Agile Development) ⭐

            : 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론

 

🏷️ 애자일 방법론의 유형

         1. XP(eXtreme Programming)

              1) XP의 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중

              2) XP의 12가지 기본원리:

                TDD: 작성해야하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성해야한다는 원리

                ⭐ 리팩토링: 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템을 재구성한다는 원리

         2. 스크럼

              1) 백로그: 제품과 프로젝트에 대한 요구사항

              2) 스프린트: 2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품질 향상

              3) 스크럼 미팅: 매일 15분정도 미팅으로 TO-DO-LIST 계획수립

              4) 스크럼 마스터: 프로젝트리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람

              5) 스프린트 회고: 스프린트 주기를 되돌아보며 정해놓은 규칙 준수여부, 개선점등을 확인 및 기록

         3. 린

              - 도요타의 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용해서 낭비요소를 제거하여 품질을 향상시킨 방법론, 칸반보드 사용

 

📙객체 지향 분석 방법론

🏷️객체 지향 기법

       1. 캡슐화: 서로 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 기법

       2. 다형성:

            1) 오버로딩: 매개변수의 유형과 개수를 다르게 해서 같은 이름의 메서드를 여러개 가지는 기법

            2) 오버라이딩: 상위 클래스에서 정의한 일반 메서드의 구현을 하위 클래스에서 무시하고 재정의할 수 있는 기법

 

🏷️객체 지향 설계 원칙(SOLID)

       1. 단일 책임의 원칙(SRP)

            : 하나의 클래스는 하나의 목적을 위해 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중되어 있어야한다는 원칙

       2. 개방 폐쇄 원칙(OCP)

            : 소프트웨어의 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원칙

       3. 리스코프 치환의 원칙(LSP)

            : 서브타입은 어디서나 자신의 기반 타입으로 교체할 수 있어야 한다는 원칙

       4. 인터페이스 분리의 원칙(ISP)

           : 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야한다는 원칙

       5. 의존성 역전의 원칙(DIP)

          : 실제 사용관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고받음으로써 관계를 최대한 느슨하게 만드는 원칙

 

🏷️객체 지향 분석 방법론 종류

       1. OMT(Object Modeling Technology)  - 럼바우 

         * 분석 절차: 객체모델링 > 동적모델링 > 기능모델링

            1) 객체 모델링(Object Modeling)

                 : 정보모델링 이라고도함, 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의하여 ER 다이어그램만드는 과정까지의 모델링

            2) 동적모델링(Dynamic Modeling)

                 : 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링, 상태 다이어그램을 활용해서 표현

            3) 기능 모델링(Functional Modeling)

                 : 프로세스들의 자료 흐름을 중심으로 처리 과정 표현 하는 모델링, 자료흐름도(DFD)를 활용하여 표현

 

🏷️비용산정 모형 분류 

        # 하향식 산정방법: 경험이 많은 전문가에게 비용산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정하는 방식

          ➡️ 델파이 기법 : 전문가의 경험적 지식을 통한 문제해결 및 미래 예측을 위한 기법으로 전문가 합의법이라고도 함

 

         # 상향식 산정방법: 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식

         ➡️ LoC모형, Man Month, COCOMO모형, 푸트남모형, 기능점수(FP)모형    [5가지암기!!]

                1. LoC모형: 소프트웨어 각 기능의 원시 코드라인 수의 낙관치, 중간치, 비관치를 측정해서 "예측치"를 구함

                            * 예측치 = (낙관치) + 4(중간치) +(비관치) / 6 

                2. ManMonth모형 : 한 사람이 1개월동안 할 수 있는 일의 양을 기준으로 비용산정

                                       * ManMonth = (LoC) / (프로그래머의 월간 생산성)

                                       * 프로젝트의 기간 = (Man Month) / (프로젝트 인력)

                3. COCOMO 모형: 보헴이 제안, 프로그램 규모에 따라 비용을 산정

                4. 푸트남 모형: 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식이다.

                5. 기능점수 모형: 요구기능을 증가시키는 인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능점수를 계산

 

 

🏷️ 일정관리모델 종류

         1. 주 공정법(CPM) : 여러작업의 수행 순서가 얽혀있는 프로젝트의 일정을 계산하는 기법

        ➡️CPM을 이용해 일정을 계산:  프로젝트 시작에서 종료까지 가장 긴 시간이 걸리는 경로를 계산

        2. PERT: 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리 하는 기법

        3. CCPM: 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법