Sunteți pe pagina 1din 12

Course Syllabus

Course Information CSE 4381, Software Project Planning and Management, Spring 2007, Section 501

Professor Contact Information Mr. David Russo

972-883-2296

David.Russo@utdallas.edu ECS 3.406 Friday 3:00 PM until 6:00 PM

Course Pre-requisites, Co-requisites, and/or Other Restrictions Prerequisite: CS/SE 3354. (3-0)

Course Description This class is designed to provide the undergraduate Computer Science, Software Engineering, or Computer Engineering student an introduction to the vital subtopic of Software Engineering, Project Planning and Project Management. The class will discuss the tools and techniques that are used to engage the unique challenges of this still emerging discipline and profession.

Planning and managing of software development projects. Software process models, ISO 9000, SEI’s Capability Maturity Model, continuous process improvement. Planning, scheduling, tracking, cost estimation, risk management, configuration management.

The student will leave the class with a clear understanding of the techniques, principles and methods of Software Project Planning and Management. In addition the student will acquire insight through practice and active participation into the challenges and opportunities associated with the interaction of Development Process and its management. The successful student will be able to analyze a requested software development in terms of costs, schedule, risk management and properly apply the appropriate development processes and tools to the control and guidance of the project.

Student Learning Objectives/Outcomes

Class learning objectives

Understand the genesis of project management and its importance to improving the success of software development projects

Demonstrate knowledge of the project management knowledge areas and process groups Demonstrate knowledge of the project life cycle Demonstrate knowledge of project selection methods Demonstrate knowledge of work breakdown structures

Demonstrate knowledge of network diagrams, critical path analysis, and critical chain scheduling Demonstrate knowledge of cost estimates using COCOMO Demonstrate knowledge of earned value management Demonstrate knowledge of motivation theory and team building

Apply project management concepts by working on a several month duration project as team leader or active team member

Use Microsoft Project and other software to help plan and manage a small project

Required Textbooks and Materials

The Mythical Man-Month; Frederick Brooks, Addison-Wesley, ISBN 0201835959 Project Management; The Managerial Process, Clifford Gray, Erik Larson ISBN 0-07- 297863-5 McGraw-Hill

Suggested Course Materials

Assignments & Academic Calendar

Assignments for CSE 4381, Spring 2007

Assignment One: Due January 10th

Write a program in Java that will count the lines of code (LOC) in a given Java source file. This source file is provided on the class website.

Assignment Two: Due January 17th

Read the book "People Ware" by DeMarco, et al and write a two page critique on this text. submittal must meet all applicable guidelines as established on the website.

Assignment Three: Due January 29th.

Your

Read the first six chapters of the "Mythical Man Month" text. Write a two page critique of these

six chapters.

Your submittal must meet all applicable guidelines as established on the website.

Assignment Four: Due January 31st.

Define the word "quality". Do not employ similes in your definition. Use as much space written space as you need.

Assignment Five: Due February 14th.

Write a two page essay on Chapter 4 of the "Mythical Man Month" (Achieving Conceptual Integrity). Your essay should be argue the merits of what Brooks' proposes in terms of "Aristocracy, Democracy and System Design". You must take a position and not merely critique Brooks' work.

Project Requirements

Each team shall develop, using the Java programming language, a working software program that shall perform the following functions:

1) A main GUI in which the user can decide which function to perform (this may include options for all or any combination of the following).

2) File selection in which the user shall decide a specific Java file for testing (single file at a time)

3) A LOC counter. This LOC counter shall count as an LOC any predicate statement (if, while,

for, do), shall count as an LOC any assignment statement, shall count as an LOC any invocation

statement, shall count as an LOC any calculation statement. statements shall NOT count as an LOC.

Initiation and declaration

4) A McCabe Cyclomatic Complexity analysis tool that shall calculate the complexity of any

function within the designated Java code.

name with the resulting complexity number (an integer value).

These complexity values shall be reported by module

5) A scope reporter in which all variables within a Java file are listed and their relative scope (class, module (including module name) and super class) will be reported.

This program shall be completed by April 27 at 2:00 PM.

Comments and Instructions for the Project

1) There will not be a Final Exam. The grade for the Final project will go against your homework scores, your project scores and your team participation scores.

