소프트웨어 엔지니어링의 개요
Outline of software engineering다음 개요는 소프트웨어 엔지니어링의 개요 및 주제 가이드로 제공됩니다.
소프트웨어 엔지니어링 – 소프트웨어의 개발, 운용 및 유지보수에 대한 체계적이고 규율적이며 정량화된 접근방식을 적용합니다.즉,[1] 엔지니어링을 소프트웨어에 적용하는 것입니다.
ACM Computing Classification 시스템은 해당 분야의 토픽을 정리하는 다계층적 온톨로지이며 시맨틱 웹 애플리케이션 및 해당 분야의 디팩토 표준 분류 시스템으로 사용할 수 있습니다.주요 섹션인 "소프트웨어와 그 엔지니어링"에서는 소프트웨어 엔지니어링의 개요와 온톨로지에 대해 설명합니다.
소프트웨어 응용 프로그램
소프트웨어 엔지니어는 사람들이 사용하는 소프트웨어(애플리케이션, 운영체제, 시스템 소프트웨어)를 만듭니다.
애플리케이션은 개발자들에게 새로운 방식으로 문제를 해결하도록 압력을 가함으로써 소프트웨어 엔지니어링에 영향을 미칩니다.예를 들어 소비자용 소프트웨어는 저비용, 의료용 소프트웨어는 고품질, 인터넷 상거래용 소프트웨어는 급속한 발전을 강조한다.
- 비즈니스 소프트웨어
- 분석
- 데이터베이스와 밀접한 관련이 있는 데이터 마이닝
- 의사결정 지원 시스템
- 항공사 예약
- 뱅킹
- 현금 자동 입출금기
- 수표 처리
- 신용카드
- 커머스
- 컴파일러
- 의사소통
- 컴퓨터 그래픽스
- 암호화
- 데이터베이스, 거의 모든 필드 지원
- 임베디드 시스템 소프트웨어 엔지니어와 기존 엔지니어 모두 임베디드 제품용 소프트웨어 제어 시스템을 작성합니다.
- 엔지니어링 기존의 모든 엔지니어링 브랜치는 소프트웨어를 광범위하게 사용합니다.엔지니어는 계산기를 사용한 것보다 스프레드시트를 더 많이 사용합니다.엔지니어는 커스텀 소프트웨어 툴을 사용하여 브리지나 전력선과 같은 자체 프로젝트를 설계, 분석 및 시뮬레이션합니다.이러한 프로젝트는 전자 문서로 존재하며 분석, 설계, 구현 및 테스트 단계를 거치기 때문에 여러 면에서 소프트웨어와 유사합니다.엔지니어를 위한 소프트웨어 도구는 미적분, 물리학, 화학의 신조뿐만 아니라 컴퓨터 과학의 신조도 사용합니다.
- 파일
- 자금
- 게임.
- 정보 시스템, 거의 모든 분야를 지원
- 실행 계획
- 제조업
- 음악
- 네트워크 관리
- 네트워크 및 인터넷
- 오피스 스위트
- 운영 체제
- 로보틱스
- 신호 처리, 부호화 및 해석
- 시뮬레이션, 거의 모든 분야를 지원합니다.
- 과학
- 트래픽 제어
- 트레이닝
- 시각화, 거의 모든 필드 지원
- 투표
- 월드 와이드 웹
소프트웨어 엔지니어링 토픽
프로그래밍 언어 | |||
---|---|---|---|
아다 | APL | B | |
코볼 | 파스칼 | C | C++ |
C# | 클로쥬르 | 일반적인 리스프 | D |
콜드퓨전 | 델파이 | 딜런 | 에펠 |
얼랑 | 포트란 | F# | 그루비 |
자바 | 라소 | ML | OCaml |
펄 | PHP | PL/SQL | 프롤로그 |
가세요 | 녹 | 재빠르다 | 자바스크립트 |
하스켈 | 파이썬 | 루비 | 스칼라 |
스킴 | 스몰토크 | TCL | T-SQL |
베릴로그 | VHDL | 비주얼 베이직 | Visual Basic.그물 |
어셈블리 언어 • • 스크립트 언어 • • • 프로그래밍 언어 목록 |
프로그래밍 언어 기술에 기반한 프로그래밍 패러다임
데이터베이스
그래피컬 사용자 인터페이스
- GTK+ GIMP 툴킷
- wxWidgets
- Ultimate++
- Qt 툴킷
- 플로피 디스크
프로그래밍 도구
- 구성 관리 및 소스 코드 관리
- CVS
- 전복
- Git
- 수은
- RCS
- GNU 아치
- LibreSource 동기화기
- Team Foundation 서버
- Visual Studio 팀 서비스
- 빌드 툴
- 에디터
- 파서 작성 도구
- 정적 코드 분석 도구
라이브러리
설계 언어
- 통합 모델링 언어(UML)
패턴, 많은 일반적인 프로그래밍 및 프로젝트 관리 기법 문서화
프로세스 및 방법론
- 민첩성
- 헤비급
- 클린룸
- ISO/IEC 12207 - 소프트웨어 라이프 사이클 프로세스
- ISO 9000 및 ISO 9001
- 프로세스 모델
- 메타모델
플랫폼
플랫폼은 컴퓨터 하드웨어와 운영 체제를 결합합니다.플랫폼이 강력해지고 비용이 절감됨에 따라 애플리케이션 및 툴의 가용성은 더욱 확대되고 있습니다.
- 양조하다
- 크레이 슈퍼컴퓨터
- DEC 미니 컴퓨터
- IBM 메인프레임
- 리눅스 PC
- 클래식한 Mac OS 및 MacOS PC
- Microsoft.그물
- 손바닥 PDA
- Sun Microsystems 솔라리스
- Windows PC (Wintel)
- Symbian OS
기타 프랙티스
기타 도구
컴퓨터 사이언스 토픽
숙련된 소프트웨어 엔지니어는 가능한 것과 불가능한 것, 소프트웨어에 쉬운 것과 어려운 것 등 많은 컴퓨터 공학을 알고 있습니다.
- 특정 문제를 해결하기 위한 명확한 방법인 알고리즘입니다.
- 컴파일러 이론
- 데이터 구조, 데이터 저장 및 검색을 위한 잘 정의된 방법.
- 계산 가능성, 일부 문제는 전혀 해결할 수 없습니다.
- 복잡성, 원칙적으로는 해결할 수 있지만 실제로는 해결할 수 없는 문제도 있다.
- 형식적인 방법
- 적응형 시스템
수학 토픽
다른.
라이프 사이클 단계
- 발전 라이프 사이클 단계
- 제품 라이프 사이클 단계 및 프로젝트 라이프 사이클
- 릴리즈 사이클의 종료에 가까운 릴리즈 개발 단계
- 소프트웨어 개발 라이프 사이클
성과물
성과물은 많은 SE 프로젝트를 위해 개발되어야 합니다.소프트웨어 엔지니어가 이러한 모든 성과물을 직접 만드는 경우는 거의 없습니다.이들은 보통 작가, 트레이너, 설치 담당자, 마케터, 기술 지원 담당자 및 이러한 성과물을 만드는 다른 사람들과 협력합니다.
- 응용 프로그램 소프트웨어 - 소프트웨어
- 데이터베이스 - 스키마 및 데이터.
- 각 역할별 매뉴얼, 온라인 및 인쇄, FAQ, Readme, 릴리즈 노트, 도움말
- 관리 및 유지보수 정책, 백업 대상, 체크 대상, 구성 대상 등...
- 인스톨러
- 이행
- 이전 설치에서 업그레이드
- 경쟁사 설치로부터의 업그레이드
- 역할별 트레이닝 자료
- 컴퓨터 지원 그룹에 대한 지원 정보입니다.
- 마케팅 및 판매 자료
비즈니스 역할
관리 토픽
비즈니스 토픽
- 품질 프로그램
- 말콤 발드리제 내셔널 퀄리티 어워드
- 식스 시그마
- 토탈 품질 관리(TQM)
소프트웨어 엔지니어링 전문직
소프트웨어 엔지니어링의 역사
개척자
많은 사람들이 SE 기술, 프랙티스 또는 애플리케이션에 중요한 기여를 했습니다.
- John Backus:Fortran, First Optimizing 컴파일러, BNF
- 빅터 바실리:공장 체험
- F.L. Bauer: 스택 원칙, 소프트웨어 엔지니어링이라는 용어 보급
- Kent Beck: 리팩터링, 익스트림 프로그래밍, 페어 프로그래밍, 테스트 주도의 개발.
- Tim Berners-Lee: 월드 와이드 웹
- 배리봄: SE 이코노믹스, COCOMO, Spiral 모델.
- Grady Boch: 객체 지향 디자인, UML.
- Fred Brooks: 관리 시스템 360 및 OS 360.'인월의 신화'를 썼지만 은빛 총알은 없었다.
- 래리 콘스탄틴:구조화 설계, 결합, 응집력
- Edsger Dijkstra: 구조화 프로그래밍, 프로그래밍 및 유해한 것으로 간주되는 스테이트먼트에 관한 노트 작성, 알고리즘, 형식적인 방법, 교육학.
- Michael Fagan: 소프트웨어 검사.
- Tom Gilb: 소프트웨어 메트릭스, 소프트웨어 검사, 진화적 제공('Evo')
- 아델 골드스틴:최초의 전자 디지털 컴퓨터인 ENIAC의 오퍼레이터 매뉴얼을 작성하고 최초의 인간 컴퓨터를 훈련했습니다.
- Lois Haibt: FORTRAN, 최초의 파서 작성
- Margaret Hamilton: "소프트웨어 엔지니어링"이라는 용어를 만들고 유니버설 시스템 언어를 개발했습니다.
- Mary Jean Harrold: 회귀 테스트, 장애 현지화
- 그레이스 호퍼:첫 번째 컴파일러(마크 1), COBOL, 나노초.
- Watts Humphrey: 능력 성숙도 모델, 퍼스널 소프트웨어 프로세스, 소프트웨어 엔지니어링 연구소 펠로우
- 장 이치비아:아다
- 마이클 A. 잭슨: Jackson Structured Development
- Bill Joy: 버클리 Unix, vi, Java.
- 앨런 케이: 스몰토크
- Brian Kernighan: C와 Unix.
- Donald Knuth: The Art of Computer Programming, TeX, 알고리즘, 리터러티 프로그래밍 집필
- Nancy Leveson:시스템 안전성
- 베르트랑 마이어:계약에 의한 설계, 에펠 프로그래밍 언어.
- 피터 G. Neumann: 리스크 다이제스트, ACM Sigsoft.
- David Parnas:모듈 설계, 사회적 책임, 전문성
- Jef Raskin:오리지널 Macintosh GUI 개발, The Humane Interface 작성
- Dennis Ritchie: C와 Unix.
- 윈스턴 W. 폭포 모델
- Mary Shaw: 소프트웨어 아키텍처.
- 리처드 스톨먼:자유 소프트웨어 재단 설립자
- Linus Torvalds: Linux 커널, 무료 소프트웨어/오픈 소스 개발.
- Will Tracz:재사용, ACM 소프트웨어 엔지니어링 노트.
- 제럴드 와인버그: 컴퓨터 프로그래밍 심리학 저자입니다.
- Elaine Weyuker: 소프트웨어 테스트
- Jeanette Wing: 정식 사양입니다.
- Ed Yourdon:구조화된 프로그래밍, The Discline and the Fall of the American Programmer.
「 」를 참조해 주세요.
주목할 만한 출판물
- 페이스에 대해서: 사용자 인터페이스 설계에 관한 Alan Cooper의 Essentials of User Interface Design. ISBN0-7645-2641-3
- Watts Humphrey의 능력 성숙도 모델.Software Engineering Institute용으로 작성되어 관리 및 프로세스에 중점을 두고 있습니다.('소프트웨어 프로세스 관리' ISBN 0-201-18095-2 참조)
- 에릭 레이먼드의 오픈소스 개발에 관한 대성당과 바자.
- Ed Yourdon의 American Programmer의 쇠퇴와 몰락은 미국 ISBN 0-13-1958-X의 소프트웨어 개발 종료를 예측하고 있습니다.
- Erich Gamma, Richard Helm, Ralph Johnson 및 John Vlissides의 디자인 패턴.ISBN 0-201-6361-2
- Kent Beck ISBN 0-321-2765-8에 의해 설명되는 익스트림 프로그래밍
- 에즈거 다이크스트라의 "유해한 발언으로 가세요"
- "인터넷, 혁신 및 오픈 소스:Actors in the Network" : Ilkka Tuomi (2000)소스의 첫 번째 월요일 기사
- Fred Brooks의 '신화 속 인간월' 프로젝트 관리에 관한 책입니다.ISBN 0-201-83595-9
- Grady Boch의 객체 지향 분석 및 디자인.ISBN 0-8053-5340-2
- 톰 드마르코와 팀 리스터의 피플웨어.ISBN 0-932633-43-9
- E. W. Dijkstra의 실용적인 엔지니어 대 과학 디자이너 [1]
- 진화 프로세스에 관한 Tom Gilb의 소프트웨어 엔지니어링 관리 원칙.ISBN 0-201-19246-2
- 제럴드 와인버그의 컴퓨터 프로그래밍 심리학.독립 컨설턴트로 작성되었으며 IBM에서 근무한 기간에 대한 내용도 있습니다.ISBN 0-932633-42-0
- 리팩터링: Martin Fowler, Kent Beck, John Brant, William Opdyke 및 Don Roberts의 기존 코드 디자인 개선ISBN 0-201-48567-2
- Andrew Hunt와 David Thomas가 만든 '실용 프로그래머'입니다.ISBN 0-201-61622-X
- 소프트웨어 엔지니어링 지식본부(SWEBOK) ISO/IEC TR 19759
다음 항목도 참조하십시오.
관련 필드
「 」를 참조해 주세요.
- 소프트웨어 엔지니어링 기사 색인
- 검색 기반 소프트웨어 엔지니어링
- SWEBOK 소프트웨어 엔지니어링 관련 지식
- 소프트웨어 엔지니어링을 위한 CCSE 컴퓨팅 커리큘럼
- 컴퓨터 용어의 어원, 컴퓨터 용어의 기원
- 복잡성 또는 확장
- 제2계통증후군
- 최적화
- 소스 코드 에스크로
- 기능 상호 작용 문제
- 인정(소프트웨어 엔지니어링)
- 엔지니어링 재해 #소프트웨어에 의한 장애
- 소프트웨어 개발의 개요
- 소프트웨어 개발 철학 목록
레퍼런스
- ^ Bourque, Pierre; Dupuis, Robert, eds. (2004). Guide to the Software Engineering Body of Knowledge - 2004 Version. IEEE Computer Society. p. 1. ISBN 0-7695-2330-7.
외부 링크
- 프로페셔널 조직
- 프로페셔널리즘
- 교육
- 표준
- 정부 기관
- 민첩성
- 기타 조직
- 인구 통계
- 조사
- 다른.
- 가르미슈에서 열린 NATO 회의 전문 PDF
- 컴퓨터의 리스크 Peter G. 노이만의 위험 칼럼.