소프트웨어 공학(18)
-
소프트웨어 공학 (6) Requirement Engineering
Requirement Engineering Planned based approach 중심으로 설명 0. Requirements engineering란? (1) 고객이 원하는 사항을 듣고 소프트웨어에 대해 기대하는 바와 제한사항을 확인함 (2) 구현해야할 소프트웨어의 기능을 기술해야함 1) Requirements - 소프트웨어가 없는 경우에는 다소 추상적일 수는 있지만 기존에 시스템을 개선하거나 구체적인 숫자를 뽑아낸다면 디테일한 부분으로 다양한 범위를 가진다. - 특히 planned based에서는 Requirements를 가지고 계약을 진행하기에 Requirements은 매우 중요한 단계다. - 계약을 맺고 진행하는 부분이기에 변화가 바뀌면 이에 대해 추가적으로 들어가는 사항과 진행 일정 등의 부담을 ..
2022.04.16 -
소프트웨어 공학 (4), 소프트웨어 프로세스 2
소프트웨어 프로세스 2 1. Process Activities 1) 디자인과 구현 요구사항에 대한 명세를 실제 시스템으로 만들기 전에 진행하는 단계 전통적으로는 이 둘을 구분하지만 웹, 비즈니스 기반인 경우에는 둘을 혼용해서 사용하기도 한다. 하지만 아직까지도 이 둘을 구분하지 않았을 때 리스크가 큰 경우에는 둘을 구분해서 사용하는 경우가 많다. (1) 디자인 요구사항에 대한 소프트웨어의 특성, 객체, 클래스 등을 구현하기 전 단계에서의 설계를 의미한다. 전통적인 입장에선 구현과 관련된 것들과는 독립적으로 이야기한다. 최근에는 agile이나 비즈니스 어플리케이션에서 디자인과 구현이 함께 이야기되고 있다. 즉, 디자인과 구현에 대한 구분은 주어진 비즈니스나 산업에 따라 달라질 수 있다는 점을 알 수 있..
2022.04.13 -
소프트웨어 공학 (3), 소프트웨어 프로세스 1
소프트웨어 프로세스 0. 기본 개념 1) 소프트웨어 프로세스 - 여러가지 절차가 존재한다. - 소프트웨어를 개발하기 위해선 여러 과정과 액티비티들이 필요한데 이를 정형화해야한다. - 다양한 소프트웨어에 대한 프로세스가 존재하지만 일반적으로 아래의 과정을 거친다. (1) Specification: 요구 사항에 대한 정의하는 단계 - 사용하고자 하는 데이터 모델을 정의하거나 유저 인터페이스 등을 정의하거나 하는 순서를 정의한다. - 코드, 문서, 그림등의 output이 정해져야한다. - 각 프로세스에 대한 역할 정의해야한다. - 각 단계에 대한 선행/후행 단계를 정의하는 과정도 필요하다. (2) Design and Implementation: 소프트웨어의 설계 및 구현하는 단계 (3) Validation: ..
2022.04.06 -
자료구조 (2) 소프트웨어 공학 원리
소프트웨어 공학 원리 1. S/W revolution 1) 프로그래밍 초기 단계 - 프로그래밍은 단순한 문제 해결만 가능하고 적은 수의 프로그래머밖에 없었다. 또한 컴퓨터의 큰 비용 문제가 있었다. - 프로그램의 목적은 문제 해결을 위한 방법 및 행위에만 초점을 맞췄다. - 군사용으로 등장했다. 또한 컴퓨터가 과학자들보다 몸값이 높았다. 이에 따라 컴파일 과정을 수작업으로 진행했다. 2) 프로그래밍 과도기 - 프로그래밍은 보다 큰 문제 해결을 위한 것에 목적이 있었지만 역시나 문제 해결을 위한 방법에 초점을 맞췄다. - 타이트한 데드라인에 맞춰 개발 - 대표적인 언어가 c언어임 3) 프로그래밍 현재 - 프로그래밍은 아주 큰 문제 해결에 초점을 맞추고 문제 해결 방법보단 데이터가 더 중요하다. - 항상 가..
2022.03.17 -
소프트웨어 공학 (2) 소프트웨어 공학의 윤리 와 케이스 스터디
소프트웨어 공학 윤리 - 소프트웨어 공학은 단순히 기술을 넘어서 윤리적인 책임과 의무도 이야기함 - 공무원뿐만이 아니라 대부분 회사는 윤리사항은 인사 조항에 명시를 해놓음 -> 이를 지켜야함 Confidentiality - 본인이 개발한 내용을 관련없는 다른 사람들에게 얘기하지 말기 Competence - 본인이 할 수 있는 능력에 대해 정직하게 얘기해야함 지적 재산권 - 특허와 같은 지적재산권을 지켜야함 - 오픈소스와 관련된 라이센스를 지켜서 활용해야함 Computer misuse - 지급받은 컴퓨터, 소프트웨어 등을 업무 이외의 목적으로 사용하지 않기 ACM/IEEE Code of Ethics - 두 학회에서 소프트웨어를 다루는 사람부터 전기를 다루는 엔지니어가 지켜야하는 윤리 사항을 명시해놓음 - ..
2022.03.15 -
소프트웨어 공학 (1) 서론
소프트웨어 개념 - 개인목적으로 만드는 것이 아닌 돈을 받고 파는 프로페셔널한 소프트웨어는 상업적인 목적을 가지고 있기에 이를 위한 이론 및 방법론을 의미 - 대부분 나라들은 경제의 대부분을 소프트웨어에 의존하고 있음 ex) 배민의 정보 및 라이더 연결 / 네이버 검색 등 - 하드웨어가 로봇으로 바뀌고 이를 통제하는 소프트웨어의 중요성이 점점 증가하고 있음 ex) 창구 -> 키오스크 / 단순업무 -> AI 등 소프트웨어의 비용 증가 - 소프트웨어를 상용적인 목적을 위해 만듦 -> 이러한 측면에서 고려되어야함 - 이에 따라 이는 매우 중요한 모멘텀이 될 수 있음 - 소프트웨어의 비용 유형 (1) 소프트웨어를 구동하기 위한 환경(컴퓨터 등)에 대한 비용 -> 점점 하드웨어보단 소프트웨어의 비용이 증가함(MS..
2022.03.15