Jay-Evan J. Tevis Department of Computer Science LeTourneau University Longview, TX

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Software Quality Assurance Plan
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
More CMM Part Two : Details.
Chapter 2 The Software Process
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
APPLICATION DEVELOPMENT BY SYED ADNAN ALI.
CS Integration Management (Part 6) Bilgisayar Mühendisliği Bölümü – Bilkent Üniversitesi – Fall 2009 Dr.Çağatay ÜNDEĞER Instructor Bilkent University,
Course Technology Chapter 3: Project Integration Management.
Chapter 3: The Project Management Process Groups
Chapter 27 Change Management
© 2008 Prentice Hall11-1 Introduction to Project Management Chapter 11 Managing Project Execution Information Systems Project Management: A Process and.
Project Execution.
Software Configuration Management
CSSE 375 Software Construction and Evolution: Configuration Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
Michael Solomon Tugboat Software Managing the Software Development Process.
Release & Deployment ITIL Version 3
Chapter : Software Process
Systems Analysis and Design: The Big Picture
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
The Key Process Areas for Level 2: Repeatable Ralph Covington David Wang.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Copyright Course Technology 1999
Chapter 4 Interpreting the CMM. Group (3) Fahmi Alkhalifi Pam Page Pardha Mugunda.
Introduction to Software Quality Assurance (SQA)
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Michael Dermody September 2010  Capability Maturity Model Integration ◦ Is a Trademark owned by the Software Engineering Institute (SEI) of Carnegie.
Software System Engineering: A tutorial
COSC 4303 Software Engineering GROUP PROJECT Introduction and Initial Planning Fall 2012.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
COSC 4303 Software Engineering GROUP PROJECT Introduction and Initial Planning Fall 2010.
SENG521 (Fall SENG 521 Software Reliability & Testing Software Product & process Improvement using ISO (Part 3d) Department.
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Lecture 11 Managing Project Execution. Project Execution The phase of a project in which work towards direct achievement of the project’s objectives and.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
BSBPMG505A Manage Project Quality Manage Project Quality Project Quality Processes Diploma of Project Management Qualification Code BSB51507 Unit.
Georgia Institute of Technology CS 4320 Fall 2003.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
KS3 Phase4 Client Server Monitoring System October 1, 2008 by Stephen, Seema, Kam, Shpetim.
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Develop Project Charter
11/24/2015Dr. SASTRY-PROJ SOFTWARE PROJECT MANAGEMENT By Dr. M V S PERI SASTRY. B.E,Ph.D.
BSBPMG501A Manage Project Integrative Processes Manage Project Integrative Processes Project Integration Processes – Part 1 Diploma of Project Management.
COSC 4303 Software Engineering Introduction and Initial Planning of Group Projects Fall 2007.
Quick Recap Monitoring and Controlling. Lesson 11: Monitoring and Controlling Project Work Topic 11A: Identify the Monitor and Control Project Work Process.
COSC 4303 Software Engineering Introduction and Initial Planning of Group Project Fall 2009 (Updated on 24 Oct 2009)
1 EMS Fundamentals An Introduction to the EMS Process Roadmap AASHTO EMS Workshop.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
BSBPMG404A Apply Quality Management Techniques Apply Quality Management Techniques Project Quality Processes C ertificate IV in Project Management
Software Engineering (CSI 321) Software Process: A Generic View 1.
~ pertemuan 4 ~ Oleh: Ir. Abdul Hayat, MTI 20-Mar-2009 [Abdul Hayat, [4]Project Integration Management, Semester Genap 2008/2009] 1 PROJECT INTEGRATION.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
Configuration Management
Software Configuration Management
Chapter 11: Software Configuration Management
Software Configuration Management
Configuration Management
Software Engineering (CSI 321)
Chapter 27 Change Management
Lecture 3 Change Management
Software Configuration Management
Chapter 27 Change Management
Chapter 27 Change Management
Chapter 11: Software Configuration Management
Chapter 27 Change Management
Chapter 27 Change Management
Presentation transcript:

Jay-Evan J. Tevis Department of Computer Science LeTourneau University Longview, TX

Use of a Group Project  A group project may be added as a component of a software engineering course or course sequence  Its goal: Students work as a team to design and build a large software system for a real-world situation  Probable result: Because of the students’ lack of real-world project experience, they will most likely handle the project as a typical programming assignment (that, in this case, lasts the whole semester)

Characteristics of a Programming Assignment Approach  Students are loosely-organized into a team  They are given some general directions on the software to build  They heroically attempt to build the software without any established requirements or a design  They struggle to make it all look like a well- implemented and tested software application

Key Weaknesses of an Application Built using this Approach  Has not satisfied any baselined requirements (because none exist)  Has not followed a baselined design (because none exists)  Has not been adequately tested because of the lack of baselined requirements and test cases  Could not be built again the same way Lack of any project planning Lack of any project tracking and oversight of the time and resources needed to accomplish the project

What is a Baseline?

Definition of a Software Baseline  A configuration management concept that helps practitioners to control change without seriously impeding justifiable change  IEEE Definition: A specification or product that has been formally reviewed and agreed upon, and that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures  It is a milestone in the development of software and is marked by the delivery of one or more artifacts that have been approved as a consequence of a formal technical review

A Different Approach for a Group Project  We use an approach that goes beyond the concepts and skills taught in a traditional computer science curriculum  Our approach incorporates software engineering and software project management, and does so from an industry perspective

A Software Engineering Approach  Software engineering is defined as “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software” (Pressman)  Software engineering requires the use of specific processes, methods, and tools with a quality focus foundation in order to develop software

Sample Elements of Software Engineering  Software life cycle models  Requirements gathering and analysis techniques  Design methodologies  Standards and metrics  Specifications  Formal reviews  Testing techniques

Emphasis on Key Process Areas of Project Management (SW-CMM, Level 2)  Project planning  Project tracking and oversight  Requirements management  Configuration management  Quality assurance 1 - Initial 2 -Repeatable 3 - Defined 4 - Managed 5 - Optimized

Objectives for Using These Practices  Take advantage of the synthesis of computer science, engineering, and project management  Build a quality product that Meets user requirements Has a robust design Is adequately tested Finished on time and within budget

Two-Course Sequence: First Course Software engineering process, the SW-CMM, and software life cycle models Object-oriented requirements analysis and design of a board or card game Creation of a requirements specification and a UML-based design Translation of the requirements and design into a completed software application

Two-Course Sequence: Second Course Software testing techniques Group project that is six to seven weeks long Software project management ○ Software metrics ○ Estimation for software projects ○ Risk management ○ Quality management ○ Change management

Overview of the Remaining Presentation  Group Project Organization  The Group Project in Operation  Results from Past Group Projects  Conclusion and Future Work

Objective of the Group Project  Given a software development problem and a software development group …  the student will apply software engineering and software project management principles and practices …  in various assigned roles …  required to complete the … Object-oriented requirements analysis Object-oriented design Construction Testing  for a software product

Organizational Structure Software Engineering Directorate Dr. Tevis Software Design * Caleb Reinking Peter Moore Daniel Patten Gary Raduns Customer Liaison * Stephen Brown Joshua Millet Quality Assurance * Kim White Silas Brill Brett Clark Austin Eyler Daniel Ferguson Michael Roettger Requirements Management * Spenser James Aaron Cutbirth Josh Haines Jon Hersack Aaron Hume Erik Lindow Project Management Elijah Lofgren Configuration Management (Contractor) C++ Software Construction * Robert Whiting Ben Cooley James Denton Brett Smith Java Software Construction * Benaiah Henry Evan Allrich Dave Estes Bill Tuscher

Role of Project Manager  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

(SED) Update software development plan (SDP)‏ (RM) Create OORA model (SRS)‏ Software Requirements Review (SRR)‏ (SD) Create architectural design model (SDD)‏ Preliminary Design Review (PDR)‏ (SD) Create component- level design (SDD)‏ (SC) Construct source code and do unit testing Critical Design Review (CDR)‏ (SC) Do product build and integration testing Test Readiness Review (TRR)‏ (QA) Do validation and system testing (SC) Create software version description (SVD)‏ (QA) Determine qualification methods for requirements (STP)‏ (SD) Create interface design description (IDD)‏ (SED) Create preliminary software development plan (SDP)‏ Task Network for the Organizational Software Development Process (Version 4)‏ (QA) Create validation and system test cases (STD)‏ (RM) Do preliminary identification of software requirements (SRS)‏ (CM) Deliver software and documentation Functional and Physical Configuration Audits (FCA/PCA)‏ 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) Discuss software needs and project scope with customer Test Outcome Review (TOR)‏ (RM) Create interface requirements specification (IRS)‏ (RM) Identify and record software requirements (SRS)‏

