1. Introduction to Software Engineering

정나영·2023년 4월 9일
1
post-custom-banner

1.1 소프트웨어 정의 및 특성

소프트웨어를 지칭하는 용어
1. Code : 프로그램의 일부
2. Program : 실행 가능한 명령어
3. Software : program + documents(프로그램을 만들기 위해 작성한 문서) (general)

특징
1) 복잡성(Complexity) : 정형적 구조가 없이 복잡하고 비규칙적
2) 순응성(Comformity) : 사용자의 요구에 따라 변형 가능
3) 변경성(Changeability) : 필요에 따라 항상 수정이 가능 (오류 수정, 새로운 요구 사항,하드웨어 변경의 이유 등)
4) 비가시성(Invisibility) : 외관으로 나타나지 않고 코드로 숨어있음
5) Failure rates over time
<note Image1

소프트웨어 타입
1) Custom software : 고객이 특정되어 있음 ex) 학교 포털 사이트
2) Package software (Commercial Off-The-Shelf (⭐️COTS)) : 누구나 사용 가능
3) Embedded software : 특정 하드웨어에 종속, 작은(사양이 낮은) 기기 안에 들어있음
4) SaaS (Software as a Service) : 브라우저를 통해 설치없이 사용할 수 있는 소프트웨어 ex) Gmail

1.2 소프트웨어 위기

소프트웨어공학

  • 사람의 능력(지적사고력)에 의존적인 개발 방법을 공학적으로 접근

소프트웨어 비즈니스의 문제
1) High cost
2) Project delay
3) Low reliability (낮은 안정성) (bugs, defects(결함))
4) Maintenance

1.3 소프트웨어공학의 정의

: 소프트웨어 전 주기(개발, 운영, 유지/보수, 폐기)에 있어서 체계적인 접근 방법
: 최소한의 비용으로 최대 퀄리티를 만들기 위해 공학, 과학, 수학적인 원리 방법론을 훈련 후 적용

소프트웨어공학이 다루는 문제
1) Scale : 규모가 큰 프로젝트를 어떻게 다룰지 (큰 소프트웨어일수록 프로젝트 관리, 개발 방법론이 더 쳬계적이어야 한다.)
2) Quality and Productivity : 어떻게 퀄리티와 생산성 높일 수 있는지
  🧷 SW Quality Attributes

  • Functionality : 필요한 기능을 제공하는지
  • Reliability : 오래 기능을 제대로 수행하는지
  • Usability : 편리하게 사용할 수 있는지
  • Efficiency : 효율적으로 실행하는지
  • Maintainability : 나중에 추가 수정하기 쉬운지
  • Portability : 다른 컴퓨팅 환경으로 쉽게 옮길 수 있는지 ex) Window -> Linux
  • Security : 권한을 부여한 범위 안에서만 사용하도록 제한하는지
  • Compatibility : 호환성이 있는지

3) Consistency & Reproducibility : 어떻게 일관성 있게 만들고 유지보수를 해나갈지
4) Changes : 변경 가능성을 염두에 두고 어떻게 대응할지

1.4 소프트웨어공학의 방법론

소프트웨어 구성 요소

1) 기술
2) 사람
3) 프로세스

소프트웨어 개발 절차
1) 요구사항 분석 (Requirement analysis)
2) 설계 (Design)
3) 구현 (Coding)
4) 테스트 (Testing)

소프트웨어 품질 보증 (Software Quality Assurance (⭐️SQA))
1) Verification : 개발자의 의도에 따라 함수가 잘 만들어졌는지
2) Validation : 사용자가 요구한대로 만들었는지
3) Testing : 요구사항, 설계한대로 잘 동작하는지

프로젝트 관리
1) product metrics : 수치에 대한 평가 기준 (ex. 제대로 기능하는지, 안전성을 보장하는지)
2) precess metrics : 절차, 과정에 대한 평가 기준

1.5 소프트웨어공학의 범위

SWEBOK (Software engineering body of knowledge)

post-custom-banner

0개의 댓글