본문 바로가기
- 배움이 있는 삶/- 소프트웨어 공학

2022년 기출문제-소공(ing)

by story of interesting 2024. 11. 7.
반응형

2022년 소공 기출문제를 정리 합니다


Agenda

1. Refactoring 기법 
2. Java code error (30번 문제)
3. TC coverage 계산(33번 문제)
4. 아키텍처 스타일 (32번 문제)
5. 아티텍처 평가 - CBAM, ATAM (36번 문제)
6. Spring - 모듈간 상호의존 관계 (39번 문제)
7. Chidamber, Kemerer의 객체지향 척도 - LCOM, WMC, RFC (40번 문제)

 


1. Refactoring 기법 

- Encapsulate 기법 : 캡슐화 기법

 

 


2. Java code error (30번 문제)

아래 코드의 실행 결과

import java.util.*;

public class Search {
    public static int search(List<Integer>list, int k) {
        int left = 0, right = list.size() -1, result = -1;
        
        while (left <= right) {
            int mid = left + ((right - left) / 2);
            System.out.println("mid=" + mid+", left=" + left+",right=" + right);
            //2) list로 1,2,3,4받고, k=3을 받으면, right=3이되고, int mid는 1.5인데, int로 1임
            //6) right=3, left=2 으로 변경, mid=2로 변경
            
            if (list.get(mid) > k) {  // 3) (mid=1 > 3) false 임으로 -> 4)번으로 이동
                right = mid - 1;
                System.out.println("찾으려는 k 보다 list(mid) 값이 더 큼, right값 변경, right ="+right);
                
            } else if(list.get(mid) == k) { 
                result = mid;
                right = mid -1;
                System.out.println("k 값을 찾았음, right값 변경, right="+right);
                
            }else {  
                left = mid +1;  // 4) mid=1 임으로, left=2로 변경됨
                System.out.println("찾으려는 k 보다 list(mid) 값이 작음, left를 mid+1로 변경, left ="+ left);
            } // 5) 다시 while으로 진행
        }
        return result;  
    }
    public static void main(String[] args) {
        Integer[] intArr = {1,2,3,4};
        List<Integer>list = Arrays.asList(intArr);
        System.out.println(search(list,3)); // 1) search함수를 호출함, value= list, k는 3을 할당함
    }
    
}

실행결과

1,2,3,4
3

mid=1, left=0,right=3
찾으려는 k 보다 list(mid) 값이 작음, left를 mid+1로 변경, left =2
mid=2, left=2,right=3
k 값을 찾았음, right값 변경, right=1
2

 


3. TC coverage 계산(33번 문제)

white box test coverage 계산하기

위 설명 자료) - 아래 영상 여러번 스터디 필요

https://www.youtube.com/watch?v=K59d8XduE28


4. 아키텍처 스타일 (32번 문제)

 



5. 아티텍처 평가 - CBAM, ATAM (36번 문제)

 



6. Spring - 모듈간 상호의존 관계 (39번 문제)

 



7. Chidamber, Kemerer의 객체지향 척도 - LCOM, WMC, RFC (40번 문제)

 

 

 

 

 

반응형