List of Formal Reviews  Software Requirements Review  Preliminary Design Review  Critical Design Review  Test Readiness Review  Test Outcome Review  Functional Configuration Audit  Physical Configuration Audit

Format for the Software Requirements and Testing Table Passed Test? Actual Output Expected Output Input Data Qual. Type Requirement Description Req. IDTest Case Status Initial Added Changed Deleted Analysis Demonstration Inspection Test

Use case diagram System-level state diagram Problem-domain class diagram

Interface requirements specification

Design-level class diagram Identification of attributes and methods for each class

Interface design description

Source code files

The results from performing the test cases

Updated and detailed class diagram

Software version description Corrected source code

Reasons for Adapting the Group Project  Number of students enrolled in the course  Lessons learned from previous projects  Feedback from the students on the group project

Example Adaptations  The course needs to be held on MWF rather than T-Th to accommodate the scheduling of the formal reviews  The project needs to have a written policy on the use of laptop computers during the class meetings  To create more robust teams, we assign students to a team based on student preferences and on their performance in previous computer science courses

The Software Engineering Director  This position is filled by the course instructor  The role needs to be performed sincerely and completely as an integral part of the software development company  The director should be able to Act as the moderator at class meetings and formal reviews Make decisions on the direction of the project as it occurs Approve changes in the schedule Baseline project artifacts Handle dissatisfied employees (i.e., students) in the company Reassign team leaders or members if a team fails to fulfill its responsibilities or needs help

