From b2d80610db6beda38573890ed169815e495bc663 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 24 May 2020 16:34:31 +0700 Subject: [usth/ICT2.7] Engineer software --- .../1 - Gathering Requirements - lang_en_vs3.srt | 63 ++++ .../2 - Choosing Good Questions - lang_en_vs3.srt | 15 + ...osing Good Questions Solution - lang_en_vs3.srt | 55 ++++ .../4 - Requirements Interview - lang_en_vs3.srt | 323 +++++++++++++++++++++ ... Sentence Length Requirements - lang_en_vs3.srt | 83 ++++++ 5 files changed, 539 insertions(+) create mode 100644 usth/ICT2.7/P1L5 Requirements Gathering Subtitles/1 - Gathering Requirements - lang_en_vs3.srt create mode 100644 usth/ICT2.7/P1L5 Requirements Gathering Subtitles/2 - Choosing Good Questions - lang_en_vs3.srt create mode 100644 usth/ICT2.7/P1L5 Requirements Gathering Subtitles/3 - Choosing Good Questions Solution - lang_en_vs3.srt create mode 100644 usth/ICT2.7/P1L5 Requirements Gathering Subtitles/4 - Requirements Interview - lang_en_vs3.srt create mode 100644 usth/ICT2.7/P1L5 Requirements Gathering Subtitles/5 - Average Sentence Length Requirements - lang_en_vs3.srt (limited to 'usth/ICT2.7/P1L5 Requirements Gathering Subtitles') diff --git a/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/1 - Gathering Requirements - lang_en_vs3.srt b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/1 - Gathering Requirements - lang_en_vs3.srt new file mode 100644 index 0000000..c01c859 --- /dev/null +++ b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/1 - Gathering Requirements - lang_en_vs3.srt @@ -0,0 +1,63 @@ +1 +00:00:00,270 --> 00:00:02,969 +Gathering requirements is one of the most difficult tasks a software + +2 +00:00:02,969 --> 00:00:07,010 +engineer faces. In industry, you may gather requirements from end users, + +3 +00:00:07,010 --> 00:00:09,580 +external clients, or from co-workers in other areas of your own + +4 +00:00:09,580 --> 00:00:14,320 +company. Occasionally, you may receive a well documented set of requirements. + +5 +00:00:14,320 --> 00:00:16,970 +However, in most cases, you will need to glean the requirements + +6 +00:00:16,970 --> 00:00:20,230 +from conversations with the prospective clients, and distill them down into + +7 +00:00:20,230 --> 00:00:23,150 +something actionable on your own. Suppose a teacher came to you + +8 +00:00:23,150 --> 00:00:25,310 +with a request for a piece of software their students could + +9 +00:00:25,310 --> 00:00:28,500 +use to find out the average length of the sentences in + +10 +00:00:28,500 --> 00:00:31,390 +their essays. What questions come into mind to help you figure + +11 +00:00:31,390 --> 00:00:34,620 +out the full requirements for this project. Write down a list + +12 +00:00:34,620 --> 00:00:37,630 +of at least ten questions that might help you determine them. + +13 +00:00:37,630 --> 00:00:40,240 +Please take the time to do this before moving on. There's + +14 +00:00:40,240 --> 00:00:42,670 +no penalty for looking ahead, but if you skip this exercise + +15 +00:00:42,670 --> 00:00:44,920 +you'll cheat yourself out of the benefits of brainstorming and getting + +16 +00:00:44,920 --> 00:00:48,190 +your mind around the project before being bombarded by more information. diff --git a/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/2 - Choosing Good Questions - lang_en_vs3.srt b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/2 - Choosing Good Questions - lang_en_vs3.srt new file mode 100644 index 0000000..a834b21 --- /dev/null +++ b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/2 - Choosing Good Questions - lang_en_vs3.srt @@ -0,0 +1,15 @@ +1 +00:00:00,150 --> 00:00:03,400 +Now that you've written some of your own questions, consider the following + +2 +00:00:03,400 --> 00:00:07,120 +three. Which is the most likely to be useful for determining the detailed + +3 +00:00:07,120 --> 00:00:11,730 +requirements? Maybe, what OSes should it run on? Or maybe, how will the + +4 +00:00:11,730 --> 00:00:16,210 +user specify input? Or finally, how many lines of code should it take? diff --git a/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/3 - Choosing Good Questions Solution - lang_en_vs3.srt b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/3 - Choosing Good Questions Solution - lang_en_vs3.srt new file mode 100644 index 0000000..3c29d6b --- /dev/null +++ b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/3 - Choosing Good Questions Solution - lang_en_vs3.srt @@ -0,0 +1,55 @@ +1 +00:00:00,450 --> 00:00:03,260 +The last question is almost never a reasonable one. For one + +2 +00:00:03,260 --> 00:00:05,660 +thing, the client should not need to know or care about + +3 +00:00:05,660 --> 00:00:08,412 +how many lines of code make up the program's source code. + +4 +00:00:08,412 --> 00:00:09,910 +In forming requirements, you should avoid + +5 +00:00:09,910 --> 00:00:11,940 +implementation specific questions that do not + +6 +00:00:11,940 --> 00:00:15,290 +directly interface with the user. The first question is very relevant + +7 +00:00:15,290 --> 00:00:18,830 +in some situations. For example, a graphic sentence with video game or + +8 +00:00:18,830 --> 00:00:21,630 +performance is key. However, you should not write any operating system + +9 +00:00:21,630 --> 00:00:25,620 +specific code unless absolutely needed, and should strive to make your code + +10 +00:00:25,620 --> 00:00:28,070 +platform independent whenever possible. The + +11 +00:00:28,070 --> 00:00:30,990 +second question, however, is very relevant. + +12 +00:00:30,990 --> 00:00:32,870 +Now that you've thought a bit about what you might ask of + +13 +00:00:32,870 --> 00:00:35,810 +the client requesting this program, let's watch Alvin, one of Udasea's + +14 +00:00:35,810 --> 00:00:39,850 +engineers, asking his own questions. He'll be speaking with Lauren, the client. diff --git a/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/4 - Requirements Interview - lang_en_vs3.srt b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/4 - Requirements Interview - lang_en_vs3.srt new file mode 100644 index 0000000..74a0b79 --- /dev/null +++ b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/4 - Requirements Interview - lang_en_vs3.srt @@ -0,0 +1,323 @@ +1 +00:00:00,430 --> 00:00:01,050 +Hi, I'm Lauren. + +2 +00:00:01,050 --> 00:00:01,990 +>> Hi, I'm Alvin. + +3 +00:00:01,990 --> 00:00:06,470 +>> I'm an instructor at a university nearby and I've been noticing that when + +4 +00:00:06,470 --> 00:00:09,700 +my students write their essays, they have + +5 +00:00:09,700 --> 00:00:13,100 +very long, very wordy sentences and I would + +6 +00:00:13,100 --> 00:00:17,600 +like to develop some kind of tool that they can use to keep track of + +7 +00:00:17,600 --> 00:00:20,440 +this and maybe perfect their writing style. + +8 +00:00:20,440 --> 00:00:21,410 +Do you think that's something you could do? + +9 +00:00:21,410 --> 00:00:25,850 +>> I think so. Let's start by helping me get acquainted with the students + +10 +00:00:25,850 --> 00:00:29,620 +in the class. So how many students do we have in this class typically? + +11 +00:00:29,620 --> 00:00:34,000 +>> Usually about 45 per unit, but I can have up to six units a semester. + +12 +00:00:34,000 --> 00:00:36,420 +>> 45 students, and six sections per + +13 +00:00:36,420 --> 00:00:39,220 +semester. That's a farily reasonable size. So, + +14 +00:00:39,220 --> 00:00:42,790 +do you know anything about what the students are using as far as computers go? + +15 +00:00:42,790 --> 00:00:46,640 +>> I don't know what kind of computers they're using. And they + +16 +00:00:46,640 --> 00:00:50,960 +could be, I don't know, anywhere from having no tech experience to + +17 +00:00:50,960 --> 00:00:52,200 +being pretty proficient. + +18 +00:00:52,200 --> 00:00:54,930 +>> Do you know anything about how + +19 +00:00:54,930 --> 00:00:57,350 +familiar the students are with computers in general? + +20 +00:00:57,350 --> 00:00:59,540 +>> I'm sure we have some people on the low end that have + +21 +00:00:59,540 --> 00:01:01,430 +never done any type of programming, and + +22 +00:01:01,430 --> 00:01:03,680 +then some people who are pretty self-sufficient. + +23 +00:01:03,680 --> 00:01:07,210 +>> Okay, and I guess my last question related to + +24 +00:01:07,210 --> 00:01:10,170 +the students is, what is the students actually submitting to you. + +25 +00:01:10,170 --> 00:01:14,080 +>> They've been sending just raw text files via email to me. + +26 +00:01:14,080 --> 00:01:16,660 +>> So from the sounds of things + +27 +00:01:16,660 --> 00:01:19,140 +we have a fairly broad, I guess base + +28 +00:01:19,140 --> 00:01:23,100 +of students to work with, both in technical proficiency + +29 +00:01:23,100 --> 00:01:27,180 +as well as their operating system environments potentially. + +30 +00:01:27,180 --> 00:01:29,420 +So I think what we'll probably do to start + +31 +00:01:29,420 --> 00:01:33,270 +off with is make a command line, Java + +32 +00:01:33,270 --> 00:01:36,760 +based tool. That the students can run and we'll + +33 +00:01:36,760 --> 00:01:39,910 +give them a fair amount of you know, documentation + +34 +00:01:39,910 --> 00:01:41,690 +on how to use the tool. And I expect + +35 +00:01:41,690 --> 00:01:45,090 +that there will be a lot of little error conditions that may happen + +36 +00:01:45,090 --> 00:01:49,320 +that we want to produce a reasonably friendly message were anything to go wrong. + +37 +00:01:49,320 --> 00:01:50,480 +>> Yeah. That'd be great. + +38 +00:01:50,480 --> 00:01:54,750 +>> So, a little bit more, I guess about + +39 +00:01:54,750 --> 00:01:58,539 +the actual essay itself, its submission, what constitutes a word? + +40 +00:01:59,820 --> 00:02:03,190 +>> I really only care about the longer words, so, is there a + +41 +00:02:03,190 --> 00:02:06,140 +way that we can only count words that are maybe above three letters? + +42 +00:02:06,140 --> 00:02:06,830 +>> I think + +43 +00:02:06,830 --> 00:02:08,508 +that's something we can do. And I think + +44 +00:02:08,508 --> 00:02:10,030 +that because you seem a little bit unsure + +45 +00:02:10,030 --> 00:02:11,540 +we might be able to have that be + +46 +00:02:11,540 --> 00:02:13,820 +a little bit more flexible than we otherwise would. + +47 +00:02:13,820 --> 00:02:14,500 +>> Great. + +48 +00:02:14,500 --> 00:02:18,330 +>> What does a sentence mean to you? Is it kind of flexible? + +49 +00:02:18,330 --> 00:02:21,280 +>> I would say anything that ends in a period or + +50 +00:02:21,280 --> 00:02:25,870 +even a question mark. Maybe even an exclamation mark. or, something + +51 +00:02:25,870 --> 00:02:28,760 +even, maybe even with a comma or semi-colon. I really only + +52 +00:02:28,760 --> 00:02:32,370 +care about the sentences that aren't gramatically correct and are too long. + +53 +00:02:32,370 --> 00:02:35,180 +>> I think we can probably make that a little bit more flexible too + +54 +00:02:35,180 --> 00:02:37,520 +so that way, you can kind of say we're going to, or you want to include them. + +55 +00:02:37,520 --> 00:02:38,020 +>> Mm-hm. + +56 +00:02:38,020 --> 00:02:41,786 +>> So maybe, sounds like you are little bit on the fence + +57 +00:02:41,786 --> 00:02:45,100 +about whether or not say, a comma should be considered a sentence. + +58 +00:02:45,100 --> 00:02:45,130 +>> Mm. + +59 +00:02:45,130 --> 00:02:46,370 +>> Entirely on its own or not. So we + +60 +00:02:46,370 --> 00:02:49,830 +can probably make that a little bit configurable as well. + +61 +00:02:51,880 --> 00:02:56,510 +And so, just to confirm the actual end result to + +62 +00:02:56,510 --> 00:02:59,870 +the student is the average number of words per sentence? + +63 +00:02:59,870 --> 00:03:01,610 +>> Yeah, yeah that'd be fine. + +64 +00:03:01,610 --> 00:03:07,430 +>> Okay, overall to start off with, looks like we have some + +65 +00:03:07,430 --> 00:03:10,280 +sort of customization of the word length that we want to look for. + +66 +00:03:10,280 --> 00:03:10,780 +>> Mm-hm. Yeah. + +67 +00:03:12,000 --> 00:03:14,650 +>> We have some kind of variability in + +68 +00:03:14,650 --> 00:03:17,880 +what we want to have as acceptable sentence structure. + +69 +00:03:17,880 --> 00:03:24,570 +So, periods, question marks, semicolons, things like that. And, the end result + +70 +00:03:24,570 --> 00:03:27,260 +to the student is if we're successful, they'll get the average number of + +71 +00:03:27,260 --> 00:03:31,060 +words per sentence. Otherwise we tell them something a little bit helpful to + +72 +00:03:31,060 --> 00:03:33,240 +kind of put them on the right track to use the tool correctly. + +73 +00:03:33,240 --> 00:03:34,620 +>> Yeah that's the error codes right? + +74 +00:03:35,850 --> 00:03:38,150 +>> Hopefully not error codes but something a little bit nicer. + +75 +00:03:38,150 --> 00:03:39,800 +>> [LAUGH] Okay. + +76 +00:03:39,800 --> 00:03:41,150 +>> So I think I have enough to + +77 +00:03:41,150 --> 00:03:43,440 +get started and produce something that's you know, + +78 +00:03:43,440 --> 00:03:47,150 +a reasonable I guess, rough draft. Of something + +79 +00:03:47,150 --> 00:03:48,700 +that you can use to help your class out. + +80 +00:03:48,700 --> 00:03:49,590 +>> Great. Thank you. + +81 +00:03:49,590 --> 00:03:50,240 +>> Thank you. diff --git a/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/5 - Average Sentence Length Requirements - lang_en_vs3.srt b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/5 - Average Sentence Length Requirements - lang_en_vs3.srt new file mode 100644 index 0000000..afd49e1 --- /dev/null +++ b/usth/ICT2.7/P1L5 Requirements Gathering Subtitles/5 - Average Sentence Length Requirements - lang_en_vs3.srt @@ -0,0 +1,83 @@ +1 +00:00:00,340 --> 00:00:02,300 +You've heard Alvin come up with several conclusions for how to + +2 +00:00:02,300 --> 00:00:04,510 +set up the program. And we're going to ask that you follow his + +3 +00:00:04,510 --> 00:00:07,590 +instincts. We'll spell that out here in a little more technical details + +4 +00:00:07,590 --> 00:00:11,030 +so that everyone is working from the same basic starting point. The + +5 +00:00:11,030 --> 00:00:13,770 +program must be written in Java and must not make you any + +6 +00:00:13,770 --> 00:00:16,730 +nonstandard Java libraries. You will be tested on a machine with the + +7 +00:00:16,730 --> 00:00:21,060 +vanilla installation of Java 1.6. Your program must compile on the command + +8 +00:00:21,060 --> 00:00:25,360 +line using the Java C command without any additional options. All code + +9 +00:00:25,360 --> 00:00:27,530 +required to execute the program that is not part of the + +10 +00:00:27,530 --> 00:00:31,950 +standard JDK, must be included as source code with your program. + +11 +00:00:31,950 --> 00:00:34,380 +Your program should be an application. That is, it should have + +12 +00:00:34,380 --> 00:00:37,160 +a main method and should be executable from the command line using + +13 +00:00:37,160 --> 00:00:40,100 +the Java command. The user should be able to provide a + +14 +00:00:40,100 --> 00:00:42,450 +file path to the file they wish to be analyzed as a + +15 +00:00:42,450 --> 00:00:45,880 +command line argument. User should be able to specify which delimiters + +16 +00:00:45,880 --> 00:00:50,570 +count as sentence separators, using the flag -d, defaulting to Lauren's initial + +17 +00:00:50,570 --> 00:00:53,930 +thoughts on what should be used as delimiters. The user should be + +18 +00:00:53,930 --> 00:00:58,170 +able to specify a lower limit for word length, using the flag -l, + +19 +00:00:58,170 --> 00:01:02,100 +defaulting to Lauren's guess at what value might be good. Finally, the program's + +20 +00:01:02,100 --> 00:01:03,710 +output should be the average sentence + +21 +00:01:03,710 --> 00:01:05,720 +length. Rounded down to the nearest integer. -- cgit 1.4.1