소프트웨어 공학의 특성

ZOE_:P·2022년 9월 22일
0

✏️ Software process activities

- Specification

기능적, 비기능적인 조건들을 포함하는 명세서를 만드는 것
( 비기능적 조건 : 초당 몇명까지의 접속자를 커버할 수 있는지 등 )

- Development

설계와 개발

- Validatioin

고객의 요구에 맞게 개발되었는지 검증

프로그램의 에러여부는 검증이 아닌 development(개발)의 영역이다

<고객에게 인도>

- Evolution

유지보수

➡️ 개발하는 시스템의 특성에 맞는 SW공학 기법을 사용하며, 각 기법에 따라 위의 단계에서 몇개의 단계가 더 추가될 수도 있다.

🔆 Software에 영향을 주는 ISSUES

- Heterogeneity 이질성

다양하고 이질적인 환경들에서도 잘 돌아가야함
heterogeneity로 인해 legacy system과 함께 사용하기도

legacy system은 구식의 원래 사용하던 시스템을 말한다
기존에 계속 사용하던 시스템이므로 성능이 검증됨

- Business and social change

비즈니스, 사회가 급변하기 때문에 sw도 그에 따라 빠르게 변화해야한다.

- Security and trust

우리의 삶에 점점 밀접한 관계를 가지기 때문에 높은 보안, 신뢰도를 필요로 함

- Scale

다양한(wide range) scale에 맞는 sw를 개발해야한다
- IoT등의 매우 작은 임베디드 시스템 부터 클라우드 베이스의 매우 규모가 큰 시스템까지 다양한 range의 scale이 존재한다.

Software Engineering methods는 type of application 에 따라 다르게 사용된다

📚 Application types

- Stand-alone applications

local computer에서만 돌아가면 되는 application sys으로, 네트워크에 연결될 필요가 없다

  • ex. MS 워드, 아래 한글 등

- Interactive transaction-based applications 대화형

서로 떨어진 지역에서 본인의 pc나 terminal을 가지고 접근하며, 웹 어플리케이션등을 포함한다. 즉, 네트워크 연결을 고려해야한다

  • ex. 쿠팡 등 e-commerce applications

- Embedded control systems

하드웨어 디바이스를 control하고 manage하는 control system
보통 임베디드에 많이 사용됨

  • ex. 전기밥솥, 핸드폰, 전자렌지, 자동차 등

- Batch processing systems

request들을 모아서 한꺼번에 일괄로 처리

  • ex. 핸드폰 요금 1달치 월말에 한번에 계산

- Entertainment systems

고도의 계산보다 실감나는 그래픽, 실시간성등이 더 중요시 된다

  • ex. 게임

- Systems for modelling and simulation

계산집약적

  • ex. 우주공간, 폭발등의 상황을 모델링, 시뮬레이션하는 용도

- Data collection systems

센서들의 데이터를 수집하여 다른 시스템에게 보내는 시스템

- Systems of systems

여러 다양한 시스템들로 이루어진 시스템

SW에 따라 요구하는 바( 특징 )이 다 다르다

📔 Software Engineering의 Fundamentals

  • development process를 거쳐서 관리되고 개발되어야한다
  • Dependability (확실성) & performance (성능) 은 시스템 종류 상관없이 중요하다
  • 소프트웨어의 요구사항과 조건들을 이해, 관리하는 것이 중요
  • 적절하다면 기존의 SW를 reuse해야한다.

    빠른 개발이 가능해지고, 기존의 sw는 충분한 디버깅을 거쳤기 때문에 이미 '검증'이 됨

🔖 Software Engineering의 윤리

Confidentiality 비밀 유지

고객(회사)의 정보를 비밀로 유지해야하며 유출해선 안된다

Competence 능력

자신의 능력 밖의 일을 하지 않도록 한다

Intellectual property rights 지적재산권

고용주의 특허 등 그들의 지적재산권을 지켜주어야한다

Computer misuse 컴퓨터 남용

고용주의 컴퓨터로 게임을 하거나, 제공된 디바이스를 사적으로 사용하지 않는다.

ACM/IEEE 에서 정의한 소프트웨어 공학 작업 행동 강령

  • 대중의 이익에 부합하도록 행동해야한다
  • 대중의 이익에 부합하되 고객과 고용주의 이익이 최선이 되도록 한다
  • 수정이 가능하도록 ( 유지보수가 가능하도록 ) 높은 전문 표준을 준수해야한다
  • 자신의 전문적인 판단으로 정직성과 독립성을 유지해야한다
  • 윤리적 접근법에 따라 진행해야한다
  • 최소한 남들에게 피해를 주는 소프트웨어를 만들지 않아야한다
  • 자신들의 동료에게 공정하고 협력적이어야한다
profile
🖥️

0개의 댓글