본문 바로가기
728x90
반응형

2023-229

9. 소프트웨어 품질 소프트웨어 품질 US DoD: 개발된 소프트웨어가 사용자의 요구 사항을 만족할 수 있는 능력 IEEE: 소프트웨어가 필요한 속성을 보유하고 있는 정도, 사용자의 기대 수준을 만족할 수 있는 정도를 결정하는 특성 ISO: 요구사항을 만족하는 소프트웨어 제품의 능력 프로젝트 관리자 관점의 좋은 소프트웨어 - 추가 부담이 발생하지 않는 소프트웨어 개발자 관점의 좋은 소프트웨어 - 개발하기 쉽고 내용 추가 및 코드 수정이 쉬운 - 코딩 표준에 맞게 개발된 프로그램 유지보수자 관점의 좋은 소프트웨어 - 작성된 코드가 코딩 규칙 및 표준을 따르고 주석이 많이 포함된 - 가독성이 높고 쉽게 이해할 수 있는 - 변경 영향이 한 부분으로 국한되는 - 코드와 일관성 있는 문서가 제공되는 사용자 관점의 좋은 소프트웨어 - .. 2023. 12. 18.
8. 유지보수 소프트웨어 개발에서 유지보수는 67%나 차지함 유지보수 타입 - Corrective 20%: 오류 수정 - Adaptive 20%: 환경변화 반영 - Perfective 60%: 새 기능 추가, 성능 개선을 위한 확장 활동 - Preventive: 미래의 유지보수를 용이하게 함 유지보수라고 하면 defect fix를 생각하지만 Corrective는 고작 20%에 불과함 Lehman의 원리 - SW는 계속 변경됨 - SW 복잡도도 계속 증가함 - 대규모 SW 유지보수에는 일정한 방향이 있음 - 대규모 SW는 안정화 상태인 경우가 많음 - 유지보수 수행시 기존 SW에 대한 친근성을 유지하려고 함 유지보수에 영향을 주는 요소 - 사용자: 불편, 오류의 개선을 위한 변경 요청 - 환경: 운용환경,조직환경 변화 .. 2023. 12. 18.
7. testing Verification - 정확한 요구사항에 부합하여 구현되었는지 - 요구사항 명세서대로 제품이 만들어지고 있는지 - 개발 중간중간 이루어짐 - 개발자 측면 Validation - 고객이 의도한 요구사항에 따라 구현되었음을 보장 - 고객이 의도한 환경이나 사용목적에 맞게 만들어짐을 보장 - 제품이 고객들이 원한것이 맞는지 - 원래 의도한 사용에 부합하는지 - 개발의 처음이나 끝에 이루어짐 - 고객/사용자 측면 이 둘을 V&V라고 함 Testing과 Debugging Testing Debugging 목적 알려지지 않은 결함의 발견 이미 알고 있는 결함의 수정 수행 시스템 내부 관련자 테스팅 팀 등 외부의 제3자 시스템 내부 관련자 주요 작업 숨겨진 결함 발견 결함의 정확한 위치 파악 결함의 타입 식별 결함.. 2023. 12. 18.
6. Implementation 코드 작성 또는 프로그래밍 설계의 최하위 상세화 과정임 코드 작성, 디버깅, 통합, 개발자 테스트 작업 포함 개발자의 코딩 스타일은 일의 효율에 영향 끼침 코드컨벤션 좋은 소프트웨어 코드의 6가지 공통점 - 가독성 - 자세한 주석 - 코드구조가 간결 - 변경에 탄력적 - 활용을 위해 관리할 수 있어야 함(유지보수성) - 코드가 원래 목적한 기능을 올바르게 수행 좋은 코드 작성을 위한 규칙 - 최적화보다는 가독성 우선 - 아키텍처를 우선 개발 - 테스트 커버리지를 고려 - 간단하고 단순하게 코딩(KISS: Keep It Simple and Stupid) 추상화나 패턴을 과도하게 적용시 오히려 더 복잡해질 수 있음. - 주석을 작성하되 보조적으로 사용: 메서드의 정의와 사용법 설명하는 간단한 주석 작성) -.. 2023. 12. 17.
5. 설계 좋은 설계의 조건 - 요구 분석 명세서 내용을 설계서에 모두 포함 - 유지보수가 용이하도록 추적 가능토록 함 - 변화에 쉽게 적응 - 시스템 변경으로 인한 영향이 최소화되도록 국지적이어야 함 - 설계서는 읽기 쉽고, 이해하기 쉬워야함 설계는 상위 설계: 아키텍처,데이터,인터페이스 정의, 사용자 인터페이스 설계 하위 설계: 모듈 설계, 자료구조 설계, 알고리즘 설계 로 나뉨 상위설계(예비 설계) - 아키텍처 설계: 시스템의 전체적 구조 설계(여러개의 서브시스템으로 구분) - 데이터 설계: 시스템에 필요한 정보를 자료구조와 DB설계에 반영 - UI설계 하위 설계 - 각 모듈의 실제적인 내부를 알고리즘 형태로 표현 - 인터페이스에 대한 설명,자료구조,변수 등 상세한 정보 작성 설계 - 추상화: 주어진 문제에서.. 2023. 12. 17.
4. 요구 사항 분석 SW개발의 목적: 개발된 소프트웨어의 고객 만족 고객 만족을 위한 특성 - 적시성: 빠른 출시를 통한 시장 점유 - 유연성: 다양한 환경에서 적응성 - 통합: 기존 시스템과 쉬운 통합 고객 만족의 개발 조건 - 고품질 - 기간 준수 - 예산 준수 요구사항: 개발 범위에서 시스템이 제공해야 하는 기능 요구 분석 명세서: what에 초점(not how) SW 요구 사항 정의를 위해 사용자의 요구 사항을 조사하고 확인하는 과정은 SW 개발 생명주기의 첫 단계로 개발 성패의 열쇠가 됨 요구 분석의 여려움 - 의사 소통 문제 - 계속 변하는 요구 사항 - 요구 사항간의 충돌, 일관성 결여 및 불일치 발생 - 애매모호한 요구 사항 요구사항 분석가의 역할 - 요구를 정확하고 완전하게 획득하기 - 다양한 참여자를 만족.. 2023. 12. 17.
물리적 설계 더보기 논리적 스키마를 이용하여 효율적인 물리적 데이터베이스를 구성한다. 물리적 데이터베이스는: 저장 레코드의 형식, 저장 순서, 접근 경로, 물리적 저장 장치 할당 등에 대한 내역 파일 구성 데이터베이스는 여러 개의 파일로 저장되고, 파일은 여러개의 레코드를 저장, 레코드는 여러개의 필드로 구성된다. DB-파일-레코드-필드 레코드 표현 방법 1. 고정 길이 레코드 모든 레코드의 길이를 동일하게 한다. 구현이 용이하다. 이 때, i번째 레코드가 삭제되는 경우 - 아래 레코드를 한칸씩 위로 이동 - 마지막 레코드를 i번째로 이동 - Free list로 연결(파일 헤더에 첫번째 삭제 레코드 주소를 저장하고, 삭제된 레코드들을 연결 리스트로..) 등 방법으로 구현할 수 있다. 2. 가변 길이 레코드 한 파일에.. 2023. 12. 16.
Processor Architecture MIPS (Microprocessor without Interlocked Pipeline Stages) logic design basics CPU 성능 요인: - 명령어 개수 (IC): ISA와 컴파일러에 따라 결정된다. - CPI, Cycle time: CPU 아키텍처에 따라 결정된다. 컴퓨터는 이진 시스템으로, 0은 낮은 전압을 나타내고, 1은 높은 전압을 나타낸다. 한 비트당 하나의 전선이 필요하다. (32비트 아키텍처라면 32개의 전선이 필요하다.) 조합 회로(Combinational element): 데이터 연산을 수행하며, 입력을 받아 출력을 생성한다. 순차 회로(State sequential elements): 데이터를 저장하며, 입력값과 이전에 저장된 상태를 사용하여 출력을 생성한다. 간단.. 2023. 10. 29.
Segmentation 영역 분할. 영역들을 찾기 위해서는 homogeneity(동질성), contrast(대비)를 이용한다. 하나의 영역인지 판단하는 기준 Gray level color texture shape perimeter 이미지 분할 기술 Region growing and shrinking: 영역 확장과 축소 Clustering methods: 군집화 Boundary detection: 경계선 감지 Region growing and shrinking 영역 확장과 축소 밝기(그레이레벨),색,무늬 , 특징정보 등의 동질성 판단 기준을 통해, 주변에 동질성 기준을 만족하는게 있으면 영역을 확장시킴. 초기에는 4영역으로 조각낸 후, 각 영역의 동질성을 계산한다. 기준을 만족하는 영역들은 합치고, 만족하지 않는 영역은 다시 4.. 2023. 10. 26.
5. Edge Detection 엣지 검출 엣지와 노이즈는 고주파. 고주파를 다루는 high-pass filter를 이용하면 된다. 엣지에 노이즈가 함께 추출되는것, 엣지의 굵기가 다양한것(scale의 차이) 등의 문제가 있다 엣지: 밝기가 크게 변하는 점 Roberts Operator 엣지검출을 위한 필터 1 0 0 -1 Gx 0 1 -1 0 Gy 방향성이 있다. 2x2크기로, 간단한 형태임. 바이너리 이미지에서 엣지 검출하기 좋음 검출시 Gx와 Gy를 각각 연산한 후 더해서 사용. 다양한 굵기(scale), 잡음이 포함됨. 노이즈 민감도가 큼(즉, 노이즈가 걸러지지 않음) 이는 필터가 너무 작기 때문임. 필터가 작으면 작은 엣지까지 검출하는데, 이 때 노이즈까지 검출된다 Sobel Operator 3x3크기의 필터. -1 0 1 2.. 2023. 10. 25.
4. Spatial Filters 공간 필터 1. Mean filter = linear filter = 선형 필터 = 평균 필터 이미지를 부드럽게 만듦 대비가 너무 높은 이미지는 부드럽게 처리할 필요가 있음. convolution 연산으로 처리함 3x3크기의 필터라면 각 칸에 1/9의 가중치씩 둠. 즉 필터에 해당하는 값들의 평균을 사용 필터를 크게 만들면 더 흐릿해지고, 커지는만큼 계산량도 많아짐. 2. Median Filter mean필터와 비슷하지만 비선형(nonlinear) 필터임 salt and pepper 노이즈를 제거하는 데 효과적이고, 이미지를 부드럽게 하는 효과도 있음 convolution연산을 하는것이 아니라, 필터에 해당하는 영역의 값들을 정렬한 후, 중앙값을 사용함 salt와 pepper는 극단적으로 높고 낮은 픽셀.. 2023. 10. 25.
3. 프로젝트 관리 Project management 프로젝트 목표를 효율적이고 효과적으로 달성하는 데 필요한 내적 환경 요소들을 준비하고 유지하는 활동 project management의 5단계 Initiation & conception(문제 정의) planning launch & execution monitoring & control project closure 1. Initiation & conception(문제 정의) 1-1) 비즈니스 니즈 및 목표, 개발 필요성 등 식별 개발의 첫 작업 무엇을 개발할 것인지 정의 개발 범위 결정 문제 정의를 위한 필요 사항: 배경지식, 운영 중인 시스템, 실무 담당자와 면담/자료수집 후 분석 1-2) 프로젝트 타당성에 대한 예비 조사 수행(feasibility analysis) 경.. 2023. 10. 23.
2. 소프트웨어 개발 생명 주기 Process 일이 처리되는 과정이나 공정 주어진 일을 해결하기 위한 목적으로, 그 순서가 정해져 수행되는 일련의 절차 소프트웨어를 정해진 기간동안 고객이 원하는 수준의 품질로 deliver하는 것이 목적 SW 프로세스의 3요소 소프트웨어 세부 작업들의 관계를 정의하는 절차와 방법 능력, 교육 및 동기가 부여된 인원 도구와 장비 소프트웨어 프로세스 모델 소프트웨어 개발 프로세스 프로세스: 작업(task)순서의 집합 + 제약 조건(일정, 예산, 자원)을 포함하는 일련의 활동 (좁은 의미: SW제품을 개발할 때 필요한 절차, 과정, 구조. 사용자의 요구사항을 SW시스템으로 구현하기 위한 일련의 활동) (넓은 의미: 절차,구조,방법, 도구, 참여자까지 모두 포함. SW개발 목적을 이루는데 필요한 통합적 수단).. 2023. 10. 23.
1. 소프트웨어 공학 소프트웨어 컴퓨터 프로그램 + 관련 문서들을 소프트웨어라고 한다. 소프트웨어 제품은 Generic market: 다양한 고객에게, 또는 Custom: 특정 고객에 특화된 것일 수 있다. 소프트웨어의 특징 - 보이지 않는다.(invisibility) - 고유한 복잡도는 줄어들 수 없다.(complexity) - 인풋과 타이밍이 불확실하다. - 새로운 것이 계속 생긴다.(changeability) - 100%자동화가 아님 - 소통이 요구된다. - 관리 이슈 발생 소프트웨어 엔지니어링은 효율적인 소프트웨어 생산의 복잡성의 모든 요소를 관리한다. 소프트웨어 프로그래밍 vs 소프트웨어 엔지니어링 소프트웨어 프로그래밍 - 혼자 개발 - 작은 사이즈 - 짧은 개발기간 - 개발에 포함되는 사항들(Architect = .. 2023. 10. 22.
기계 학습 기계학습 개념 선형 회귀: 데이터를 잘 표현하는 직선 한개를 찾아, 새로운 상황에 대한 예측을 가능하게 함 로지스틱 회귀: 배경지식을 토대로 분류 작업을 할 수 있음 선형 회귀(Linear Regression) 주어진 학습 데이터의 추이에 대해 가장 적합한 직선 방정식을 추론해내는 것 학습 데이터의 예 : 공부시간에 대한 시험성적 공부시간(x) 시험성적(t) 9 74 14 81 21 86 27 90 32 88 37 92 위 데이터를 보면 공부시간에 비례해서 시험성적도 증가하는 경향을 보임. 점들의 추이를 가장 잘 나타내는 직선(y=Wx+b)을 찾아서, 주어지지 않은 공부시간에 대한 시험 성적을 예상할 수 있음. 선형회귀는 주어진 학습 데이터의 추이에 대해 가장 적합한 직선 방정식을 추론해내는것. => 주.. 2023. 10. 21.
SQL: 모든 프로젝트에 참가하는 직원의 이름을 검색하라 데이터베이스 문제를 풀다가 "모든 프로젝트에 참가하는 직원의 이름을 검색하"는 SQL문을 작성해야했는데 쉽게 방법이 떠오르지가 않았다. 심지어는 답안을 봐도 단번에 이해하기가 힘들었다. 그래서 내 방식대로 이해는 했는데 기록을 안 해두면 까먹을것같아서... 이 글을 적어봄. 문제 다음 EMPLOYEE, PROJECT, WORKSON 테이블로 구성된 데이터베이스에서, "모든 프로젝트에 참가하는 직원의 이름을 검색하라."를 수행하기 위한 SQL문으로 옳은 것은? EMPLOYEE(eNo, eName) PROJECT(pNo,pName) WORKSON(eNo,pNo) 답 SELECT eName FROM EMPLOYEE e WHERE NOT EXISTS( SELECT * FROM PROJECT p WHERE NOT.. 2023. 10. 21.
6. ER 모델을 이용한 데이터 모델링 개념적 설계 : 특정 체계의 정보 요구사항을 구성하는 개체, 관계, 속성들을 인식 -> 도형화/명세화 한 것이 Entity Relationship Diagram 개념적 설계의 필요성 - 데이터 독립성 제공을위한 안정된 자료 구조의 창출. 특정 DBMS에 적합한 데이터모델로 변환 용이 ER모델과 관련 명세서를 통한 산출물의 이해도 증진 논리적 설계 개념적 스키마(ER 모델) -> DBMS의 논리적 스키마로 변환 개념적 설계 - 스키마의 표현력과 완전성을 추구 논리적 설계 - 논리적 모델이 제공하는 자료 구조와 제약사항을 효율적으로 이용 논리적 설계의 접근 방향 - ER 다이어그램을 단순한 ER 다이어그램으로 변환 - 단순한 ER 다이어그램을 DBMS의 논리적 모델로 변형 물리적 설계 논리적 스키마를 이용하.. 2023. 10. 21.
5. 데이터베이스 응용 개발 1. 사용자 인터페이스와 도구들 응용 프로그램: 사용자와 데이터베이스를 연결 Front-end: User Interface - forms and graphical user interfaces Report generators Data analysis tools 입력 폼(Forms) DB에 데이터를 입력하고 조회하는 목적으로 사용. - web 검색엔진 Form 개발을 위해 다양한 도구 활용이 가능. - Web Browser: HTML - Language API: Visual Basic, Visual C++, Java Swing 보고서 생성기 데이터베이스에서 사용자가 원하는 보고서를 용도에 맞게 생성하는 도구 2. 웹 인터페이스와 데이터베이스 웹 브라우저는 DB응용에 대한 de-facto standard(사실.. 2023. 10. 21.
Python summary 파이썬 기초 변수: 자료형을 명시할 필요 없음 a = 4 부동소수점 실수 123e2 #12300.0 123.456e-3 #0.123456 유효숫자e지수 형태로 적으면 된다. 출력 형식(format) 기본 방법 # 숫자를 문자열에 삽입하기 number = 42 formatted_string = "숫자는 {}입니다.".format(number) print(formatted_string) # 출력: 숫자는 42입니다. # 여러 개의 값을 삽입하기 name = "홍길동" age = 30 formatted_string = "이름은 {}, 나이는 {}세 입니다.".format(name, age) print(formatted_string) # 출력: 이름은 홍길동, 나이는 30세 입니다. .format(변수값)을 입.. 2023. 10. 18.
머신러닝 개요 Data Science 4차 산업 시대: 빅데이터, 인공지능 데이터 과학: 다양한 데이터로부터 지식과 인사이트를 추출하는 과학적 방법론. 프로세스,알고리즘,시스템을 통합하는 융합분야. -데이터 마이닝, 빅데이터 머신러닝: 기계에게 데이터를 학습시켜 규칙성을 찾아내 미래를 에측하거나 분류,인식하는 기술 - 인공지능, 딥러닝 빅데이터의 특징 3V 규모(Volume) 속도(Velocity) 다양성(Variety) +5V 신뢰성(Veracity) 가치(Value) 데이터 분석 방법(론) 기술 통계: 수집,축적한 데이터를 묘사,설명하는 통계 기법. 대표값 분석 - 평균,중앙값,최빈값/ 분산 분석 - 표준편차, 분산, 사분위값 추론 통계: 수집,축적한 데이터를 기반으로 일반적인 상황을 추론,예측하는 통계기법. - .. 2023. 10. 18.
728x90
반응형