Luca Dan Serbanati
     Software Development Methods
     Faculty of Engineering in Foreign Languages.  English Stream.
     Third year. Spring 2019
     Laboratory: Associate Prof. Andrei Vasilateanu, andraevs@gmail.com  
 
Email: luca@serbanati.com    URL: Personal website
General Information:
Course syllabus

Course: 3h/week
Lab work: 1h/week = 2h/2weeks
Project: 1h/week = 2h/2weeks
Credit points: 3

Laboratory and Project:
Andrei Vasilateanu, andraevs@gmail.com

Prerequisites:
"Data Structure and Algorithms" and "Object-oriented Programming" courses

Grading and workload
Our grade in the course will be earned / calculated as follows:
- Homework 10% + frequency(c/l/p) 10%
- Project 30%
- Final exam 50% (Theory 25% + Exercise 25 %)
Homeworks will be given roughly every week or two, and will each consist of a small number of problems. For the final project, you can pick any topic you want for further study from our project list. Your project has to involve implementing an application with the methods presented at the course. In all cases, the end product will be a written report and a software delivery. Grades may also be adjusted upward slightly based on regular, positive contributions to class discussions.
Project Policy.
1.The projects cover the whole life cycle of software products development: analysis, design, and coding. The result of the project is a real software product.
2.The course lectures and homeworks provide necessary guidance for project realization.
2.Project submissions must not include external materials (e.g., web downloads).
3. The project must be turned in on the due date. Late projects are not accepted for any reason and will receive a zero mark.
4.The project is an individual research work.
5. The projects will require substantial time commitment. We strongly invite students to begin working on assignments early.

Guidelines to Projects
1. At the beginning of the semester a list of project topics is made available at the web. Each student reports his/her preferred choice for a topic and the list of their submissions will be published in early March.
2. Throughout the semester, students will be responsible for development of a project.
3. The project report is submitted in early May. On the profs' request the student may rewrite the report in late May.
4. In the last two weeks of the semester the students are to give a 15 minutes presentation of the project. The presentation is a separate requirement for passing the exam in this subject and part of the grading of the project work.
We expect that effort spent will help the student to gain a thorough understanding of software project development.

Examination Policy
To attend the final examination a student should obtain at least 5(five) at the laboratory and project activity.
The comprehensive closed-book exam consists of a written answer to a quiz and two hours test consisting in analysis, design and implementation of a small application.

Course Redoing
If the student failsthe final examination she/he can redo it during the fall exam session. If redoing fails the student must
redo the entire course: laboratory, project, homework, and final examination.

Lecture notes: slides

Textbooks:

The Software Process
1. R.S.Pressman, Software Engineering: A Practitioner's Approach, 6/e, McGraw-Hill, 2004.
2. L.D.Serbanati, Integrating Tools for Software Development, Yourdon Press Computing Series, Prentice Hall, 1992.

Object Oriented Methods
3. M. Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3/e, Addison-Wesley, 2003.
4. C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3/e, Prentice Hall, 2004.
5. M. Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, 1996.



Very important!!!
How working at home works
and project packages
All students are warmly invited to attend the course lectures and read the lecture notes because working homework assignments requires knowledge only covered by the course. The lab will never replace the course lectures or resume the knowledge transmitted during the course lectures. It is used to:
-verify current homework solving,
-correct errors or defaults in homeworks, and propose alternative or better ways to solve the problem,
-verify and evaluate studentsí knowledge of specific facts or concepts with focused questions, and
-validate delivery of current workpackage of the assigned project.
Schedule of Laboratory Topics and Homework
In order to put into practice what learned, sequencing of homework assignments exactly follows the phased development of a software project.
A link to the homework assignment and the corresponding topic will be released for each laboratory session.
Lab.# Week
Homework Topic & Link
Lab #1
19 Feb
CJ201
Accessing databases in Java (java.sql, javax.sql)
Tutorial
Homework #1
Lab #2
26 Feb
CJ201
Networking in Java(java.net).
Tutorial
Homework #2
Homework #2_1
Redo the homework of the last week using MySQL and MySQL Workbench instead of JavaDB
Lab #3
5 Mar
CJ201
RMI - Java Remote Method Invocation (java.rmi)
Oracle's Tutorial
Our Tutorial + Homework #3
Lab #4
Tue,12 Mar.
CJ201
Introduction to Software Engineering
Homework #4
Lab #5
Tue,19 Mar
CJ201
Object-Orientation Foundation:
Homework #5
Lab #6
Tue,26 Mar
CJ201
Hwk #6: Case study
Business Analysis and Modeling
Hwk deliv: Business Process Model
Guidelines L1 pdf

Lab #7
Tue,2 Apr
CJ201
Hwk #7: Case study
Software Requirements Analysis

Deliv: Software Use Case Model
System Sequence Diagram, Operation Contracts
Guidelines L2 pdf
Project Work

Here is the contents table for project deliverables.

Project Schedule
Each homework theme precedes with one week the delivery of the corresponding work package of the assigned project.
Working on homeworks and partecipating at lab sessions are useful for delivering project workpackages .
Date
Project Task

Schedule of lectures
Please note:
1.This schedule is subject to change
2. Look closely at this site for changes
Date/Time 
Lesson Topic 
Tue,19 Feb
9h - 12h
CJ205
Introduction to Systems Engineering
Complex Systems.
Lecture Notes
Fri, 22 Feb
8h - 11h
CB105
Introduction to Software Engineering
Software Process and Software Product
Software Process Life Cycles
UP Methodology
Lecture Notes
Tue, 27 Feb
8h - 12h CJ205
Object Orientation Foundation.
Concepts and Objects
Structural Models of OO Systems
Fri, 1 Mar
8h - 11h CB105
Behavioral model of OO systems
Lecture Notes
Tue, 5 Mar
8h - 12h CJ205
Introduction to Enterprise Engineering.
Components of the Business Models
Documenting Business with Models
Activity Diagrams.
Using Activity Diagrams in Functional Models.
System Sequence Diagram. Operation Contracts.
Lecture Notes
Fri, 8 Mar
8h - 11h CB105
Functional Model
Requirements Analysis.
Use Case Diagrams.
Use Case Description Lecture Notes
Tue, 12 Mar
8h - 12h
CJ205
Domain Model
Analysis Patterns
Analysis patterns
Lecture Notes
Fri, 15 Mar
8h - 11h CB105
Software Architectures
Architectural Analysis
Layered Architecture
Tue,9 April
8h - 12h CJ205
Software Object Design.
Behavioral Model.
Collaboration and Interactions. Interaction diagrams
Overview diagrams
CRC Cards
Assigning Responsibility to Classes
Fri 12 Apr
8h - 11h CB105
Design patterns
Patterns for Assigning of Responsibilities
Introduction to Design Patterns


Examinations

A student unable to present her/his identification document is not accepted for examinations.
Exam Date Time/Room
Visits from 04 January 2005: 189296 Last update: 3 June 2018