タグ

ソフトウェア工学に関するatsushifxのブックマーク (26)

  • 実践要件定義入門以前 - 勘と経験と読経

    最近ネットを見ていると要件定義入門的な記事が目についたので思ったことを書いてみる記事。ITシステム開発における要件定義に関するあれこれ。 【2023/10/10追記】続編の記事を書きました。実践要件定義入門 - 勘と経験と読経 目次 要件定義に関するおすすめ書籍 その要件定義は必要か 要件は決められるのか 要件定義をすることがルールで定められているから要件定義をする必要がある 要件は定義できるのか 現行の業務マニュアルをベースに要件定義をするつもりのあなたへ 現行システムをベースに要件定義をするつもりのあなたへ 外部業者を呼ぶ前に考えるべき事 どこから外注するかを考える 要件定義の作業期間を見積もる 要件定義に関するおすすめ書籍 この後に何度も引用することになると思うので、最初に要件定義のおすすめ書籍を紹介しておく。と言っても紹介するのは1つだけだ。 ユーザのための要件定義ガイド第2版 作

    実践要件定義入門以前 - 勘と経験と読経
  • 最近のソフトウェア工学に思うこと - bonotakeの日記

    なんかこのブログに記事書くの、ほんと久々だなと思うんですが。 最近ずっと思ってたことがあったので、つい勢いで書きなぐってしまいました。若干炎上商法かもしれませんが、まぁたまには?いいや。 長文ですがお付き合いください。特に、ソフトウェア工学の研究している皆さん。 昨日、とあるソフトウェア工学のシンポジウムにて、機械学習モデルをWebサービスにデプロイするためのハンズオン、という企画がありました。 僕が運営委員やってるMLSEとの共同企画で、僕は発案者の1人ですが、当日は1人の参加者として中に混じっていました。 4人グループに分かれての作業だったんですけども、僕以外の3人は、いずれもソフトウェア工学の研究をしている修士の学生さんでした。 で、ハンズオンも後半になって「Dockerの使い方」の演習になったのですが、その3人ともDockerに触ったことがなさそうな雰囲気でした。いちいち確認したわ

    最近のソフトウェア工学に思うこと - bonotakeの日記
    atsushifx
    atsushifx 2018/09/06
    英語での論文を検索してみたら、http://paper.ijcsns.org/07_book/201703/20170327.pdf を見つけた。Blogだけど、 https://japan.zdnet.com/article/35123912/ というのもある。
  • プログラミング的思考とは何か?もっともシンプルな答え - 探究型プログラミング学習(探プロ)

    一昨日あたりに、やたらとFacebookでシェアされていたこの記事を読んで以来、ずっとモヤモヤしていたので書いてみます。 シェアしている人たちの中には、なるほど!とか、やっとわかった! みたいな感想が多かったのですが、残念ながら私にはよく分かりませんでした… 正確に言うと、内容は理解できるのだけれど こんなに難しく書かなければならない理由がよく分かりませんでした。 この記事の作者も、読者も、私よりよっぽど知性も高く経験も豊富なのだと思っているので 単に私の理解力、想像力の足りなさが原因なのだろうと気で捉えていますし だからこそ、この投稿をすることに迷いもあってモヤモヤしていたのですが… 解消されないまま週末を迎えるのも身体に悪そうだったのでやっぱり書くことにしました(笑) というわけで、探プロ的理解として 最近話題のプログラミング的思考とはなにか? に答えてみたいと思います。 私が普段の

    プログラミング的思考とは何か?もっともシンプルな答え - 探究型プログラミング学習(探プロ)
    atsushifx
    atsushifx 2016/07/11
    間違い。ここで教えているのはコーディングで、プログラミングとはコンピュータに問題の解き方を教えること。それを考えるのは人間で、だからこそコンピュータに解かせる問題はなにかとい問題発見能力が必要になる
  • (解説) はてなブックマークにおけるアクセス制御 - 半環構造に基づくモデル化 - Hatena Developer Blog

    こんにちは、シニアアプリケーションエンジニアのid:taraoです。この記事ははてなデベロッパーアドベントカレンダー2015の10日目です。昨日はid:tapir320によるはてなの組織開発についてでした。 先月開催されたWebDB Forum 2015で、「はてなブックマークにおけるアクセス制御: 半環構造に基づくモデル化」というタイトルの発表をしました。 はてなブックマークにおけるアクセス制御 - 半環構造に基づくモデル化 from Lintaro Ina 発表資料には多くの方に興味をもっていただけたようですが、わかりにくい点も多かったのではないでしょうか。スポンサー企業としての技術報告セッションとはいえ学術会議での発表なので理論面と独自の工夫点にフォーカスした内容であったり、口頭での発表のしかたに大きく依存したスライドの遷移方法になっているので、この資料だけで細かいところまで理解しよ

    atsushifx
    atsushifx 2015/12/11
    技術リーダーである以上、サービス、技術の理論的背景を抑えておくべきということ。ソフトウェア工学を大学以上の高等教育でならえば計算量や譲歩理論は基礎教養だし。あとはCoqやAlloyを知っておけってくらい?
  • Togetter - 国内最大級のTwitterまとめメディア

    いま話題のツイートまとめが読めるTwitterまとめに特化したまとめサイト。人気のツイートやTwitterトレンド、写真やマンガといった話題の画像から、さまざまなニュースの反応まで、みんなであつめる国内最大級のメディアプラットフォームです。

    Togetter - 国内最大級のTwitterまとめメディア
    atsushifx
    atsushifx 2015/05/12
    正論。折角の専門課程にいるのなら、アルゴリズム、情報理論、計算量理論などのプログラミングの基礎教養を身につけないともったいない。そのうえでプログラミングコンテストをやって実力を身につけろってこと
  • Googleで1400万円以上稼ぐエンジニアになるためにマスターすべき11のスキル

    By Robert Scoble フリーフードや24時間使用可能なジム、無料ランドリーなどさまざまな福利厚生がそろった夢の企業「Google」は、求人サイトGlassdoorにより作成された「給与&福利厚生が優れた企業トップ25」でも堂々のトップレートをたたき出しています。Googleではエンジニアの意見が尊重され、平均年収は約12万ドル(約1450万円)にもなるといわれていますが、そんなGoogleエンジニアになるために必要なスキル11個をBusiness Insider Indiaがまとめています。 11 skills you need to master to land a $100,000 engineering job at Google | Business Insider India http://www.businessinsider.in/11-skills-you-n

    Googleで1400万円以上稼ぐエンジニアになるためにマスターすべき11のスキル
    atsushifx
    atsushifx 2015/03/10
    マスターのレベルによるけど、11のスキルってソフトウェア工学ですべてやる分野じゃないか? 自分の時代には人口知能や機械学習はなかったけど、その代わりDateのデータベース論をやらされたから時代によるけど
  • 音楽分析とプログラムと教育

    kazutomi @kazutomi @sinx_music あ、プログラムの分析を教えないってことないですよ。OSのコードを読んだりする授業は多分一般的です。教え方が体系的かというとそうではないかも知れませんが。 2009-12-16 23:03:30 ⛸Akihiko Matsumoto/松昭彦🛼 @akihiko_japan 例えば音楽だと様々な分析法が確立していて、効率的に音楽の意味を理解できるのですが、プログラムには分析理論やメソッドなんかはあるのでしょうか。RT @kazutomi: OSのコードを読んだりする授業は多分一般的です。教え方が体系的かというとそうではないかも知れませんが。 2009-12-16 23:10:17

    音楽分析とプログラムと教育
    atsushifx
    atsushifx 2014/12/20
    ソフトウェア工学は音楽理論ほど成熟していないでFAだけど、試みはある。クヌース御大の文芸的プログラミングとか。ただCode Readinだけでなく数理論理学やアーキテクチャについての基礎がないとコード解析は難しい
  • pixiv のタグ情報を用いた「ラブライブ! School idol project」のカップリングネットワークの構築 - (iwi) 備忘録

    はじめに ネットワーク解析やグラフアルゴリズムの研究者がアルゴリズムを実装した際,動作確認のために最初に実行する toy example をどうするかというのは意外と悩ましい.パスグラフやグリッドグラフのような高い対称性を持つグラフや小さすぎるグラフではいまいち動作に確証が持てない.一方,公開されている実データは最も小規模な Karate Club や Dolphin Social Network 等でも目視には大きすぎる.調度良いサイズの,ある程度非自明な形をしており,アルゴリズムによる出力の意味の解釈がある程度可能であり,できれば愛着が持てるグラフデータが必要とされている. そこで,研究ではそのような用途に適切なグラフデータとして,「ラブライブ! School idol project」のキャラクター間のグラフを構築する.データの構築には,pixiv に投稿されている二次創作作品のタ

    pixiv のタグ情報を用いた「ラブライブ! School idol project」のカップリングネットワークの構築 - (iwi) 備忘録
    atsushifx
    atsushifx 2014/07/02
    グラフアルゴリズムをテストするためにはちょうどよいサンプルデータが必要。というわけでpixivのラブライブ関連のタグを利用したと。pixivやニコニコがOpenDataとして提供してほしい
  • 初心者に理解あるふりしたモヒカンの自己満足に付き合うのはうんざり - mizchi's blog

    インターネットのほとんどの初心者向けに書かれたと宣言されたコンテンツは、想定すべき初心者のペルソナを失っている。初心者向けの記事は、「これは(俺が想定する都合のいい初心者には)わかりやすい」であり、「実在する初心者」の方を向いていない。習熟すると初心者の気持ちがわからなくなるから、構造的な問題もあるんだけど、それにしても、と思うケースが技術者界隈には当に多い。 初心者向けと銘打った発表をして、似たようなコミュニティから「わかるわかる、そう説明するよね」的な同意を得られることに満足して終わっているだけで、実際には誰も救っていないの、当に滑稽だと思う。当人の自己満足と、コミュニティから賞賛を得る以上の価値がない。ネタでやってるケースだけでなく、気で初心者のつまづきに理解があるよ的な前振りから、突然理解に困る技術的な飛躍が行われるの、やられる方はかなり迷惑で、しかし自分の頭が悪いのを認めた

    初心者に理解あるふりしたモヒカンの自己満足に付き合うのはうんざり - mizchi's blog
    atsushifx
    atsushifx 2014/04/10
    FizzBuzzのように向き不向きがあるというのもあるし。一度わかるとどこが分からなかったを知るのが難しいというのもある。Try&Errorと気づきをうながす教育が必要なんだけど難しい
  • ちきりん氏のお粗末な科学教育論 続その1 華麗なる自爆 - バッタもん日記

    1.はじめに 先日のちきりん氏に対する批判記事は大きな反響を得ました。嬉しい限りです。 同氏がまた何やらブログで珍妙なことを書いていたようなので、再度批判したいと思います。前回全く興味がないと書いておきながら、批判を続ける私はツンデレなのでしょうか。「か、勘違いしないでよね! 科学を愛する者として科学を冒涜する者を許せないだけなんだからね!」 2.気付いていないだけ 日(3/2)にちきりん氏が更新したブログの内容は以下に抜粋する通りです。 客がスーパーのレジに求めるもの Chikirinの日記 スーパーのレジに並ぶ時、列の長さで判断すると失敗する。大事なのは、レジ打ちスタッフのスキル(素早さ)なので、そっちから判断するのが良。特に、新人+コーチ役の2名でやってる列は相当に早い。 客側の要素としてはこれが、列の進み具合に影響を与える二大要素なわけです レジ待ち時間に影響を与える要素は下記の

    ちきりん氏のお粗末な科学教育論 続その1 華麗なる自爆 - バッタもん日記
  • 技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog

    元糞コードマイスターとしては、生産性については思うところある。 技術的到達深度が深い人じゃないとそもそもかけないコードってのももちろん存在して、その前提で10倍とか100倍になりうる話をする。 そもそもマイナスになる人がいるって話。 隠しパラメータをモデル化 エンジニアA:「週に10の成果を出して3の負債を生む人」を考える。この人は開発を止めてリファクタリングをすれば10-3 = 7の技術的負債を返却できるとする。 ここで正確には成果10には* aの係数が掛かっている。これはプロジェクト開始時1.0で、技術的負債が貯まるほど0に近づいて行く 次に、エンジニアB:「週に15の成果を出して10の負債を生む人」を考える(これにも係数aがかかる)。この人は見た目上は上の人の1.5倍速く成果を出しているように観測できるが、負債もたまりやすい。リファクタしても綺麗になりにくい。 これは割とエンジニア

    技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog
    atsushifx
    atsushifx 2014/02/19
    情報系の大学生ならモジュールの疎結合やテスタビリティとかについて習っているはずなんだが、そういう知見が日本のソフト開発会社にはほとんど見られないのがね。一時請負のPMとかもそうなので泣ける
  • 遅延評価勉強法だと得られなかったもの - As a Futurist...

    ハッカーは遅延評価勉強法をするものだそうです。確かに僕の知ってるすごい人達は、皆必要になった時の吸収力が半端無くて、それを紹介した時には自分の方が詳しかったはずなのに、あっという間に追い抜かれてしまいます。 僕はハッカーになりたいけどハッカーじゃない人間ですが、やはり大上段から入って時間をかけて勉強していくのは嫌いなので、基的には遅延評価勉強法をしてきました。でも言葉どおりに「必要になるまで」勉強しなかったら、得られないものが多すぎるなと最近感じてます。それは「普遍的な知識」です。 自分の仕事や興味だけに従っていると、訪れる機会は必然的に偏ります。たとえば web アプリの開発ばかりやっていれば、LL や HTTP や通信の知識は幅広く身につくかもしれませんが、スマホ開発や仮想環境やハードウェアなどはなかなか身につきません。必要にならないんだから勉強しなくていいんじゃない?というのはもち

    遅延評価勉強法だと得られなかったもの - As a Futurist...
    atsushifx
    atsushifx 2014/01/26
    Hackerがすごいのはコンピュータサイエンスやソフトウェア工学を身に着けているからじゃないのか。オブジェクト指向やデザインパターンは基礎教養だろうし
  • 言語設計と文字列API

    リンク t.co プログラミング言語内の正規表現リテラルについて — KaoriYa プログラミング言語内の正規表現リテラルが是か非か、 そんな議論にいまさらながら参加してます。 ただしどちらかの立場に立って擁護したいというわけではなく、 話を抽象化というか一般化して問題の質にせまります。 Kazuho Oku @kazuho 言語設計論では、基「書くコスト」と「保守(読む)コスト」の2種類にわけて考えればいいと思ってる / 言語のAPI仕様を最小にするのには正規表現リテラルの導入が有効というのが僕の論 / “プログラミング言語内の正規表現リテラルにつ…” http://t.co/whvioxMAII 2013-12-20 14:14:16

    言語設計と文字列API
    atsushifx
    atsushifx 2013/12/20
    つまりはプログラミング言語の言語構造にDSLを組み込むか否か、APIをどうするかの問題。DSLのひとつであるSQLにActiveRecordやLINQが出たきたことを考えると正規表現にマクロと変数がつくといろいろと進化しそう
  • IT系の知識って多岐に渡るくせに、初めの一歩のために浅く広くで体系立てられた情報源が無いんだよね。DBならOracle、PostgreSQL…、言語ならC、Java…みたいな感じで各技術分野の中の特定の

    IT系の知識って多岐に渡るくせに、初めの一歩のために浅く広くで体系立てられた情報源が無いんだよね。 DBならOracle、PostgreSQL…、言語ならC、Java…みたいな感じで各技術分野の中の特定の技術ってのを学ぶ手段は山ほどあるんだけど、その技術分野同士の相関関係や各技術の違いなどのメタ情報が個人ブログとかで部分的に表現されてるだけで、体系立てられてないから、とにかく実務で身に付ける、アンテナ張って色んな技術情報を身に付けていく内に段々分かってくるってモノになってる気がするんだよな。ググって調べても説明文にまた分からない言葉や腑に落ちない部分があるからまたその言葉をググってみたいな事を繰り返してようやく何となく分かったみたいな経験がこの仕事をしてる人は誰にでもあると思う。 だから、用意されたインフラ上で実装するって現場ばっかり回されるような人は知らなくても不思議ではないと思う(若干

    IT系の知識って多岐に渡るくせに、初めの一歩のために浅く広くで体系立てられた情報源が無いんだよね。DBならOracle、PostgreSQL…、言語ならC、Java…みたいな感じで各技術分野の中の特定の
    atsushifx
    atsushifx 2013/11/09
    体系というのは教科書を読むものだろう。情報源がないというのは見つけられないか、その気がないだけ。少なくともきちんとした技術書を読んではいない
  • このシステム、どんだけ待たせるんだよ!~そんな時の待ち行列

    弊社サービスのShanonMarketingPlatformは、レスポンスタイム向上のために、リクエスト時に行っていた処理の一部を、リクエストとは切り離して非同期で実行するようにしています。

    このシステム、どんだけ待たせるんだよ!~そんな時の待ち行列
    atsushifx
    atsushifx 2013/09/25
    待ち行列はそれだけで一分野になる理論なので大事。シミュレーションの基本だし、知っておいて損はない
  • RDBMSでコネクションプールが必要な理由、わからない。

    Takayuki Shimizukawa @shimizukawa @masa_edw コネクションプールが無い場合、使い終わったコネクションが即解放されない(解放まで多少遅延する)ので実際に使っているコネクションの数より多く存在する。その分メモリを圧迫して効率が悪い。っていう話は聞いたことがあるよ(要出典 2013-09-04 09:27:28 ハイパーむとう @masa_edw @voluntas 現状で必要な状況は理解していますが、なぜそうなるのか理解していないということです。他にもたとえば、bitlyの呼び出しはコネクションプールを使うべきか?なぜ(べき、べきでない)のか?どういう要請でそうなのか?と言う問いに僕は答えられません。 2013-09-04 09:31:22

    RDBMSでコネクションプールが必要な理由、わからない。
    atsushifx
    atsushifx 2013/09/04
    こういう視点は大事。同じことはmallocとGC、ディスクキャッシュ(特に遅延書き込み)、HTTPとSPDYにもいえる。シンプルと性能のどちらを取るかの違い
  • 高専のカリキュラム! 情報工学を体系的に学ぶために高専のカリキュラムをまとめる。 - nigoblog

    今回は「情報工学を体系的にやりてぇな...」という方のために 情報工学を体系的に学べるような記事を書きます。 内容は高専のカリキュラムを時系列にまとめ、参考になった教科書などを! というわけで1年目から書いていきます~ もちろん思い出しながらなのでヌケモレが有りそうですが… 1年目 ここではぶっちゃけ専門はほとんどありませんでした。 やったことは コンピュータ・リテラシー 情報数学 コンピュータ・リテラシー 色々Linuxに触れてみよう的な感じの授業。 最初にセットアップして、Emacsとかコマンドラインとか徹底的にやりました。 バッファの概念とか当時はさっぱりだった気が。 とにかくコマンドラインを使いまくったのでその時やっといて当に良かったなと。 情報数学 何が情報数学なのだかようわからなかったけど、 数列 証明 2進数 不等式 集合論 なんかをやりました。他にも合った気がするけど。

    高専のカリキュラム! 情報工学を体系的に学ぶために高専のカリキュラムをまとめる。 - nigoblog
    atsushifx
    atsushifx 2013/08/06
    id:JavaBlackから飛んできたが全体的に浅い気がする。きちんとしたプログラマーを目指すなら専門の大学のほうがいい。論理数学や組み合わせ理論、計算量理論などは必須の教養でしょ。
  • プログラミングの設計など一連のツイートまとめ(仮)

    望月獅子 @_MoonBright 決められたことやってないって思う時点でおかしいね・・・。透視能力でも持ってるのかね?仕様書通りに作ること、品質、生産性を考えてるのが自分だけだとでも。それこそ誰だって考えてる。そんな前提事項をどや顔で語られてもドン引きでしょ・・・。 2013-06-30 10:04:39

    プログラミングの設計など一連のツイートまとめ(仮)
    atsushifx
    atsushifx 2013/07/01
    バカの壁というcoding divideというか、見事に話がかみあっていない。設計が悪いことの典型例はみずほ銀行が二度とまったことで十分だとは思う。
  • (いわゆる)標準化をしてはいけない - arclamp

    技術の標準化は品質と見積り精度に寄与する 「企業において技術を(いわゆる)標準化する」というのは技術を固定化することであり、その固定化を受け入れることで効率化が実現されます。 品質向上の典型的手法は同じ方法を繰り返し実践する中で無駄を排除し、漸進的に方法を洗練させていくことです。また、これによってマネジメントで重要な見積り精度も向上させることが可能になります。 なお、見積りが重要なのはウォーターフォールでもアジャイルでも同じです。どんなマネージャーであれ技術を安定化させることは望むべきです。当然の判断でしょう。 このように技術の標準化は品質と見積り精度を向上させるため非常に有効だと思われてきました。 技術の進歩による効率化の方が優れている場合もある ですが「技術の進歩による効率化の方が優れている」場合もあります。というか、現状ではこちらの方が重要であると言って良いでしょう。つまり、技術を固

    (いわゆる)標準化をしてはいけない - arclamp
    atsushifx
    atsushifx 2013/04/12
    標準化は現在の技術や社会を基準にするからどうしても時代遅れになる。その意味では開発プロセスも一種の標準化なので時代に合わせて変わっていく必要がある。XPのときはGitもJenkinsもなかったわけだし
  • プログラミングの初級になるためにの目次

    http://anond.hatelabo.jp/20130325172822 の続き 言語はJava7を想定。(Java8が迫っていますが、Lambdaなど関数型は、まだ早いと言うことで) 選定理由は、C++と比較して学べるところが大きく、安全でシンプルな言語だから。 ※いきなりJavascriptはやめとけ、PHPは論外。 RubyScalaでないのは、筆者が初心者には適切には教えられないから。 おもちゃ・ToyとしてjQueryで遊ぶのは、悪くは無いと思う。 0.はじめにこれ以降は名著の紹介や学習方法の紹介が主体となります。名著のコンポジションという形が時間的限界ですね。 量については「初級になるなら、専門書を計3,000ページは修得することは覚悟してね」なんて言ったりしています。 Javaで初級のわかりやすい指標ですと、[amazon:Effective Java]とGoFまでの

    プログラミングの初級になるためにの目次
    atsushifx
    atsushifx 2013/03/27
    炎上耐性なさすぎて逆ギレしてる。こういうこと書くと抽象データ型の説明とかDbCがなぜ必要かとかを聞きたくなるし、カウンタブル、不完全性定理、O(n)くらいは説明してほしくなる