본문 바로가기

전체 글159

소프트웨어 형상 관리 일상생활에서 형상이라는 말을 많이 들어 봤을 것이다. 우리가 흔히 알고있는 형상의 뜻은 '모습'이다. 하지만 소프트웨어는 정확한 실체가 없다. 이 때 소프트웨어의 형상을 표현할 수 있는것이 바로 각 단계의 산출물인 '문서'이다. 따라서 소프트웨어에서의 형상 관리란 소프트웨어의 문서를 관리하는 모든 작업을 뜻한다. 형상관리는 소프트웨어 유지보수과정에서 발생하는 각종 결과물들에 대한 계획/ 개발/ 운용들을 종합하여 시스템의 형상을 만들고 이에 대한 변경을 체계적으로 관리, 추적 및 제어하는 활동이다. 형상관리 : 제품 개발에서 요구되는 일반적인 관리절차 소프트웨어 형상관리의 4가지 활동 형상식별 → 관리되어야하는 문서 식별 형상통제 → 문서가 함부로 변경되지 못하게 제어 형상보고 → 문서를 이해 관계자에게 .. 2022. 2. 7.
품질관리와 프로세스 개선 ※ 재검토 필요 이 단원에서는 모르는 용어가 많이 나온다. 처음엔 그냥 대충 넘어갔었는데 하나도 이해가 되질않아서 하나하나 구글링을 해보니 이제야 조금은 이해가 가는것 같다. 용어를 찾아보는게 조금 귀찮더라도 나중에 단원을 끝냈을 때 이해가 되지않아 다시 보는것 보다 시간도 단축되고 이해도 훨씬 쉬워지는것 같다. 이번 단원은 품질보증과 품질관리에 대해 다룬다. 하지만 소프트웨어의 품질을 결정하는것은 매우 주관적이다. 그래서 품질을 결정하는 기준 혹은 품질을 보증해주는 단체 등 여러가지의 품질 보증방법이 있다. 품질관리 : 소프트웨어의 유용성을 얻기 위해 갖추어야하는 특성들의 집합 사용자의 입장에서 봐야함 공식기술검토회를 거쳐야함 ex) ISO 소프트웨어 품질 보증(SQA : Software Quality.. 2022. 2. 5.
유지보수 유지보수는 프로그램이 완성되고 완성된 프로그램을 유지하는 단계이다. 앞서 설명했듯이 개발하는 과정중 가장 많은 비용이 소모되며, 계속적인 변경을 수용할 수 있도록 만들어져야하며 적응성과 확장성을 갖도록 설계되어야 한다. 유지보수의 정의 : 소프트웨어의 사용에서 발생하는 여러 변경사항에 대해 적응하는 활동이며 변화에 대비하는 과정. 유지보수의 종류 수정 유지보수 : 잘못된 것을 수정 ex) 오류 적응 유지보수 : 사회가 변화함에 따라 새로운 환경에 적응 ex) 새로운 버전의 하드웨어 완전 유지보수 : 새로운 기능을 추가함 예방 유지보수 : 미래의 시스템관리를 위함 예방 유지보수의 종류 역공학 : 소프트웨어에 사용된 코드를 보며 그 소프트웨어를 이해함 → 소프트웨어의 문서가 없어 어떻게 분석되고 설계되었는지.. 2022. 2. 3.
소프트웨어 테스트 이번 단원은 개발이 끝난 뒤 테스트를 하는 방법과 그 종류에 대해서 알아보았다. 그 중에는 처음 봐서 많이 생소한 것도 있었고, 나도 모르게 일상생활속에서 많이 접해봐서 익숙했던 방법도 있었다. 어렵다고만 생각했던 테스트 방법도 한번만 다시 생각해보면 정말 당연한 말들이였고 그동안 내가 접해본 수많은 프로그램에서 오류가 났던 유형도 이 단원에서 모두 나와 신기했다. 테스트란 : 소프트웨어의 품질을 확보하고 결함을 찾아내기 위해 수행되는 일련의 작업으로 개발된 소프트웨어의 품질의 평가와 품질향상을 위한 수정 작업 등을 포함한다. 테스트 케이스 : 모든 경우의 수에 대하여 테스트를 하는건 불가능. 따라서 높은 확률로 오류를 찾아낼 수 있는 좋은 시험 사례 일반적인 소프트웨어 테스트 목적 소프트웨어 내에 존재.. 2022. 1. 25.
프로그래밍과 코드 검사 드디어 개발 단계로 넘어왔다. 이제부터 정말 프로그램을 만들기 위한 코드를 짜는 단계이고 분석과 설계 단계의 결과를 내는 단계이기도 하다. 처음 공부를 시작 할때에 직접 코딩을 하는 단계가 가장 어려울 거라 생각했지만, 공부를 하면서 개발이 생각보다 어렵지 않을 거란 생각도 했다. 내 개인적인 생각이지만 개발은 이렇게 개념을 공부하는 것 보단 실질직인 언어 공부를 하는것이 더 효과적일 것 같다. 프로그래밍 : 설계의 연장선. 설계 문서에 나타낸 내용을 컴퓨터가 알 수 있도록 변환하는 것이다. 프로그래밍 언어 1세대 : 기계어, 어셈블리 언어 2세대 : 최초의 고급 언어인 FORTRAN, COBOL 등 3세대 : C, C++ (구조적 프로그래밍) 4세대 : 수행 과정보다 결과물 선언을 중시하는 비절차 언어.. 2022. 1. 24.
사용자 인터페이스 설계와 상세 설계 인터페이스는 우리가 인터넷을 사용할 때 흔히 접할 수 있다. 인터페이스를 통해 내가 원하는 것들을 컴퓨터 언어를 배우지 않고도 쓸 수 있고 어린아이와 노인들도 쉽게 사용 할 수 있을 정도로 쉽고 대중화 되어있다. 인터페이스를 쉽게 만듦으로서 사용자는 물론 개발중 고객이 원하는 것이 무엇인지 알 수 있는 척도이기도 하다. 따라서 인터페이스의 설계는 설계 단계에서도 구조 설계를 하기 이전에 하는것이 바람직하다. 사람과 컴퓨터 사이의 인터페이스(HCI : Human-Computer Interface) - 비전공자인 사용자가 컴퓨터에 원하는 기능을 사용하려할 때 컴퓨터와 사용자를 이어주는 문과 같은역할 ex) 홈페이지, 웹사이트 인터페이스의 특징 ① 사용자 중심으로 설계되어야함 ② 입력방식이 간편해야하고 기억하.. 2022. 1. 24.
디자인 패턴 어제 쉬고 왔더니 확실히 공부가 잘되는것 같다. 오랜만에 드라이브도 갔다오고 피시방에서 게임도 했다. 그리고 코노에서 1시간 있었더니 목이 나갔었다. 크크 앞으로도 일주일에 한번정도는 쉬면서 분위기도 바꿔보고 여러가지 취미생활도 할 예정이다. 오늘 배운건 디자인 패턴이다. 패턴이란 일정하게 반복되는 모양? 이다. 그냥 평소에 알고 있는 그 패턴이 맞으니 따로 구체적인 설명은 하지 않겠다. 무아레 패턴 가끔씩 모니터나 버스 시간표를 카메라로 찍으면 이상한 물결무늬가 나와 원하는 화면을 찍지 못할 때가 있다. 그 때 나오는 물결무늬를 무아레 패턴 이라고 한다. 무아레패턴으로 인해 화질이 떨어지거나 원하는 것을 못 찍을 때도 있지만, 아래 그림처럼 그것을 이용하기도 한다. 소프트웨어에서의 디자인 패턴 특징 ①.. 2022. 1. 23.
자료 흐름 중심 설계와 데이터베이스 설계 이 단원에서는 지금까지 배운 정보 모델링, 객체지향분석을 통해 얻은 ER모델/클래스 다이어그램을 '관계형 데이터베이스'로 옮기는 과정을 배운다. 다시말해 구조적 분석을 통해 얻은 산출물을 프로그램 구조로 바꾸는 것이다. 그 과정에서 필요한 것이 자료 흐름 중심 설계이다. 자료 흐름 중심 설계 (DFD : Data Flow-oriented Design) - 앞서 분석을 하며 얻은 결과를 구조적 설계로 옮기는 과정 - 시스템을 모듈화하여 하향식으로 세분화 개요 - 프로세스, 자료흐름, 자료저장소, 외부객체로 구성 - 구조적 설계를 위한 입력 = DFD에 기초한 요구사항 명세서 구조도표 - 모듈들 사이의 자료와 제어의 흐름을 보여주며 반복, 선택과 같은 프로그램 제어구조를 나타냄 구조도표의 표기법 사각형 = .. 2022. 1. 21.
소프트웨어 설계 기법 최근들어 공부에 대한 의욕이 점점 사라지고 있다는걸 요즘 느끼고 있다. 그동안 내가 쓴 글들을 하나하나 읽어보았는데 모델링에 들어갈때까지는 되게 열정이 넘쳐서 내 경험에 빗댄 예시도 많이 들곤 했었지만, 최근 글은 전부 책에 있는 내용만 받아쓰기 한 느낌이다. 이제 곧 개강도 다가오고 여자친구도 생겨서 바쁠일이 되게 많을텐데 이제라도 다시 초심으로 돌아가 공부를 해야겠다. 소프트웨어 공학 카테고리의 거의 초반부분 글을 보면 개발의 단계는 크게 5가지로 나누어져 있는 것을 알 수 있다. ① 요구사항분석 (계획) ② 설계 ③ 개발 ④ 테스트 ⑤ 유지 및 보수 이렇게 나누어져 있는데 지금까지는 여러가지 모델링을 통한 분석 과정을 배웠었다. 이제는 다음 단계인 '설계'이다. 앞서 설명했듯 설계와 계획은 비슷하면.. 2022. 1. 20.