Major Keys to Success of the Group Projects  A prescribed software process  Clearly defined team roles  Good organizational skills of the project manager  Good performance by the team leaders

Example Experiences Gained by each Student  Depends on the role of each team  Project manager – learned about the challenges of teams not completing their tasks on time  Requirements management team – learned about the effort to gather and document user requirements  Design team – learned about the chore of creating a design based on pages of user requirements  Construction team – learned about the difficulties of translating a design into source code  Quality assurance team – learned about the importance of well-defined and quantified requirements and well-written test cases

Skills that are Learned and Practiced  Communication skills by speaking in front of a group  Travel skills from planning a hypothetical trip to a location for a formal review  Coordination skills from working as a team and with other teams  Leadership, followership, and delegation skills working as a team leader or team member  Time management skills by following a timeline chart and finishing tasks on schedule  Discussion skills in handling comments, questions, arguments, and compromises in a formal review

Summary  A group project should be more than just a semester-long programming assignment  It can be an opportunity for students to learn, experience, and use industry-style software engineering and software project management techniques  We have described our approach for doing this Group project organization The group project in operation Results from past group projects  In this group project approach, students experience some of the responsibilities, events, stress, and elation that come with project work in industry

Future Plans  Continue incorporating Industry processes, methods, and tools into the group project Lessons learned from students and recommendations from industry professionals  Include accounting students in the next group project Provide a prediction of project costs Establish a budget Track the actual dollar costs of the software development effort as the project proceeds Bring cost data into the decision-making discussions of the project

GROUP PROJECT WEBSITE Engineering/software-engineering.html ANY QUESTIONS?