1.1 software analysis & design
-analysis: 정보 시스템이 무엇을 하여야 하는지 자세히 이해하고 명세로 나타내는 일.
-design: 정보 시스템이 어떻게 구현되어야 하는지 자세히 나타내는 일
software designer
-비즈니스 니즈를 만족시키기 위하여 분석과 설계 기술을 사용
-소프트웨어를 사용하는 기관에게 이익을 가져다주는 가치의 창출을 목표로 함
-소프트웨어는 단순 도구가 아니라, 기관이 세운 목표에 좋은 성과를 달성하게 하는 통합 요소가 되어야 함
비즈니스 목표 달성을 위해
-정확한 요구분석
-견고한 구조 설계
-구현과 테스트
-깔끔한 UI설계
등이 필요.
1.3 일반적인 시스템 개발 과정
SDLC(software development life cycle)
계획 -> 분석 -> 설계 -> 구현 -> 설치 -> 유지보수
시스템 개발 과정은 기본적으로 4단계로 구성
계획->분석->설계->구현
1.계획
-왜 정보시스템을 구축하여야 하는지 이해
-프로젝트 팀이 앞으로 어떻게 할 것인지 결정
- 타당성 분석(validaty analysis) - 기술적, 경제적, 조직적 타당성
- 작업 계획 수립
- 팀 조직 수립
- 프로젝트 관리 계획
-프로젝트 계획서 작성
2. 분석
-누가, 언제 사용하며 시스템이 어떤 기능을 가져야 하는지 분석.
-분석 전략 수립
- SWOT 분석
- 현재 시스템(as-is system) 및 새로운 시스템(to-be system)분석
-요구 수집: 인터뷰/질문
-문서화: 제안서 문서 작성
3.설계
-시스템을 어떻게 구축할 것인가?(시스템이 어떻게 동작하는지?)
-시스템의 동작을 결정
- UI,입력 양식, 보고서
- 프로그램
- 데이터베이스, 파일
-설계 전략 수립: 사내 프로그래머 개발/아웃소싱 등
-아키텍처 설계: 소프트웨어 아키텍처,인터페이스 설계
-데이터 설계: DB와 파일 설계
-프로그램 설계
4.구현
-구축 또는 컴포넌트 통합으로 설계를 현실화
-작업 단계: 시스템 구축과 부분 테스트, 시스템 설치,전환, 지원 계획
1.4 소프트웨어 개발 방법론
방법론: 소프트웨어 개발 생명주기(SDLC)를 구현하기 위해 따라야 할 가이드라인 또는 정형화된 접근 방법
방법론의 구성
- 모델
- 도구
- 기술
모델: 실세계를 특정한 관점으로 표현한 것. (흐름도, 자료흐름도, 유스케이스 다이어그램, 클래스 다이어그램..)
도구: 설계, 유지보수, 테스트 등 소프트웨어 산출물 생산에 도움을 주는 소프트웨어(툴)(CASE)
기술: 개발 작업을 완성할 수 있도록 도움을 주는 가이드라인: 프로젝트 관리 기술, 객체지향 분석 설계 기술 ...
1.5 Software process model
-Waterfall model
: 각 단계가 다음 단계 시작 전에 끝나야 함.
각 단계 사이에 중복이나 상호작용이 없음.(순서적, 시퀀셜 모델)
각 단계의 결과는 다음 단계가 시작 되기 전에 점검
적용:
단순하거나 응용 분야를 잘 알고 있는 경우 적합함.
비전문가가 사용할 시스템 개발에 적합.
변화가 적은 프로젝트에 적합
장점:
프로세스가 단순하여 초보자가 쉽게 적용 가능
중간 산출물이 명확하여 관리 용이
코드 생성 전 충분한 연구와 분석 단계를 가짐
단점:
처음 단계에서 지체되면 코딩,테스트가 지연됨
각 단계수행에 많은 노력이 필요함
필요 없는 문서를 생산할 가능성이 있음
폭포수 모델을 변형하여, 대규모 시스템을 쪼개어 병렬로 진행하는 병렬 개발 모형(parallel model)도 있음.
-Prototyping model
:프로토타입의 적용=> 사용자의 요구를 더 정확히 추출가능. 알고리즘의 타당성, 운영체제와의 조화, 인터페이스 시험 제작
사용자와 개발자의 의사소통을 도움
프로토 타입은 목적에 따라 개발할 수 있다.
단순한 요구 추출을 목적으로 하는 경우 프로토타입을 만들고 버리면 되고
제작 가능성을 타진하는 경우 개발 단계에서 유지보수가 이루어짐
장점:
개발 착수 시점에 요구가 불투명할 때 이점이 있음
혁신적인 기술을 사용해 보고 싶을 때
단점: 오해, 기대심리 유발(프로토타입만 못하네..), 관리가 어려움(중간 산출물 정의가 난해)
(중소규모의 경우 워터폴 모델을 적용하기 힘들다고 함)
-Spiral model
:나선형 모델, 여러 버전으로 나누어 순차적으로 개발
Set requirements
Ananlysis and Design
Verification and Testing
Construction and Implementation
장점:
사전 위험 분석을 통한 돌출 위험 요소 감소
유용한 시스템을 빠른 기간 내에 사용자의 손에 들려줌
중요한 추가 요구를 조기에 발견
단점:
반복적 개발에 의한 프로젝트 기간 연장 가능성
반복 횟수 증가에 따른 프로젝트 관리의 어려움
-Agile model
:민첩한. 과도한 모델링과 문서화의 짐을 과감히 생략하고 개발에 집중함(Extreme programming, Scrum, DSDM)
Extreme Programming의 핵심가치
- 의사소통
- 단순함
- 피드백
- 격려
1.6 프로젝트 팀 역할
프로젝트 팀 구성
- 프로젝트 관리자(PM)
- 시스템 분석가
- 프로그래머
- 사용자 지원
- 품질보증(QA)
- DB 관리자
- 네트워크 관리자
'2023-1 > 소프트웨어 설계' 카테고리의 다른 글
Structural Modeling (0) | 2023.06.16 |
---|---|
Use case diagram 2 (0) | 2023.06.16 |
04 - Use Case Diagram (0) | 2023.04.16 |
03 - UML (0) | 2023.04.16 |
02 - Planning (0) | 2023.04.16 |
댓글