Title : Software Engineering I
Course no. : CSC3324 / Sections 1 & 2
Class hours :
Nom
:
:
Dr. Driss Kettani
Office Hours : TBA
D.Kettani@aui.ma
Room : 05/107
Term : Fall 2007
Room : No.102, Bldg. 9
Phone : 2178
Software Engineering (SE) has been defined as the application of sound engineering principles and techniques to the process of software development and delivery. Its purpose is to make formal and predictable the building of software systems that really correspond to the client’s requirements and that are reliable, efficient and user friendly.
This course will present and discuss the main topics in the field of software engineering and will show how to use them in the real world via concrete examples. It starts with a general introduction of SE, its models, its steps and its terminology and, then, it focuses on the conceptual analysis (Requirements engineering as called by Sommerville) and design steps. The methodology that will be used is called Merise, which is widely used in Morocco and in the world. It is supported by many Computer Aided Software Engineering tools that allow graphical representation of data and processes models with respect to an agreed semantic, and to describe them in a specific standard layout. Students will also be introduced to the implementation and maintenance steps but the details will be taught in the SE-II course.
By its nature, software engineering needs a lot of abstraction skills and relies on the creativity and experience of the software engineer. Software engineering is definitely not a programming language or a process optimisation technique, it is rather about abstraction, analysis, modelling and design activities.
Students successfully completing the course will:
know what is SE and how to use it in the software development and delivery;
know different software engineering models that are widely used in the world;
understand the different steps of the software engineering life cycle;
master the conceptual analysis (requirements engineering) step and produce the corresponding deliverables;
master the design step and produce its corresponding deliverables;
be initiated to the implementation steps and its corresponding deliverables: the code of different modules and functions that are implemented to fulfill the specifications of the system;
understand the Merise Methodology;
efficiently and autonomously a CASE tool;
be initiated to develop skills for working in a group on a small software project.
Software Engineering, Ian Sommerville , 7 th edition, Addison-Wesley.
SE-I online slides, Dr Driss Kettani, http://www.aui.ma/~D.Kettani/
Topic(s)
Introduction and definitions
The Software life cycle + Software engineering process models
Feasibility and orientation study
Recommended Feasibility Document layout and content
Study case (step 1)
Software requirements
The Requirements Engineering Process;
- Study Case (step 2);
- Study Case (step 3);
- Study Case (step 4);
System Models;
Introduction to Merise;
Using Merise to produce the:
Processes model;
Data model;
User model;
Formal outputs of the conceptual analysis step.
The Conceptual Analysis Doc.
(the Requirements
Engineering Doc.)
Software Design ;
Interface Prototyping;
The Design document
System Implementation;
Project document;
Presentations.
Readings
Sommerville Chapter 1
Sommerville Chapter 3
6.1
5.1, 5.2 and 5.3
6, 7
See annex in French
10, 15 and annex
Annex
The professor will present the course material in a variety of ways such as lectures, concrete examples, assignments, papers from the literature and finally, reviews of projects. It is the student’s responsibility to keep up with the course material and to ask questions when concepts are unclear.
Students are strongly encouraged to look for assistance whenever it is needed.
Students can ask their questions during the course, during office hours or on appointment in my office. They can also use the mailing list of this course: SE1@alakhawayn.ma
.
Another way to seek for help is through class Sensors. A Class Sensor is a representative of students that may
talk/report to the professor on their behalf. She/he must sense the atmosphere of the class and regularly talk to students about course matters, and report to the professor any remark, comment, suggestion that she/he noticed or that was reported to her/him by students. Any student who has a GPA of 3.0 or more can be a class sensor. We will have two class sensors for this course: a female sensor and a male sensor. The designation of class sensors will be made in the class and students with higher GPA will have the priority.
2
Attendance and punctuality are mandatory and critical to success this course. You will be considered absent if you miss the first 5 minutes of the course. I will manage the punctuality of students (i.e., missing the first 5min of the class) at my own discretion.
Students will have to develop a software system in a team of 3 to 4 members. They must form their team and propose a project (previously approved by the professor) on the 3 rd class week, i.e. on/before Sept. 14 th . Students will continuously work on their project since they will have to submit some 6 formal reports, each of which corresponding to a step of the software engineering process taught in this course.
Each team will present its project at the end of the semester in front its Client, the SSE Staff/Faculty and the
Public at large.
These quizzes will test the theoretical understanding of chapters covered so far. We will have two kinds of quizzes:
Oral quizzes: will usually take place at the beginning of the lectures and will concern only a small group of students (3 maximum). These students will be asked, individually, questions related to mandatory readings or about the content of the last lecture.
Up to 4 Written quizzes of 20 to 30 minutes for the whole class.
The quizzes are not announced.
The exams will be open book. You may bring any academic material that could help you. Nothing could be shared during the exams.
- Project:
- Exams:
25%
- Quizzes and participation: 15%
- Grading
Midterm
Final
25%
35%
A
B
C
D
[90..100[
[80..90[
[70..80[
[60..70[
3