2) The algorithm suggested for the project (McCabe Complexity Analysis) is that you simply find

an “{“ (open brace) and then use that as a node in a n-ary tree.

(without first finding a “}”) then that becomes a “leaf” to the current node.

When you find another “{“

Once all the input code has been parsed, you simply depth-first traverse your tree.

traversing the tree you must draw the tree on the screen. NOTE: The code sample is guaranteed to not have any incomplete scope structures – every open brace will have a corresponding close brace.

While you are

Please make sure that you have a clear CAD (Class Association Diagram) annotating your design. Your code MUST adhere to the design CAD. Failure to do so will affect your grade adversely.

Your design must NOT be driven by your “Goo” (GUI classes). Clear API’s and separation of “goo” from processing must be respected. I do not want to see processing inside the goo classes. I would suggest that you employ observer/observable if you need tight coupling between these programmatic elements.

My approach would be to do all the processing first and then upon completion have your tree drawn by the goo classes – perhaps the easiest way to guarantee decoupling. This is the way the JVM works internally – two threads (at least) are present; one does any backend processing and one is responsible for graphics. So you are in good company with this design approach.

(Topics, Reading Assignments, Due Dates, Exam Dates)

Grading Policy

Grading:

Grades will be comprised of two tests, multiple homework assignments, a project and class participation. The presentation of the project shall take place during the final exam period. Tests will represent 25% of the final grade (instructor graded).

Homework will represent 45% of the final grade (All homework are graded by the Instructor). All homework are due on the assigned date. Failure to turn in a homework at the time of

The only allowable

instructor collection results in a ZERO grade for that homework.

exceptions to this policy are listed in the introductory class currently available on the website.

ALL CODING ASSIGNMENTS MUST MEET THE SOFTWARE DEVELOPMENT GUIDELINES (available on the website).

All critique assignments must meet the submittal guidelines available on the website.

The Projects will represent 15% of the final grade. There will be four (4) team development projects of one-month duration. During each of these short cycle projects the student will have an opportunity to learn the techniques of management, effective team participation and software development life-cycle components.

Class Participation will represent 15% of the final grade (graded by Instructor). TESTING POLICIES: THERE WILL BE NO EXCEPTIONS TO ANY ASPECT OF THESE POLICIES.

To gain admission to the tests the student will have to sign-in and present a valid UTD Identification (at least for the first test).

All seating during the test period is by instructor assignment only. On test day the students will wait outside the classroom to be signed-in and assigned a seat.

No purses, backpacks, cell-phones, or other personal accoutrements of any type are allowed at the

student seat during the test. during the test.

Such material may be deposited with the instructor for safekeeping

Tests will take approximately one hour thereby allowing 15 minutes for sign-in and seating assignment.

All tests, homework and the project shall be graded by the instructor and returned to the student for review. UTD policy allows students to contest grades.

(including percentages for assignments, grade scale, etc.)

Course & Instructor Policies

Class participation requires that the student attend classes and contribute to the classes with comments, insights, exceptions and/or other material pertinent to the subject matter at hand. Continued and flagrant tardiness will impact the Class Participation Grade in a negative manner.

This class is taught in a highly interactive manner, which requires that the successful student attend ALL classes and engage actively and professionally in class discussions. The instructional technique requires this level of participation to allow the material to be most effectively inculcated.

NB: NO PASSING GRADE WILL BE ASSIGNED ANY STUDENT UNLESS ALL CODING HOMEWORK IS COMPLETED WITH A PASSING GRADE. THIS IS THE OFFICIAL POLICY OF THE CSE DEPARTMENT. There will be NO exception to this policy which is in effect for ALL CSE classes.

All coding homework will be graded by the instructor.

Nota Bene: There is a rather grim calculus associated with the grading policy. make a grade higher than a B without active, professional class participation.

Grade A+:

if (<= 98)

Grade A:

if ((< 98) && (> 94))

Grade A-:

if ((<=94) && (>=90))

Grade B+:

if ((< 90) && (>=87))

Grade B:

if ((<87) && (>=83))

Grade B-:

if ((<83) && (>=80))

Grade C+:

if ((<80) && (>=77))

It is impossible to

Grade C:

if ((<77) && (>=73))

Grade C-:

if ((<73) && (>=70))

Grade D+:

if ((<70) && (>=67))

Grade D:

if ((<67) && (>=63))

Grade D-

if ((<63) && (>=60))

Grade F:

if (<= 59)

General Notes applicable to all Homework Assignments:

All written homework e.g. designs shall be submitted on neatly printed 8.5" x 11" paper, properly bound (stapled et cetera) and page numbered. The student name shall appear prominently on EVERY page. Submissions not meeting these minimum requirements shall be summarily discarded by the instructor with the resulting grade of F assigned for that particular assignment.

Attempts to use “filler” strategies such as double line spacing, huge paragraphs spacers, et cetera will result in an F grade assigned.

Coding assignments shall be submitted on a CD in a proper case or sleeve, with the student name, assignment number, IDE and language affixed to a permanent label on the outside of the CD case

Submissions not meeting this requirement will be discarded by the instructor with the

resulting grade of F assigned for that particular assignment.

or sleeve.

Students who submit Java language development shall appropriately structure their work so that the grader (instructor) does not have to spend hours attempting to understand/duplicate your particular package environment Nemesis Rule: No packages, no jar/tar/ear files accepted. All Java assignments shall use Java 1.4.2 or 1.5.x for development.

All code submissions, regardless of language, shall adhere to the following coding standards:

There shall be a 'flower garden' preceding the main and each and every subroutine/method per the following example; please version, date and sign your code per below.

// *******************************************************************// // This program will examine a file output from windump with the -v // option set (file name is capfile.txt and will parse and analyse the // data in this file to determine if a port scan is taking place. // The detection of the port scan is based on dual level analysis; // signature wherein the port scan is detected by an attempt to connect // to services not present as represented by ports in the well-known // range who have no services e.g. ports 84, 34 etc. // The second form of detection is statistical analysis where any detection // of a SYN flag is logged and compared to further SYN detections over a // one second time period. Any source IPs found to have sent more than two // SYN within this time will be flagged as port scanners. // // // The program works by converting a windump file (using windump -fv ) // to a parse file for analysis. // David Russo

// April 27, 2003 // version 3.0 //********************************************************************

#include <iostream.h> #include <fstream.h> #include <string.h> #include <stdlib.h> #include <ctype.h>

int moveToIP(int); int pullOutIP(int); char findFrameType(int); char findPacketType(int); void scanParse(void);

// determines if a synch frame // determines if arp or IP

char input[200];

//make this globally visible for subroutines // this is holds the input records from windump

// PLEASE NOTE THE HEAVY LEVEL OF COMMENTS ON ALMOST // EVERY LINE - THIS IS A REQUIREMENT, NOT A NICETY. // UNCOMMENTED CODE WILL RECEIVE AN AUTOMATIC F GRADE.

struct ipAnalysis

// will hold the parse data for file writing

{

double time;

char asciiTime[10]; // ascii rep of time

char IP[21];

// the IP being contacted

char port[5];

// the port number

char pktType;

// type of packet - ICMP, etc

char blank;

// need a blank for parse

char frameType;

char carriageReturn; // for end of line detection

// type of segment tcp or udp

};

ipAnalysis frame;

// the struct for a full parse frame

void main(void)

{

fstream nameFile;

fstream outFile("parse.txt", ios::out | ios::binary);

// input file from windump

int j = 0;

// used to increment through captured records

int k; bool foundIP = false;

bool foundName = false;

// used to parse the input record // used to parse

// haven't found the packet type

// TYPICAL SUBROUTINE COMMENT NB: note use of indents in while/if structure below.

///////////////////////////////////////////////////////////////// // This subroutine will determine if the frame is a synch (S) or // not synch frame /////////////////////////////////////////////////////////////////

char findFrameType(int index)

{

bool foundType = false; char frameType;

while (foundType == false)

{

if (input[index] == 'S')

{

// while frame type not identified

// syn segment?

foundType = true; // found a synch frame

frameType = 'S';

}

else if (input[index] == 'P')

{

// scope brackets follow line not accompany

 

foundType = true; frameType = 'P';

// found a packet frame

}

MORE CODING STANDARDS;

1) SPECIFIC INDENTATION WILL BE USED PER THE ABOVE. 2) SCOPE BRACKETS SHALL FOLLOW THE CLAUSE, NOT ACCOMPANY IT PER THE ABOVE. 3) SPACES SHALL BE USED NOT TABS.

4) INDENTS WILL NOT BE MORE THAN ONE SPACE BEYOND CLAUSE PER THE FOLLOWING:

