Software Engineering Introduction part 2

Bomin Seo·2022년 7월 18일
0

Application types

Stand-alone applications

  • Local computer에서 동작하는 applications
  • 모든 기능을 application이 포함하고 있으며 network에 연결될 필요가 없는 applications

Interactive transaction-based applications

  • remote computer에서 동작하고 있는 유저의 pc나 ternimal창을 통해 접근가능한 applications
  • ex) e-commerce applications / naver, google과 같은 web applications etc.

Embedded control systems

  • 전자제품, 드론, 무인자동차와 같은 하드웨어 장치를 관리하고 제어하는 software system
  • 다른 유형의 시스템보다 많은 비율을 차지하고 있다.

Batch processing systems

  • batch : 대기 후 순차적으로 한번에 처리하는 system
  • 금융 기관이나 프로그램 통합과정과 같이 수많은 입력에 대해 그에 대응되는 응답을 만들 때 사용된다.

Entertainment systems

  • 개인적인 목적이나 유저의 즐거움을 목적으로 개발된 system
  • netflix나 web-game에 해당되는 system이며 지연을 빨리 처리하는 것이 중요하다.

Systems for modeling and simulation

  • 과학자/공학자들이 설계와 시뮬레이션에 사용하는 system
  • 상호작용하는 물체나 물리 법칙 계산 등의 모델링과 시뮬레이션에 사용된다.

Data collection systems

  • 빌딩 관리와 같이 센서로부터 정보를 모아 다른 기능을 수행하는 곳에 사용된다.

Systems of systems

  • 기존에 있는 system들을 총괄하는 system을 지칭한다.

Software engineering fundamentals

  1. Systems should be developed using a managed and understood development process. Of course, different processes are used for different types of software.
  2. Dependability and performance are important for all types of system.
  3. Understanding and managing the software specification and requirements (what the software should do) are important.
    4.Where appropriate, you should reuse software that has already been developed rather than write new software.

Web software engineering

  • 웹 기반 시스템은 복잡한 분산 시스템이지만 소프트웨어공학의 기본적 이론 적용이 가능하다.
  • software reuse
    • software의 재사용은 web기반의 software를 개발하는데 주로 사용되는 기법이다.
    • system을 구현하기 전, 기존에 유사한 기능을 하는 software의 존재 여부를 확인하는 것이 좋다.
  • Incremental and agile development
    • web기반의 applications를 개발하는 것에 있어 설계과정에서 모든 것이 결정되는 water-fall 방식보다 incremetal하게 개발이 진행되는 agile 방법론을 대체로 채택한다.
  • Service-oriented systems
    • software의 구성요소를 stand-alone한 작은 서비스 단위로 제공하는 system을 지칭한다.
  • Rich interfaces
    • AJAX나 HTML5와 같은 Interface development technologies의 등장으로 web-browser의 rich interface 구현이 용이해졌다.

Software engineering ethics

  • Confidentiality
    • 공식적인 보압 현의가 없더라도 직원이나 고객의 개인정보를 누설하면 안된다.
  • Competence
    • 본인의 역량에 대하여 거짓이 있어서는 안된다.
  • Intellectual property rights
    • 지적 재산권을 엄격하게 지켜야 한다.
  • Computer misuse
    • 회사 또는 타인의 컴퓨터를 다른 목적으로 사용하면 안된다.
    • 여가용으로 사용하거나 본인이 만든 프로그램을 임의로 삭제하는 경우 etc.

ACM/IEEE Code of Ethics

  • 소프트웨어 엔지니어에 관한 윤리 강령
  • ACM Ethics
profile
KHU, SWCON

0개의 댓글