Server: Netscape-Enterprise/2.0a
Date: Tue, 26 Nov 1996 18:38:23 GMT
Accept-ranges: bytes
Last-modified: Tue, 09 Apr 1996 03:41:24 GMT
Content-length: 41813
Content-type: text/html
CSE5450: Intro to Software Engineering

CSE5450 - Advanced Software Engineering
Spring 1996

Fact Sheet
COURSE TITLE: Advanced Software Engineering
COURSE DESIGNATION: CSE5450-E1
INSTRUCTOR: John R. Ellis
MAIL SLOT: Crawford Hall, 2nd floor: ELLIS
PHONE (emergencies only): (work) 723-3999
E-MAIL: jellis@iu.net or john_ellis@mlb.sticomet.com
OFFICE HOURS: By appointment.
CLASSROOM: A-221
TIMES: Tuesday, Thursday, 6:30 - 7:45 PM
TEXT:
- The Mythical Man-Month, by Frederick Brooks
- Software Engineering: A Practitioner's Approach, 3rd
ed. by Roger Pressman
COMPUTER SYSTEMS: Students will be expected to
communicate with one another and with the instructor via e-mail.
Those students not otherwise having accounts affording e-mail
access will be expected to acquire an account on the University's
Nighthawk (ZACH) for Sun SparcStation (TUCK). Personal Computers
(PCs) are available in the Crawford Hall third floor lab and in the
library. The class project development must be performed and the
target program executed on PCs. Project documents are in PC
MicroSoft Word 6.0 format. The use of home PCs or PCs at your
workplace (if permitted by your employer) is also approved. When
individual assignments require submittal in machine readable form,
floppy disk (PC 3.5" HD) must be used.
GRADING: You will be graded on your homework
assignments, participation in class, and two examinations: a
mid-term and a final. Grading will be based on the following
relative weights:
Project Grade (inc. homework) |
50% |
Mid-Term Examination |
15% |
Final Examination |
30% |
Class Participation |
5% |
Total: |
100% |
COLLABORATION: Collaboration or "working together"
is ESSENTIAL to this course. You are authorized full communication
with any other class member concerning the project we will be
undertaking.
CONFORMANCE TO STANDARDS: You will each have an
area of primary responsibility as part of the class team executing
the class project. The Quality Assurance Manager and the Configuration
Manager will enforce the standards for the class. The Independent
Verification and Validation engineer will further evaluate
conformance as an agent of the "customer" (instructor). Conformance
to the standards is clearly to your benefit, besides which,
experience has shown that adherence to standards results in producing
working programs in less time.
TURNING IN ASSIGNMENTS: For each of the
assignments, you should turn in your solution. To each, attach an
assignment coversheet that includes your name, student number,
e-mail address, a telephone number where you can be contacted,
and a summary of your individual task. Also include any comments
you want the instructor to see.
LATE ASSIGNMENTS: In general, late assignments
will NOT be accepted. In those cases where the instructor chooses
to accept them, a severe grading penalty will apply. Remember that
all of the other students, your development teammates, will depend
on your contribution to the project.
CLASS SCENARIO:
You have recently been hired by a prestigious software company
because the company has just won one of two contracts to upgrade
a Government developed training aid called the Low Cost Flight
Simulator (LCFS). At the end of the development phase, a single
contract will be awarded to the company that wins a competitive
product "fly-off" demonstration. Your company's future depends
on winning this competition. Your talent-laden tiger team must
develop the upgrade to this product to allow it to win the
fly-off. Product maintainability is included in the criteria
for final product evaluation. You have 15 working weeks to
complete the task and have the upgrade ready for the fly-off
demonstration.
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.

Course Syllabus
TEXT:
INSTRUCTOR: John R. Ellis
Class |
Date |
Pages |
Topic |
1 |
9 Jan 96 |
|
- Introduction to Class Project |
2 |
11 Jan 96 |
P: 40-64 B: 1-26 |
- Life-Cycle Models |
3 |
16 Jan 96 |
P: 40-64 B: 29-37 B: 73-83 |
- Management and Metrics; Project Organization |
4 |
18 Jan 96 |
P: 549-594 P: 693-710 |
- Controlling Disciplines - QA and CM |
5 |
23 Jan 96 |
P: 65-127 B: 87-94 |
- Cost, Size, and Manpower Planning |
6 |
25 Jan 96 |
P: 173-204 B: 41-50 B: 61-69 |
- Requirements Analysis and Specification |
7 |
30 Jan 96 |
B: 97-103 |
- Requirements Assessment Review |
8 |
1 Feb 96 |
P: 207-265 |
- Structured Analysis and Object-Oriented Analysis |
9 |
6 Feb 96 |
|
- Configuration Control Board Meeting
[Assignment #1 due.] |
10 |
8 Feb 96 |
P: 315-366 B: 115-123 |
- Design Concepts and Models |
11 |
13 Feb 96 |
|
- Preliminary Design Review |
12 |
15 Feb 96 |
P: 367-394 |
- Structured Design |
13 |
20 Feb 96 |
P: 395-428 |
- Object-Oriented Design |
14 |
22 Feb 96 |
|
- Team Meetings |
15 |
27 Feb 96 |
|
- Critical Design Review
[Assignment #2 due.] |
16 |
29 Feb 96 |
|
- Mid-Term Examination |
|
4-8 Mar 96 |
|
SPRING BREAK!!! |
17 |
12 Mar 96 |
P: 513-545 B: 127-150 |
- Structured Programming and
Implementation Considerations |
18 |
14 Mar 96 |
P: 595-630 |
- Software Testing |
19 |
19 Mar 96 |
P: 631-661 |
- Testing Strategies |
20 |
21 Mar 96 |
B: 107-112 |
- Formal Technical Reviews |
21 |
26 Mar 96 |
|
- Team Meetings
[Assignment #3 due.] |
22 |
28 Mar 96 |
|
- Software Inspection |
23 |
2 Apr 96 |
P: 481-511 |
- Real-Time Systems |
24 |
4 Apr 96 |
P: 713-735 |
- CASE and CASE Tools |
25 |
9 Apr 96 |
|
- Cleanroom Software Engineering |
26 |
11 Apr 96 |
B: 179-226 |
- "No Silver Bullet" |
27 |
16 Apr 96 |
P: 663-691 B: 153-175 |
- Post-Development SW Evolution: Maintenance
and Documentation
[Assignment #4 due.] |
28 |
18 Apr 96 |
B: 229-292 |
- Mythical Man-Month After 20 Years |
29 |
23 Apr 96 |
|
- Artifact Demonstration |
30 |
25 Apr 96 |
B: 107-112 |
- Post Development Evaluation; Course
Evaluations - Review for Final Examination |
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.

Project Roles
Role |
Assigned to: |
Job Description Summary |
Task Leader |
Parivash (Pari) Jamnia
pjamnia@cs.fit.edu |
Responsible for the creation of the software
product. Primary responsibilities include: 1) cost and
schedule performance of the team; 2) authoring the
requirements and specification document; 3) advising on
overall design; and 4) supervising implementation and
testing. |
Project Administrator |
Hung Ju (Henry) Cho
hcho@cs.fit.edu |
Responsible for resource allocation and
tracking. Primary responsiblities are cost analysis and
control, computer and human resource acquisition and
supervision. Collects data and issues bi-weekly
cost/manpower consumption reports and the final report. |
Configuration/ Data Manager |
Hsin-Chi (Dillon) Chen
hchen@cs.fit.edu |
Responsible for change control. Primary
responsibilities include the configuration management plan,
tracking change requests and discrepancy reports, calling
and conducting change control board meetings, archiving, and
preparing product releases. Also responsible for final
preparation of all documentation prior to delivery to
the "customer". Ensures documents are delivered in
accordance with program milestones. Establishes the program
documentation standard and ensures all documents conform. |
Test and Evaluation Engineer |
Yuh-Sheue (Rosa) Chen
rcs12428@cs.fit.edu |
Responsible for testing and evaluating individual
modules and subsystems and for preparing the appropriate
test plans and test documentation. |
Designer |
Somrak Bhakdisuparit
sbhakdis@winnie.fit.edu |
Primary responsibility for developing aspects of
the design as specified by the Task Leader; includes
assessing the impact of alternative implementations
for proposed changes. |
Implementor |
Paul Bryer
pbryer@cs.fit.edu |
Primary responsibility is to implement the
individual modules of the design and serve as the technical
specialist for the programming language and operating
system. During the requirements specification and design
stages, the implementor could develop tools and experiment
with unfamiliar language features needed for the project. |
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.

Project Deliverable Requirements List
Item Num. |
Document Name |
Responsibility |
A001 |
Software Development Plan |
Task Leader |
A002 |
Software Configuration Management Plan |
Configuration/Data Manager |
A004 |
Program Documentation Standards |
Configuration/Data Manager |
A005 |
Coding Standard / Maintenance Manual |
Configuration/Data Manager |
A006 |
Cost / Schedule Status Report (bi-weekly) |
Project Administrator |
A007 |
Software Requirements Specification |
Task Leader |
A008 |
Interface Requirements Specification |
Task Leader |
A009 |
Software Design Document |
Designer |
A010 |
Test Plan |
Test and Evaluation Engineer |
A011 |
User Manuals
| Task Leader |
A012 |
Code |
Implementor |
A013 |
Test Report |
Test and Evaluation Engineer |
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.

Assignment #1
NOTE: Everyone MUST keep track of the
hours spent on project activities. Turn in weekly activity report
forms to the Project Administrator.
Task Leader:
- Familiarize yourself with the present design of the Low Cost
Flight Simulator (LCFS) program. Write a report on your general
impressions of the design and utility of this product. Include
a description of the major deficiencies you have found.
- Review the Requirements Document to ensure that it reflects the
present configuration of the product. Identify any requirements
that the baselined software fails to satisfy or code features
not explicitly required.
- Establish key project objectives. Specify major project activites
(both development and support) and identify key project
milestones. Establish an initial project schedule.
- Provide the Project Administrator with salary figures for all
personnel.
- Locate at least two references on "cleanroom software development".
Provide a short summary of the salient features of this approach,
including a projection of its applicability to your project.
Project Administrator:
- Create Weekly Activity Report (WAR) forms to allow all team
members to report their hours expended for specific individual
tasks. Coordinate the design of this form with the Task Leader
to ensure it captures all costs.
- Working with the project schedule and salary figures developed
by the Task Leader, assign preliminary earned values to each
milestone. Plot the planned value of the scheduled milestones
against time for the duration of the project (i.e., the
"Budgeted Cost of Work Scheduled" - BCWS line). This becones
the baseline program plan.
- Collect actual costs for the project start-up activities through
25 Jan 96 by interviewing each of the team members. Include
this initial cost in all project status reports.
- Prepare an initial Cost-Schedule Status Report (CSSR) that
shows the BCWS for the entire project and the initial cost
(i.e., initial "Actual Cost of Work Performed" - ACWP).
- For the duration of the project, collect the Weekly Activity
Reports from each team member and prepare CSSRs (updating
the ACWP and "Budgeted Cost of Work Performed" - BCWP) every
other week. Present the bi-weekly CSSR to the team with hard
copies to the Task Leader and the "customer".
Configuration/Data Manager:
- Investigate and write a short report on the availability of
Software Configuration Management (SCM) tools that run on the
PC. Make a recommendation to the Task Leader as to whether a
SCM tool should be used during the project. If the recommendation
is to use a SCM tool, recommend which one.
- Collect all existing project documents and establish a project
library for the other team members. Establish a log to track
who has copies of controlled documents. Establish procedures
for the distribution and authorization to make changes to the
documents.
- Establish criteria for placing all new documents and code
under configuration control.
- Design the format (hard copy and/or soft copy) for discrepancy
reports and change requests.
- Write a Configuration Management Plan that defines how SCM will
be applied to this program. Be sure the plan is complete and
covers such topics as baseline definition, change management,
etc.
- Coordinate all SCM plans with the Task Leader. With Task Leader
approval, report to the team how SCM will be accomplished during
the project, including tools and their use, procedures, use of
forms, make-up of the Software Configuration Control Board
(SCCB), etc.
- Evaluate existing program documentation for consistency of
format. Identify common deficiencies and those of individual
documents. Prepare a report that documents your findings.
- Generate a Documentation Standard that defines the required
format for all program documents. Consider the effects on
current documents.
- Generate a Coding Standard / Maintenance Manual that describes
how all program source code should be formatted to enhance
product maintainability. Besides issues relating to readability,
be sure to include module identification with program header
and logic description with embedded comments, and traceability
of implementation back to design documentation.
Test and Evaluation Engineer:
- Locate papers on testing object-oriented programs. Determine
the unique characteristics, if any, of testing OO programs.
Coordinate with the Task Leader to establish the target
platform configuration for the project product. Determine what
testing aids are available for C++ programs on the target
platform. Prepare a written report evaluating what you have
learned.
- Generate a Test Plan document that fully describes how software
testing will be conducted and documented for the program.
Designer:
- Locate papers on software design approaches. Write a brief
report that summarizes the differences between Object-Oriented
Design and Structured Design.
- Review any existing program design material. Compare the
documented design against the actual code to identify any
inconsistencies.
- Structure the existing design data into a design document that
identifies the top-level (architecture) design and detailed
design. Update to reflect any inconsistencies you found
between the design documentation and the implemented code.
- As necessary, assist the Team Leader and Implementor in
evaluating proposed product changes by suggesting designs
(consistent with the current design) to implement those
changes.
Implementor:
- Locate and study references on the Object-Oriented Programming
in the C++ programming language. Concentrate on the concepts
of the classes and inheritance.
- Write a short report that summarizes how OO structures are
implemented in the C++ language, and make the report available
to the Designer and Task Leader.
- Coordinate the preparation of the Coding Standard / Maintenance
Manual with the Configuration/Data Manager.
- As necessary, assist the Task Leader and Designer in evaluating
the implementation impact of suggested designs. Be aware of
Commercial-Off-The-Shelf (COTS) and/or public domain/shareware
software that is available to the team to assist in the
implementation.
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.

Assignment #2
NOTE: Everyone MUST keep track of the
hours spent on project activities. Turn in weekly activity report
forms to the Project Administrator.
Although individual assignments are due on 27 Feb, most
work will have to be done well in advance of this date in order
for the project to remain on schedule.
Task Leader:
- Write Change Requests/Discrepancy Report(s) [CR/DRs] against
the Requirements Document and/or source code to reflect
inconsistencies between them. Turn CR/DR in to the
Configuration Manager.
- Support your CR/DRs at the Software Configuration Control
Board (SCCB) meeting at which they are presented.
- If the SCCB authorizes changes to the Requirements Document,
log out the document with the Configuration Manager and make
all authorized changes. Return the updated document to the
Configuration Manager.
- If changes to the code are authorized by the SCCB as the result
of your CR/DRs, coordinate changes with the designer and
implementor, as required.
- Recommend at least one significant change (not associated with
a discrepancy) for the LCFS product. Turn CR(s) in to the
Configuration Manager.
Project Administrator:
- Collect Weekly Activity Reports (WARs) weekly and prepare
bi-weekly Cost/Schedule Status Reports (C/SSRs) for presentation
to the team & customer with hard copies to the Task Leader and
customer.
- Discuss the expected “effort remaining” with each team member.
Coordinate remaining tasks with the Task Leader. If necessary,
update the estimated Cost At Completion (EAC).
Configuration/Data Manager:
- Collect CR/DRs from other team members. Log all CR/DRs into
your records, assign numbers, and schedule review at SCCB
meetings.
- Administer the SCCB meeting(s).
- Describe your proposed CM Plan with the SCCB. Ensure all team
members understand the processing you defined in your CM Plan.
- Coordinate release and re-baselining of other documents to
which the SCCB has authorized changes.
- Prepare a configuration status report for the customer.
Test and Evaluation Engineer:
- Conduct regression tests of the baselined LCFS program to
determine whether or not the product functions properly and
the test suite (in the test plan) matches the product
capabilities. With the assistance of the implementor, write at
least two original tests to test some section of the product
not covered by the current test suite. Report the results of
testing to the customer.
- Write CR/DRs against the Test Plan identifying any inadequacies.
Coordinate all proposed changes with the Task Leader to ensure
that the changes will not degrade the quality of the developed
product. Turn CR/DRs in to the Configuration Manager.
- Support your CR/DRs at the SCCB meeting at which they are
presented.
- If changes to the test documents are authorized by the SCCB, log
out the document with the Configuration Manager and make all
authorized changes. Return the updated document to the
Configuration Manager.
Designer:
- Write CR/DRs against your Design Document, identifying
inadequacies in their content (especially when compared to the
development requirements). Turn CR/DRs in to the Configuration
Manager.
- Support your CR/DRs at the SCCB meeting at which they are
presented.
- If changes to the design documents are authorized by the SCCB,
log out the document(s) with the Configuration Manager and make
all authorized changes. Return the updated document(s) to the
Configuration Manager.
- Coordinate with the Task Leader regarding the implementation of
any proposed enhancements/changes to the LCFS system. Establish
the feasibility of an implementation, considering technical,
cost, and schedule factors. Be prepared to present (and justify)
your findings to the SCCB when the change(s) is(are) considered.
Implementor:
- Write CR/DRs against the Coding Standard / Maintenance Manual,
reflecting any inadequacies found during your review. Turn CR/DRs
in to the Configuration Manager.
- Support your CR/DRs at the SCCB meeting at which they are
presented. Justify any proposed changes to the existing standard
in terms of their effects on the existing code and on-going
activities.
- If changes to the Coding Standard / Maintenance Manual are
authorized by the SCCB, log out the document with the
Configuration Manager and make all authorized changes. Return the
updated document to the Configuration Manager.
- Assist the Test and Evaluation Engineer in developing new tests.
- Work with the designer to evaluate the implementation of proposed
changes.
- Turn in any code that you write in helping other project team
members.
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.

Assignment #3
NOTE: Everyone MUST keep track of the
hours spent on project activities. Turn in weekly activity report
forms to the Project Administrator.
Although individual assignments are due on 26 Mar, most work
will have to be done well in advance of this date in order for the
project to remain on schedule.
Task Leader:
- Continue to manage the team’s activities.
- Finalize the requirements statements for all approved requirements changes
being added to the LCFS product.
- Update the requirements document
to add the customer approved requirements to the product.
- Prepare a project status report for the customer, which:
- Highlights major milestones specified to date and indicates the team’s
ability to meet those milestones.
- Identifies milestones remaining through completion of the project.
- Includes cost data provided by the Project Administrator.
- Includes a configuration status (status of CR/DRs, etc.) provided by
the Configuration Manager.
- Includes an evaluation of the management style applied to the project
so far. If it has not been effective, offer suggestions as to how a
change might improve project performance.
Project Administrator:
- Continue to collect WARs and provide bi-weekly C/SSRs.
- Discuss the expected “effort remaining” with each team member. Coordinate
remaining tasks with the Task Leader. If necessary, update the EAC.
Configuration/Data Manager:
- Continue to maintain documents and code under configuration control.
Maintain records for all CR/DRs.
- Audit all document and code changes made to date to ensure that only
changes authorized by a CR/DR have been made when items are returned to
configuration control. Provide the Task Leader and customer with an audit
report.
- Provide the Task Leader with a configuration status report.
Test and Evaluation Engineer:
- Prepare for the unit, integration, and final testing of the approved
CR/DRs for the LCFS product. Write additional tests to verify sections
you feel are not fully covered by existing tests. Conduct testing of the
LCFS program changes in accordance with the project schedule.
- Supply new tests to verify any code changes.
- Report to the Task Leader on the adequacy of your previous product tests
for inclusion in her customer report. Include a recommendation on what
should be done with the LCFS program: release it, change it, etc.
Designer:
- Complete the design of the approved changes to the LCFS code as authorized
by the SCCB. Coordinate your ideas with the Implementor (the primary user
of these documents).
- Present your design at the Preliminary Design Review (PDR) and Critical
Design Review (CDR). Respond to any action items that may be assigned during
these reviews.
- Make necessary updates to the design documents.
Implementor:
- Implement the approved changes to the LCFS program that are approved by the
SCCB and defined by the Designer.
- Turn in any code that you wrote during this time.
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.

Assignment #4
NOTE: Everyone MUST keep track of the
hours spent on project activities. Turn in weekly activity report
forms to the Project Administrator.
Although individual assignments are due on 23 Apr, most work will
have to be done well in advance of this date in order for the project
to remain on schedule.
Task Leader:
- Continue to manage the team's activities.
- Prepare a final project report for the customer.
- Summarize the project objectives and describe how your
management plan addressed the objectives. Do you feel that
you managed the development process or were you a victim of
circumstances?
- Describe the Software Engineering principles that you applied
during the project.
- Summarize the performance of each of your team members in
fulfilling their individual roles. Be sure to mention things
that they did to demonstrate their understanding of their role
responsibilities.
- Describe the lessons you learned from this exercise. Suggest
what you might have done differently to improve the success of
the project.
Project Administrator:
- Continue to collect WARs and provide bi-weekly C/SSRs.
- Prepare a final project report for the customer.
- Provide a final C/SSR as of 18 Apr 96. Project any remaining
work to show the current EAC.
- Summarize your activities during the project. Describe how your
efforts contributed to the overall project effectiveness. Do you
feel that your data was considered in making project decisions?
Should it have been?
- Describes the lessons you learned from this exercise. Suggest
what you might have done differently to improve the success of the
project.
Configuration/Data Manager:
- Continue to maintain documents and code under configuration control.
Maintain records for all CR/DRs. Ensure that, at project's end, the
final tested configuration is under formal control.
- Provide the customer with hard copy/soft copy of all documents
prepared/modified during the project.
- Prepare a final project report for the customer.
- Provide a copy of all CR/DRs submitted during the project. Include
a final disposition report of all CR/DRs.
- Summarize your activities during the project. Describe how your
efforts contributed to the overall project effectiveness. Do you
feel that your policies in managing the configuration aided or
hindered the progress of the team?
- Describe the lessons you learned from this exercise. Suggest what
you might have done differently to improve the success of the
project.
Test and Evaluation Engineer:
- Continue to perform/document testing associated with code generated
or changed on the project.
- Lead the final product demonstration.
- Prepare a final project report for the customer.
- Include a description of all testing activities you performed
during the project. Indicate where you found the need for new
test cases and describe the test cases you provided.
- Describe how your efforts contributed to the overall project
effectiveness. Do you feel that your findings aided or hindered
the progress of the team?
- Describe the lessons you learned from this exercise. Suggest
what you might have done differently to improve the success of
the project.
Designer:
- Prepare a final project report for the customer.
- Summarize your activities during the project. Describe how your
efforts contributed to the overall project effectiveness.
- Describe the design methodology you used for the new software
design. Was the output of this methodology easily understood by
other team members?
- Describe the lessons you learned from this exercise. Suggest what
you might have done differently to improve the success of the
project.
Implementor:
- Continue to support required implementation changes to the product.
- Prepare a final project report for the customer.
- Summarize your activities during the project. Describe the code
that you generated during this project. Describe how your efforts
contributed to the overall project effectiveness.
- Describe the lessons you learned from this exercise. Suggest what
you might have done differently to improve the success of the
project.
-- Return to top, or:
1. Fact Sheet; 2.
Syllabus; 3. Roles; 4.
PDRL; 5. Assignment #1;
6. Assignment #2;
7. Assignment #3;
8. Assignment #4.
