본문 바로가기

Programming/SW Engineering , Architecture, etc.

Software engineering 강의자료요약, Chapter2 Software process. Ian Sommerville, 소프트웨어공학, 강의자료요약, 아키텍처, architecture, Agile, 애자일, 방법론, plan driven, UML, modeling, requirements, 요구사항 분석

ch02swprocesses-150102101840-conversion-gate02.pdf
2.62MB

 

 

 

Origin: iansommerville.com/software-engineering-book/

 

Hugo Serif Theme

Serif is a modern business theme for Hugo. It contains content types for the archetypical business website. The theme is fully responsive, blazing fast and artfully illustrated.

hugo-serif.netlify.app

 

ch2 sw process

SW process model 들은 소웨 시스템을 만들기 위한 활동의 과정들을 추상화 시켜서 표현한 것들이다.

일반적인 프로세스 모델들은 소웨 프로세스들의 organization을 묘사한다.
 예) 워터폴 모델, incremental development, reuse-oriented development

1. Requirements engineering은 소웨 상세를 개발하는 과정이다.
2. design and implementation 과정들은 요구사항 상세의 변화가 실행 가능한 소웨 시스템에 들어가는 것을 고려한다.
3. Software validation 은 소웨가 상세와 맞고, 시스템 유저들의 실제 니즈와 맞는지를 확인하는 것이다.
4. Software evolution은 새로운 요구사항이 있을 때, 진화하는 것이다.

과정들은 프로토타입과, 점진적인 배포를 포함해야 한다.

과정들은 반복적인 개발과 배포 구조를 가져서, 변화가 있을 때 전체 시스템을 망치지 않게 해야한다.

Process improvement를 위한 접근 원칙들은 agile, maturity-based 접근법들이 있다.

SEI (Software Engineering Institute) 프로세스는 maturity levels 를 확인한다.

소웨 시스템 개발에 필요한 활동들의 구조화된 세트들
1. Specification
2. Design and implementation
3. Validation
4. Evolution

소웨 process descriptions
 활동들을 쓰고, 이러한 활동들의 순서를 잡는다.

Plan-driven process 
 미리 모든 과정의 활동들을 계획하고 따라서 진행한다.

agile process
 점진적으로 계획하여, 고객 요구의 변화 반영에 더 쉽다.

실제로는 두가지 요소를 다 가지고 있다.

Software process models (소웨 모델들)
1. waterfall model
2. Incremental development
3. Integration and configuration
 대부분의 큰 시스템들은 각 모델들의 요소들을 섞어서 쓴다.

Waterfall model
1. Requirements definition
2. System and SW design
3. Implementation and unit testing
4. Integration and system testing
5. Operation and maintenance
한단계식 100퍼 다 하고 넘어가서, 각각 분리/구분됨
진행 후 수정이 어려움

Incremental development (model)
 Concurrent activities (Specification, Development, Validation)
장점
 고객 요구사항 변경의 비용이 더 적음
 개발에 대한 고객의 피드백이 더 쉬움
단점
 진행사항 (진척도) 가시성이 없다
 소웨 리팩토링에 대한 시간과 돈 투자가 없으면 변화가 structure를 망가뜨릴 수 있다

Integration and configuration (model)
 유저의 유구사항에 맞는 행동이나 기능들에 맞는 요소들을 재사용한다.
 지금은 표준적인 접근법이다. 많은 비지니스 시스템 형태에서.
 재사용 가능 유형은 - (Stand-alone application (COTS, Commercial-off-the-shelf, 어플리케이션 시스템))
 
Reuse-oriented software engineering (재사용기반 개발)
1. Requirements specification
2. Software discovery and evaluation
3. Requirements refinement
4. Application system configuration
5. Component adapdation and integration
장단점
 비용과 위험을 줄이머
 빠른 개발 배포
 요구사항 타협이 불가피함, 실제 요구랑 안맞을 수 있음
 재사용 시스템 요소들에 대한 컨트롤 상실 (내부 모름)

Process activities
1. Specification
2. Development
3. Validation
4. Evolution

Requirements engineering process (RE process) 요구사항 공학 과정

SRS (System requirements specification)

Specification
1. Requirements elicitation and analysis (요구사항을 이끌어내고, 분석)
2. Requirements specification (요구사항 상세)
3. Requirements validation (요구사항 확인 검증)

Software design and implementation (Development)
1. Design
2. Implementation

Validation
 V&V verification and validation
 Component testing -> System testing -> Acceptance testing(Customer testing)
 
Evolution
 변화하는 요구사항 등에 맞추어 진화해야한다 (완전히 새로운 것은 아님)

Benefits of prototyping
1. 시스템 사용성을 증가시킨다.
2. 유저들의 실제 니즈에 더 가깝게 매치시킨다.
3. 디자인 품질을 향상시킨다.
4. 유지보수성을 증가시킨다.
5. 개발 노력을 줄여준다.

Incremental development (Agile)
 점진적으로 개발하고 다음 점진적인 개발 전에 평가함
 agile 방법론을 따름
 Evaluation은 user/customer proxy로 끝남
 
Process improvement
 현재의 프로세스들을 이해하고, 제품 품질을 올리고, 비용과 개발시간을 줄이기 위한 변화를 말함
 Maturity approach (Process improvement)
SEI, CMMI, SPICE
과정과 프로젝트 매니지먼트에 초점을 맞추고, 좋은 소웨 공학 방법을 가져옴
 Agile approach
반복적인 개발에 초점을 두고, 소웨 과정에서의 오버헤드를 줄인다.

Process improvement cycle
 Measure -> Analyze -> Change -> M -> A -> C (반복)

 

 

2021.04.20 - [Programming/SW Engineering , Architecture, etc.] - Software engineering 강의자료요약, Chapter1 Introduction. Ian Sommerville, 소프트웨어공학, 강의자료요약, 아키텍처, architecture, Agile, 애자일, 방법론, plan driven, UML, modeling, requirements, 요구사항 분석

 

Software engineering 강의자료요약, Chapter1 Introduction. Ian Sommerville, 소프트웨어공학, 강의자료요약, 아

Origin: iansommerville.com/software-engineering-book/ Hugo Serif Theme Serif is a modern business theme for Hugo. It contains content types for the archetypical business website. The theme is fully..

itdar.tistory.com

 

2021.04.20 - [Programming/SW Engineering , Architecture, etc.] - Software engineering 강의자료요약, Chapter3 Agile software development. Ian Sommerville, 소프트웨어공학, 강의자료요약, 아키텍처, architecture, Agile, 애자일, 방법론, plan driven, UML, modeling, requirements, 요구사항 분..

 

Software engineering 강의자료요약, Chapter3 Agile software development. Ian Sommerville, 소프트웨어공학, 강의자

Origin: iansommerville.com/software-engineering-book/ Hugo Serif Theme Serif is a modern business theme for Hugo. It contains content types for the archetypical business website. The theme is fully..

itdar.tistory.com

 

 

 

2019.08.27 - [Programming] - 개발자 선배들에게서 배운 것들. Things I Learnt from a Senior Software Engineer. 코딩 잘하는 방법, how to code well, 소프트웨어,프로그래머,programmer

 

개발자 선배들에게서 배운 것들. Things I Learnt from a Senior Software Engineer. 코딩 잘하는 방법, how to cod

 

itdar.tistory.com