View/Open

advertisement
CS 532 Software Engineering
Fall 2014
Credits: 3 units
Contact Hours: Monday and Wednesday 1400-1515
Instructors: Jo Ann Lane Office: GMCS 564 Email: jalane@mail.sdsu.edu
Patty Kraft Office: GMCS 544
Email: pkraft@mail.sdsu.edu
Office Hours: Mondays and Wednesdays 1300 – 1400 (and by appointment)
Course Materials
1. Required text: Boehm, Lane, Koolmanojwong, and Turner, The Incremental Commitment
Spiral Model: Principles and Practices for Successful Systems and Software, AddisonWesley, 2014. ISBN-13: 978-0-321-80822-6
2. CS 532 lecture notes/slides (available on Blackboard)
Course Information for CS 532
Description from the Official Course Catalog
Theory and methodology of programming complex computer software. Analysis, design,
and implementation of programs. Team projects required.
Prerequisites: Computer Science 320 and 530
Course Type: Selected elective course in the program
Specific Goals for CS 532
Course-Level Student Learning Outcomes
1. Ability to integrate concepts from previous CS core courses and software engineering
principles and apply to the development of a team project.
2. Ability to select various software development life cycle models (both traditional and
agile) appropriate for a given software system.
3. Ability to translate a set of software system needs into a set of requirements that can be
used to plan and manage the software development process for the team project.
4. Ability to estimate the size of a software application and use size to estimate team project
schedule and cost (effort).
5. Ability to apply techniques to reduce software development cost/schedule or to manage a
software project to fit within cost/schedule constraints.
6. Ability to plan appropriate software requirement testing strategies for different types of
software.
7. Ability to select and apply compatible design techniques for software architectures, data
models, user interfaces, and computational algorithms.
8. Ability to apply quality processes (peer reviews/testing) to team project work products
and balance these activities with project cost/schedule constraints.
9. Ability to decide when a software system is sufficiently mature to deliver to the
customer/user community.
Relationship to CS Program Course Outcomes
CS 532 addresses the following CS Program course outcomes:
a) An ability to apply knowledge of computing and mathematics
(mathematics limited to
requirements for team project)
b) An ability to analyze a problem, and identify and define the computing requirements
appropriate to its solution
c) An ability to design, implement, and evaluate a computer-based system, process,
component, or program to meet desired needs
d) An ability to function effectively on teams to accomplish a common goal
e) An understanding of professional, ethical, legal, security and social issues and
responsibilities
f) An ability to communicate effectively with a range of audiences
(customer/team level)
g) An ability to analyze the local and global impact of computing on individuals,
organizations, and society
h) Recognition of the need for and an ability to engage in continuing professional
development
i) An ability to use current techniques, skills, and tools necessary for computing practice
j) An ability to apply mathematical foundations, algorithmic principles, and computer
science theory in the modeling and design of computer-based systems in a way that
demonstrates comprehension of the tradeoffs involved in design choices.
k) An ability to apply design and development principles in the construction of software
systems of varying complexity.
Topics Covered
The following topics are covered in CS 532:
1. Software Engineering Overview
2. Project Planning and Management: lifecycle models and estimation
3. Requirements Identification and Management: techniques and tools, functional
requirements, and performance requirements
4. Development Tools and Methods: documentation, peer reviews and inspections,
configuration management, metrics
5. Database Design: normalization and addressing performance issues
6. Software Architecture/Top-Level Design: architecture styles, reuse, commercial-offthe-shelf software products
7. User Interface Design: techniques, use of patterns, guidelines
8. Detailed Design: data structures, user interfaces, algorithms
9. Implementation: coding, unit testing, and debugging techniques
10. Independent/Formal Testing: test levels, test planning, test execution and reporting,
analysis of test results
Course Schedule and Grading Policies
Approximate Due Dates for Major Assignments and Exams
Week/
Lead
1
Week
Start
Date
1/Lane
and Kraft
8/25
2/Lane
9/1
Reading
Assignment
Topic
Software Engineering
Overview
Chapter 0
Project Activities/ Reviews
Set up teams
HOLIDAY: 9/1/2014
ICSM Principles
Chapters 1-2
Finalize teams and projects
3/Lane
9/8
ICSM Process Patterns
Chapters 3-5
4/Kraft
9/15
Requirements Identification
and Management
Chapters 6-7
5/Lane
9/22
Project Planning,
Management, Quality
Assurance, and Metrics
Chapters 14
Requirements “database” due for approval by 2 pm on
9/22/2014
6/Kraft
9/29
Test Planning
Chapter 15
First project report due: Requirements analysis and project plan
due by 2 pm on 10/1/2014
7/Kraft
10/6
Data Modeling/Design
Web
readings1
8/Kraft
10/13
Software Architecture/TopLevel Design (slides 1-27)
Chapter 8
9/Lane
and Kraft
10/20
10/Lane
10/27
Second project report due: Test plan/updated project notebook
due by 2 pm on 10/22/2014
1st Midterm Exam: Review on 10/20/2014, exam on 10/22/2014
Based on reading and lecture materials from weeks 1 through 7
Software Architecture/TopLevel Design (continuedslides 28 to end)
Chapter 11
http://www.itteam-direct.com/gwbadat.htm : data modeling; http://www.phlonx.com/resources/nf3/ : database normalization
Week/
Lead
Week
Start
Date
11/Kraft
11/3
User Interface Design
Web
readings2
12/Kraft
11/10
Detailed Design
Chapter 9
13/Lane
11/17
Implementation
Chapter 9
14/Kraft
11/24
Test and Operations
Chapter 10
Topic
Reading
Assignment
Project Activities/ Reviews
Third project report due: Project architecture and data model;
updated project plan/notebook due by 2 pm on 11/3/2014
Wednesday, November 26, 2014: No classes
2
15/Lane
and Kraft
12/1
Team retrospectives of projects and demos of project prototypes/first increments
Critique of team retrospectives and demos due at end of class on 12/3/2014
15/Lane
and Kraft
12/8
2nd Midterm Exam: Review on 12/8/2014, exam on 12/10/2014
Comprehensive exam with more emphasis on reading and lecture materials from weeks 8 through 14
16/Lane
and Kraft
12/15
13001500
4th project report due: Comparison of project plans to actual performance; project lessons learned and lessons
learned assessment; test report based on actual testing conducted on prototype/first increment.
www.time-tripper.com/uipatterns/index/php and http://designinginterfaces.com/ : Introduction, Organizing the Content, Getting Around, Organizing the Page, Getting
Input from Users, and Showing Complex Data.
Major Assignments: Team Projects
Class will be divided into 4-5 person teams. Each team will be provided a set of high-level
requirements to be implemented, integrated, and tested. Each team’s requirements will be
implemented using a selected set of the software engineering processes covered in the course.
Activities will begin with project planning and culminate in a review of the team results. Each
team will be required to submit 4 reports related to their project:
1. The first report will state and analyze the objectives and requirements for the system as
well as describe the approach and estimates for developing the software systems.
2. The second report will present the project test plan.
3. The third report will describe and analyze the selected architecture and data model for the
software system to be developed.
4. The fourth report will compare actual results to initial plans and then develop a set of
lessons learned for future projects (what worked well, what did not work well, and for
elements that did not work well, recommendations for improving the process).
Scored activities and weighting by percentage of total score
1. Individual work: 50%
 First Midterm (20%)
 Second Midterm (20%)
 Class participation/retrospective analysis (10%)
2. Team work: 50%
 Each of 4 papers (10%)
 Demo (10%)
Grading Scale: Standard curve
Other Course Policies
Special Assistance: If you are a student with a disability and believe you will need
accommodations for this class, it is your responsibility to contact Student Disability Services
at (619) 594-6473. To avoid any delay in the receipt of your accommodations, you should
contact Student Disability Services as soon as possible. Please note that accommodations are not
retroactive, and that accommodations based upon disability cannot be provided until you have
presented your instructor with an accommodation letter from Student Disability Services. Your
cooperation is appreciated.
Download