강의 내용 정리/소프트웨어 공학(15)
-
소프트웨어 공학 (9), Implementation
Design and Implementation 탑다운 방식이면 디자인과 구현을 명확하게 구현하곤 한다. 이를테면 설계는 한국에서 하되 구현은 외국에서 진행하는 등의 역할을 구분해 나눌 수 있다. 이러한 경우에는 디자인 단계에서 많은 문서가 나올 수 있다. 그러나 데브옵스와 인터넷 설계 등을 봤을 때 설계와 구현은 밀결합되어있는 경우가 많다. 소프트웨어에 대한 상세 설계와 구현은 프로그래밍 언어를 통해 만드는 과정을 의미한다. 결과적으로는 executable한 시스템을 만들 수 있다. 상세 설계와 구현은 매우 밀결합한 경우가 많다. 구현을 하다가 문제가 발생하는 경우에는 상세설계에 피드백을 줄 수도 있다. 둘은 매우 많이 인터렉션해야한다. 둘을 함께 진행하는 경우에는 일반적으로는 agile 기법이다. ag..
2022.04.25 -
소프트웨어 공학 (8), Architectural Design
Architectural Design 1. Architectural Design 앞서 정의한 시스템을 큰 틀에서 디자인 하는 것 0) 개요 - 성취하고자 하는 기능과 성능을 비롯해 보안, 신뢰성, 유지보수 가능성 등의 비기술적인 부분에 대한 뼈대를 결정하는 것 - 요구사항 엔지니어링의 다음 단계로 세부적인 사항을 디자인하기 이전 단계에 해당한다. 따라서 어떤 구성요소가 들어가는지, 구성요소들 간의 관계를 디자인하는 작업이 주 작업이 된다. - 시스템을 구성하는 구성요소와 구성요소간 상호작용이 정형화된 문서나 포맷의 결과물로 도출되어야한다. - 큰 틀을 디자인하는 것이기에 Agile 기법에서도 아키텍쳐에 대한 디자인은 중요하다. - 아키텍쳐를 잘못 만들면 incremental이 어려울 수 있다. 이를 실패..
2022.04.25 -
소프트웨어 공학 (7), System modeling
System modeling 개념적인 모델에서 상호작용하는 내용과, 세부적인 동작을, 시스템 구성 요소에 대한 정의하는 것 1. System modeling 1) System modeling이란? - 요구사항을 반영한 시스템을 모델링하는 것으로 다른 단계에서 사용할 수 있는 도구가 된다. - 상호작용도 반영한다. - 여러 기법들이 존재하며, 이는 요구사항을 구체적으로 풀어가기 위한 단계가 된다. - 각 모델의 특장점을 활용해서 적절하게 맞는 기법을 추출하는 것이 중요하다. - 구체적인 그림을 가지고 서로의 생각을 표현할 것이다. ex) UML(unified modeling language) - 방법 각각이 의미가 있으며 순차적으로 해도 의미있으며 requirement나 소프트웨어 디자인 등에서도 내용을 ..
2022.04.25 -
소프트웨어 공학 (6) Requirement Engineering
Requirement Engineering Planned based approach 중심으로 설명 0. Requirements engineering란? (1) 고객이 원하는 사항을 듣고 소프트웨어에 대해 기대하는 바와 제한사항을 확인함 (2) 구현해야할 소프트웨어의 기능을 기술해야함 1) Requirements - 소프트웨어가 없는 경우에는 다소 추상적일 수는 있지만 기존에 시스템을 개선하거나 구체적인 숫자를 뽑아낸다면 디테일한 부분으로 다양한 범위를 가진다. - 특히 planned based에서는 Requirements를 가지고 계약을 진행하기에 Requirements은 매우 중요한 단계다. - 계약을 맺고 진행하는 부분이기에 변화가 바뀌면 이에 대해 추가적으로 들어가는 사항과 진행 일정 등의 부담을 ..
2022.04.16 -
소프트웨어 공학 (5), Agile software development
Agile software development 웹 기반, 비즈니스에서 많이 사용하는 개발 기법 1. 소프트웨어 비즈니스의 발전 Past: Software 중심 한글, 어도비 포토샵, 마이크로 소프트 윈도우 OS, Office, CD/DVD 등 과거에는 소프트웨어 자체가 비즈니스로 활용되는 경우가 많았다. 한마디로 소프트웨어를 직접 판매하여 수익을 창출하는 경우가 대부분이었다. 따라서 패키지형태로 소프트웨어를 제공하는 경우에는 소프트웨어를 개발과 관련된 사람이 많이 필요하고 문서를 만들 필요가 있었다. Windows 9x, Office 2xxxx와 같이 소프트웨어 개발 주기는 연단위일 정도로 개발 기간이 매우 길었고, 많은 사람들이 투입되기에 비용도 많이 소모됐다. 이 당시에는 목표로 가지고 있는 데드라..
2022.04.14 -
소프트웨어 공학 (4), 소프트웨어 프로세스 2
소프트웨어 프로세스 2 1. Process Activities 1) 디자인과 구현 요구사항에 대한 명세를 실제 시스템으로 만들기 전에 진행하는 단계 전통적으로는 이 둘을 구분하지만 웹, 비즈니스 기반인 경우에는 둘을 혼용해서 사용하기도 한다. 하지만 아직까지도 이 둘을 구분하지 않았을 때 리스크가 큰 경우에는 둘을 구분해서 사용하는 경우가 많다. (1) 디자인 요구사항에 대한 소프트웨어의 특성, 객체, 클래스 등을 구현하기 전 단계에서의 설계를 의미한다. 전통적인 입장에선 구현과 관련된 것들과는 독립적으로 이야기한다. 최근에는 agile이나 비즈니스 어플리케이션에서 디자인과 구현이 함께 이야기되고 있다. 즉, 디자인과 구현에 대한 구분은 주어진 비즈니스나 산업에 따라 달라질 수 있다는 점을 알 수 있..
2022.04.13