Introduce yourself here by telling us your name, what part of the world you live, your major or primary area of study at UMUC and what you envision doing with your programming skills you obtain from this course.
Hello class, my name is Yuji Shimojo and I'm 28. I am from Okinawa, Japan and live in Tokyo, Japan now.
I have more than 6 years of working experience as a technical sales representative and more than 2 years of working experience as an AWS (Amazon Web Services) certified solutions architect at an IT company based in Okinawa, Japan. I have much experience in technical sales for system migration, integration, and 24/7 operational monitoring by using both public clouds such as AWS and on-premise IT infrastructures including x86 servers, networking appliances, and storage hardware. Recently, as an AWS certified solutions architect, I am mainly directing projects including architecting, building, managing systems on AWS.
I'm currently majoring in Computer Science with a minor in Business Administration. I took CMSC335, CMSC350, CMSC325, CMSC330, CMSC405, CMSC412, CMIS320, CMIS330, and CMIS435 as part of my major in the past.
What programming languages I have used are as follows.
What operating systems I use are as follows.
My vitals related to software engineering are as follows.
In addition, I have practical experience in proposing solutions for customers' business issues and analyzing system requirements for them in Japan, I am not exactly sure about business customs and IT trends in the U.S. though.
For this week's conference, respond to the following:
I would suggest you consider the following reference - I have attached a copy just in case the reference moves:
http://www.learningace.com/doc/2598322/1a75062f2077bdf9de0b36cd393068cc/ieee1058
I chose the article Why Software Fails (Charette, R. N., 2005). This article is a little bit old, but even now I often hear that unfunctional and buggy business software costs too much.
In my opinion, because there is no bug-free software, I suggest that you build of a management system that allows to detect and fix software bugs early. The same applies to hardware as well. You need to architect systems based on the idea of design for failure.
In addition, you should try not to write code as much as possible, and make the very minimum of software. In other words, you actively use exist and mature software modules or components including open-source software and Web APIs.
Charette, R. N. (2005). Why Software Fails. IEEE Spectrum, Retrieved on January 9, 2016 from http://spectrum.ieee.org/computing/software/why-software-fails
Here is where you discuss with each other topics you are interested in, and what role you would like to play in a project with the goal of forming at least tentative groups by the end of the week.
By the end of this week, you should have pretty well decided on the project topic for your group, posted it here, and gotten my agreement.
Hi class,
I would like to play a role as an AWS (Amazon Web Services) architect.
As I posted to the introduction thread, I have some experience in programming through UMUC coursework, but I actually have a little practical experience in programming, so that I am not so good at programming. Especially my weakness is front-end design and programming. Also, because English is my second language, playing a leading role seems to be difficult for me.
Instead, I can contribute for architecting and building back-end systems by using AWS because I have more than 2 years of working experience as an AWS certified solutions architect. I have certain knowledge about basic AWS services such as Amazon VPC, Amazon EC2, Amazon RDS, Amazon S3, Elastic Load Balancing, and Amazon CloudFront.
Although I don't have any exact ideas for the software project, I am interested in Infrastructure as Code such as configuration management by using Ansible, managing Amazon Machine Images (AMIs) by using Packer, provisioning AWS components (services) by using AWS CloudFormation or Terraform. I am also interested in serverless architectures on AWS such as using AWS Lambda (Node.js, Python, or Java), API Gateway, Amazon Cognito, Amazon DynamoDB, etc..
If someone is interested in building systems on AWS, I can prepare AWS accounts for each team member.
For this week's conference, respond to the following:
I chose the article Requirements Engineering Tools (Carrillo de Gea, J. M., et al., 2011) which I found through the Library.
The authors surveyed requirements engineering (RE) tools in the world and evaluated 37 tools.
The evaluation is based on ISO/IEC TR 24766:2009: Systems and software engineering - System life cycle processes. The tools are assessed on the basis of elicitation, analysis, specification, modeling, verification and validation, management, traceability, other tool capabilities, global, and price range (single seat).
In my opinion, no matter what great IT tools we use, we are not necessarily maximize our performance essentially; however, adequate IT tools accelerates iteration speed and promotes collaboration.
I strongly agree with the author's opinion that selecting a RE tool is a key factor for such as distributed development teams and agile teams.
For distributed development teams, IT tools help them real-time communication and prevent miscommunication. For agile teams, the tools help them be less document-centric and more code-oriented.
Actually, our project team for the capstone project are using Slack for collaboration. We are able to actively discuss the project plan, specifications, and system design, and we also share code snippets to our Slack channel.
Carrillo de Gea, J. M., Nicolás, J., Alemán, J. F., Toval, A., Ebert, C., & Vizcaíno, A. (2011). Requirements Engineering Tools. IEEE Software, 28(4), 86-91. doi:10.1109/MS.2011.81
This is where you should include an outline of the key milestones for your project and who will achieve them.
Get my comments.
Requirements Specification:
System Specification:
What is this project supposed to do?
This project is designed to allow a hospital to have a single enterprise system that ensures data needs only to be entered one time into the system. This will allow multiple departments to see relevant information, but only certain roles can modify certain fields. Additionally this will improve the efficiency of the hospital and reduce the number of errors.
System Specification
Case Scenarios:
Milestones:
Yuji Shimojo – Database lead, Backend development lead, Program reviewer
As database lead Yuji will design and implement the creation of tables and fields that hold all our patients data. Yuji will also verify that the data being sent to the database is correct, and ensure that the database is properly secured from traditional manipulation techniques. As the backend development lead Yuji will implement servlets with database connections. Additionally, Yuji will help review and make suggestions for other aspects of the project.
Cara Howie – Website design lead, Program reviewer
As the website design lead Cara will design, implement the front end interface that all the users will interact with. Cara will also ensure that the code has been designed to work efficiently, and that the code has been designed to prevent common manipulation techniques. Additionally, Cara will help review and make suggestions for other aspects of the projects.
Thomas Vera – Project lead, Technical writer
As project lead Thomas will ensure to keep up to date on group progress and any issues that will arises. Thomas will also provide any help in any area like designing test data and make suggestions for improvement. Additionally, Thomas will write all documentation for user guides, and manuals that will help troubleshoot any issues.
For this week's conference, respond to the following:
Since I couldn't find an article relevant to "technical document," I searched a article in the UMUC library and chose Documenting Code: A Necessary Evil, or Just Plain Wrong? I'm a firm believer in comments—How about you? written by Otey, M. (2014).
This ariticle mentions how important documenting code is.
In my opinion, when you document code, it is very important that you define who readers at first. Even if you write instructions and procedures on how to do something in detail, if your comments have an entirely different expectation for your readers, it makes no sense. Additionally, it is important to write not only what the code do but why the code do so and also prior conditions if needed.
Nowadays, software documents are actually not only in MS Word or PDF formats but can be scripts themselves. For example, server configuration management tools such as Ansible and cloud provisioning tools such as AWS CloudFormation and Terraform can be the alternatives for build procedure manuals themselves. Also, most of modern ER diagram tools can generate DDL (Data Definition Language) statements. Furthermore, Swagger, which is a RESTful API framework, be specifications, codes, and documents in html for RESTful APIs. That allows us to minimize maintenance cost of software documents.
For this week's conference, respond to the following:
I chose the article Alan Turing and Bletchley Park (Severance, C., 2012).
This article is written about Alan Turing who is known as the father of modern computer science and mainly focuses on a highly developed mechanical computing device he designed at Bletchley Park, UK during World War II This cipher device was called the BOMBE and built to decrypt original German messages encrypted by the Enigma which was used by the German navy.
In addition to developing the BOMBE, Turing accomplished many of great achievements such as the Turing test, Turing machine, and Turing completeness; however, what he was not admired during his lifetime maybe because of his personality and absolute secrecy of the BOMBE project is indeed regrettable.
Interestingly, when I used to study at University of the Ryukyus, I learned that the ENIAC was the first general-purpose electronic computer through a computer history class at the college. I strongly remember that I was very excited when I had an opportunity to see actual panels of ENIAC at the Computer History Museum in Mountain View, CA in 2008. However, in doing searches for Alan Turing and early digital computers, I came to a conclusion that this is not necessarily true from a different point of view.
For example, Zuse Z3 which is an electronic computer developed in Germany, Colossus which is a subsequent decryption machine of the BOMBE, and the Atanasoff-Berry Computer (ABC) which is an electronic computer developed at Iowa State University, were built before the ENIAC started running.
Of course, they are not stored programs and may not be the von Neumann architecture, also Colossus is not general-purpose; however, since Z3 and ABC actually use binary numbers internally, they absolutely form the foundation of current computers.
Design?
Classes, methods, fields, interfaces? Data structures, data file structures, input formats, output formats?
Overall approach.
Any relevant performance estimates would be appropriate here also.
This would be a good time to finalize test cases!
For this week's conference, respond to the following:
The actual software, first of 4 phases. Start with "hello world", and at the end of each week, you should have something compiling and working.
This report should include the original milestone for this week, whether or not you are on schedule, any special problems that were encountered, and a reevaluation of the all the decisions made so far - from the very beginning.
Also, any changes to any of the previous documents should be noted.