Software Engineering

profiles3ood_55555
software_development_assignment_1_201701.pdf

MCS 5103 - Software Engineering January 9, 2017

Software_Development_Assignment_1_201701.Docx

Page 1 of 4

Assignment:

Program Requirements:

Develop a software application that will do the following:

 Allow user to enter a file name, either by command line, prompt, or menu.

 Open specified file. If multiple files are specified or a directory is specified (not required, but a nice optional feature), the program operates on each file in sequence.

 For Each File:

 “Advanced” software developers: read each line in the file into a linked-list with one line in each “node” of the list.

 Count the total number of Lines of Code, “LOC”, contained in the file.

 Report the name of the file.

 Report the total number of LOC contained in the file.

 Close the input file.

The main program performs the following operations:

 Prompt the user for file name input

 Open the file

 Invoke the LOC counting function

 Report of the File Name and file LOC count

 Close the file

The LOC counting functionality shall be performed by a function called “countLOC”. countLOC receives a pointer to a

valid open file as a passed parameter, and returns the integer number of LOC in the file.

You must use the following “countLOC” function prototype/definition:

int countLOC(FILE* filePointer); /* C-language function prototype */

int countLOC (ifstream &file); // C++ function prototype

int countLOC (File file) // Java method definition

int countLOC (String fileName) // Alternative Java method definition

All user input/output interaction functionality shall be performed by the main program; countLOC shall have no direct user

interface.

The program shall be written in C, C++ or Java.

MCS 5103 - Software Engineering January 9, 2017

Software_Development_Assignment_1_201701.Docx

Page 2 of 4

Process Requirements:

BEFORE YOU BEGIN:

 Estimate the TOTAL time (actual working time in hours or minutes, not “calendar” time) that it will take you to complete the project (time measured from the time you begin this estimation until you have a complete, properly

functioning program.)

 Estimate the total number of lines of code (LOC) of your completed program.

 USE the Project Estimates form provided in the Project Log Template to facilitate these estimates.

AS YOU WORK:

 Log the ACTUAL time (actual working time, not “calendar” time) that you spend working on the project INCLUDING:

 Analysis

 Design

 Coding

 COMPILING

 Testing

 Project Retrospective Analysis: Any POST project analysis, wrap-up, documentation, etc.

 Log any defects that you encounter as you proceed INCLUDING (but not limited to):

 Incomplete, incorrect, misunderstood or missing requirements

 Incorrect design or missing design

 Logic errors

 Typo’s and syntax errors in source code

WHEN YOU’RE DONE:

 Record the ACTUAL time it took to develop the program.

 Record the ACTUAL number of LOC in the program.

 Analyze/Summarize your experience (“Retrospective Analysis”):

 Analysis of Estimates vs. Actual (Time and LOC)

 What went right

 What went wrong

Writing Guidelines:

Project Reports are subject to the “LTU Banned Error List for Writing”

(http://www.ltu.edu/arts_sciences/humanities_ss_comm/writing_tools.asp#tab3) and the associated policy:

“A paper with one of the errors listed loses half a letter grade (e.g., from B to B-). Additional errors of the same

category (e.g., three sentence fragments) will not lower the grade further, but additional errors in other categories

will (one-half letter grade per category).”

Additional reference for further guidance: http://www.ltu.edu/arts_sciences/humanities_ss_comm/writing_tools.asp#tab1

MCS 5103 - Software Engineering January 9, 2017

Software_Development_Assignment_1_201701.Docx

Page 3 of 4

Deliverables: - Students are expected to submit their own original work

You MUST use the project templates provided to you on Blackboard under

“Assignments  Projects  Project Templates and Supporting Resources”

Project Report – use “TEMPLATE – Software Project Report”

 Estimate and Actual of TOTAL time to develop the program (INCLUDING planning, preparation, documentation, debug and test, and retrospective analysis time.)

 Estimate and Actual of TOTAL size (in LOC) of the program

 Planning – come up with a schedule of when you will complete the various phases of this assignment

 Documentation/Summary description of all associated software development process steps performed (requirements, design, test cases & results, etc.)

 Project Retrospective analysis/summary

 Name this file “SD1_ProjectReport_[username]”

The Report should contain references to all additional supporting documents. ALL documents submitted should contain

author identification and should indicate to what assignment they pertain.

Project Estimation, Time Logs, Defect Logs – use “TEMPLATE – Project estimation, Time Log, Defect Log”

 This is where you do your time/size estimation

 Track time spent in each phase

 Track defects and time spent fixing them

 Name this file “SD1_EstimatesTimeDefectLogs_[username]”

Testing – use “TEMPLATE – Test Use Case Scenarios and Logs”

 This is where you document how you will test your code

 Describe what test scenarios you will use

 Record outcome of executing these tests

 Name this file “SD1_TestingLogs_[username]”

Software:

 Source code

 Executable program (.exe, .jar)

 Software Project files (example: if MS Visual Studio is used, include the ENTIRE project folder containing all project files – such as .vcxproj. Note that the project files usually contain the source code and executable in the various

subdirectories.)

[User Story: As a project reviewer, I want to be able to recompile/re-build the submitted project, so that I can

overcome run-time errors and other problems associated with incompatible versions of the development tools between

the developer’s development tools and my own, thereby allowing me to run the submitted project on my own

computer.]

Assignment Submission:

 Assignment deliverables must be submitted in the appropriate “Assignments” area on Blackboard by the BEGINNING of class on the due date.

 All executable programs must be in the form of .EXE, .JAR or .HTML files.

 “ZIP” the collection of all files into a single file using WinZip or RAR format.

 Name the ZIP file SD1_UserName.zip (or .rar) [UserName meaning your Banner UserName - example: SD1_bsweet]

 This project has multiple submissions with various due dates (given below). Append “_n” to the submitted file name, where “n” is the submission number (given below) – example: SD1_bsweet_1

With each submission, include current version of all work products to-date, even if incomplete. This includes:

o Project Report o Time Log

MCS 5103 - Software Engineering January 9, 2017

Software_Development_Assignment_1_201701.Docx

Page 4 of 4

o Defect Log o Requirements & Design Documentation o Source Code o Testing Plans & Results o ALL other process & project-related documentation to date (project plan, schedule, checklists, source code, etc.)

Note: You CAN work on various work products BEFORE the associated due date…

[User Story: As a project reviewer, I want to be able to review the current state of all project deliverables without

having to refer back to previous project submissions, so that I can somewhat reduce the effort and frustration in

evaluating project submissions.]

Assignment Date: January 17, 2017

Due Dates:

 Submission 1 - Requirements & Estimates ONLY: January 24, 2017 – 1 week Include the Project Log with Submission 1 as supporting documentation. This should include the Time Log to-date

showing the effort from these initial activities.

 Submission 2 - Complete: January 31, 2017 – 2 weeks