소프트웨어 공학의 목표
- S/W 개발의 어려움 해결하여 개발자를 만족
- 효율적 개발을 통한 생산성 향상으로 투자자를 만족
- 고품질 소프트웨어 제품 생산하여 사용자를 만족
기본적 소프트웨어 개발 과정 (구체화)
- 1단계: 계획(정의)
- 문제 정의에 따른 개발 비용 산정, 일정 계획, 위험(risk) 관리 등
- 2단계: 분석
- 3단계: 설계
- 4단계: 구현(가장 중요)
- 가장 오래 걸리고, 개발자를 위한 부분. 그러다 보니, 일반적인 소비자를 위한 부분이 부족.
- SW사용의 편리성/용이성보다는 SW의 정확성, 안정성, 효율적 개발이 중심
- 5단계: 테스트
- 6단계: 유지보수
특징(부족한 점)
- 이전 환경에서는 SW개발자는 스스로 SW를 만들기보다 의뢰인의 요구에 따라 SW 개발을 시작
- 따라서, 첫 단계에서 문제 정의는 간략화되고, 일정/예산 편성 등이 중심
- SW 개발 과정의 효율화(=비용 절감과 생산성 증대)가 주된 목표
- 창의적 아이디어 도출보다 정해진 일을 실수없이 완성하는 게 중요
- 일반사용자와의 interaction을 통한 점진적 개발을 고려하지 못함
디자인 씽킹
- 인간중심의 관점에서 생각/아이디어를 디자인하여 문제해결안 도출
디자이너처럼 사고하자
고객의 가치와 디자이너의 창의성을 우선 고려
논리적 사고와 직관적 사고의 통합
프로토타입(prototype)과 테스트의 실패를 반복하며 더 나은 답을 추구
Design Thinking 개발 프로세스
- 특징(부족한 점)
- 과정이 새로운 아이디어 도출과 개선이라는 기확단계에 중점
- 일반적 개인사용자(소비자) 중심의 관점
=> SW의 정확성, 안정성, 효율적 개발보다 SW 사용의 편리성/용이성 중요하게 여김
=>대체로 일반 사용자는 만들어진 제품의 문제점은 말할 수 있으나, 자신이 원하는 새로운 것을 명확하게 표현하지 못함
=>디자이너들의 비논리적 직관성을 중시
- 구현이 매우 중요한 복잡한 SW 만들기에도 적절한가?
목표
- Software Engineering 와 Design Thniking의 융합
- 최소 목표: 새로운 SW(서비스)의 시나리오&prototype 완성
- 무엇을 만들어도 좋다.
- 학기말 팀별 작품 발표/전시회
이번 강의에 필요한 자세
- 적극적으로 자신의 생각을 표현하기
이번 과목은 코딩보다 아이디어 싸움
- 망해도 된다. 걱정말고 걍 도전
프로젝트 주제나 대상에 대한 제한은 거의 없을 예정
비용은 학과에서 지원
대신, 그 과정과 중간결과물이 REASONABLE해야 함.
- 다른 사람을 존중하고 함께 하기
나의 적극적 말과 행동에 대한 허용이 다른 이들의 의견을 무시하라는 건 아니다.
한 명의 천재를 원하는 수업이 아님.