Introduction to Software Engineering

http://www.csee.wvu.edu/~ammar/CU/swe/sylabus/

http://www.csee.wvu.edu/~ammar/CU/swe/Slides/

DD www.csee.wvu.edu/~ammar/cpe484/

  

 

 

 

 

 

 

 

Cairo University

Faculty of Computers and Information

DEPARTMENT OF COMPUTER SCIENCE


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.