SwE313-Co-Syllabus

advertisement
King Saud University
College of Computer and Information Sciences
Department of Software Engineering
SWE 313 – SOFTWARE PROCESS AND MODELING 3(3-0-1)
Semester II, Academic Year 2009-2010
Required Course: 3 hours lecture and 2 hours lab. per week
Instructor: Dr. Abdullah Alghamdi
Course Title: SWE313
Class Time : SAT, MON from 5:00 PM to 7:00 PM
Class Room: CCIS Bldg Room 64 1st Floor
Course Description (catalog):
This course aims to provide a comprehensive presentation of the key concepts and models
used in object-oriented approaches in software engineering. This includes a review of ObjectOriented concepts and modeling with UML: Structural Modeling, Behavioral Modeling –
System architecture design, – User Interface Design – Object Persistence Design - Class and
Method Design - Object-Oriented Testing – Unified Process development cycle – Use case
analysis – Sequence diagrams – Encapsulation – Inheritance – Polymorphism – Design
principles of coupling and cohesion – Design patterns. Students will be exposed to:
Rational’s Software Tools, UML Generating tools, standard templates for SRS, Quality
control and other SE related documents. Students will participate in a group project on objectoriented software engineering.
Prerequisite(s): -
Co-requisite(s): -
Courses: SWE 211 – Introduction to Software Engineering
Topics:
 General Overview about SDLC
 Development Methodologies
 Object-Oriented Concepts
Courses: IS 230 – Introduction to Database Systems
Topics:
 Data Modeling
Textbook(s) and/or Other Required Materials:
Primary:
1. S. Bennett, S. McRobb, and R. Farmer (2006). Object-Oriented Systems Analysis and
Design Using UML. 3rd Edition, McGraw-Hill.
Supplementary:
2. G. Booch et al. (2007). Object-Oriented Analysis and Design with Applications. 3rd
Edition, Addison-Wesley.
3. C. Larman (2005). Applying UML and Patterns: An Introduction to Object-Oriented
Analysis and Design. 3rd Edition, Prentice Hall.
Course Objectives:
1. Define and Understand fundamental and advanced topics in O-O Software
Engineering.
2. Understand the key concepts and principles of object-oriented analysis and design
3. Understand UML and its features and diagrams
4. Apply the object-oriented concepts in developing software systems.
Course Learning Outcomes:
1. Define fundamental and advanced OO Software Engineering concepts
2. Understand how to capture system requirements in use cases
3. Understand how to transform an analysis models into to design models
4.
5.
6.
7.
Apply an iterative process to the development of a design model.
Describe some basic design considerations, including the use of design patterns.
Use of different UML Diagrams to represent analysis and design models.
Use the techniques of forward and reverse engineering to generate code from UML
models and vice-versa.
8. Understand Software Processes and Software development methodologies (such as
RUP).
9. USE OO Case tools (such as IBM Rational Rose) to create UML diagrams.
Major Topics covered and schedule in weeks:
Topic
Review of Object-Oriented Concepts and principles of objectoriented analysis and design
Abstraction, encapsulation, inheritance, polymorphism,
Structural Modeling, and Behavioral Modeling
Modeling the system functionality with use cases
Apply an iterative process to the development of a design
model: Unified Process
Identify classes and class responsibilities
Object Persistence Design
Class and Method Design
Distinguish between analysis and design activities.
Describe some basic design considerations, including the use
of design patterns.
Model the architecture of the system.
User Interface Design
Use UML to represent analysis and design models.
Use the techniques of forward and reverse engineering to
generate code from UML models and vice-versa.
Object-Oriented Testing
Use OO case tools (such as Rational Rose and Rational
Software Architect) to create UML diagrams.
Concluding remarks, Review, and Evaluation
Total
# Weeks
# Contact hours*
0.5
2.5
1
5
2
1
10
5
1
5
1
1
5
5
1
1
5
5
1
1
5
5
1
1
5
5
1.5
15
6
75
*Contact hours include lectures, labs, and tutorials.
Assessment Plan for the Course:
Students’ performance is evaluated based on quizzes, exams, and group projects.
Evaluation:
Quizzes
Project (3 parts)
Midterm Exam
Final Exam
Total
15%
20%
25%
40%
100%
Course Policy:



No late delivery of the project.
Students are encouraged to discuss problems in the project but not copy.
The final exam will be comprehensive.
Contribution of Course to Meeting the Requirements of Criterion 5
(Curriculum):
Curriculum Discipline
Contribution
General Education
Mathematics and Basic Sciences
Supporting Computing Topics
Core Software Engineering Topics: Science
Core Software Engineering Topics: Design
Major Design Experience
50 %
40 %
10 %
Relationship of Course to Program Outcomes:
#
Outcome Description
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
(j)
(k)
(l)
(m)
(n)
(o)
an ability to apply knowledge of mathematics, science, and engineering
an ability to design and conduct experiments, as well as to analyze and interpret
data
an ability to design a system, component, or process to meet desired needs within
realistic constraints such as economic, environmental, social, political, ethical,
health and safety, manufacturability, and sustainability
an ability to function on multidisciplinary teams
an ability to identify, formulate, and solve engineering problems
an understanding of professional and ethical responsibility
an ability to communicate effectively
the broad education necessary to understand the impact of engineering solutions in a
global, economic, environmental, and societal context
a recognition of the need for, and an ability to engage in life-long learning
a knowledge of contemporary issues
an ability to use the techniques, skills, and modern engineering tools necessary for
engineering practice
the ability to analyze, design, verify, validate, implement, apply, and maintain
software systems
the ability to appropriately apply discrete mathematics, probability and statistics,
and relevant topics in computer science and supporting disciplines to complex
software systems
the ability to work in one or more significant application domains
the ability to manage the development of software systems
H=High, M= Medium, L=Low
Contribution
M
H
H
H
Download