분류 전체보기 281

소프트웨어 개발방법론

Waterfall model 소프트웨어 개발 프로세스 각 단계를 체계적(순차적)으로 거쳐가는 모델 각 단계마다 review와 approval 필요. 필요하다면 "loop-back" 가능 Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance - 장점: 관리와 실행이 간단, 고정된 비용의 프로젝트에 적합, 전체 프로젝트에 대한 예산과 일정 추정이 쉬움 - 단점: 완전한 요구사항을 추출하기 위해서 많은 시간이 필요, 제품이 실패할 확률이 높음(21%), 정적인 시장에만 적합함, 기술적 어려움으로 고객의 예상과 다를 ..

SPI, CMMI, 기타 용어

Software Process Improvement(SPI, 프로세스 개선): 개발 속도 향상/제품 품질 향상/비용 절감 등의 특정 목표를 달성하기 위해 개선 활동을 계획하고 구현하기 위한 일련의 작업, 도구 및 기술. 미국 국방성은 소프트웨어 개발프로세스를 개선하고 조직의 역량 및 성숙도를 측정하는 모델인 CMM을 발표 SW-CMM(=CMM, 성숙도 모델)에서 통합모델 CMMI으로 확장 CMMI 조직의 성숙도를 1단계에서 5단계로 정의하고 각 단계마다 만족해야 하는 핵심역량을 Key Process Area(KPA)로 정의 Level 1 Initial: 아무런 인증 x Level 2 Repeatable: 소프트웨어 프로젝트의 기본적인 핵심역량을 갖추었는지 판단하는 것이 목적 기타 용어 Software c..

Formal Methods 정형 기법

