アジャイルソフ トウェア開発宣⾔ 2005/10 1991〜:#バブル崩壊「失われた◦◦年」 1988〜:!⽇本を含む諸外国へ「通商法スーパー301条」発動 ソフトウェア開発現代史年表 Ver2.06 1974 2024 1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 Linux 0.01 リリース UNIXが商業化‧断⽚化していく中、 Linuxはオープンソースの⼒で 統⼀的な開発基盤となり、 世界中の技術⾰新を⽀えた (1991/9/17) CVS 誕⽣ (1990) Subversionリリース (2000) (2005) GitHub リリース (2008) Bugzilla リリース (2000) Jira リリース (2002) AWS サービス開始 (2006) Jenkins 誕⽣ (2011) GitHub Actions (2018) ChatGPT ⼀般公開 (2022/11/30) GitHub Copilot (2021/6/29) Java v1.0 正式リリース Javaはオブジェクト指向と 仮想マシン技術を普及させ、 後の⾔語設計にも影響を与えた (1996) 1980年代後半〜1990年代前半:" UNIX戦争 1970〜1980年代:"多くの企業や政府機関が「ウォーターフォールモデル」を公式な開発プロセスとして採⽤。 同時に、Royceの思惑と違う、誤解された「ウォーターフォール」が広まる Azure サービス開始 (2010) 1990〜2000:" 第⼀次ブラウザ戦争。Internet Explorerの躍進、 Netscape Navigatorの消滅 2009〜2020:" 第⼆次ブラウザ戦争 Google Chromeの躍進、 Internet Explorerの衰退 (2018) (2004) Google Cloud サービス開始 (2008) 欧州の⾃動⾞メーカ が中⼼となって公開(2005) (2011) 1985〜1990:#国家プロジェクト 「Σ計画」が頓挫 (2006) (2004) 1975 1999 2018/11/22 2004/11/16 2006/10/19 1977 1986 2002 1995 2010〜 2017/6/22 1994/10/31 1989 2024/7/11 1987 1970 1989/02/01 1982 1979 2019/9/17 1992/3/13 1996/4/1 2010/10/12 2011/7/16 2022/12/17 2011/10/18 2021/3/15 2001/5/18 1996/8 1979 2004/7/16 2013/8/1 2014/4/22 2019/9/30 2021/12/10 1978 2024/9/13 1972 2026 1997〜2010年代:!⽶国防総省(DoD)が CMMレベル3以上を防衛関連のソフトウェア調達条 件として要求し始める。 2000年代〜:!⽶国を中⼼にでアジャイル⼿法が急速に広まり、ウォーターフォールは特にWeb系‧スタートアップ企業ではほぼ使われなくなる。 1990年代:!ウォーターフォールのリスクを軽減する開発⼿法が次々 と誕⽣(インクリメンタル、スパイラル、RUP など) 1980年後半〜1990年前半:!⽶国防総省(DoD)の発注したソフトウェアに問題が多 発。⽶会計局でも多くの遅延∕途中での挫折が発⽣‵ 主 な 出 来 事 ソ フ ト ウ ェ ア 関 連 の 論 ⽂ ‧ ⽂ 献 2010年〜:!⽶国議会は2010会計年度国防権限法(NDAA 2010)において「迅速なITシステム獲得のための新たな取得プロセス の実施」(第804条)をDoDに命じ、事実上アジャイル型開発の原則を法制化 * 1980年〜:!⽶国防総省(DoD) がウォーターフォールを採⽤ 初代iPhone発表 (2007/1/9) PC/AT互換機が誕⽣(1981〜) ワークステーションの時代:Sun SPARCstation (1989〜1994) Windows95 リリース コンシューマ向けOSに TCP/IPが標準搭載され ワークステーション並みに (1995) 初代iMac (1998〜) Apple Macintosh (1984〜) DynaBook (1994〜) 家庭向けADSL‧FTTHの普及、 ブロードバンド時代に突⼊ (2001〜) ICT の 進 化 メインフレーム時代: IBM System 360とVT100(1970〜1980) MacBook Pro M4 Max (2024) 2018/3/27 2000/12/1 2010/7/27 2016/10/6 2005/10/7 1990/10/10 1978/5/1 1988/3/1 1984 2021/8/1 1995/10/1 2003/9/1 1976 S O F T W A R E REQUIREMENTS: ARE THEY REALLY A PROBLEM? T. E. Bell and T. A. Thayer T R W Defense and Space Systems Group Redondo Beach, California ,Keywords and Phrases Ballistic Missile Defense Requirements Requirements Problems Software Engineering Software Requirements Software Requirements Engineering Software Requirements Problems S R E M SREP Abstract Do requirements arise naturally from an obvious need, or do they come about only through diligent effort -- and even then contain problems? Data on two very different types of software requirements were analyzed to determine what kinds of problems occur and whether these problems are important. The results are dramatic: software requirements are important, and their problems are surprisingly similar across pro- jects. New software engineering techniques are clearly needed to improve both the development and statement of requirements. I. Introduction Identifying the cause of a problem in a software system is often very easy -- if the cause is a problem in code. Typically, identified coding problems result in clearly incorrect answers or in abnormal termina- tions of the software. Similarly, problems in a soft- ware system caused by deficiencies in design are often easy to identify from unexpected software operation or from extreme difficulty in maintaining and modifying the system. Problems in the system caused by defi- ciencies in software requirements, on the other hand, are often not identified at all, or are thought to be caused by bad design or limitations of computing tech- nology. If there are problems in developing require- ments, however, the software system meeting those requirements will clearly not be effective in solving the basic need, even if the causes of the problems are incorrectly identified. The Ballistic Missile Defense Advanced Technology Center (BMDATC) is sponsoring an integrated software development research program Ill to improve the tech- niques for developing correct, reliable B M D software. Reflecting the critical importance of requirements in the development process; the Software Requirements Engineering Program (SREP) has been undertaken as a part of this integrated program by T R W Defense and Space Systems Group* to examine and improve the quality of requirements. One of the first efforts in SREP has been to characterize the problems with requirements so that techniques can be developed to improve the situation. Instead of pursuing philosophical discussions about what the problems might be, we have undertaken empiri- cal studies to determine what the problems actually are. A limitation on the number of Ballistic Missile Defense (BMD) systems currently being developed (there is only one) has led us to examine both B M D and more common data processing systems to ensure that our results are characteristic of software requirements in general, rather than just one particular project. This paper reports on initial results that have set much of the direction pursued in the Software Requirements Engineering Methodology [2], the Require- ments Statement Language [3], and the Requirements Engineering and Validation System [4]. The initial efforts were oriented to determine the magnitude and characteristics of the problems, and to indicate what types of techniques could correct the problems. The empirical study of software problems is continuing in parallel with technology development so that the technology can be refined and tested for effectiveness in solving the identified problems. II, What are Software Requirements? One school of thought maintains that software requirements arise naturally, and that they are correct by definition. If these requirements merely state a basic need (e.g., "do payroll"),then that's all that is needed. On the other hand, if the requirements state each subroutine's detailed characteristics, then those are the required characteristics, and the implementer should not question them. Adherents to this school of thought have grown fewer and fewer as the software industry has gathered experience with this approach to developing software. When every requirement ranging in detail from needs statements to subroutine specifications is considered in the same way, the resulting systems tend to be seriously deficient. If coding personnel are assigned the task of implementing a system with only a needs statement, the critical phase of software design will likely be skipped -- with disasterous results. On the other end of the scale, if detailed subroutine speci- fications are accepted without ever having been *Under Contract DASG60-75-C-O022 61 リリース (2004/2) !Point: ⽶国防総省(DoD)が与えた影響 1981 2021/12/1 2025/1/3:!Agile AllianceがPMBOK などを策定するPMIに加盟 Claude 1 (2023/3/14) Team+ (2021/10) Gemini 1 (2023/12/6) Devin (2024/3/12) Cline (2024/7) 2021〜:" AI(GenAI)が前提の時代へ 2000年代〜:#⽇本は⼤企業を中⼼に、ウォータフォールモデルを採⽤し続ける。 2018/4/1 数字送信の開始による ポケベルブーム(⽇本) (1992〜1996) F501i HYPER iモード開始 (1999/2/22) テレホーダイ(1995〜2023) PC-9800シリーズ(1982〜2003) 初代iPad発表 (2010/4/3) Samsung Galaxy S II (2011/5/2) 2020/3〜2023/5: " COVID-19 ARMアーキテクチャのSoC Apple M1 ⽣産(2020) 1970年代後半〜1980年代末:#⽇本⾞と家電がアメリカ市場を席巻。これが、徐々に⽇⽶貿易摩擦の⽕種に…… "ウォークマン” 1号機 TPS-L2 (1979) 世界初のポータブル CDプレーヤー D-50(1984) Toyota Corolla Liftback SR5 001 (1980〜) “トリニトロン” ⽇本製品が欧⽶で⼈気 1979〜:!⽇本の製造業の⾼品質、ものづくりの強さを研究。 2024/12/25 2013/1/10 2014/8/18 2023/11/21 2000/3〜:!ITバブル崩壊 パソコン通信 携帯電話・PHSの普及、インターネット黎明期 携帯電話の多機能化、ブロードバンド時代 スマートフォン普及時代(2010年、モバイル端末利⽤率がパソコン利⽤率を超える) 1974年:!「TCP/IP」の最初の仕様がRFC 675として公開 1982年〜:!⽶国防総省(DoD)は全ての軍⽤コンピュータ網のためにTCP/IP標準を作成。その後、コンピューター産業に開放され、4.2 BSD UNIXを⽪切りにほとんどの商⽤OSにTCP/IPが実装された。 Netflixが⽇本に上陸(2015/9/2) ※!では2007/1にサービスイン 2017/10/14 2003/9/1 2002/11/8 2009:!Flickrのエンジニアである John AllspawとPaul Hammondが初めてDevOpsに繋がる伝説的な講演を⾏う 2000年代後半〜:" クラウドファースト‧クラウドネイティブ時代に突⼊ 2008/9〜:!リーマンショック 2010年以降〜:#⽇本のスタートアップはクラウドファーストで事業を⽴ち上げ、初期からアジャイル⼿法を採⽤ ★ ピ ア ソ ン シ ョ ッ ク 2017/7/31 2009/11/27 2008/12/30 2023/11/28