품질을 생각하는 임베디드 소프트웨어 설계
- 원서명RIARU TAIMU OS KARA SHUPPATSU SHITE KUMIKOMI SOFUTO ENGINIA WO KIWAMERU (ISBN 9784434159374)
- 지은이사카이 요시오
- 옮긴이조진제
- ISBN : 9788960774056
- 30,000원
- 2013년 02월 28일 펴냄 (절판)
- 페이퍼백 | 364쪽 | 152*224mm
- 시리즈 : 임베디드 시스템
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
품질에 대한 요구가 커지는 요즘, 임베디드 소프트웨어 엔지니어가 반드시 알아야 하는 기술은 무엇일까? 이 책은 그 질문에 대한 하나의 답이 될 것이다. ‘시간분할’과 ‘기능분할’이라는 두 가지 장애물을 넘고, 체계적 재사용과 품질을 위한 두 개의 벽을 넘으면, 생활을 풍부하게 하고, 안심하고 사용할 수 있는 제품을 위한 소프트웨어를 개발할 수 있을 것이다. 초중급 임베디드 개발자는 기술적인 지식을 습득할 수 있으며, 중고급 임베디드 개발자라면 개발 문화를 체득할 수 있는 책이다.
[ 저자 서문 ]
왜 프로페셔널 임베디드 소프트웨어 엔지니어가 되기를 바라는가?
왜 우리는 임베디드 소프트웨어 엔지니어라는 직업을 선택해서 프로페셔널이 되기를 원할까?
거기에는 두 가지 이유가 있다. 첫째는 매력적인 제품을 개발해 사용자가 편안하게, 안심하고 사용하게 만들어 다음에도 우리가 개발한 제품을 선택하게 하기 위해서이며, 둘째는 임베디드 소프트웨어 엔지니어에게 밀려드는 다양한 요구사항을 신속하게 해결함으로써 창조적으로 매력적인 제품을 개발할 수 있게 되기 때문이다.
또 임베디드 소프트웨어 엔지니어가 자기 자신의 기술 수준을 높이고 싶다는 바람이 있는 한편, 임베디드 제품을 제조하는 기업은 시장경쟁력을 높이 유지해 안정적인 이익을 얻고 싶어하고 임베디드 소프트웨어 엔지니어가 고부가가치의, 사용하기 쉬운, 품질이 좋은 소프트웨어를 결과물로 만들어 주기를 강하게 바란다.
임베디드 소프트웨어 엔지니어가 기술을 정복하기 위한 원동력
임베디드 소프트웨어 엔지니어가 장애물과 벽을 넘어 목표에 도달하기까지는 높은 동기부여가 필요하다. 임베디드 소프트웨어 엔지니어는 시련을 넘어 기술을 높이기 위한 동기를 어디에서 찾을까?
첫째는 항상 쫓기듯이 겨우 일을 완료하는 악순환에서 탈피해 개발효율을 높여 여유를 갖고 창조적으로 일을 하기 위해서, 둘째는 매력적인 제품을 개발해 사용자가 쾌적하게 사용하고 다음에도 자신들의 제품을 선택하게 하는 자신감을 갖기 위해서, 이 두 개 이상이 시련을 넘기 위한 동기의 원천이다.
임베디드 소프트웨어는 단순하게 임베디드 기기의 안에서 움직이는 소프트웨어를 의미하지 않는다. 임베디드 기기는 다양한 형상의 외관을 갖고 다양한 사용자 인터페이스로 사람들의 생활에 들어와서 생활을 지지하는 배후자로서의 역할을 한다. 임베디드 소프트웨어는 그 심장부인 컨트롤러다. 따라서 임베디드 소프트웨어 엔지니어는 자신이 개발한 소프트웨어가 임베디드 제품 안에서 중요한 역할을 하고 있다는 즐거움과 만족감이 있다.
그러나 그 즐거움과 만족감 뒤에는 큰 책임이 있다. 임베디드 기기가 우리 주변에서 여러 도움을 주고 있다는 점은 잘못되면 임베디드 기기가 사람을 해칠 수 있는 흉기가 될 수도 있다는 사실을 의미한다. 특히 임베디드 소프트웨어는 내부 구조를 보기 어렵고 설계의 자유도가 높기 때문에 설계자의 의도에 반해 사회적인 문제를 일으키는 경우도 있다.
우리는 무엇인가를 만드는 즐거움을 느끼면서 스스로의 기술을 연마해 임베디드 기기를 사용하는 사용자를 만족시키면서 안전하고 신뢰성 높은 임베디드 소프트웨어를 세상에 내보낼 의무가 있다.
임베디드 소프트웨어 엔지니어는 목적을 달성하기 위해 기술을 연마함으로써 동료들과 창조의 즐거움을 나눌 수 있고, 편리할 뿐만 아니라 안심하고 사용할 수 있는 매력적인 임베디드 기기를 세상에 내놓을 수 있고 사회와 조직에 책임을 다할 수 있다.
임베디드 소프트웨어 엔지니어를 둘러싼 환경을 되돌아 보면 임베디드 소프트웨어 프로젝트에서는 엔지니어가 최대한의 노력으로 증가한 요구와 계획된 일정을 맞추는 것이 현실이다. 경우에 따라서는 프로젝트에 새로운 인원을 투입해 문제를 해결하려는 조직도 있지만 간단한 방법인 증원은 오히려 엔지니어의 부담을 증가시켜 악순환으로부터 좀처럼 벗어날 수 없다. 임베디드 소프트웨어 엔지니어는 기술을 갈고 닦아 완전히 정복해야만 악순환으로부터 탈피해 호순환의 세계로 갈 수 있다. 호순환의 세계로 들어갈 수 있으면 높은 품질의 임베디드 소프트웨어를 효율적으로 개발할 수 있고 지금 판매하는 제품보다도 더욱 고객 만족도를 높이는 상품을 개발할 수 있다. 효율화할 수 있는 여유로 독창성 있는 아이디어를 생각해 새로운 키 디바이스의 도입을 하드웨어 엔지니어와 검토하는 작업이 가능하게 된다.
임베디드 소프트웨어 엔지니어가 기술을 연마해 프로페셔널 엔지니어가 되려는 목적은 무언가를 만드는 즐거움을 함께 나누고, 생활을 풍부하게 하며, 안심하고 사용할 수 있는 상품을 출시하고, 또 상품의 경쟁력을 끌어올려 경쟁사를 이기는 데에 있다. 그곳에 도달하기까지의 길은 멀고 도중에 장애물과 벽이 가로막고 있다. 우리 임베디드 소프트웨어 엔지니어는 도달해야 하는 목표에서 눈을 떼지 말고 기술을 갈고 닦음으로써 장애물과 벽을 넘어 악순환으로부터 호순환의 경계를 무너뜨릴 수 있다.
임베디드 엔지니어의 고수가 되기 위한 로드맵
임베디드 소프트웨어 엔지니어가 프로페셔널이 되기 위한 로드맵을 보자. 임베디드 소프트웨어 엔지니어가 기술을 연마해 창조적인 제품 개발에 열중해서 사용자를 최대한으로 만족시키는 제품을 출시하기 위해서는 목표까지 두 개의 장애물과 두 개의 벽을 넘어야만 한다.
● 시간분할의 장애물
● 기능분할의 장애물
● 재사용의 벽
● 품질의 벽
시간분할의 장애물이란 임베디드 소프트웨어가 항상 책임을 지는 실시간 성능을 실현하기 위한 기술적 장애물이다. 임베디드 소프트웨어 엔지니어 선배들은 임베디드 기기에 요구되는 실시간 성능을 CPU와 주변 디바이스를 이용해 하나의 메인 루프와 복수의 인터럽트 처리로 구현했다. 그러나 소프트웨어의 규모가 커지고 실시간성을 포함한 복수의 동작을 하나의 CPU에서 실현해야만 하는 현재에는 시간적인 동기를 의식하면서 실시간 OS를 사용해 독립성이 높은 모듈분할을 해야 한다. ‘시간 분할의 장애물’을 넘는 것으로 임베디드 소프트웨어 엔지니어로서 실시간 성능을 의식한 모듈분할의 기술을 익힐 수 있다.
기능분할의 장애물이란 다양해지는 요구사양을 소프트웨어에서 실현하기 위해 넘어야 하는 기술적인 장애물이다. 기능분할은 비즈니스 분야의 소프트웨어 개발에서는 객체지향 설계기술 등을 이용해 해결하는 분야지만, 임베디드 소프트웨어에서는 첫 번째의 ‘시간분할의 장애물’을 넘어서 ‘기능분할의 장애물’을 넘을 필요가 있기 때문에 비즈니스 분야의 소프트웨어 개발에서 축적한 기술을 그대로 이용할 수는 없다. 시간적 분할과 기능적 분할은 개별적으로 이뤄지는 작업이 아니라 서로 참조해야만 한다. ‘시간분할의 장애물’과 ‘기능분할의 장애물’을 넘는 것으로 제약 조건을 해결하면서 요구되는 실시간성을 확보하고 다양해지는 요구사양을 효율적으로 실현할 수 있게 된다.
재사용의 벽은 그 규모가 날로 커지고 있지만, 이전보다 늘어난 개발기간 단축 요구를 달성하기 위한 비장의 수단으로서 반드시 넘어야 할 벽이다. 임베디드 제품은 동일시장에 오랜 기간 상품을 계속 투입하기 때문에 시장과 사용자가 원하는 근본적인 요구를 만족하는 핵심 소프트웨어 자산이 존재한다. 이 핵심 자산을 파생상품을 실현하기 위한 소프트웨어 부분과 분리해 관리하는 방법으로 효율적인 소프트웨어 개발이 가능해진다. 처음 핵심 자산을 분리할 때에는 분리하지 않은 경우의 개발보다 1.5배 정도의 기간과 고도의 기술이 필요하지만, 핵심 자산의 분리가 가능한 후에는 차분개발의 횟수가 증가할수록 개발기간은 단축되고 상품의 부가가치를 높이면서 개발효율은 비약적으로 향상된다. 체계적인 재사용의 실현에는 소프트웨어 기술뿐만 아니라 시장분석과 제품군의 특징을 분석하는 기술이 필요해져 조직횡단적인 대응이 불가결하다.
품질의 벽은 임베디드 소프트웨어에 요구되는 안전성과 신뢰성을 해결하기 위해 넘어야 할 목표다. 임베디드 제품은 사람의 생활과 밀착해 있고 임베디드 소프트웨어는 임베디드 제품을 제어하는 두뇌이기 때문에 결함이 있다면 사용자에게 불쾌감을 줄 뿐만 아니라 기업 전체의 신용도 잃어버리게 된다. 기업에 있어서는 제품회수 비용이 이익을 압도하는 경우도 생긴다. 임베디드 소프트웨어 엔지니어는 소프트웨어 품질향상을 위한 이론을 이해하고 프로젝트 팀과 조직으로서 해당 이론을 실천함으로써 제품의 안전성과 신뢰성을 확보할 수 있다. 임베디드 소프트웨어를 둘러싼 세계는 글로벌화되고 있으며, 제품 품질을 높게 유지하는 것이 중요하다.
이 책에서는 이런 장애물과 벽을 넘을 기술을 해설하고, 동시에 신입 임베디드 소프트웨어 엔지니어가 장애물과 벽을 넘어 성장해 가는 과정을 이야기한다.
[ 저자 서문 ]
왜 프로페셔널 임베디드 소프트웨어 엔지니어가 되기를 바라는가?
왜 우리는 임베디드 소프트웨어 엔지니어라는 직업을 선택해서 프로페셔널이 되기를 원할까?
거기에는 두 가지 이유가 있다. 첫째는 매력적인 제품을 개발해 사용자가 편안하게, 안심하고 사용하게 만들어 다음에도 우리가 개발한 제품을 선택하게 하기 위해서이며, 둘째는 임베디드 소프트웨어 엔지니어에게 밀려드는 다양한 요구사항을 신속하게 해결함으로써 창조적으로 매력적인 제품을 개발할 수 있게 되기 때문이다.
또 임베디드 소프트웨어 엔지니어가 자기 자신의 기술 수준을 높이고 싶다는 바람이 있는 한편, 임베디드 제품을 제조하는 기업은 시장경쟁력을 높이 유지해 안정적인 이익을 얻고 싶어하고 임베디드 소프트웨어 엔지니어가 고부가가치의, 사용하기 쉬운, 품질이 좋은 소프트웨어를 결과물로 만들어 주기를 강하게 바란다.
임베디드 소프트웨어 엔지니어가 기술을 정복하기 위한 원동력
임베디드 소프트웨어 엔지니어가 장애물과 벽을 넘어 목표에 도달하기까지는 높은 동기부여가 필요하다. 임베디드 소프트웨어 엔지니어는 시련을 넘어 기술을 높이기 위한 동기를 어디에서 찾을까?
첫째는 항상 쫓기듯이 겨우 일을 완료하는 악순환에서 탈피해 개발효율을 높여 여유를 갖고 창조적으로 일을 하기 위해서, 둘째는 매력적인 제품을 개발해 사용자가 쾌적하게 사용하고 다음에도 자신들의 제품을 선택하게 하는 자신감을 갖기 위해서, 이 두 개 이상이 시련을 넘기 위한 동기의 원천이다.
임베디드 소프트웨어는 단순하게 임베디드 기기의 안에서 움직이는 소프트웨어를 의미하지 않는다. 임베디드 기기는 다양한 형상의 외관을 갖고 다양한 사용자 인터페이스로 사람들의 생활에 들어와서 생활을 지지하는 배후자로서의 역할을 한다. 임베디드 소프트웨어는 그 심장부인 컨트롤러다. 따라서 임베디드 소프트웨어 엔지니어는 자신이 개발한 소프트웨어가 임베디드 제품 안에서 중요한 역할을 하고 있다는 즐거움과 만족감이 있다.
그러나 그 즐거움과 만족감 뒤에는 큰 책임이 있다. 임베디드 기기가 우리 주변에서 여러 도움을 주고 있다는 점은 잘못되면 임베디드 기기가 사람을 해칠 수 있는 흉기가 될 수도 있다는 사실을 의미한다. 특히 임베디드 소프트웨어는 내부 구조를 보기 어렵고 설계의 자유도가 높기 때문에 설계자의 의도에 반해 사회적인 문제를 일으키는 경우도 있다.
우리는 무엇인가를 만드는 즐거움을 느끼면서 스스로의 기술을 연마해 임베디드 기기를 사용하는 사용자를 만족시키면서 안전하고 신뢰성 높은 임베디드 소프트웨어를 세상에 내보낼 의무가 있다.
임베디드 소프트웨어 엔지니어는 목적을 달성하기 위해 기술을 연마함으로써 동료들과 창조의 즐거움을 나눌 수 있고, 편리할 뿐만 아니라 안심하고 사용할 수 있는 매력적인 임베디드 기기를 세상에 내놓을 수 있고 사회와 조직에 책임을 다할 수 있다.
임베디드 소프트웨어 엔지니어를 둘러싼 환경을 되돌아 보면 임베디드 소프트웨어 프로젝트에서는 엔지니어가 최대한의 노력으로 증가한 요구와 계획된 일정을 맞추는 것이 현실이다. 경우에 따라서는 프로젝트에 새로운 인원을 투입해 문제를 해결하려는 조직도 있지만 간단한 방법인 증원은 오히려 엔지니어의 부담을 증가시켜 악순환으로부터 좀처럼 벗어날 수 없다. 임베디드 소프트웨어 엔지니어는 기술을 갈고 닦아 완전히 정복해야만 악순환으로부터 탈피해 호순환의 세계로 갈 수 있다. 호순환의 세계로 들어갈 수 있으면 높은 품질의 임베디드 소프트웨어를 효율적으로 개발할 수 있고 지금 판매하는 제품보다도 더욱 고객 만족도를 높이는 상품을 개발할 수 있다. 효율화할 수 있는 여유로 독창성 있는 아이디어를 생각해 새로운 키 디바이스의 도입을 하드웨어 엔지니어와 검토하는 작업이 가능하게 된다.
임베디드 소프트웨어 엔지니어가 기술을 연마해 프로페셔널 엔지니어가 되려는 목적은 무언가를 만드는 즐거움을 함께 나누고, 생활을 풍부하게 하며, 안심하고 사용할 수 있는 상품을 출시하고, 또 상품의 경쟁력을 끌어올려 경쟁사를 이기는 데에 있다. 그곳에 도달하기까지의 길은 멀고 도중에 장애물과 벽이 가로막고 있다. 우리 임베디드 소프트웨어 엔지니어는 도달해야 하는 목표에서 눈을 떼지 말고 기술을 갈고 닦음으로써 장애물과 벽을 넘어 악순환으로부터 호순환의 경계를 무너뜨릴 수 있다.
임베디드 엔지니어의 고수가 되기 위한 로드맵
임베디드 소프트웨어 엔지니어가 프로페셔널이 되기 위한 로드맵을 보자. 임베디드 소프트웨어 엔지니어가 기술을 연마해 창조적인 제품 개발에 열중해서 사용자를 최대한으로 만족시키는 제품을 출시하기 위해서는 목표까지 두 개의 장애물과 두 개의 벽을 넘어야만 한다.
● 시간분할의 장애물
● 기능분할의 장애물
● 재사용의 벽
● 품질의 벽
시간분할의 장애물이란 임베디드 소프트웨어가 항상 책임을 지는 실시간 성능을 실현하기 위한 기술적 장애물이다. 임베디드 소프트웨어 엔지니어 선배들은 임베디드 기기에 요구되는 실시간 성능을 CPU와 주변 디바이스를 이용해 하나의 메인 루프와 복수의 인터럽트 처리로 구현했다. 그러나 소프트웨어의 규모가 커지고 실시간성을 포함한 복수의 동작을 하나의 CPU에서 실현해야만 하는 현재에는 시간적인 동기를 의식하면서 실시간 OS를 사용해 독립성이 높은 모듈분할을 해야 한다. ‘시간 분할의 장애물’을 넘는 것으로 임베디드 소프트웨어 엔지니어로서 실시간 성능을 의식한 모듈분할의 기술을 익힐 수 있다.
기능분할의 장애물이란 다양해지는 요구사양을 소프트웨어에서 실현하기 위해 넘어야 하는 기술적인 장애물이다. 기능분할은 비즈니스 분야의 소프트웨어 개발에서는 객체지향 설계기술 등을 이용해 해결하는 분야지만, 임베디드 소프트웨어에서는 첫 번째의 ‘시간분할의 장애물’을 넘어서 ‘기능분할의 장애물’을 넘을 필요가 있기 때문에 비즈니스 분야의 소프트웨어 개발에서 축적한 기술을 그대로 이용할 수는 없다. 시간적 분할과 기능적 분할은 개별적으로 이뤄지는 작업이 아니라 서로 참조해야만 한다. ‘시간분할의 장애물’과 ‘기능분할의 장애물’을 넘는 것으로 제약 조건을 해결하면서 요구되는 실시간성을 확보하고 다양해지는 요구사양을 효율적으로 실현할 수 있게 된다.
재사용의 벽은 그 규모가 날로 커지고 있지만, 이전보다 늘어난 개발기간 단축 요구를 달성하기 위한 비장의 수단으로서 반드시 넘어야 할 벽이다. 임베디드 제품은 동일시장에 오랜 기간 상품을 계속 투입하기 때문에 시장과 사용자가 원하는 근본적인 요구를 만족하는 핵심 소프트웨어 자산이 존재한다. 이 핵심 자산을 파생상품을 실현하기 위한 소프트웨어 부분과 분리해 관리하는 방법으로 효율적인 소프트웨어 개발이 가능해진다. 처음 핵심 자산을 분리할 때에는 분리하지 않은 경우의 개발보다 1.5배 정도의 기간과 고도의 기술이 필요하지만, 핵심 자산의 분리가 가능한 후에는 차분개발의 횟수가 증가할수록 개발기간은 단축되고 상품의 부가가치를 높이면서 개발효율은 비약적으로 향상된다. 체계적인 재사용의 실현에는 소프트웨어 기술뿐만 아니라 시장분석과 제품군의 특징을 분석하는 기술이 필요해져 조직횡단적인 대응이 불가결하다.
품질의 벽은 임베디드 소프트웨어에 요구되는 안전성과 신뢰성을 해결하기 위해 넘어야 할 목표다. 임베디드 제품은 사람의 생활과 밀착해 있고 임베디드 소프트웨어는 임베디드 제품을 제어하는 두뇌이기 때문에 결함이 있다면 사용자에게 불쾌감을 줄 뿐만 아니라 기업 전체의 신용도 잃어버리게 된다. 기업에 있어서는 제품회수 비용이 이익을 압도하는 경우도 생긴다. 임베디드 소프트웨어 엔지니어는 소프트웨어 품질향상을 위한 이론을 이해하고 프로젝트 팀과 조직으로서 해당 이론을 실천함으로써 제품의 안전성과 신뢰성을 확보할 수 있다. 임베디드 소프트웨어를 둘러싼 세계는 글로벌화되고 있으며, 제품 품질을 높게 유지하는 것이 중요하다.
이 책에서는 이런 장애물과 벽을 넘을 기술을 해설하고, 동시에 신입 임베디드 소프트웨어 엔지니어가 장애물과 벽을 넘어 성장해 가는 과정을 이야기한다.
목차
목차
- 1장 시간분할의 장애물 넘기
- 1-1 임베디드 소프트웨어에 요구되는 실시간 성능
- 1-2 영수증 인쇄
- ‘동양레지스터주식회사’ 소개
- 어느 날 홍석준 부장과 김재철 대리의 대화
- 신입사원인 박영태 씨와 김재철 대리, 홍석준 부장의 대화
- 감열식 프린터의 제어 순서
- 1-3 원칩 마이컴과 인터럽트
- 인터럽트 발생부터 인터럽트 발생 전의 처리로 되돌아가기까지의 흐름
- 1-4 실시간 OS의 기초
- 실시간 OS란
- 실시간 OS의 도입
- 이벤트 구동형 시스템
- 실시간 OS에서의 태스크 전환
- 태스크 전환 시에 TCB로의 레지스터 회피 순서
- 태스크 상태 전환
- 태스크 스케줄링
- 1-5 실시간 OS의 동기. 통신
- 이벤트 플래그
- 이벤트 플래그에 의한 대기와 대기의 해제
- 세마포어
- 메시지
- 시간대기
- 1-6 실시간 OS를 사용한 감열식 프린터 제어
- 1-7 실시간 요구•하드웨어 의존에 기반한 소프트웨어 분할 지침
- 여러 가지 문제
- 해결된 문제
- 1-8 시스템 구조의 패러다임 전환
- 2장 기능분할의 장애물 넘기
- 2-1 2장에서 배우는 기술과 해당 기술이 필요한 배경
- 2-2 기능적 분할 접근 방법
- 미숙한 모듈 분할
- 기능중시의 모듈 분할
- 객체란 무엇인가?
- 클래스란 무엇인가?
- 능동 객체와 수동 객체
- 태스크와 능동 객체
- 객체지향 설계적 접근 방법의 이점
- 기능적 관점에서 시스템 바라보기(대규모 시스템에 있어서의 계층적 관점)
- 2-3 스루풋 요구에 의한 기능적 분할의 지침
- 2-4 기능적 분할과 시간적 분할의 통합(조율)
- 분할한 모듈에 대한 실시간 요구의 차이
- 임베디드 소프트웨어 개발과 모델링
- 기능적 분할과 시간적 분할의 트레이드 오프
- 임베디드 독자의 디자인 패턴
- 2-5 임베디드 소프트웨어 구조의 최적화
- 임베디드 소프트웨어 개발 성공을 위해 계속 관점을 변경해서 보기
- 경쟁력이 높은 임베디드 기기의 개발
- 3장 재사용의 벽 넘기
- 3-1 체계적인 재사용의 성공
- 3-2 임기응변적인 유용과 체계적인 재사용의 차이
- 3-3 마케팅의 중요성
- 임베디드 소프트웨어 엔지니어에게 요구되는 능력
- 임베디드 소프트웨어 엔지니어와 마케팅
- 3-4 도메인 분석
- 도메인 구조도 그리기
- 요구 기능 전개
- 도메인 구조도의 재검토
- 핵심 자산의 추출
- 3-5 재사용 자산의 이용과 관리
- 재사용 자산의 부속 문서에 필요한 요소
- 3-6 핵심 자산의 신뢰성 검증
- 핵심 자산의 시뮬레이션 테스트
- 1ch 간이 오실로스코프의 예
- 핵심 자산의 시뮬레이션 검증
- 4장 품질의 벽 넘기
- 4-1 임베디드 소프트웨어에 요구되는 잠재적 가치
- 4-2 임베디드 소프트웨어 품질 향상의 사고
- 잘못을 하기 쉬운 인간의 활동을 제어하기 위한 활동
- 신뢰성 향상 프로세스와 각 단계에 있어서 구체적인 시책
- 결함을 만들어 내지 않는 노력과 버그를 검출하는 능력
- 4-3 기본적 활동을 통한 시스템 신뢰성 높이기
- 코딩 규칙과 프로젝트 관리
- 프로그램 테스트의 기본
- ASCII 문자열 검사 함수의 완전성 검증
- 입력 문자의 그룹화와 테스트 케이스 추출
- 완전한 프로그램으로
- 4-4 기존 소프트웨어의 품질 높이기
- COTS에 폭탄이 포함됐다면?
- 4-5 타당성 확인과 검증
- 타당성 확인
- 리스크 분석의 구체적 사례
- 4-6 조직성숙도에 따른 품질 향상 활동
- 타당성 확인 실시 그룹
- 4-7 임베디드 제품의 잠재적 가치 향상
- 상품의 잠재적인 가치로서의 소프트웨어 품질
도서 오류 신고
정오표
[ p214 그림 3.10 ]
상단 일어 문장 삭제
상단 일어 문장 삭제