|
CS251 Software Engineering-1
Instructor: Prof.
Hany Ammar, West
Virginia University, Email: hammar@wvu.edu,
or ammar.hany@gmail.com,
Office: Cluster Computing
Lab, 2nd floor of the Visually Impaired Building
Teaching Assistants: Eng. Mostafa Saad, e-mail: mostafa_saad1111@yahoo.com
Prerequisites: CS213:
Programming-2
Recommended Text: Object-Oriented
Software Engineering, B. Bruegge and A. Dutoit, 2nd edition, Pearson Education Inc.,
2004, ISBN:81-297-0433-1
References:
1. Software
Engineering: Technical, Organizational and Economic Aspects, an Arabic
Textbook, Phillips Publishing, lulu.com, 2006, ISBN-10: 1411680006, Local copies available with Dr. Sherif Mazin, at FCI. Also at Baccah Bookstore
2.
Software Engineering: A
Practitioner's Approach By Roger S. Pressman,
6th edition, McGraw-Hill Science/Engineering/Math; 6 edition
(April 2, 2004), ISBN-13: 978-0073019338
Course
Description:
This is a project-based course focused on software engineering concepts with an
emphasis on analysis and design of software of systems. The course starts by
defining software engineering and the system/software development process.
Software development standards such as the European Space Agency standard and
the US Mil-STD-498 software development standard are briefly described in order
to project the students to the industrial standards. The analysis and design
phases of development are then covered by describing the object-oriented
analysis and design techniques using the Unified Modeling Language UML. A
computer-aided software engineering (CASE) tool is used throughout the project.
A term project, and a term examination are used to
assess the students learning process. The term project is to be done in teams of students and it
starts in the beginning of the term. In-class Project Presentations and reviews
will be conducted.
Goals: The learning
outcomes of this course are listed as follows:
The student should be able to:
1.
Specify the major phases of software development, and the different
models of the development process.
2.
Specify the major tasks of software requirements engineering and
software architecture design
3.
Use a CASE tool to:
o Correctly analyze the software
requirements of a complex system and develop a specification based on
object-oriented analysis techniques
o Develop a design according to the
specification obtained in the previous step using object-oriented design
techniques
4.
Use design patterns to develop quality software designs following a
systematic development process.
5.
Develop a detailed design of a component of the project, Implement and
test the design.
Topics: (Notes and
Lecture Slides), Lecture hours
I- Introduction to Software Engineering and the Software Life
Cycle, 3 hrs
-
System and software engineering development
process, 1.5 hrs
Lecture Slides 1 (Notes: (pdf file), Text:Chapter 15, Reference 1: Chapter 2)
-
Software development standards, and ICASE
environments, 1.5 hrs
Lecture Slides 2
(Provided notes above, , Ref 1: Chapter 2)
II- Project Requirements,
1 hr (Lab session)
III- Requirements
Engineering, 13 hrs
- Introduction to
Requirements Engineering, and Software Requirements Analysis
, and the SRS document, 1.5hrs
Lecture Slides 3 (Notes: pdf file, Text:Chapters 4, Ref 1: Chapter 4)
- The
Requirements model, Object-Oriented
Anakysis, and the Unified Modeling Language UML, 10 hrs
Lecture Slides 4, 5, 6, and 7 (Text:Chapters 4 and 5, Ref1: Chapter 6)
- Project Requirements Analysis Review, 2
hrs (Lab Session)
III - Software Design, 12 hrs
- Introduction to Software Design, the software design document and
design criteria, 1hr
Lecture Slides 8 (Notes,
Text: Chapter 6, Ref1:Chapter 9)
- Object-Oriented Design, and Design Patterns, 9 hrs
Lecture Slides 9, 10, and 11(Text:
Chapters 6, 7, 8, and 9 ; Ref: Chapter 10)
- Project: Architecture Design
Review, 2hrs (Lab Session)
IV - Detailed Design, Implementation, and Testing, 5hrs
- Detailed
Design, Implementation, and Testing, 3hrs
Lecture slides 12 (Text:
Chapter 10 and 11, Ref1: Chapter 14)
- Project: Detailed Design and Testing Review, 2hrs
(Lab Session)
Computer
Usage:
Students will be required to use Computer-Aided Software Engineering (CASE)
tools
Grading:
Attendance
.................................5 %
Final
Exam..................................................60%,
Project:
Software Requirements
Specification Document................................................................17.5%
Software Design
Document..................................................................17.5%
The
project will be conducted by groups of 2 or 3 students. Reports on projects
will be required from each group after each phase. It is expected that students
will participate equally in the work of the group. Group meetings minutes
specifying the attendees should be included, and the contribution of each
student must be documented in each report.