if (someCondition)

{

if (someCondition)

// acceptable

{ // not acceptable.

if (someCondition) {

// not acceptable.

Every scope closure bracket shall be accurately commented per the following:

If (someCondition)

{

for (yada; yada; yada)

{

statements;

statements;

} // close on for loop

}

// close on if someCondition

ALL CODING STANDARDS ARE NON-NEGOTIABLE AND SHALL BE COMPLIED WITH.

(make-up exams, extra credit, late work, special assignments, class attendance, classroom citizenship, etc.)

Field Trip Policies Off-campus Instruction and Course Activities

Off-campus, out-of-state, and foreign instruction and activities are subject to state law and University policies and procedures regarding travel and risk-related activities. Information regarding these rules and regulations may be found at the website address http://www.utdallas.edu/BusinessAffairs/Travel_Risk_Activities.htm. Additional information is available from the office of the school dean. Below is a description of any travel and/or risk- related activity associated with this course.

Student Conduct & Discipline

The University of Texas System and The University of Texas at Dallas have rules and regulations for the orderly and efficient conduct of their business. It is the responsibility of each student and each student organization to be knowledgeable about the rules and regulations which govern student conduct and activities. General information on student conduct and discipline is contained

in the UTD publication, A to Z Guide, which is provided to all registered students each academic

year.

The University of Texas at Dallas administers student discipline within the procedures of recognized and established due process. Procedures are defined and described in the Rules and Regulations, Series 50000, Board of Regents, The University of Texas System, and in Title V, Rules on Student Services and Activities of the university’s Handbook of Operating Procedures. Copies of these rules and regulations are available to students in the Office of the Dean of Students, where staff members are available to assist students in interpreting the rules and regulations (SU 1.602, 972/883-6391).

A student at the university neither loses the rights nor escapes the responsibilities of citizenship.

He or she is expected to obey federal, state, and local laws as well as the Regents’ Rules, university regulations, and administrative rules. Students are subject to discipline for violating the standards of conduct whether such conduct takes place on or off campus, or whether civil or criminal penalties are also imposed for such conduct.

Academic Integrity

The faculty expects from its students a high level of responsibility and academic honesty. Because the value of an academic degree depends upon the absolute integrity of the work done by the student for that degree, it is imperative that a student demonstrate a high standard of individual honor in his or her scholastic work.

Scholastic dishonesty includes, but is not limited to, statements, acts or omissions related to applications for enrollment or the award of a degree, and/or the submission as one’s own work or material that is not one’s own. As a general rule, scholastic dishonesty involves one of the following acts: cheating, plagiarism, collusion and/or falsifying academic records. Students suspected of academic dishonesty are subject to disciplinary proceedings.

Plagiarism, especially from the web, from portions of papers for other classes, and from any other source is unacceptable and will be dealt with under the university’s policy on plagiarism (see general catalog for details). This course will use the resources of turnitin.com, which searches the web for possible plagiarism and is over 90% effective.

Email Use

The University of Texas at Dallas recognizes the value and efficiency of communication between faculty/staff and students through electronic mail. At the same time, email raises some issues concerning security and the identity of each individual in an email exchange. The university encourages all official student email correspondence be sent only to a student’s U.T. Dallas email address and that faculty and staff consider email from students official only if it originates from a UTD student account. This allows the university to maintain a high degree of confidence in the identity of all individual corresponding and the security of the transmitted information. UTD furnishes each student with a free email account that is to be used in all communication with university personnel. The Department of Information Resources at U.T. Dallas provides a method for students to have their U.T. Dallas mail forwarded to other accounts.

Withdrawal from Class

The administration of this institution has set deadlines for withdrawal of any college-level courses. These dates and times are published in that semester's course catalog. Administration procedures must be followed. It is the student's responsibility to handle withdrawal requirements from any class. In other words, I cannot drop or withdraw any student. You must do the proper paperwork to ensure that you will not receive a final grade of "F" in a course if you choose not to attend the class once you are enrolled.

Student Grievance Procedures

Procedures for student grievances are found in Title V, Rules on Student Services and Activities, of the university’s Handbook of Operating Procedures.

In attempting to resolve any student grievance regarding grades, evaluations, or other fulfillments of academic responsibility, it is the obligation of the student first to make a serious effort to resolve the matter with the instructor, supervisor, administrator, or committee with whom the grievance originates (hereafter called “the respondent”). Individual faculty members retain primary responsibility for assigning grades and evaluations. If the matter cannot be resolved at that level, the grievance must be submitted in writing to the respondent with a copy of the respondent’s School Dean. If the matter is not resolved by the written response provided by the respondent, the student may submit a written appeal to the School Dean. If the grievance is not resolved by the School Dean’s decision, the student may make a written appeal to the Dean of Graduate or Undergraduate Education, and the deal will appoint and convene an Academic Appeals Panel. The decision of the Academic Appeals Panel is final. The results of the academic appeals process will be distributed to all involved parties.

Copies of these rules and regulations are available to students in the Office of the Dean of Students, where staff members are available to assist students in interpreting the rules and regulations.

Incomplete Grade Policy

As per university policy, incomplete grades will be granted only for work unavoidably missed at the semester’s end and only if 70% of the course work has been completed. An incomplete grade must be resolved within eight (8) weeks from the first day of the subsequent long semester. If the required work to complete the course and to remove the incomplete grade is not submitted by the specified deadline, the incomplete grade is changed automatically to a grade of F.

Disability Services

The goal of Disability Services is to provide students with disabilities educational opportunities equal to those of their non-disabled peers. Disability Services is located in room 1.610 in the Student Union. Office hours are Monday and Thursday, 8:30 a.m. to 6:30 p.m.; Tuesday and Wednesday, 8:30 a.m. to 7:30 p.m.; and Friday, 8:30 a.m. to 5:30 p.m.

The contact information for the Office of Disability Services is:

The University of Texas at Dallas, SU 22 PO Box 830688 Richardson, Texas 75083-0688 (972) 883-2098 (voice or TTY)

Essentially, the law requires that colleges and universities make those reasonable adjustments

necessary to eliminate discrimination on the basis of disability. For example, it may be necessary to remove classroom prohibitions against tape recorders or animals (in the case of dog guides) for students who are blind. Occasionally an assignment requirement may be substituted (for example,

a research paper versus an oral presentation for a student who is hearing impaired). Classes

enrolled students with mobility impairments may have to be rescheduled in accessible facilities. The college or university may need to provide special services such as registration, note-taking, or mobility assistance.

It is the student’s responsibility to notify his or her professors of the need for such an

accommodation. Disability Services provides students with letters to present to faculty members to verify that the student has a disability and needs accommodations. Individuals requiring special

accommodation should contact the professor after class or during office hours.

Religious Holy Days

The University of Texas at Dallas will excuse a student from class or other required activities for the travel to and observance of a religious holy day for a religion whose places of worship are exempt from property tax under Section 11.20, Tax Code, Texas Code Annotated.

The student is encouraged to notify the instructor or activity sponsor as soon as possible regarding the absence, preferably in advance of the assignment. The student, so excused, will be allowed to take the exam or complete the assignment within a reasonable time after the absence: a period equal to the length of the absence, up to a maximum of one week. A student who notifies the instructor and completes any missed exam or assignment may not be penalized for the absence. A student who fails to complete the exam or assignment within the prescribed period may receive a failing grade for that exam or assignment.

If a student or an instructor disagrees about the nature of the absence [i.e., for the purpose of observing a religious holy day] or if there is similar disagreement about whether the student has been given a reasonable time to complete any missed assignments or examinations, either the student or the instructor may request a ruling from the chief executive officer of the institution, or his or her designee. The chief executive officer or designee must take into account the legislative

intent of TEC 51.911(b), and the student and instructor will abide by the decision of the chief executive officer or designee.

These descriptions and timelines are subject to change at the discretion of the Professor.

Evaluare