shopkeeper/korean_wiki_content_only_120125 huggingface dataset:
MacDonald 등(1990)은 네 가지 일반적인 군집 유형을 기술했다. 이들은 베스티멘티페라 관벌레(Lamellibrachia c.f. 바르하미 및 에스카르피아속), 홍합류 홍합(Seep Mytilid Ia, Ib, III 및 기타), 베시코미드 조개(Vesicomya cordata 및 Calyptogena ponderosa), 그리고 루키니드 또는 티아시리드 조개(Lucinoma sp. 또는 Thyasira sp.)가 우점하는 군집이다. 현재까지 방문한 모든 지역에서 세균 매트가 존재한다. 이러한 동물군 집단은 집합 방식, 집합체의 크기, 서식지의 지질학적 및 화학적 특성, 그리고 어느 정도는 함께 발견되는 종속영양 동물군 측면에서 뚜렷한 특징을 보이는 경향이 있다. 멕시코만 냉용수 군집에서 발견되는 많은 종은 과학에 새로운 종이며 미기록종으로 남아 있다.
용출수에서 발견되는 두 분류군 중 더 긴 관벌레 개체는 길이가 에 달할 수 있으며 수백 년을 살 수 있다(Fisher et al., 1997; Bergquist et al., 2000). 회수된 표지 관벌레에서 측정된 성장률은 다양했으며, 1년간 측정된 13개 개체는 성장이 없었고, 라마카엘리브라키아 개체 중 최대 성장은 9.6 cm/yr (3.8 in/yr)였다(MacDonald, 2002). 평균 성장률은 에스카르피아속과 유사한 종의 경우 2.19 cm/yr (0.86 in/yr), 라멜리브라키드(lamellibrachids)의 경우 2.92 cm/yr (1.15 in/yr)였다. 이들은 열수분출공 친척들보다 성장률이 느리지만, 라멜리브라키아 개체는 알려진 가장 큰 열수분출공 종의 2~3배 길이에 도달할 수 있다. 를 초과하는 라멜리브라키아 종의 개체는 여러 차례 채집되었으며, 이는 400년 이상의 예상 수명을 나타낸다(Fisher, 1995). 베스티멘티페라 관벌레의 산란은 계절적이지 않고, 모집은 불규칙적으로 일어난다.
관벌레는 수컷 또는 암컷이다. 최근 한 연구 결과에 따르면 암컷 라멜리브라키아의 산란은 대형 이매패류 아케스타 불리시(Acesta bullisi)와의 독특한 연관성을 형성하는 것으로 나타났다. 이 이매패류는 관벌레의 앞쪽 관 입구에 영구적으로 부착하여 주기적으로 방출되는 알을 먹고 산다(Järnegren et al., 2005). 이 이매패류와 관벌레 사이의 밀접한 연관성은 1984년에 발견되었지만(Boland, 1986) 완전히 설명되지는 않았다. 사실상 모든 성숙한 아케스타속 개체는 수컷 관벌레가 아닌 암컷 관벌레에서 발견된다. 이 증거와 Järnegren et al.(2005)의 다른 실험들은 이 미스터리를 해결한 것으로 보인다.
냉용수 지역에서 메탄영양성 홍합의 성장률이 보고되었다(Fisher, 1995). 일반적인 성장률은 비교적 높게 나타났다. 성체 홍합의 성장률은 유사한 온도에서 연안 환경의 홍합과 비슷했다. 피셔는 또한 탄화수소 용출수 지역의 어린 홍합이 처음에는 빠르게 성장하지만, 성체에서는 성장률이 현저히 떨어지는 것을 발견했다. 이들은 번식 가능한 크기까지 매우 빠르게 성장한다. 개체와 군집 모두 매우 오래 사는 것으로 보인다. 이 메테인 의존성 홍합은 멕시코만에서 가장 활발한 용출 지역에 묶이는 엄격한 화학적 요구 사항을 가지고 있다. 빠른 성장률로 인해, 교란된 용출수 지역의 홍합 재정착은 비교적 빠르게 일어날 수 있다. 홍합이 단단한 기질을 필요로 하며, 해저에 적합한 기질이 증가하면 수가 늘어날 수 있다는 일부 증거가 있다(Fisher, 1995). 홍합 군락과 항상 관련되어 발견되는 두 종은 복족류 Bathynerita naticoidea와 작은 알비노카리드 새우이며, 이는 이들 고유종이 뛰어난 분산 능력을 가지고 다양한 조건에 내성을 가질 수 있음을 시사한다(MacDonald, 2002).
홍합 군락과 달리 화학합성 조개 군락은 낮은 용해율과 낮은 퇴적률로 인해 새로운 개체의 유입 없이도 오랫동안 시각적인 표면 현상으로 지속될 수 있다. Powell (1995)이 조사한 대부분의 조개 군락은 비활성 상태였다. 살아있는 개체는 거의 발견되지 않았다. Powell은 50년 동안 지역적인 멸종과 재정착이 점진적이고 극히 드물게 발생할 것이라고 보고했다. 이러한 비활성 군락과 대조적으로, 멕시코만 중부에서 처음 발견된 군집은 수많은 활발하게 이동하는 조개로 구성되어 있었다. 이 군집에서 얻은 이미지는 길이/빈도 및 생사 비율뿐만 아니라 공간 패턴을 개발하는 데 사용되었다(Rosman et al., 1987a).
자유생활 세균의 광범위한 세균 매트도 모든 탄화수소 용출수 지역에서 명백하게 나타난다. 이 세균들은 황화물과 메테인 에너지원을 놓고 주요 동물군과 경쟁할 수 있으며, 전체 생산량에 상당한 기여를 할 수도 있다(MacDonald, 1998b). 흰색의 비색소성 매트는 독립영양 황 세균 베기아토아 종으로 밝혀졌고, 주황색 매트는 미확인 비화학합성 대사를 가지고 있었다(MacDonald, 1998b).
용출수 지역의 종속영양성 종은 용출수에 고유한 종(특히 연체동물 및 갑각류 무척추동물)과 주변 환경의 일반적인 구성 요소인 종이 혼합되어 있다. Carney (1993)는 만성적 교란의 결과로 발생할 수 있는 잠재적인 불균형을 처음 보고했다. 산발적인 모집 패턴 때문에 포식자가 이점을 얻어 홍합 군락의 지역 개체군이 절멸할 수 있다. 용출수 시스템이 배경 동물군과 상호 작용한다는 것은 분명하지만, 관벌레와 같은 특정 군집 구성 요소에 대한 직접적인 포식이 어느 정도 발생하는지에 대해서는 상충되는 증거가 남아 있다(MacDonald, 2002). 이 최근 연구에서 더 놀라운 결과는 배경 종들이 용출수 생산을 보이는 것보다 더 많이 활용하지 않는 이유이다. 실제로 갈라테이드 게와 네리티드 복족류와 같은 용출수 관련 소비자들은 그들의 식단이 용출수와 배경 생산의 혼합물임을 나타내는 동위원소 서명을 가지고 있었다. 일부 지역에서는 식단의 대부분 또는 전부를 용출수 생산에서 얻을 것으로 예상되었던 고유한 용출수 무척추동물이 실제로는 식단의 최대 50퍼센트를 배경에서 소비했다.
서대서양의 냉용수 군집은 바베이도스 부가체 지역과 노스캐롤라이나 해안의 블레이크 해령 다이아피어 사이 수심 의 이화산과 다이아피어에서 몇 차례의 잠수로 기술되었다. 최근에는 동대서양에서 콩고강 깊은 해협 근처 기니만의 거대 포크마크 군집과 콩고 경사면, 가봉 경사면, 나이지리아 경사면의 다른 포크마크, 그리고 카디스만에서도 용출수 군집이 발견되었다.
카디스만의 광범위한 이화산 지대에서 화학공생 이매패류의 발생이 2003년에 처음 보고되었다. 카디스만 이화산에서 채집된 화학공생 이매패류는 2011년에 검토되었다.
냉용수는 북대서양에서도 알려져 있으며, 심지어 북극해, 캐나다 및 노르웨이 해안까지도 분포한다.
멕시코만에서 기니만까지, 바베이도스 부가체, 블레이크 해령 다이아피어를 포함한 대서양 적도 벨트에서 사이에서 광범위한 동물군 샘플링이 이루어졌으며, 해양 생명체 조사 ChEss 프로젝트 기간 동안 콩고 및 가봉 해안, 그리고 최근 탐사된 나이지리아 해안에서도 샘플링이 진행되었다. 종 수준에서 식별된 72개 분류군 중 총 9종 또는 종 복합체가 대서양 양서류로 식별되었다.
대서양 적도 벨트 용출수 메가파우나 군집 구조는 지리적 거리보다는 주로 깊이에 의해 영향을 받는다. 홍합과 내의 이매패류 바티모디오리나과 종 또는 종 복합체는 대서양에서 가장 널리 분포한다. 바티모디오루스 부메랑 복합체는 플로리다 단층 지역, 블레이크 해령 다이아피어, 바베이도스 프리즘, 콩고의 레가브 지역에서 발견된다. 바티모디오루스 차일드레시 복합체 또한 멕시코만에서 나이지리아 경계까지 대서양 적도 벨트를 따라 널리 분포하지만, 레가브 또는 블레이크 해령 지역에서는 발견되지 않는다. 공생하는 다모류 Branchipolynoe seepensis는 멕시코만, 기니만, 바베이도스에서 알려져 있다. 동대서양에서 서대서양으로 분포하는 다른 종은 복족류 Cordesia provannoides, 새우 Alvinocaris muricola, 갈라테이드 Munidopsis geyeri 및 Munidopsis livida, 그리고 아마도 해삼 Chiridota hydrothermica이다.
아마존강 심해 부채꼴에도 냉용수가 발견되었다. 대륙붕 가장자리 근처의 고해상도 지진 단면은 지하 의 표면 근처 슬럼프와 단층, 그리고 메탄 가스 농도(약 )의 증거를 보여준다. 여러 연구(예: Amazon Shelf Study—AMASEDS, LEPLAC, REMAC, GLORIA, 해양 시추 프로그램)는 바닥 모사 반사(BSR), 이화산, 포크마크, 퇴적물 내 가스, 그리고 더 깊은 탄화수소 발생을 기반으로 아마존 부채꼴 해안의 경사면에서 가스 용출의 증거가 있음을 나타낸다. 비교적 얕은 깊이의 메탄 존재와 광범위한 가스 하이드레이트 지역이 이 지역에서 매핑되었다. 또한 가스 굴뚝이 보고되었고, 탐사 시추공은 단층면을 따라 상업적이지 않은 가스 축적과 포크마크를 발견했다. 포즈 두 아마조나스 분지에 대한 건전한 지질학적 및 지구물리학적 이해는 이미 존재하며 에너지 회사에서 활용하고 있다.
미국 동해안의 잠재적 용출수 지역과 보다 깊은 곳에서 화학합성 군집이 알려진 로렌시아 심해평원 부채꼴, 그리고 기니만의 얕은 지역과 같은 새로운 지역에 대한 탐사가 향후 연구에 필요하다.
지중해에서 환원 환경의 첫 생물학적 증거는 나폴리 이화산(; "나폴리"는 해산의 이름일 뿐이다. 크레타 섬 남쪽에 위치) 정상에서 코어링된 루키니대과와 베시코미다과 이매패류 껍데기였다. 이 화산은 아프리카판의 섭입 지대에 있는 지중해 해령에 1,900m 깊이로 위치한다. 이어서 박테리아 내공생체와 관련된 새로운 루키니대과 이매패류 종인 Lucinoma kazani가 기술되었다. 지중해 남동부에서는 수심 500~800m의 이집트와 가자 지구 근처 냉용수와 탄산염과 관련된 다모류와 이매패류 군집이 발견되었지만, 살아있는 동물군은 채집되지 않았다. 동지중해에서 광범위한 살아있는 화학합성 군집의 첫 현장 관찰은 생물학자, 지구화학자, 지질학자 간의 협력을 촉발했다. 잠수정 잠수 중, 작은 이매패류(죽은 것과 살아있는 것)의 넓은 군집, 크고 고립되거나 밀집된 집합체를 이루는 시보글리니드 관벌레, 큰 해면동물, 그리고 관련 고유 동물군이 1,700~2,000m 깊이의 탄산염 지각과 관련된 다양한 냉용수 서식지에서 관찰되었다. 두 개의 이화산 지대가 처음 탐사되었는데, 하나는 지중해 해령을 따라 대부분이 부분적으로(나폴리, 밀라노 이화산) 또는 완전히(우라니아, 메이드스톤 이화산) 염수의 영향을 받았고, 다른 하나는 튀르키예 남쪽 아낙시만데르 봉우리에 위치했다. 후자의 지역에는 최근 머드플로우의 영향을 받은 대형 암스테르담 이화산과 더 작은 카잔 또는 쿨라 이화산이 포함된다. 암스테르담과 카잔 이화산에서는 가스 하이드레이트가 채집되었고, 해저 위에서 높은 메탄 수치가 기록되었다. 나일강 심해 부채꼴의 여러 지역이 최근 탐사되었다. 여기에는 2,500m와 3,000m 사이의 동부 지역에 있는 매우 활발한 염수 용출수인 메네스 칼데라, 중간 및 하부 경사면을 따라 있는 중앙 지역의 포크마크, 동부 지역의 이화산, 그리고 500m 깊이의 중앙 상부 경사면(노스 알렉스 지역)에 있는 이화산이 포함된다.
이러한 첫 탐사 잠수 동안, 올림피아 및 아낙시만데르 이화산 지대에서 관찰된 것과 유사한 공생체 보유 분류군이 채집 및 식별되었다. 이러한 유사성은 놀라운 일이 아닌데, 이들 분류군 대부분이 원래 나일강 삼각주에서 준설 작업으로 기술되었기 때문이다. 박테리아 공생체를 가진 최대 5종의 이매패류가 이러한 메탄과 황화물이 풍부한 환경에 서식했다. 지중해 해령에서 나일 심해 선상까지 냉용수에 서식하는 새로운 시보글리니대과 다모류 종인 Lamellibrachia anaximandri가 2010년에 막 기술되었다. 또한 공생 연구는 베시코미다과 및 루키니대과 이매패류와 시보글리니대과 관벌레에서 화학 독립 영양 세균, 황 산화균과의 연관성을 밝혀냈고, 작은 홍합과 공생하는 박테리아의 탁월한 다양성을 강조했다. 지중해 용출수는 메가파우나 종 풍부도(예: 복족류) 또는 해면동물(Rhizaxinella pyrifera) 및 게(Chaceon mediterraneus)와 같은 일부 종의 예외적인 크기로 특징지어지는 풍부한 서식지를 대표하며, 이는 배경 지역의 종들과 대조된다. 이는 깊은 동지중해의 낮은 거대 및 메가 동물군 풍부도 및 다양성과는 대조적이다. 고유한 화학합성 종과 관련 동물군을 포함하는 지중해 용출수 군집은 종 수준에서 세계의 다른 알려진 용출수 군집과 다르며, 또한 대형 이매패류 속인 Calyptogena 또는 바티모디오루스속이 없다는 점에서도 다르다. 메시나 위기 이후 지중해 용출수가 대서양으로부터 고립되면서 대서양과는 구성과 구조가 다를 가능성이 있는 독특한 군집이 발전했다. 추가 탐사는 지중해 해령에서 동나일 심해 선상까지 다양한 지역의 서식지에 대한 정량적 샘플링을 포함했다. 2008년 마르마라해에서 발견된 냉용수 또한 동지중해 냉용수의 공생체 보유 동물군과 상당한 유사성을 보이는 화학합성 기반 군집을 밝혀냈다.
파키스탄 남서부 해안과 이란 남동부 해안에 인접한 오만만 북동부 가장자리를 따라 위치한 섭입대인 마크란 해구에서는 부가체(부가체)의 압축으로 인해 냉용수와 이화산이 형성되었다.
서태평양.
남중국해 북동부 대륙사면의 냉용수에서도 천연 알루미늄이 보고되었으며, Chen 등(2011)은 이것이 환원에 의해 테트라하이드록소알루민산염 Al(OH)4−에서 금속 알루미늄으로 세균에 의해 생성된 것이라는 기원설을 제안했다.
일본 해양연구개발기구(JAMSTEC)가 주로 일본 주변 심해 군집을 연구한다. 심해 6500, 카이코, 그리고 다른 그룹들이 많은 지역을 발견했다.
일본의 메탄 용출수 군집은 수반되는 지각 활동으로 인해 수렴판 지역을 따라 분포한다. 일본 해구, 난카이 해곡, 류큐 해구, 사가미만, 스루가만, 동해에서 많은 용출수가 발견되었다.
냉용수 군집의 구성원은 다모류, 라멜리브라키아, 이매패류, 솔레미대과, 홍합과의 바티모디오루스속, 티아시리대과, 베시코미다과의 칼립토게나속 등 과 또는 속 수준에서 다른 지역과 유사하다. 일본의 냉용수 종 중 다수는 고유종이다.
가고시마만에는 "다기리(tagiri, 끓는 것)"라고 불리는 메탄 가스 용출수가 있다. 그 주변에는 Lamellibrachia satsuma가 서식한다. 이 지역의 깊이는 80m에 불과하며, 이는 시보글리니대과가 서식하는 것으로 알려진 가장 얕은 지점이다. L. satsuma는 수족관에서 1기압에서 오랫동안 사육될 수 있다. 일본의 두 수족관에서 L. satsuma를 사육하고 전시하고 있다. 투명 비닐 튜브에 도입하여 관찰하는 방법이 개발되고 있다.
DSV 심해 6500은 남부 마리아나 전호에서 베시코미다과 조개 군집을 발견했다. 이들은 사문암에서 유래하는 메탄에 의존한다. 다른 화학합성 군집은 지각 내 유기물에서 유래하는 탄화수소에 의존할 것이지만, 이 군집은 맨틀에서 유래하는 무기물 메탄에 의존한다.
2011년, 일본 해구 주변 지역은 도호쿠 지방 태평양 해역 지진으로 피해를 입었다. 지진으로 인해 균열, 메탄 용출, 세균 매트가 생성된 것으로 추정된다.
뉴질랜드 본토 해안 근처에서는 일부 지역에서 메탄이 풍부한 유체의 냉용수에 의해 대륙붕 가장자리 불안정성이 증가하며, 이 역시 화학합성 동물군과 탄산염 결절을 지탱한다. 우점종은 시보글리니대과의 관벌레와 베시코미다과 및 홍합과(바티모디오루스속)의 이매패류이다. 많은 종이 고유종으로 보인다. 심해 저인망 어업은 냉용수 군집에 심각한 피해를 입혔고, 이러한 생태계는 위협받고 있다. 냉용수는 수심 2,000m까지 발견되며, 서식지의 지형적 및 화학적 복잡성은 아직 지도화되지 않았다. 이러한 미연구 또는 미탐사 생태계에서 신종 발견 규모는 높을 것으로 예상된다.
심해에서 COMARGE 프로젝트는 메탄 용출수 및 산소 최소 구역과 같은 복잡한 생태계를 통해 칠레 해안을 따라 그리고 가로지르는 생물 다양성 패턴을 연구했으며, 이러한 서식지 이질성이 지역 동물군의 생물 다양성 패턴에 영향을 미칠 수 있다고 보고했다. 용출수 동물군에는 루키니대과, 티아시리대과, 솔레미아과(Acharax sp.), 베시코미다과(Calyptogena gallardoi)의 이매패류와 다모류(Lamellibrachia sp. 및 다른 두 다모류 종)가 포함된다. 또한 칠레 해안의 산소 최소 구역 아래의 이러한 부드럽고 환원된 퇴적물에서는 다양한 대형 원핵생물(주로 티오플로카속 및 베기아토아속의 대형 다세포 필라멘트 "메가박테리아"와 다양한 표현형을 포함하는 "매크로박테리아"), 원생생물(섬모충류, 편모충류, 유공충류), 그리고 작은 후생동물(대부분 선형동물과 다모류)로 구성된 다양한 미생물 군집이 발견되었다. Gallardo 등(2007)은 이들 대부분의 메가 및 매크로 박테리아의 화학석영양 대사가 화석 발견, 특히 명백히 비연안 기원의 화석에 대한 대체 설명을 제공하며, 일부 화석의 남조류 기원에 대한 전통적인 가설을 수정해야 할 수도 있다고 주장한다.
냉용수(포크마크)는 캐나다 브리티시컬럼비아주 헤카테 해협의 수심 130m에서도 알려져 있다. 그곳에서 이례적인 동물군(냉용수에 대해서도 이례적임)이 발견되었는데, 이들 우점종은 바다달팽이 Fusitriton oregonensis, 말미잘 Metridium giganteum, 부착성 해면동물, 그리고 이매패류 Solemya reidi이다.
미국 태평양 연안의 화학합성 군집이 있는 냉용수(포크마크)는 몬터레이만, 캘리포니아의 몬터레이해저곡 바로 근처의 이화산에서 발생한다. 예를 들어, Calyptogena 조개 Calyptogena kilmeri 및 Calyptogena pacifica와 유공충 Spiroplectammina biformis가 발견되었다.
또한, 캘리포니아 남부 연안의 내부 캘리포니아 경계 지역에서 산 클레멘테 단층, 산 페드로 단층, 그리고 샌디에이고 해구 단층을 포함한 여러 단층계를 따라 용출수가 발견되었다. 산 페드로 단층과 샌디에이고 해구 단층을 따라 있는 용출수에서의 유체 흐름은 단층 내의 국지적인 제한적 굴곡에 의해 제어되는 것으로 보인다.
남극해에서 첫 번째 냉용수는 2005년에 보고되었다. 남극 심해에 대한 비교적 적은 조사 결과는 열수분출공, 냉용수, 이화산을 포함한 심해 서식지의 존재를 보여주었다. 남극 저서 심해 생물다양성 프로젝트 (ANDEEP) 탐사를 제외하고는 심해에서 이루어진 작업은 거의 없다. 아직 기술되지 않은 더 많은 종들이 기다리고 있다.
특히 멕시코만 상부 대륙 경사면에서 지속적인 경험을 통해 관벌레 군집의 존재를 성공적으로 예측하는 능력이 계속 향상되고 있지만, 화학합성 군집은 지구물리학적 기술을 사용하여 직접적으로 신뢰성 있게 탐지할 수 없다. 화학합성 군집(과이마스 해분)이 존재할 수 있도록 하는 탄화수소 용출수는 지질학적 특성을 원격으로 탐지할 수 있는 방식으로 변경하지만, 활성 용출과 살아있는 군집의 존재가 동시에 발생하는 시간 규모는 항상 불확실하다. 알려진 퇴적물 변형에는 (1) 미소결절, 결절 또는 암석 덩어리 형태의 자생 탄산염 침전; (2) 가스 하이드레이트 형성; (3) 단단한 화학합성 유기체 잔해(예: 껍데기 조각 및 층)의 농축을 통한 퇴적물 구성 변경; (4) 간극 가스 기포 또는 탄화수소 형성; (5) 가스 분출에 의한 함몰 또는 포크마크 형성이 포함된다. 이러한 특징은 와이프아웃 구역(반사 없음), 단단한 바닥(강한 반사 반사), 밝은 지점(반사 강화 층), 또는 잔향 층(Behrens, 1988; Roberts and Neurauter, 1990)과 같은 음향 효과를 유발한다. 대부분의 군집 유형에 대한 잠재적 위치는 이러한 다양한 지구물리학적 변형의 신중한 해석을 통해 결정할 수 있지만, 현재까지 이 과정은 불완전하며 살아있는 군집의 확인에는 직접적인 시각적 기술이 필요하다.
냉용수 퇴적물은 현생누대 지질 기록 전반에 걸쳐 발견되는데, 특히 중생대 후기와 신생대에 집중되어 있다. 주목할 만한 예로는 티베트의 페름기, 콜로라도주의 백악기 및 홋카이도의 백악기, 혼슈의 고진기, 이탈리아 북부의 신진기, 그리고 캘리포니아의 플라이스토세에서 발견된다. 이들 화석 냉용수는 (보존된 경우) 언덕 모양의 지형, 거친 결정질 탄산염, 그리고 풍부한 연체동물과 완족동물이 특징이다.
냉용수 생태계와 그 군집이 오늘날 직면한 주요 위협은 해저 쓰레기, 화학 오염 물질, 그리고 기후 변화이다. 해저 쓰레기는 이전에는 없었던 단단한 기질을 제공하거나 퇴적물을 덮음으로써 서식지를 변화시키며, 이는 가스 교환을 방해하고 해저 유기체에 간섭한다. 지중해의 해양 쓰레기 연구에는 대륙붕, 경사면, 심해 평원에서의 해저 파편 조사도 포함된다. 대부분의 연구에서 플라스틱 품목은 유비쿼터스 사용과 낮은 분해성 때문에 쓰레기의 대부분을 차지했으며, 때로는 총량의 90% 이상을 차지하기도 했다.
무기와 폭탄도 바다에 버려져 공해 투기는 해저 오염에 기여한다. 저서 동물군에 대한 또 다른 주요 위협은 그물과 롱라인과 같은 잃어버린 어구의 존재인데, 이는 유령 어업에 기여하고 냉수 산호와 같은 취약한 생태계를 손상시킬 수 있다.
잔류성 유기 오염 물질, 유독 금속(예: Hg, Cd, Pb, Ni), 방사성 화합물, 살충제, 제초제, 의약품과 같은 화학 오염 물질도 심해 퇴적물에 축적되고 있다. 지형(예: 해저협곡)과 수문학(예: 캐스케이딩 현상)은 이러한 화학 물질이 해안과 대륙붕에서 심해 분지로 운반 및 축적되는 데 주요한 역할을 하여 지역 동물군에 영향을 미친다. 최근 연구에서는 상업용 새우 Aristeus antennatus에서 상당한 수준의 다이옥신이, 중심해 및 심해 두족류에서 상당한 수준의 잔류성 유기 오염 물질이 검출되었다.
기후 변화로 인한 과정과 기후 변화는 캐스케이딩의 빈도와 강도에 영향을 미칠 것이며, 이는 저서 동물군에 미치는 영향은 아직 알려지지 않았다. 기후 변화의 또 다른 잠재적 영향은 표층수에서 해저로의 에너지 전달과 관련이 있다. 표층에서 햇빛 노출, 수온, 수괴의 주요 성층화 및 기타 효과에 따라 일차 생산량이 변화할 것이며, 이는 심해 해저까지의 먹이 사슬에 영향을 미쳐 유기물 유입의 양, 질, 시기 변화를 초래할 것이다. 상업 어업이 더 깊은 바다로 이동함에 따라, 이러한 모든 영향은 냉용수 및 심해 전반의 유기체 군집과 개체군에 영향을 미칠 것이다.
이 문서는 퍼블릭 도메인인 미국 정부 기관의 저작물 () 및 CC-BY-2.5인 및 CC-BY-3.0 텍스트()의 내용을 포함한다.
분산 인공지능(distributed artificial intelligence, DAI) 또는 탈중앙화 인공지능(Decentralized Artificial Intelligence)은 문제 해결을 위한 분산 솔루션 개발에 전념하는 인공지능 연구의 하위 분야이다. DAI는 다중 에이전트 시스템 분야와 밀접하게 관련되어 있으며 그 전신이다.
다중 에이전트 시스템과 분산 문제 해결은 두 가지 주요 DAI 접근 방식이다. 수많은 응용 프로그램과 도구가 있다.
분산 인공지능(DAI)은 복잡한 학습, 계획 및 의사 결정 문제를 해결하기 위한 접근 방식이다. 이는 처치 곤란 병렬이므로 대규모 계산 및 컴퓨팅 리소스의 공간 분산을 활용할 수 있다. 이러한 속성은 매우 큰 자료 집합의 처리가 필요한 문제를 해결할 수 있게 한다. DAI 시스템은 분산된, 종종 매우 대규모로 분포된 자율 학습 처리 노드(에이전트)로 구성된다. DAI 노드는 독립적으로 작동할 수 있으며, 부분적인 솔루션은 노드 간의 통신을 통해 종종 비동기적으로 통합된다. 규모 덕분에 DAI 시스템은 견고하고 탄력적이며, 필연적으로 느슨하게 결합되어 있다. 또한 DAI 시스템은 문제 정의 또는 기본 데이터 세트의 변경 사항에 적응하도록 구축되어 재배포의 규모와 어려움으로 인한 변경 사항에 적응한다.
DAI 시스템은 밀접하게 결합되고 지리적으로 가까운 처리 노드를 갖는 모놀리식 또는 중앙 집중식 인공지능 시스템과 달리 모든 관련 데이터를 단일 위치에 집계할 필요가 없다. 따라서 DAI 시스템은 종종 매우 큰 데이터 세트의 하위 샘플 또는 해시된 인상에서 작동한다. 또한 원본 데이터 세트는 DAI 시스템 실행 과정에서 변경되거나 업데이트될 수 있다.
1975년에 분산 인공지능은 지능형 에이전트의 상호 작용을 다루는 인공지능의 하위 분야로 등장했다. 분산 인공지능 시스템은 협력, 공존 또는 경쟁을 통해 상호 작용하는 에이전트라는 지능형 엔티티 그룹으로 구상되었다. DAI는 다중 에이전트 시스템과 분산 문제 해결로 분류된다. 다중 에이전트 시스템에서는 에이전트가 지식과 활동을 어떻게 조정하는지에 중점을 둔다. 분산 문제 해결에서는 문제가 어떻게 분해되고 솔루션이 합성되는지에 중점을 둔다.
분산 인공지능의 목표는 추론, 계획, 학습 및 인공지능의 지각 문제를 해결하는 것이다. 특히 대규모 데이터가 필요한 경우, 문제를 자율 처리 노드(에이전트)에 분산하여 해결한다. 목표를 달성하기 위해 DAI는 다음을 필요로 한다.
지능을 분산하거나 다중 에이전트 시스템을 다루고 싶어 하는 많은 이유가 있다. DAI 연구의 주요 문제는 다음과 같다.
두 가지 유형의 DAI가 등장했다.
DAI는 서브섬션 아키텍처와 유사한 AI에 대한 상향식 접근 방식과 AI의 전통적인 하향식 접근 방식을 적용할 수 있다. 또한 DAI는 창발의 수단이 될 수도 있다.
분산 AI의 과제는 다음과 같다.
응용 프로그램 및 도구.
DAI가 적용된 분야는 다음과 같다.
DAI 도구 통합에는 다음이 포함된다.
시스템: 에이전트 및 다중 에이전트.
에이전트의 개념: 에이전트는 문제 해결을 위해 설계된 표준 경계와 인터페이스를 가진 개별 엔티티로 설명될 수 있다.
다중 에이전트의 개념: 다중 에이전트 시스템은 개별 에이전트가 해결할 수 없는 문제 해결을 위해 사회처럼 단일 엔티티로 작동하는 느슨하게 결합된 에이전트 네트워크로 정의된다.
소프트웨어 에이전트.
DPS 및 MABS에서 사용되는 핵심 개념은 소프트웨어 에이전트라는 추상화이다. 에이전트는 환경을 이해하고 그에 따라 행동하는 가상(또는 물리적) 엔티티이다. 에이전트는 일반적으로 동일한 시스템 내의 다른 에이전트와 통신하여 단일 에이전트 혼자서는 달성할 수 없는 공통 목표를 달성할 수 있다. 이 통신 시스템은 에이전트 통신 언어를 사용한다.
유용한 첫 번째 분류는 에이전트를 다음으로 나누는 것이다.
에이전트가 내부적으로 어떻게 구성되는지 설명하는 잘 알려진 에이전트 아키텍처는 다음과 같다.
시스템 공학에서 신뢰성(dependability)은 시스템의 가용성, 신뢰도, 유지보수성 및 경우에 따라 내구성, 안전 및 보안과 같은 기타 특성을 측정하는 척도이다. 실시간 컴퓨팅에서 신뢰성은 일정 기간 내에 신뢰할 수 있는 서비스를 제공하는 능력이다. 시스템이 공격이나 자연적인 고장에 노출되더라도 서비스 보증은 유지되어야 한다.
국제전기기술위원회 (IEC)는 기술위원회 TC 56을 통해 장비, 서비스 및 시스템의 수명 주기 전반에 걸쳐 신뢰성 평가 및 관리를 위한 체계적인 방법과 도구를 제공하는 국제 표준을 개발하고 유지한다. "신뢰할 수 있는 컴퓨팅 및 오류 허용"에 관한 IFIP 워킹 그룹 10.4는 이 분야의 기술 커뮤니티의 발전을 종합하는 역할을 하며, 결과를 전파하기 위해 매년 두 번의 워크숍을 개최한다.
신뢰성은 세 가지 요소로 나눌 수 있다.
일부 출처에 따르면 이 단어는 1910년대 닷지 브라더스 자동차 인쇄 광고에서 만들어졌다고 한다. 그러나 이 단어는 그 이전부터 존재했으며, 옥스포드 영어사전은 1901년에 처음 사용된 것을 발견했다.
1960년대와 1970년대에 오류 허용 및 시스템 신뢰성에 대한 관심이 증가하면서 신뢰성은 신뢰성의 척도가 안전 및 무결성과 같은 추가적인 척도를 포함하게 되면서 [x]의 척도가 되었다. 1980년대 초, 장-클로드 라프리는 신뢰성 고유의 의미 확장을 포함하지 않고 오류 허용 및 시스템 신뢰성 연구를 포괄하는 용어로 신뢰성을 선택했다.
신뢰성 분야는 이러한 시작부터 신뢰할 수 있는 시스템 및 네트워크에 관한 국제 회의, 신뢰할 수 있는 분산 시스템 국제 심포지엄 및 소프트웨어 신뢰성 공학 국제 심포지엄과 같은 여러 저명한 국제 회의에 의해 육성되는 국제적으로 활발한 연구 분야로 발전해왔다.
전통적으로 시스템의 신뢰성은 가용성, 신뢰성, 유지보수성을 포함했지만 1980년대부터 안전과 보안이 신뢰성 측정에 추가되었다.
신뢰성의 요소.
속성은 시스템의 품질이다. 이는 정성적 또는 정량적 측정값을 사용하여 전반적인 신뢰성을 결정하기 위해 평가될 수 있다. 아비제니스 외 는 다음 신뢰성 속성을 정의한다.
이러한 정의가 시사하듯이, 가용성과 신뢰성만이 직접 측정으로 정량화될 수 있는 반면 다른 것들은 더 주관적이다. 예를 들어 안전은 지표를 통해 직접 측정될 수 없지만, 신뢰 수준을 제공하기 위해 판단 정보를 적용해야 하는 주관적인 평가이며, 신뢰성은 시간에 따른 고장으로 측정될 수 있다.
기밀성, 즉 무단 정보 공개의 부재도 보안을 다룰 때 사용된다. 보안은 기밀성, 인티그리티, 가용성의 복합체이다. 보안은 때때로 속성으로 분류되기도 하지만 현재의 견해는 이를 신뢰성과 함께 묶어 신뢰성 및 보안이라는 복합 용어로 취급하는 것이다.
실제로 시스템의 기기에 보안 조치를 적용하면 일반적으로 외부에서 발생하는 오류의 수를 제한하여 신뢰성을 향상시킨다.
위협은 시스템에 영향을 미치고 신뢰성을 떨어뜨릴 수 있는 것들이다. 명확하게 이해해야 할 세 가지 주요 용어가 있다.
고장은 시스템 경계에서 기록된다는 점에 유의하는 것이 중요하다. 고장은 기본적으로 시스템 경계로 전파되어 관찰 가능한 오류이다.
결함, 오류 및 고장은 메커니즘에 따라 작동한다. 이 메커니즘은 때때로 결함-오류-고장 체인으로 알려져 있다. 일반적으로 결함이 활성화되면 오류(잘못된 상태)로 이어질 수 있으며, 오류로 인해 생성된 잘못된 상태는 또 다른 오류 또는 고장(시스템 경계에서 지정된 동작에서 관찰 가능한 편차)으로 이어질 수 있다.
결함이 활성화되면 오류가 생성된다. 오류는 결함과 동일하게 작동하여 추가 오류 조건을 생성할 수 있으므로 오류는 관찰 가능한 고장을 유발하지 않고 시스템 경계 내에서 여러 번 전파될 수 있다. 오류가 시스템 경계 밖으로 전파되면 고장이 발생했다고 말한다. 고장은 기본적으로 서비스가 사양을 충족하지 못한다고 말할 수 있는 지점이다. 한 서비스의 출력 데이터가 다른 서비스로 유입될 수 있으므로 한 서비스의 고장이 다른 서비스에 결함으로 전파될 수 있으며, 따라서 결함이 오류로 이어지고 고장으로 이어지고 오류로 이어지는 등의 체인이 형성될 수 있다.
결함-오류-체인의 메커니즘이 이해되면 이러한 체인을 끊고 시스템의 신뢰성을 높일 수 있는 수단을 구축할 수 있다.
현재까지 네 가지 수단이 확인되었다.
결함 방지는 시스템에 결함이 도입되는 것을 방지하는 것과 관련이 있다. 이는 개발 방법론과 좋은 구현 기술을 사용하여 달성할 수 있다.
결함 제거는 개발 중 제거와 사용 중 제거라는 두 가지 하위 범주로 나눌 수 있다.&lt;br&gt;
개발 중 제거는 시스템이 생산에 들어가기 전에 결함을 감지하고 제거할 수 있도록 검증을 필요로 한다. 시스템이 생산에 들어가면 고장을 기록하고 유지보수 주기를 통해 고장을 제거하기 위한 시스템이 필요하다.
결함 예측은 발생할 가능성이 있는 결함을 예측하여 제거하거나 그 영향을 회피할 수 있도록 한다.
결함 허용은 결함이 있는 상황에서도 시스템이 필요한 서비스를 제공할 수 있도록 메커니즘을 마련하는 것과 관련이 있으며, 서비스 수준이 저하될 수도 있다.
신뢰성 수단은 시스템 최종 사용자에게 보이는 고장의 수를 줄이는 것을 목표로 한다.
결함이 나타나거나 지속되는 방식에 따라 다음과 같이 분류된다.
정보 시스템의 신뢰성 및 생존성.
신뢰성에 관한 일부 연구에서는 구조화된 정보 시스템을 사용한다(예: SOA 포함). 이는 속성 생존성을 도입하여 정보 시스템이 마스킹 불가능한 고장 후에 유지하거나 재개하는 저하된 서비스를 고려하기 위함이다.
현재 프레임워크의 유연성은 시스템 아키텍트가 사용 가능한 안전한 리소스의 초점을 가장 중요한 서비스를 지원하도록 재구성 메커니즘을 활성화하도록 장려하며, 실패 방지 시스템을 구축하기 위해 과도하게 프로비저닝하는 대신 이를 활용한다.
네트워크 정보 시스템의 일반화와 함께 사용자 경험에 더 큰 중요성을 부여하기 위해 접근성이 도입되었다.
성능 수준을 고려하기 위해 성능성 측정은 "지정된 기간 동안 결함이 있는 상황에서 객체 시스템이 얼마나 잘 작동하는지 정량화"하는 것으로 정의된다.
지역별 컨퍼런스:
네트워크 스케줄러(network scheduler)는 패킷 스케줄러(packet scheduler), 큐잉 규율(queueing discipline, qdisc), 또는 큐잉 알고리즘(queueing algorithm)이라고도 불리며, 패킷 교환 통신 네트워크의 노드에 있는 아비터이다. 이는 프로토콜 스택과 네트워크 인터페이스 컨트롤러의 송수신 큐에서 네트워크 패킷의 시퀀스를 관리한다. 여러 운영체제에서 사용할 수 있는 다양한 네트워크 스케줄러가 있으며, 이들은 기존의 많은 스케줄링 알고리즘을 구현한다.
네트워크 스케줄러 로직은 다음으로 전달할 네트워크 패킷을 결정한다. 네트워크 스케줄러는 네트워크 패킷을 전송될 때까지 임시로 저장하는 큐잉 시스템과 연결되어 있다. 시스템은 단일 또는 다수의 큐를 가질 수 있으며, 이 경우 각 큐는 하나의 흐름, 트래픽 분류, 또는 우선순위의 패킷을 보관할 수 있다.
어떤 경우에는 시스템의 제약 내에서 모든 전송을 스케줄링하는 것이 불가능할 수도 있다. 이러한 경우 네트워크 스케줄러는 어떤 트래픽을 전달하고 어떤 것을 삭제할지 결정하는 역할을 한다.
용어 및 책임.
네트워크 스케줄러는 특정 네트워크 트래픽 제어 이니셔티브를 구현하는 데 책임이 있을 수 있다. 네트워크 트래픽 제어는 네트워크 혼잡, 지연 및 패킷 손실을 줄이는 것을 목표로 하는 모든 조치를 포괄하는 용어이다. 특히, 액티브 큐 관리 (AQM)는 과도한 네트워크 혼잡을 방지하기 위한 더 큰 목표를 달성하기 위해 대기 중인 네트워크 패킷을 선택적으로 삭제하는 것이다. 스케줄러는 삭제할 패킷을 선택해야 한다. 트래픽 셰이핑은 패킷이 버스트로 대기열에 있을 때 전송을 지연시켜 트래픽 흐름의 대역폭 요구 사항을 부드럽게 한다. 스케줄러는 전송되는 패킷의 타이밍을 결정한다. QoS는 서비스 클래스(차등화 서비스) 또는 예약된 연결(통합 서비스)을 기반으로 트래픽에 우선순위를 부여하는 것이다.
시간이 지남에 따라 많은 네트워크 큐잉 규율이 개발되었다. 이들 각각은 다양한 송수신 버퍼 내에서 네트워크 패킷의 특정 재정렬 또는 삭제를 제공한다.
큐잉 규율은 특정 클래스의 네트워크 패킷에 대한 지연을 줄이는 것과 같이 다양한 네트워킹 조건을 보상하려는 시도로 일반적으로 사용되며, 주로 QoS 조치의 일부로 사용된다.
클래스 기반 큐잉 규율은 나무의 가지처럼 작동하는 클래스를 생성할 수 있게 한다. 그런 다음 패킷을 각 클래스로 필터링하는 규칙을 설정할 수 있다. 각 클래스는 그 자체로 다른 클래스 기반 또는 클래스리스 큐잉 규율을 할당받을 수 있다. 클래스리스 큐잉 규율은 더 많은 큐잉 규율을 추가하는 것을 허용하지 않는다.
네트워크 트래픽 관리에 적합한 알고리즘의 예시는 다음과 같다.
위에 제시된 몇 가지는 리눅스 커널 모듈로 구현되었으며 자유롭게 이용 가능하다.
버퍼블로트.
버퍼블로트는 패킷 교환 네트워크에서 과도한 패킷 버퍼링으로 인해 높은 지연과 패킷 지연 변화가 발생하는 현상이다. 버퍼블로트는 불필요하게 높은 버퍼링 백로그를 피하기 위해 패킷을 전략적으로 삭제하는 네트워크 스케줄러로 해결할 수 있다. 예를 들어 CoDel, FQ-CoDel, 무작위 조기 검출 등이 있다.
리눅스 커널.
리눅스 커널 패킷 스케줄러는 리눅스 커널의 네트워크 스택의 필수적인 부분이며 모든 NIC의 송수신 링 버퍼를 관리한다.
패킷 스케줄러는 codice_1 (트래픽 제어의 약어)라는 유틸리티를 사용하여 구성된다. 기본 큐잉 규율로서 패킷 스케줄러는 pfifo_fast라고 불리는 선입 선출 구현을 사용하지만, systemd는 버전 217부터 기본 큐잉 규율을 codice_2로 변경했다.
codice_3 및 codice_4 유틸리티를 통해 시스템 관리자는 각 장치에 대해 이더넷 프레임 수 기준으로 크기에 관계없이 버퍼 크기 codice_5 및 codice_6을 별도로 구성할 수 있다. 리눅스 커널의 네트워크 스택에는 네트워크 스케줄러가 관리하지 않는 다른 버퍼들이 포함되어 있다.
버클리 패킷 필터 필터는 패킷 스케줄러의 분류기에 첨부될 수 있다. 2015년 리눅스 커널 버전 4.1에서 도입된 eBPF 기능은 고전적인 BPF 프로그래밍 가능한 분류기를 eBPF로 확장한다. 이들은 LLVM eBPF 백엔드를 사용하여 컴파일하고 codice_1 유틸리티를 사용하여 실행 중인 커널에 로드할 수 있다.
BSD 및 OpenBSD.
ALTQ는 BSD를 위한 네트워크 스케줄러 구현이다. OpenBSD 버전 5.5부터 ALTQ는 HFSC 스케줄러로 대체되었다.
셀 프리 네트워크 스케줄링.
통신 네트워크의 스케줄러는 패킷 우선순위, 타이밍, 자원 분배를 포함한 자원 할당을 관리한다. 고급 구현은 현대 네트워크 구성의 복잡성을 해결하기 위해 인공지능을 increasingly 활용한다. 예를 들어, 셀 프리 네트워크에서는 다수의 무선 장치(RU)와 사용자 장비(UE) 간의 상호작용을 효율적으로 처리하기 위해 지도 신경망(NN) 기반 스케줄러가 도입되었다. 이 접근 방식은 계산 복잡성을 줄이면서 지연 시간, 처리량 및 자원 할당을 최적화하여 5G 이후 네트워크를 위한 유망한 솔루션이 되고 있다.
소프트웨어 구축(software construction)은 코딩과 통합을 통해 작동하는 소프트웨어를 만드는 과정이다. 이 과정에는 단위 및 통합 테스트가 포함되지만, 시스템 테스트와 같은 높은 수준의 테스트는 포함되지 않는다.
구축은 소프트웨어 개발 수명 주기의 한 측면이며, 다른 활동과 분리된 활동으로서 구축에 대한 다양한 초점을 가진 여러 소프트웨어 개발 프로세스 모델에 통합된다. 폭포수 모델에서 소프트웨어 개발 노력은 구축을 시작하기 위한 전제 조건인 요구사항 분석, 설계, 계획을 포함하는 순차적인 단계로 구성된다. 스크럼, 진화적 프로토타이핑 또는 익스트림 프로그래밍과 같은 반복적 모델에서는 구축이 다른 활동과 동시에 또는 겹쳐서 발생하는 활동이다.
구축 계획에는 구성 요소가 생성되고 통합되는 순서, 소프트웨어 품질 관리 프로세스, 팀 및 개발자에게 작업 할당을 정의하는 것이 포함될 수 있다.
프로젝트 관리를 용이하게 하기 위해 개발된 코드의 양, 수정된 코드, 재사용된 코드, 파괴된 코드, 코드 복잡성, 코드 검사 통계, 오류 수정 및 발견률, 투입된 노력 등 수많은 구축 측면을 측정할 수 있다. 이러한 측정은 품질 보장 및 프로세스 개선과 같은 측면에 유용할 수 있다.
구축에는 많은 활동이 포함된다.
코딩.
다음은 코딩 활동의 몇 가지 주요 측면이다.
각 식별자에 대한 이름 선택. 한 연구에 따르면 변수 이름이 10자에서 16자 사이일 때 프로그램 디버깅에 필요한 노력이 최소화된다.
문 및 루틴으로 구성
코드를 클래스, 패키지 및 기타 구조로 구성하고 리팩터링한다. 포함을 고려할 때 클래스의 최대 데이터 멤버 수는 7±2를 초과해서는 안 된다. 연구에 따르면 이 숫자는 사람이 다른 작업을 수행하면서 기억할 수 있는 이산 항목의 수이다. 상속을 고려할 때 상속 트리의 수준 수는 제한해야 한다. 깊은 상속 트리는 오류 발생률 증가와 유의미하게 관련이 있는 것으로 밝혀졌다. 클래스에 있는 루틴의 수는 가능한 한 적게 유지해야 한다. C++ 프로그램에 대한 연구에서 루틴 수와 오류 수 사이에 연관성이 발견되었다. NASA의 한 연구에 따르면 코드를 잘 구성된 클래스에 넣으면 기능 설계를 사용하여 개발된 코드에 비해 코드 재사용성이 두 배로 늘어날 수 있다.
계획된 오류와 계획되지 않은 오류 및 예외를 처리하기 위한 로직 인코딩.
쓰레드 또는 데이터베이스 락을 포함하여 배타적 메커니즘 및 직렬 재사용 자원 접근의 규율을 통해 연산 자원 사용을 관리한다.
버퍼 오버런 및 배열 인덱스 오버플로와 같은 코드 수준의 보안 침해 방지.
최적화와 동시에 조기 최적화를 피한다.
주석으로 코드에 포함된 것과 외부 문서로 작성된 것 모두.
통합은 별도로 구성된 부분을 결합하는 것이다. 고려 사항에는 구성 요소가 통합될 순서 계획, 소프트웨어의 임시 버전을 지원하는 스캐폴딩 생성, 구성 요소가 통합되기 전에 수행되는 테스트 및 품질 작업 정도 결정, 임시 버전이 테스트되는 프로젝트의 시점 결정 등이 포함된다.
테스트는 코드에 잘못된 로직이 삽입된 시점과 탐지된 시점 사이의 시간을 줄일 수 있다. 어떤 경우에는 코드가 작성된 후에 테스트가 수행되지만, 테스트 우선 프로그래밍에서는 코드를 작성하기 전에 테스트 케이스를 생성한다. 구축에는 최소 두 가지 형태의 테스트가 포함되며, 종종 코드를 작성한 개발자가 수행한다. 유닛 테스트 및 통합 테스트.
재사용.
소프트웨어 재사용은 라이브러리를 만들고 사용하는 것 이상을 포함한다. 소프트웨어 수명 주기에 재사용 프로세스 및 활동을 통합하여 재사용 관행을 공식화해야 한다. 코딩 및 테스트 중 소프트웨어 구축에서 재사용과 관련된 작업에는 다음이 포함될 수 있다. 재사용 가능한 코드 선택, 코드 또는 테스트 재사용성 평가, 재사용 지표 보고.
품질 보장.
소프트웨어를 구축할 때 품질을 보장하기 위한 기술은 다음과 같다.
한 연구에 따르면 유닛 테스트와 통합 테스트의 평균 결함 감지율은 각각 30%와 35%이다.
소프트웨어 검사에 관해서는 한 연구에서 공식 코드 검사의 평균 결함 감지율이 60%인 것으로 나타났다. 결함 발견 비용에 관해서는 코드 읽기가 테스트보다 시간당 80% 더 많은 결함을 감지한다는 연구 결과가 있다. 또 다른 연구에서는 테스트를 사용하여 설계 결함을 감지하는 것이 검사를 사용하는 것보다 6배 더 많은 비용이 든다는 것을 보여주었다. IBM의 한 연구에서는 코드 검사를 통해 결함을 찾는 데 3.5시간이 걸렸지만, 테스트를 통해서는 15~25시간이 걸렸다. 마이크로소프트는 코드 검사를 사용하여 결함을 찾고 수정하는 데 3시간이 걸리고 테스트를 사용하여 결함을 찾고 수정하는 데 12시간이 걸린다는 것을 발견했다. 70만 줄의 프로그램에서 코드 검토가 테스트보다 여러 배 더 비용 효율적이라는 보고가 있다. 연구에 따르면 검사는 비공식적인 검토 관행보다 코드 1000줄당 결함 수를 20%~30% 줄이고 생산성을 약 20% 증가시킨다. 공식 검사는 일반적으로 프로젝트 예산의 10%~15%를 차지하며 전체 프로젝트 비용을 줄일 것이다. 연구자들은 공식 검사에 2~3명 이상의 검토자를 두는 것이 발견되는 결함 수를 증가시키지는 않지만, 결과는 검사되는 자료의 종류에 따라 달라지는 것으로 보인다.
기술 검토에 관해서는 한 연구에서 비공식 코드 검토 및 데스크 검사의 평균 결함 감지율이 각각 25%와 40%인 것으로 나타났다. 워크스루는 결함 감지율이 20%~40%였지만, 특히 프로젝트 압력이 증가할 때 비용이 많이 드는 것으로 나타났다. NASA는 코드 읽기가 시간당 3.3개의 결함을 감지하는 반면, 테스트는 시간당 1.8개의 결함을 감지한다는 것을 발견했다. 또한 다양한 종류의 테스트보다 프로젝트 수명 동안 20%~60% 더 많은 오류를 발견한다. 검토 회의에 대한 13개 검토 연구에서 결함의 90%가 검토 회의 준비 과정에서 발견되었고 회의 중에는 약 10%만이 발견되었다.
정적 분석 (IEEE1028)에 관해서는 높은 결함 감지율을 달성하기 위해 이러한 기술을 조합하여 사용해야 한다는 연구 결과가 있다. 다른 연구에서는 다른 사람들이 다른 결함을 찾는 경향이 있다는 것을 보여주었다. 한 연구에서는 익스트림 프로그래밍의 페어 프로그래밍, 데스크 검사, 유닛 테스트, 통합 테스트, 회귀 테스트와 같은 관행이 90%의 결함 감지율을 달성할 수 있다는 것을 발견했다. 숙련된 프로그래머가 참여한 실험에서는 테스트를 통해 15개 오류 중 평균 5개(최대 9개)의 오류를 찾을 수 있었다.
오류의 80%는 프로젝트 클래스와 루틴의 20%에 집중되는 경향이 있다. 오류의 50%는 프로젝트 클래스의 5%에서 발견된다. IBM은 IMS 시스템에서 425개 클래스 중 31개만 수리하거나 다시 작성함으로써 고객 보고 결함을 10분의 1로 줄이고 유지보수 예산을 45% 줄일 수 있었다. 프로젝트 루틴의 약 20%가 개발 비용의 80%를 차지한다. IBM의 고전적인 연구에 따르면 OS/360의 몇몇 오류 발생률이 높은 루틴이 가장 비싼 엔터티였다. 이 루틴은 코드 1000줄당 약 50개의 결함을 가지고 있었고, 이를 수정하는 데 전체 시스템을 개발하는 데 드는 비용의 10배가 들었다.
소프트웨어 설계의 예상치 못한 격차를 설명하기 위해 구축 중에 설계 수정이 이루어질 수 있다.
구축에 사용되는 언어 유형은 다음과 같다.
3년 이상 사용한 언어로 작업하는 프로그래머는 해당 언어에 새로 익숙해진 동등한 경험의 프로그래머보다 약 30% 더 생산적이다. C++, 자바, 스몰토크, 비주얼 베이직과 같은 고수준 언어는 어셈블리 및 C와 같은 저수준 언어보다 생산성, 신뢰성, 단순성, 이해도 면에서 5~15배 더 우수하다. 동등한 코드는 저수준 언어보다 고수준 언어로 구현하는 데 더 적은 줄이 필요한 것으로 나타났다.
모범적 실천 방안.
많은 요소가 소프트웨어 품질에 기여하고 총 소유 비용을 최소화한다.
복잡성 최소화.
프로그래밍 복잡성을 최소화하는 것은 주로 복잡한 정보를 효과적으로 처리할 수 있는 사람들의 제한된 능력에 의해 좌우된다. 복잡성은 구축 중심 품질 기술을 통해 줄일 수 있다.
변경 예측.
변경을 예측하는 것은 개발자가 확장 가능한 소프트웨어 즉, 내재된 설계를 방해하지 않고 개선될 수 있는 코드를 구축하는 데 도움이 된다.
25년 이상의 연구에 따르면 재작업 비용은 요구사항을 처음부터 올바르게 파악하는 것보다 10배에서 100배(소규모 프로젝트의 경우 5배에서 10배) 더 비쌀 수 있다. 평균 프로젝트에서 개발 중에 요구사항의 25%가 변경된다는 점을 고려할 때 재작업 비용을 줄여야 할 필요성이 변경 예측의 필요성을 명확히 한다.
확인을 위한 구축.
검증을 위한 구축은 개발자가 쉽게 결함을 찾아낼 수 있고 독립적인 테스트 및 운영 활동 중에도 결함을 찾아낼 수 있도록 소프트웨어를 구축하는 것을 의미한다. 검증을 위한 구축을 지원하는 특정 기술에는 코드 검토를 지원하기 위한 코딩 표준 준수, 유닛 테스트, 코드를 자동화된 테스트를 지원하도록 구성, 복잡하거나 이해하기 어려운 언어 구조의 제한된 사용 등이 있다.
정보 은닉.
정보 은닉은 대규모 프로그램에서 유용한 설계 기술로 입증되었으며, 수정이 4배 더 쉬워졌다. 낮은 팬아웃은 연구자들이 유익하다고 밝힌 설계 특성 중 하나이다.
소프트웨어 재사용은 상당한 생산성, 품질 및 비용 이점을 실현할 수 있다. 주요 이점은 기존 소프트웨어 자산을 재사용함으로써 달성되며, 재사용은 미래 재사용을 위해 설계된 소프트웨어를 생성함으로써 지원된다.
건축 문제에 직접적인 영향을 미치는 표준(국제 조직에서 만든 외부 표준이든 회사 차원에서 만든 내부 표준이든)은 다음과 같다.
데이터 추상화.
데이터 추상화는 구현 세부 정보를 숨기면서 정보의 의미와 유사한 형태로 정보를 나타내는 소스 코드의 특성이다. 학술 연구에 따르면 데이터 추상화는 함수형 프로그램보다 프로그램을 약 30% 더 쉽게 이해할 수 있게 한다.
객체 지향 언어는 데이터 추상화, 캡슐화, 모듈성, 상속, 다형성, 반영과 같이 프로그램의 유연성과 적응성을 높이는 일련의 런타임 메커니즘을 지원한다.
방어적 프로그래밍.
방어적 프로그래밍은 잘못된 입력으로 인해 루틴이 손상되지 않도록 보호하는 것이다. 어설션은 프로그램의 런타임 검사를 허용하는 프로그램에 배치된 실행 가능한 프레디케이트이다. 계약에 의한 설계는 각 루틴에 선행 조건과 후행 조건을 포함하는 개발 접근 방식이다.
오류 처리란 프로그램 실행 시 발생할 수 있는 오류 조건에 대한 코딩 관행을 말한다. 예외 처리는 예외 발생, 즉 프로그램 실행의 정상적인 흐름을 변경하는 특수 조건을 처리하도록 설계된 프로그래밍 언어 구성 또는 하드웨어 메커니즘이다. 결함 허용은 오류를 감지하고 가능하다면 복구하거나 복구가 불가능할 경우 그 영향을 억제하여 소프트웨어 신뢰성을 높이는 기술 모음이다.
코딩 관점.
상태 기반 논리.
상태 기반 프로그래밍은 유한 상태 기계를 사용하여 논리를 구현하는 것으로 구성된다.
테이블 기반 논리.
테이블 기반 논리는 테이블로 형식화된 정보를 사용하여 실행을 구동한다.
런타임 구성.
런타임 구성은 프로그램이 실행되는 동안 변수 값과 프로그램 설정을 바인딩하는 기술로, 일반적으로 구성 파일을 업데이트하고 읽어서 수행된다.
국제화와 지역화는 여러 로캘을 지원하고 다양한 로캘을 지원하기 위해 프로그램을 준비하는 활동이다.
프로그래밍 팀(programming team)은 컴퓨터 소프트웨어를 개발하거나 유지보수하는 사람들로 구성된 팀이다. 이들은 여러 방식으로 조직될 수 있지만, 비자아적 프로그래밍 팀과 수석 프로그래머 팀이 일반적인 구조였다.
프로그래밍 팀은 개발하거나 유지보수하는 사람들로 구성된다.
프로그래밍 팀 구조.