COSC 4303
Software Engineering
Introduction and Initial Planning
of Group Project
Fall 2009
(Updated on 24 Oct 2009)
Organizational Structure
Project
Management
Elijah Lofgren
Software Engineering
Directorate
Customer
Liaison
Dr. Tevis
* Stephen Brown
Joshua Millet
Requirements
Management
Software
Design
Quality
Assurance
* Spenser James
Aaron Cutbirth
Josh Haines
Jon Hersack
Aaron Hume
Erik Lindow
* Caleb Reinking
Peter Moore
Daniel Patten
Gary Raduns
* Kim White
Silas Brill
Brett Clark
Austin Eyler
Daniel Ferguson
Michael Roettger
Configuration
Management
C++ Software
Construction
Java Software
Construction
(Contractor)
* Robert Whiting
Ben Cooley
James Denton
Brett Smith
* Benaiah Henry
Evan Allrich
Dave Estes
Bill Tuscher
Task Network for the Organizational
Software Development Process (Version 4)
(SED) Discuss software
needs and project scope
with customer
Test Readiness
Review (TRR)
(QA) Do validation and
system testing
Note: If formal approval does not
occur following a review or audit,
this will require an implied return
to the previous non-review
step in the process
(SED) Create
preliminary software
development
plan (SDP)
(RM) Do preliminary
identification of
software
requirements (SRS)
(RM) Identify and
record software
requirements (SRS)
(RM) Create interface
requirements
specification (IRS)
(RM) Create OORA
model (SRS)
(SED) Update software
development
plan (SDP)
Software Requirements
Review (SRR)
(SD) Create
architectural
design model (SDD)
(QA) Create validation
and system
test cases (STD)
(QA) Determine
qualification methods
for requirements (STP)
(SD) Create interface
design description
(IDD)
(SC) Do product build
and
integration testing
(SC) Construct source
code
and do unit testing
Critical Design
Review (CDR)
(SD) Create
componentlevel design (SDD)
Test Outcome
Review (TOR)
(SC) Create software
version description
(SVD)
Functional and
Physical
Configuration
Audits (FCA/PCA)
(CM) Deliver
software and
documentation
Preliminary Design
Review (PDR)
Organizational Responsibilities (1 of 6)
•
Software Engineering Director
–
–
–
–
•
Provide oversight for all of the company’s software engineering projects
Serve with the director of the customer organization as the review and project approval
authority
Act as the baselining authority (along with the director of the customer organization) for all
project documents and software
Plan and oversee the formal reviews (SRR, PDR, CDR, TRR, TOR, FCA/PCA) and product
delivery
Project Management (PM)
–
–
–
–
–
–
–
Based on the task network, the organizational responsibilities, and the project objectives,
construct an initial timeline chart for the project
Maintain the timeline chart over the life of the project by getting subtask information from the
team leaders and updating the status of all tasks as information becomes available
Submit updated timeline charts to the Software Engineering Director before each directorate
meeting and as requested
Use the timeline chart to brief the current status of the project at each directorate meeting
Report any project abnormalities, problems or delays to the Software Engineering Director
Collect artifacts after each formal review from Requirements Management, Software Design,
Software Construction, and Quality Assurance that need to be baselined
Submit these artifacts to Configuration Management for baselining
Organizational Responsibilities (2 of 6)
•
Configuration Management (CM)
–
–
–
–
•
Provide configuration management services for all artifacts that are submitted for baselining
Receive artifacts for baselining from Project Management only
Make baselined artifacts available through a project website
Deliver the baselined finished software and documentation to the Customer Organization
Customer Liaison (CL)
–
–
–
–
–
–
–
–
Work for the head of the Customer Organization
Act as an information conduit between the director of the Customer Organization and all
offices in the Software Engineering Directorate
Serve as the customer representative at all directorate meetings
Tentatively approve any decisions made concerning product requirements
Periodically brief the head of the Customer Organization on project status
Point out any unapproved additions, changes, or deletions to product requirements that
occur in any phase of the software development
Assist the head of the Customer Organization at all reviews and audits
Accept delivery of the baselined finished software and documentation for the Customer
Organizaton
Organizational Responsibilities (3 of 6)
•
Requirements Management (RM)
–
–
–
–
–
–
–
–
–
–
–
Submit subtask information to Project Management for any work assigned to RM
Gather the initial product software requirements
Create the initial master software requirements and testing table
Record the initial requirements in the master software requirements and testing table
Maintain the integrity of the master requirements and testing table through SRR by tracking any
additions, changes, and deletions to the requirements
Based on the software requirements, create an interface requirements specification
Based on the software requirements and interface requirements, create the initial OORA Model
(use-case diagram, class diagram, and a top-level state diagram)
Present the master requirements and testing table, the interface requirements specification,
and the initial OORA model at the Software Requirements Review (SRR)
After the SRR, submit the master requirements and testing table, the interface requirements
specification, and the OORA model to Project Management for baselining
Assist Quality Assurance in the validation and system testing of the software
Point out any unapproved additions, changes, or deletions to product requirements that occur
in the design, construction, or testing phases of software development
Organizational Responsibilities (4 of 6)
•
Software Design (SD)
–
–
–
–
–
–
–
–
Submit subtask information to Project Management for any work assigned to SD
Based on the requirements listed in the baselined master requirements and testing table,
transform the baselined OORA model into an OO architectural design model (i.e., a class
diagram)
Present this model at the Preliminary Design Review (PDR)
After the PDR, submit the architectural design model to Project Management for baselining
Based on the master requirements and testing table, expand the baselined architectural design
model into a component-level design model
Expand the baselined interface requirements specification into an interface design description
Present these models and descriptions at the Critical Design Review (CDR)
After the CDR, submit the interface design description and the component-level design model to
Project Management for baselining
Organizational Responsibilities (5 of 6)
•
Software Construction (SC)
–
–
–
–
–
–
–
–
–
–
–
–
–
Submit subtask information to Project Management for any work assigned to SC
Based on the master requirements and testing table, translate the baselined design models and
the interface design description into source code and perform unit testing
Perform a product build and do software integration testing
Present the source code and your unit and integration testing results at the Test Readiness
Review (TRR)
After the TRR, submit the source code to Project Management for baselining
Provide assistance to QA during validation and system testing of the software
Based on the test results, make any practical changes to the software to create a corrected
version for retesting by QA
Present the corrected source code at the Test Outcome Review (TOR)
After the TOR, submit the corrected source code to Project Management for baselining
Create a software version description (SVD)
Create a final class diagram that reflects the actual software implementation
Present your SVD and class diagram at the Functional/Physical Configuration Audit (FCA/PCA)
After the FCA/PCA, submit your SVD and class diagram to Project Management for baselining
Organizational Responsibilities (6 of 6)
•
Quality Assurance (QA)
–
–
–
–
–
–
–
–
–
–
–
–
–
Submit subtask information to Project Management for any work assigned to QA
After SRR, obtain the baselined master requirements and testing (R&T) table from Configuration
Management
Take over the responsibility to maintain the master R&T table and the interface requirements
specification
Submit the R&T table to Project Management for baselining at various times as requested by the
Software Director
Determine the qualification method for each requirement listed in the master R&T table
Based on the qualification method, create a validation or system test case (along with input data
and expected output data, if applicable) for each requirement listed in the master R&T table;
record these in the table
Present the validation and system test cases, as recorded in the master R&T table, at the Test
Readiness Review (TRR)
After TRR, submit the updated master R&T table (with test cases) to Project Management for
baselining
Before validation and system testing begins, obtain the baselined source code from
Configuration Management
With the assistance of Requirements Management, Software Design, and Software Construction,
perform validation and system testing of the software requirements and record all results in the
master R&T table
When errors are found during testing, have Software Construction make any practical changes to
the software (if possible) in order to create a corrected version, then retest this version
Present the validation and system test results, as recorded in the master R&T table, at the Test
Outcome Review (TOR)
After the TOR, submit the updated master R&T table (with test results) to Project Management
for baselining
Format for the
Software Requirements and Testing Table
Req. ID
Status Requirement
Description
Qual. Test
Type Case
Input
Data
Expected Actual
Output
Output
Passed
Test?
Clickermatic Software Clicker
•
Software Requirements Summary
–
•
•
•
Project Start Date: Monday, Sep. 28, 2009
Project Delivery Date: on or before Friday, Nov. 6, 2009
Electronic tools and formats (other than source code construction)
–
•
Office 2003/2007 with Office 2003 doc, ppt, and xls file formats
Programming Languages and Compilers
–
–
•
Create a TCP-based GUI-based client/server computer program in which the server displays a
series of questions and multi-choice answers on its screen, the client anonymously gathers
student responses to each question via an on-screen software clicker on its screen, and the
server tabulates the answers and displays the results on its screen. All questions and answers
are read from a formatted text file. The questions shall be presented either one at a time
(single mode) or in a group (quiz mode)
GNU C++ (Object-oriented, OpenGL GUI, no extensions)
Sun Java (Object-oriented, SWING GUI, no extensions)
Implementation Constraints
–
–
–
–
–
Targeted for desktop, laptop, or netbook computers running 32-bit Windows, Linux, or Mac OS
No source code dependency on any specific platform or operating system
No dependency on any integrated development environment (IDE) for coding, testing, or
software execution
No dependency on language matches between client and server (i.e., only a common
application layer protocol for each implementation)
Source code submission to Project Management by zip file with a readme.txt file enclosed
Descargar

Slide 1