- 수학적인 이론에 기반하여 소프트웨어와 하드웨어 시스템의 명세, 개발, 형식 검증을 위한 기술 - 안전/보안이 중요한 소프트웨어 및 시스템에서 사용됨 - 명확하고 정형적으로 정의된 semantics를 기반으로 함 - 자동화된 분석이 가능함 (시뮬레이션, 테스트케이스 생성, 정형 검증 등) 장점: 에러를 빨리 발견 가능, 제품 품질 향상 단점: 비용이 많이 들고 어려움 정형 명세(Formal Specification): 수리, 논리를 이용하여 시스템의 기능, 행위, 동작 환경을 기술하는 것. 모호함을 없애는 것이 목적 요구사항 간 inconsistency를 없애고 설계가 요구사항을 만족하는지 증명 가능 Finite State Machine, Statechart, Petri Net 등이 해당됨 정형 검증(..

Inspection

SRS review의 한 방법 소프트웨어 개발 전 단계에 걸쳐서 두루 적용 가능 문서 공유를 통한 소통과 이를 기록 요구사항의 오류를 소프트웨어 개발 단계 중 뒤에서 고칠 수록 비용이 많이 들기 때문에 필요 Fagan 인스펙션 4~5명이서 적당한 준비 후 결함을 찾기 위한 집중적인 검토 모임을 가짐 한 번에 최대 두 시간, 하루에 최대 두 번씩으로 제한하도록 추천 참여자들은 Moderator, Reader, Inspector, Recorder 등으로 맡은 역할이 있음 오류를 찾는 목적에 집중할 수 있도록 모두 노력 과정 Planning 및 Overview: 검토 대상이 되는 product를 설명하는 단계. 그 대상은 SRS 문서, 소스코드 등 Preparation: 각 참여자들이 개인적으로 자료 검토 등..

UML

UML(Unified Modeling Language, 통합 모델링 언어): 요구 분석, 시스템 설계, 시스템 구현 등의 개발 과정에서 개발자 간 의사소통을 원할하게 이루어지게 하기 위하여 표준화한 범용 모델링 언어. 구성요소: thing, relationship, diagrams 코드의 전체적인 구조를 이해하는 데 도움 knowledge sharing/transfer에 긍정적 많이 사용되는 UML diagrams Class diagram: class들의 타입, 내용, 관계를 표시함으로써 시스템의 구조를 기술. Java나 C++같은 객체지향 프로그래밍 언어가 사용하는 경우 상속 등 객체간의 관계를 분석 Sequence diagram: 시나리오 기능을 수행하는데 필수적인 객체들 간의 교환되는 일련의 메시지..

Requirements Engineering(요구공학)

요구사항은 소프트웨어 설계의 기초적인 문서로서 테스트케이스를 만드는 등의 기초가 됨. 요구사항이 조기에 파악되지 못하면 추가 비용이 매우 크며, 변경된 요구사항이 다른 기능에 영향을 미칠 수 있음. Requirements Management Activities 요구사항에 대한 형상 관리 제안된 변화를 검토하고 그 영향 평가 요구사항 변경으로 예상되는 영향을 기반으로 새로운 약속 및 협상 각 요구사항에 대응되는 설계, 소스코드, 테스트케이스 추적 Source of Requirements: 잠재적 사용자와의 인터뷰, 경쟁사 제품 분석, 유사 시스템 참고, 사용자 업무 시나리오 분석 등 형상관리를 위한 도구 CVS: 무료 서버-클라이언트 형상관리 시스템. 히스토리 보존. 속도 느림 SVN: CVS 단점 보완...

소프트웨어공학이란?

Software Engineering(SE) 소프트웨어의 개발, 작동, 유지, 처분에 대한 체계적인 접근 "Multi-person construction of multi-version software" : 수많은 개발자들이 긴밀하게 협력해야만 개발이 가능할 정도로 복잡한 소프트웨어 개발에 필요한 기술을 연구하는 분야. 소프트웨어의 개발은 지속적인 유지, 보수, 확장을 필요로 하는 일. 여러 버전의 형태로 출시되는 경우가 많음. SE의 중요성 소프트웨어의 품질과 생산성 시스템 비용에 있어 소프트웨어 비용이 지배적인 요소 software-intensive, software-driven economy 소프트웨어 개발 단계: 요구사항 분석 -> 설계 -> 구현 -> 검증 -> 요지보수 소프트웨어 특성: Comp..

[231006] HTTP 공부, 방명록 기능 검토

HTTP 알아보기 HTTP(Hypertext Transfer Protocol) 서버/클라이어트 모델을 따르는 프로토콜(기본 포트 80) TCP/IP 위에서 작동 모든 종류의 데이터 전송 가능 Connectionless 방식: 서버에 연결하고 요청해서 응답을 받으면 연결을 끊음 -> stateless: 클라이언트의 이전 상태 정보를 알 수 없음 - cookie를 이용해 이 문제를 해결 Cookie: 클라이언트아 서버의 상태 정보를 담고 있는 정보조각 서버 - 클라이언트 로그인 정보 등을 cookie를 키로하여 자신의 DB에 저장 후 cookie를 클라이언트에게 보냄 클라이언트 - 다음 요청 시 cookie를 서버에 보냄으로써 서버가 cookie 값으로 db를 조회하여 로그인 여부 등 확인 URI - 자원의..

[231005] Rest API, JSON 공부, 페이지 기능 구현

메인 페이지 & 나의 개인 페이지 완성 - 현재 메인 페이지 작성 완료하신 분까지만 버튼 기능 + 검색 기능으로 페이지 이동 Rest API 알아보기 REST란? Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것. 자원의 상태: JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적 HTTP URI를 통해 자원을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미 CRUD OperatioN Create: 생성(POST) Read: 조회(GET) Update: 수정(PUT) Delete: 삭제(DELETE) HEAD: heade..

[231004] git 강의, 와이어프레임 설계 & 정적 페이지 구현

git & github 강의 1회차 배운 내용 정리 https://jinjinjincode.tistory.com/83 1회차 Git 이란? 하나의 폴더 내에서 코드의 변경점을 기록하기 위해 사용 -> 형상 관리 도구 형상 관리 도구: 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것 Github란? 백업과 공유(협업)가 jinjinjincode.tistory.com 로컬의 default 브랜치명을 master -> main으로 변경 $ git config --global init.defaultBranch main 미니프로젝트 와이어프레임 설계 미니프로젝트 메인페이지 틀 TODAY 2002 | TOTAL 118 I-world 참고: https://www.cyworld.com TODAY is 행복🎃 팀..